Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将存储为变量的图层添加到mapbox地图_Mapbox_Geojson - Fatal编程技术网

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

如何将存储为变量的图层添加到mapbox地图,mapbox,geojson,Mapbox,Geojson,我正在使用mapbox.js,我正在尝试重置一个已删除但存储在变量中的层。我已经创建了一个map对象并将其附加到一个div,并将其存储为变量map。我像这样初始化层 var myLayer=L.mapbox.featureLayer.addTomap; var secondLayer=L.mapbox.featureLayer.addTomap 然后我将它们存储在json对象中 var geoJsons = {"myLayer": myLayer,

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

var myLayer=L.mapbox.featureLayer.addTomap; var secondLayer=L.mapbox.featureLayer.addTomap

然后我将它们存储在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的新实例存储的layerobject。存储的层可以通过geoJsons[layer]访问,假设layer变量包含字符串myLayer或secondLayer,您只需调用它的addTo方法即可添加它,如下所示:

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

非常感谢。这帮了大忙!