地图类API 地图对比
点击拖动以改变地图范围
如何实现地图对比?
下面是地图对比的示例代码。


                                                                
下面我们分步向您介绍:

加载地图浏览API

将下载的地图浏览API包解压后拷入网页所在的工程文件夹,将如下列代码所示的相对路径加入网页head节内引用。

1. < !--引入地图框架-->
2. < script src="http://服务器IP/地图API名称/" type="text/javascript" />< /script>

创建地图容器元素

创建地图浏览应用程序需要在页面中创建一块区域用于显示地图内容,这个区域我们叫做地图容器,即在body中加入的一个div容器,其页面代码为:

1. <div id="map_div" class="content"> </div>
1. <div id="map_div_1" class="content"> </div>

参数初始化设置

地图实例通过下列代码创建,其中,DCIMapConfig.mapInitParams是地图初始化参数。

1. var map = new DCIMap("map_div", DCIMapConfig.mapInitParams);
2. var mapTwo = new DCIMap("map_div_1", DCIMapConfig.mapInitParams);

加载图层到地图

根据底图类型,创建底图,添加到地图中。

1. switch (DCIMapConfig.vecMap.type) {
2.  case 0://WMTS
3.   var layers = new DCIWMTSLayer(DCIMapConfig.vecMap.Url);
4.   map.addLayer(layers, 0);
5.   map.showSlider(map.initExtent, DCIMapConfig.sliderConfig);
6.   break;
7.  case 1://1为mapserver切片
8.   var layers = new esri.layers.ArcGISTiledMapServiceLayer(DCIMapConfig.vecMap.Url);
9.   map.addLayer(layers, 0);
10.   dojo.connect(layers, "onLoad", function () {
11.    map.showSlider(map.initExtent, DCIMapConfig.sliderConfig);
12.   })
13.   break;
14.  }
15. }
16. switch (DCIMapConfig.vecMap.type) {
17.  case 0://WMTS
18.   var layersTwo = new DCIWMTSLayer(DCIMapConfig.vecMap.Url);
19.   mapTwo.addLayer(layersTwo, 0);
20.   mapTwo.showSlider(mapTwo.initExtent, DCIMapConfig.sliderConfig);
21.   break;
22.  case 1://1为mapserver切片
23.   var layersTwo = new esri.layers.ArcGISTiledMapServiceLayer(DCIMapConfig.vecMap.Url);
24.   mapTwo.addLayer(layersTwo, 0);
25.   dojo.connect(layersTwo, "onLoad", function () {
26.    mapTwo.showSlider(mapTwo.initExtent, DCIMapConfig.sliderConfig);
27.   })
28.   break;
29.  }
30. }

地图联动

添加地图范围改变事件,实现地图联动

1. var flagV = true, flagI = true;
2. map.esriMap.on("extent-change", function () {
3.   if (flagV) {
4.    var vExtent = map.esriMap.extent;
5.    mapTwo.esriMap.setExtent(vExtent);
6.    flagI = false;
7.   } else if (!flagV) {
8.    flagV = true;
9.   }
10. });
11. mapTwo.esriMap.on("extent-change", function () {
12.   if (flagI) {
13.    var vExtent = mapTwo.esriMap.extent;
14.    map.esriMap.setExtent(vExtent);
15.    flagV = false;
16.   } else if (!flagI) {
17.    flagI = true;
18.   }
19. });