本次試驗應vent要求,查詢地圖坐標並以webMercator坐標表示。
實現地圖坐標查詢包括:加載地圖,設置infoWindow樣式及內容,顯示坐標(包含在第二部分)。
1.加載地圖服務
采用vent提供的動態地圖服務
1 var dynamicMapServiceLayer = 2 new esri.layers.ArcGISDynamicMapServiceLayer("http://www.river.org.cn/ArcGIS/rest/services/river/MapServer"); 3 map.addLayer(dynamicMapServiceLayer);
2.
infoWindow顯示內容
content包含webMercator坐標及屏幕坐標,屏幕坐標主要用於infoWindow定位,代碼如下:
1 map.infoWindow.setTitle("Coordinates"); 2 var pt = evt.mapPoint; 3 map.infoWindow.setContent("<p> X: " + pt.x.toFixed(4) + "<br/> Y: " + pt.y.toFixed(4) + 4 "<br />screen x/y : " + evt.screenPoint.x + ", " + evt.screenPoint.y); 5 map.infoWindow.show(evt.mapPoint,map.getInfoWindowAnchor(evt.screenPoint));
3.通過"onClick"觸發showCoordinates()並獲得點位坐標
dojo.connect(map, "onClick", showCoordinates);
4.ArcGIS JSAPI提供方法實現各坐標系之間的轉換
——toMapGeometry
——toMapPoint
——toScreenGeometry
——toScreenPoint
——geographicToWebMercator
——webMercatorToGeographic
坐標系統代碼詳見:
5.坐標顯示
效果如圖:
這是幾個月前第一次按需求實現一個完整任務,請大家多多指教。