如何区分 OpenLayers 中的两个不同矢量图层?
How can I distinguish two different vector layers in OpenLayers?
在我的设计中有一个复选框,它使用以下代码删除所有矢量图层。
// When I check that checkbox:
var layers = map.getLayersByClass('OpenLayers.Layer.Vector');
for(var j=0; j < layer_vectors.length; j++){
map.removeLayer(layer_vectors[j]);
}
效果很好。我需要用这种方式删除所有内容,因为有许多包含多边形的矢量图层。
如果我有两组不同的矢量图层怎么办?如何通过该复选框仅删除其中一个?
我们可以像在普通 html 元素中那样设置类似 "data-layertype" 的属性吗?使用getLayersByClass获取两个不同的层后如何区分它们?
谢谢
好的,我解决了这个问题。每次创建矢量图层时,我都会为整个组设置相同的名称,当我删除图层时,我会用它们的“.name”属性来区分它们。
for(var j=0; j < layer_vectors.length; j++){
if(layer_vectors[j].name == "group_name"){
map.removeLayer(layer_vectors[j]);
}
}
在我的设计中有一个复选框,它使用以下代码删除所有矢量图层。
// When I check that checkbox:
var layers = map.getLayersByClass('OpenLayers.Layer.Vector');
for(var j=0; j < layer_vectors.length; j++){
map.removeLayer(layer_vectors[j]);
}
效果很好。我需要用这种方式删除所有内容,因为有许多包含多边形的矢量图层。
如果我有两组不同的矢量图层怎么办?如何通过该复选框仅删除其中一个?
我们可以像在普通 html 元素中那样设置类似 "data-layertype" 的属性吗?使用getLayersByClass获取两个不同的层后如何区分它们?
谢谢
好的,我解决了这个问题。每次创建矢量图层时,我都会为整个组设置相同的名称,当我删除图层时,我会用它们的“.name”属性来区分它们。
for(var j=0; j < layer_vectors.length; j++){
if(layer_vectors[j].name == "group_name"){
map.removeLayer(layer_vectors[j]);
}
}