SuperMap下切换图层

在supermap中 做 图层切换功能发现比 ol3简单多了,不解释上代码



控件用来控制地图的显示和对交互操作的响应,在没有明确指定的情况下,地图默认添加Navigation、PanZoomBar控件。常见控件如下:

可见控件:

  • PanZoomBar:地图平移缩放控件,提供对地图的平移和缩放的控制操作。
  • ScaleLine: 比例尺控件,显示地图的比例关系。
  • LayerSwitcher: 地图图层切换控件,可以查看图层信息和控制图层显示。
  • OverviewMap:地图鹰眼控件,辅助查看地图更大范围的显示。
  • MousePosition:该控件显示鼠标移动时,所在点的地理坐标。

不可见控件:

  • Navigation:地图浏览控件,监听鼠标点击、平移、滚轮等事件来实现对地图的浏览操作。
  • SelectFeature:要素选择控件,监听鼠标悬停,点击事件来选择vector图层上面的要素。
  • DrawFeatue: 要素绘制控件,监听鼠标事件来实现要素的绘制。

1.supermap 构建 天地图WMTS服务地图

什么是WMTS服务?
WMTS,切片地图Web服务(Web Map Tile Service)当前版本是1.0.0。该服务符合 OGC(Open Geospatial Consortium,开放地理信息联盟)制定的 WMTS 实现规范。
WMTS 是 OGC 提出的缓存技术标准,即在服务器端缓存被切割成一定大小瓦片的地图,对客户端只提供这些预先定义好的单个瓦片的服务,将更多的数据处理操作如图层叠加等> 放在客户端,从而缓解 GIS 服务器端数据处理的压力,改善用户体验。

SuperMap iClient for JavaScript 支持访问第三方 WMTS 地图服务。本例针对天地图的 WMTS 服务进行调用演示

天地图官网提供的服务资源:http://www.tianditu.com/service/query.html

Step1:这次先贴出演示代码,再做剖析。

layerMarker = new SuperMap.Layer.WMTS({
                name: "cva",  //WMTS服务名称。
                url: "http://t0.tianditu.com/cva_c/wmts",  //WMTS图层的服务地址,必设属性。
                layer: "cva",  //图层名称。
                style: "default",  //发布的图层样式,默认为”default”。 
                matrixSet: "c",  //发布的标识符矩阵集,必设属性。
                format: "tiles",  //图像的MIME类型,默认为 “image/png”。
                requestEncoding: "KVP"  //请求编码。可以是“REST”或者“KVP”,默认为”KVP”。
            });

2.加载服务端数据 并且换

 

var map, layerDay, layerNight,bt=false;
            var url1="http://support.supermap.com.cn:8090/iserver/services/map-world/rest/maps/世界地图_Day";
            var url2 ="http://support.supermap.com.cn:8090/iserver/services/map-world/rest/maps/世界地图_Night";
            function init(){
                map = new SuperMap.Map("map",{controls: [
                    new SuperMap.Control.ScaleLine(),
                    new SuperMap.Control.OverviewMap(),
                    new SuperMap.Control.Zoom(),
                    new SuperMap.Control.Navigation({
                        dragPanOptions: {
                            enableKinetic: true
                        }
                    })], allOverlays: false
                });
                layerDay = new SuperMap.Layer.TiledDynamicRESTLayer("世界地图_Day", url1, {transparent: true, cacheEnabled: true});
                layerDay.events.on({"layerInitialized":addLayer1});
            }
            function addLayer1()
              {
                 layerNight = new SuperMap.Layer.TiledDynamicRESTLayer("世界地图_Night", url2, {transparent: true, cacheEnabled: true});
                 layerNight.events.on({"layerInitialized":addLayer2});
               }
            function addLayer2()
              {
                 layerDay.isBaseLayer=true;
                 layerNight.isBaseLayer=true;
                 map.addLayers([layerDay,layerNight]);
                  map.setCenter(new SuperMap.LonLat(109.797986,39.628674), 6);
              }
            function changeMap() {
                if (bt == false) {
                     layerDay.setVisibility(false);
                     layerNight.setVisibility(true);
                     map.setBaseLayer(layerNight);
                     bt = true;
                  } else if (bt == true) {
                   layerDay.setVisibility(true);
                   layerNight.setVisibility(false);
                   map.setBaseLayer(layerDay);
                   bt= false;
               }
            }   

  

<div id="toolbar">
            <input id="btn" class="btn" type="button" value="底图切换" οnclick="changeMap()" />
        </div>
        <div id="map"></div> 


源代码下载链接

http://download.csdn.net/download/u012374381/9962755


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值