如何将存储为变量的图层添加到 mapbox 地图
How to add Layer stored as variable to mapbox map
我正在使用 mapbox.js,我正在尝试重置我删除但存储在变量中的图层。我创建了一个地图对象并将其附加到 div 并将其存储为变量 map。我像这样初始化图层
var myLayer = L.mapbox.featureLayer().addTo(地图);<br>
var secondLayer = L.mapbox.featureLayer().addTo(地图);
然后我将它们存储在一个 json 对象中
var geoJsons = {"myLayer": myLayer,
"secondLayer": secondLayer
};
在下面的函数中,我有一个 onclick 函数,它利用单击对象的数据属性指向 json 对象中的特定图层。
var layer = $(this).data('layer');
map.removeLayer(geoJsons[layer]);
然后我尝试通过点击不同的按钮重新添加它
geoJsons[layer] = L.mapbox.featureLayer().addTo(map);
最后一点不起作用。我的问题是,有没有办法通过从这个 json 对象中调用它来将图层重新添加到地图?
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]);
我正在使用 mapbox.js,我正在尝试重置我删除但存储在变量中的图层。我创建了一个地图对象并将其附加到 div 并将其存储为变量 map。我像这样初始化图层
var myLayer = L.mapbox.featureLayer().addTo(地图);<br>
var secondLayer = L.mapbox.featureLayer().addTo(地图);
然后我将它们存储在一个 json 对象中
var geoJsons = {"myLayer": myLayer,
"secondLayer": secondLayer
};
在下面的函数中,我有一个 onclick 函数,它利用单击对象的数据属性指向 json 对象中的特定图层。
var layer = $(this).data('layer');
map.removeLayer(geoJsons[layer]);
然后我尝试通过点击不同的按钮重新添加它
geoJsons[layer] = L.mapbox.featureLayer().addTo(map);
最后一点不起作用。我的问题是,有没有办法通过从这个 json 对象中调用它来将图层重新添加到地图?
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]);