【问题标题】:How to add Layer stored as variable to mapbox map如何将存储为变量的图层添加到 mapbox 地图
【发布时间】:2015-09-03 00:36:33
【问题描述】:

我正在使用 mapbox.js,我正在尝试重置已删除但存储在变量中的图层。我创建了一个地图对象并将其附加到一个 div 并将其存储为变量 ma​​p。我像这样初始化图层

var myLayer = L.mapbox.featureLayer().addTo(map);
var secondLayer = L.mapbox.featureLayer().addTo(map);

然后我将它们存储在一个 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 对象中调用图层来将图层重新添加到地图中?

【问题讨论】:

    标签: mapbox geojson


    【解决方案1】:
    geoJsons[layer] = L.mapbox.featureLayer().addTo(map);
    

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

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

    【讨论】:

    • 谢谢!这帮助很大!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多