如何管理图层的显示顺序

时间:2019-09-02 21:40:22

标签: openlayers-5

groupLayerMarker始终位于其他图层下,因此用户看不到标记

  1. 地图收藏集:[]
  2. 我获取数据并创建groupLayerMarker groupLayerMarker:[layerMarker,layerMarker,...] 集合:[groupLayerMarker],
  3. 加载layerOsm
    集合:[groupLayerMarker,layerOsm],
  4. 使用属性layer =“”加载地图layerWMS 集合:[groupLayerMarker,layerOsm],(layer =“”,因此集合中没有layerWMS。
  5. 用户从layerWMS(layer =“ layerName_1”)选择带有layerName_1的复选框
    集合:[groupLayerMarker,layerOsm,layerWms],

    addAllMarkersLayer() {
    const markersGroup = new LayerGroup({
        layers: [],
        name: 'marker',
        id: 4
    });
    this.map.addLayer(markersGroup);
    markersGroup.setZIndex(markersGroup.get('id'));
    

    }

    addLayers(mLayersComponent: QueryList < MLayersComponent > ) {
    const results = first < any > (mLayersComponent.toArray());
    forEach(results, result => {
        if (result && result.length > 0) {
            result.forEach(map => {
                map.layer$.subscribe(newLayer => {
                    if (newLayer) {
                        this.removeOldLayers(newLayer);
                        this.map.addLayer(newLayer);
                    }
                });
            });
        }
    });
    

    }

    removeOldLayers(newLayer) {
    const newLayerName = newLayer.get('name');
    const allLayers = this.map.getLayers();
    allLayers.forEach(existingLayer => {
        if (existingLayer && existingLayer.get('name') === newLayerName) {
            this.map.removeLayer(existingLayer);
        }
    });
    

    }

我试图添加zIndex将groupLayerMarker移到顶部 集合:[layerOsm,layerWms,groupLayerMarker]。

将来我需要添加另一个图层,例如layerRoads 订单应为: 集合:[layerOsm,layerWms,layerWMTS,groupLayerRoads,groupLayerMarker]

问题:如何管理图层?

0 个答案:

没有答案