動態更改圖層符號系統的首選方法是什麼?我的web應用程序通過REST API使用地圖服務,但我不介意使用SOAP API或ArcObjects(.NET)。動態更改地圖圖層符號系統(ArcGIS Server)
1
A
回答
0
REST API是無狀態的,因此您無法通過與REST式服務的連接更改符號系統(儘管您可以使用圖形圖層來動態提取要以不同方式顯示的功能)。
使用SOAP API(通過Web ADF或簡單地通過SOAP手動連接到服務)並更改其中的符號體系,您將擁有更好的運氣。有關這方面的更多信息,請訪問:http://forums.esri.com/Thread.asp?c=158&f=2421&t=266974
0
如果要更改地圖服務中自身的符號外觀,則需要使用WebADF或創建自己的使用SOAP API的服務。改變符號然後生成圖像的實際位很容易,難的部分將是然後讓開放的圖層消耗它。我不打擾或按照Michael的建議去做,並將圖形帶回客戶端,並根據需要使用OpenLayers繪製它們,也許圖層設置爲在地圖服務中不可見,以便它們不會顯示在圖形下。
1
從版本2.0開始,ESRI JS API中存在功能層。
ESRI API示例顯示使用渲染器來更改動態地圖服務的默認符號系統,通過要素圖層通過指定的唯一值&類別中斷渲染器。由於要素圖層是從圖形圖層對象派生的,因此它們呈現的方式不同(客戶端與服務在運行img/tile導出時)。儘管如此,它們確實允許根據開發人員定義的字段/值來更改圖層外觀。
注意運用獨特的價值呈現在這個動態的地圖服務:
例子(代碼)http://help.arcgis.com/en/webapi/javascript/arcgis/jssamples/renderer_unique_value.html
現場樣品 http://developers.arcgis.com/en/javascript/samples/renderer_unique_value/
var defaultSymbol = new esri.symbol.SimpleFillSymbol().setStyle(
esri.symbol.SimpleFillSymbol.STYLE_NULL);
defaultSymbol.outline.setStyle(esri.symbol.SimpleLineSymbol.STYLE_NULL);
//create renderer
var renderer = new esri.renderer.UniqueValueRenderer(defaultSymbol, "SUB_REGION");
//add symbol for each possible value
renderer.addValue("Pacific", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([255, 0, 0, 0.5])));
renderer.addValue("Mtn", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([0, 255, 0, 0.5])));
renderer.addValue("N Eng", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([0, 0, 255, 0.5])));
renderer.addValue("S Atl", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([255, 0, 255, 0.5])));
renderer.addValue("Mid Atl", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([255, 255, 255, 0.75])));
renderer.addValue("E N Cen", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([0, 255, 255, 0.5])));
renderer.addValue("W N Cen", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([255, 255, 0, 0.5])));
renderer.addValue("E S Cen", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([127, 127, 127, 0.5])));
renderer.addValue("W S Cen", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([0, 0, 0, 0.5])));
var featureLayer = new esri.layers.FeatureLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/1", {
mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
outFields: ["SUB_REGION"]
});
featureLayer.setRenderer(renderer);
map.addLayer(featureLayer);
相關問題
- 1. 從ArcGIS地圖發出系統命令
- 2. 免費地圖圖標/符號系統
- 3. ARCGIS iOS - 地圖圖層內存問題
- 4. JS的Arcgis API:更改圖形圖層的空間參考
- 5. ArcGIS和動態圖例
- 6. 動態更改IOS中Mapbox地圖的基礎層
- 7. 更改系統托盤圖標圖像
- 8. 在arcgis java script api中添加圖形圖層地圖
- 9. arcGIS ADF - 當我添加圖形圖層時地圖消失
- 10. Arcgis javascript - 爲要素圖層中的每個圖形設置不同的符號
- 11. 如何從ArcGIS地圖服務創建ArcMap圖層
- 12. 動態更改圖表系列extjs 4
- 13. 更改XYZ圖層的源網址並重繪圖層/地圖?
- 14. 如何動態更改Edge動畫符號中的圖像?
- 15. 使用ArcGIS API for JavaScript在地圖上顯示KMZ圖層的單個圖層
- 16. 動態地更改Google地圖v3中的地圖類型
- 17. 動態更改系統時間win7
- 18. 自動繪圖prcomp - 更改符號
- 19. Highchart,動態地更改圖表類型
- 20. AndEngine更改TMX平鋪地圖動態
- 21. 更改圖像動態地Laravel 5.3
- 22. ArcGIS Map上的多個圖片符號
- 23. 我們如何在arcgis地圖上添加切片圖層?
- 24. 在ArcGIS Online地圖中添加組圖層?
- 25. ggplot2:更改圖例符號
- 26. 更改圖像層
- 27. 無法在刪除平鋪地圖服務圖層後在ArcGIS地圖中顯示圖層
- 28. 無符號字符*緩衝區系統::繪圖::位圖
- 29. 更改系統托盤圖標顏色
- 30. 動態圖像調整大小系統
我使用的OpenLayers,這僅支持REST API和WMS。我不得不懷疑這是不是可能? –
如果OpenLayers能夠查詢一個圖層並從中抓取一個圖形,並且還可以將特徵添加到與它所抓取的圖形相同的位置(使用適用於它的任何符號體系),那麼,是的,它應該工作。雖然我自己並不熟悉。 –