如何将存储为变量的图层添加到mapbox地图

时间:2015-09-02 16:19:04

标签: mapbox geojson

我正在使用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对象中调用它来重新添加图层到地图?

1 个答案:

答案 0 :(得分:0)

geoJsons[layer] = L.mapbox.featureLayer().addTo(map);

您在这里做的是覆盖使用新L.mapbox.featureLayer实例存储的图层对象。可以通过geoJsons[layer]访问存储的图层(假设layer变量包含字符串myLayersecondLayer),您可以通过简单地调用它的addTo方法来添加它这样:

geoJsons[layer].addTo(map);
//or 
map.addLayer(geoJsons[layer]);