本文为原创,转载请注明出处:http://www.pm-road.com/index.php/2014/12/24/311/
前一段时间,项目中使用的是高德地图,可是项目马上结尾的时候,客户居然提出必须使用ArcGis,真叫人窝火,不过也没有办法,谁让领导同意了呢~
接下来就是准备换地图,首先将原来的JS文件备份,重新复制并生命名一个新的js文件,对新的js进行修改。
引用在线ArcGis地图:
在页面中将css、js 全部引进,代码如下:
<link rel=”stylesheet” href=”http://js.arcgis.com/3.12/esri/css/esri.css”> <script src=”http://js.arcgis.com/3.12/”></script>
在自已的js文件中:
var mapObj;//全局变量 dojo.require(“esri.map”); dojo.require(“esri.InfoTemplate”); require([ "esri/map", "dojo/domReady!" ], function(Map) { mapObj = new Map(“mapdiv”, {//mapdiv 是展示arcgis地图的div id basemap : “streets”,//默认是街道地图 center : [109.56589,18.253725], // longitude, latitude zoom : 12//放大倍数 }); mapObj.on(“load”, addPoints); //在地图加载完成之后,调用addPoints方法 }); function addPoints(map) { for(var i = 0 ,size = arcgis_device_list.length ;i<size;i++){// arcgis_device_list 该变量是从数据库中取得的array ,在这里不写 var device = arcgis_device_list[i]; var symbol = new esri.symbol.PictureMarkerSymbol(appPath+”/images/lcyd.jpg”, 18, 10); var pt = new esri.geometry.Point( device.xValue,device.yValue); var attr = {“deviceName”:device.equipmentName}; var infoTemplate = new esri.InfoTemplate(“${deviceName}”, “这里可以写内容,支持html “); var graphic = new esri.Graphic(pt, symbol,attr,infoTemplate); mapObj.graphics.add(graphic); } }
至此,动态在arcgis中添加点标记结束。
效果如下: