ArcGIS JS Demo

最近在用 ArcGIS 写了一个Demo

效果如下:

1. 引用 ArcGIS JS API 

arcgis_js_api/init.js

2. 引用 样式

arcgis_js_api/js/esri/css/esri.css

arcgis_js_api/js/dojo/dijit/themes/tundra/tundra.css

3. 引用 ArcGIS JS API 的命名空间

dojo.require("esri.map");

4. 结构模板

dojo.require("esri.map");

funtion init() {

。。。

}

dojo.addOnLoad(init);

5. 事件注册

dojo.connect(map,"eventName",functionCallback);

具体代码:

 1     <script type="text/javascript">
 2         dojo.require("esri.map");
 3         dojo.require("dojo.parser");
 4         dojo.require("esri.layers.agstiled");
 5         dojo.require("esri.toolbars.draw");
 6         dojo.require("dijit.layout.BorderContainer");
 7         dojo.require("dijit.layout.ContentPane");
 8         dojo.require("esri.dijit.Scalebar");
 9 
10         var map, tb;
11         function init() {
12             document.getElementById('map').setAttribute('height', window.screen.height);
13             document.getElementById('map').setAttribute('width', window.screen.width);
14 
15             map = new esri.Map("map");
16             var layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://HostServerIP/arcgis/rest/services/AhMap/MapServer");
17             dojo.connect(map, "onLoad", function () {
18                 dojo.connect(map, "onMouseMove", showCoordinates);
19                 dojo.connect(map, "onMouseDrag", showCoordinates);
20                 var scalebar = new esri.dijit.Scalebar({
21                     map: map,
22                     scalebarUnit: "metric"
23                 });
24                 ondrawPoint();
25             });
26             map.addLayer(layer);
27         }
28 
29         var mp2;
30         var mp3;
31         var picSymbol;
32         function ondrawPoint() {
33             var toolbar = new esri.toolbars.Draw(map, { showTooltips: true });
34 
35             toolbar.activate(esri.toolbars.Draw.POINT);
36 
37             dojo.connect(toolbar, "onDrawEnd", function (geometry) {
38                 map.graphics.clear();                
39                 var path = "<%=IconPath %>";
40                 picSymbol = new esri.symbol.PictureMarkerSymbol(path, 50, 50);
41                 var picGraphic = new esri.Graphic(mp2, picSymbol);
42                 map.graphics.add(picGraphic);
43 
44                 mp3 = mp2;
45                 document.getElementById("txtLongitude").value = mp2.x;
46                 document.getElementById("txtLatitude").value = mp2.y;
47             });
48         }
49 
50         function showCoordinates(evt) {
51             var mp = evt.mapPoint;
52             mp2 = mp;
53             dojo.byId("info").innerHTML = mp.x + ", " + mp.y;
54         }
55 
56         function doAngle() {
57             var angle = document.getElementById("txt_angle").value;
58             picSymbol.setAngle(angle);
59             map.centerAt(mp3);
60 
61             var extent = map.extent;
62             map.setExtent(extent.expand(0.99));
63         }
64 
65         function window.onbeforeunload() {
66             var jd = document.getElementById("txtLongitude").value;
67             var wd = document.getElementById("txtLatitude").value;
68             var jiaod = document.getElementById("txt_angle").value;
69 
70             window.returnValue = jd + "," + wd + "," + jiaod;   //返回值    
71             window.close();
72         }        
73 
74         dojo.addOnLoad(init);
75   </script>
原文地址:https://www.cnblogs.com/Aphasia/p/4117126.html