下面是实现效果截图:
GIS图层管理器限制图层显示数量
GIS图层管理器限制图层显示数量
由图可见图层管理器中可操作显示的只有一个图层,实现步骤如下:

步骤一:新增图层管理器控件

//创建图层管理器
var layerSwitcher = new SuperMap.Control.LayerSwitcher();
map.addControl(layerSwitcher);//添加控件到地图

步骤二:注册一个地图的监听事件 changelayer名称为listener(名称不固定)

GIS图层管理器限制图层显示数量

可在SuperMap iClient for javaScript Help 的API中的地图类SuperMap.Map找到
代码实现如下:

//图层信息发生改变时的监听事件
 map.events.register("changelayer", undefined, listener);      

步骤三:书写方法listener代码如下:

 //图层管理器限制显示图层量
        function listener(data) {
            var name = data.layer.name;//获取改变图层的名称
            var visibility = data.layer.visibility;//获取当前改变图层是显示的还是隐藏的
            var allMapStorey = ["医院分布图", "社康分布图", "药店分布图", "病例分布散点图", "病例分布热力图", "病原基因分布图"];//限制显示的图层名称的数组
            if (visibility == true) {//当前改变图层为显示的时候
                for (var i = 0; i < allMapStorey.length; i++) {//循环图层名称数组
                    if (name != allMapStorey[i]) {//当前图层名称不等于当前数组图层名称时
                        var mapStorey = map.getLayersByName(allMapStorey[i]);//利用当前数组图层名称找到当前数组名称图层
                        mapStorey[0].setVisibility(false);//隐藏当前数组名称图层
                    }
                }
            } 
        }

其中map.getLayersByName(allMapStorey[i])解释为:
GIS图层管理器限制图层显示数量
mapStorey[0].setVisibility(false);解释为:
GIS图层管理器限制图层显示数量

相关文章:

  • 2021-07-10
  • 2022-12-23
  • 2021-11-21
  • 2021-10-27
  • 2021-07-21
  • 2022-12-23
猜你喜欢
  • 2022-01-08
  • 2021-10-05
  • 2021-07-12
  • 2021-12-28
  • 2022-12-23
相关资源
相似解决方案