我有一个VectorLayer,其中包含用户生成的一些点,配置方式如下:
var sourcePoint = new VectorSource();
var vectorPoint = new VectorLayer({
source: sourcePoint,
style: new Style({
fill: new Fill({
color: 'rgba(0, 0, 0, 0.2)'
}),
image: new CircleStyle({
radius: 7,
fill: new Fill({
color: '#32ff32'
})
})
}),
zIndex: 99,
name: "vectorPoint",
visible: false
});
当地图页面打开时,它会加载用户数据并填充在源点中。问题在于,此矢量层必须从设置为假的可见度开始,但即使visible: false
它也会开始打开。
我还尝试使用setVisible()
函数切换此图层可见性,该功能也不适用于此图层。奇怪的是,其他 VectorLayers 按预期工作正常,从可见性设置为关闭并切换开始。
有什么理由会发生这种情况吗?我找不到有类似问题的人。
更新 17/02/2020
如何将图层添加到地图:
this.map = new Map({
layers: [tileBackground, vectorPoint],
target: document.getElementById('map'),
view: view
});
我正在使用的基本切换图层功能
randomFunction(status, layerName) { // Firing as randomFunction(true, 'vectorPoint')
this.map.getLayers().forEach((layer) => {
if (layer.get('name') == layerName && layer.get('name') != undefined) {
if (status == true) {
layer.setVisible(true);
} else {
layer.setVisible(false);
}
}
});
}
我可以看到该图层是在if (layer.get('name') == layerName...
之后建立
好的,我设法找到了问题。在这种情况下,错误是我为使用设备的GPS创建的点提供了其他矢量图层。加载点时,它们填充了两个图层,因此当我尝试关闭主点图层时,另一个图层仍处于活动状态,误导我相信错误与我使用的方法有关。很抱歉给您带来麻烦。