我正在使用mapbox.js,我正在尝试重置我删除的图层,但存储在变量中。我创建了一个地图对象并将其附加到div并将其存储为变量 map 。我像这样初始化图层
var myLayer = L.mapbox.featureLayer().addTo(map);
var secondLayer = L.mapbox.featureLayer().addTo(map);
然后我将它们存储在json对象中
var geoJsons = {"myLayer": myLayer,
"secondLayer": secondLayer
};
在下面的函数中,我有一个onclick函数,它使用单击的对象的data属性来指向json对象中的特定图层。
var layer = $(this).data('layer');
map.removeLayer(geoJsons[layer]);
然后我尝试在点击其他按钮时重新添加
geoJsons[layer] = L.mapbox.featureLayer().addTo(map);
最后一点不起作用。我的问题是,有没有办法通过从这个json对象中调用它来重新添加图层到地图?
答案 0 :(得分:0)
geoJsons[layer] = L.mapbox.featureLayer().addTo(map);
您在这里做的是覆盖使用新L.mapbox.featureLayer
实例存储的图层对象。可以通过geoJsons[layer]
访问存储的图层(假设layer
变量包含字符串myLayer
或secondLayer
),您可以通过简单地调用它的addTo
方法来添加它这样:
geoJsons[layer].addTo(map);
//or
map.addLayer(geoJsons[layer]);