arcgis js api 4.x设置地图服务里的子图层的显示隐藏

        前言:在gis api3.x系列的时候,可以通过 setVisibleLayers 方法设置动态地图服务子图层的显示隐藏。最近组里的人要换成

4.x版本的api,然而并没找到对应3.x版本的setVisibleLayers的方法,但是找到了 visible 属性(如下图),但是该属性并不是控

arcgis js api 4.x设置地图服务里的子图层的显示隐藏_第1张图片

制地图服务子图层显隐,而是整个地图服务的显隐。在接着找MapImageLayer(对应3.x里的ArcGISDynamicMapServiceLayer)到

allSublayers属性,Sublayer类也有visible属性,于是就可以间接地控制图层显隐了。。。

 

1、发布的地图服务

arcgis js api 4.x设置地图服务里的子图层的显示隐藏_第2张图片

2、先显示所有子图层,3秒后把HeNan子图层隐藏 

var map = new Map();
var lyr = new MapImageLayer({   //下面的url是动态地图服务的
   url:"http://localhost:6080/arcgis/rest/services//ShandongHenan/MapServer"
});
map.add(lyr);
var view = new MapView({
    container: "viewDiv",
    map: map,
});
view.when(function () {
    console.log(lyr.allSublayers)   //allSublayers并不是数组,其items属性是数组
    setTimeout(function () {        //items属性的顺序和 发布的地图服务的子图层顺序相反。。。
        lyr.allSublayers.items[0].visible=false;
    },3000)
})

 

你可能感兴趣的:(ArcGIS,JS,API,4.x,控制子图层显示隐藏)