我正在使用Leaflet JS来构建我的地图,但是我在选择图层时遇到了一些问题。
我的目标是使我的地图适合多边形。 Leaflet为地图上的每个元素生成Leaflet ID,但这些ID是随机的。所以我想创建一个数组,将每个Leaflet ID与已知的多边形ID相链接。
这个概念来自How to interact with leaflet marker layer from outside the map?,但我不确定如何实现它。
对象'map._layers'存储所有元素,包括每个多边形的ID。所以我按如下方式循环:
var idstore = [];
for (var x in map._layers) {
// here idstore[x['polyid']] = x;
}
现在我可以使用该数组将我的多边形ID与Leaflet ID相关联。结果数组应如下所示:
array('polygonid'=>'leafletid','155447'=>'478','748745' => 479);
我的问题是循环不能正常工作。我只能看到前两个实际覆盖的记录(地图图块)。但元素肯定在那个对象中。
我究竟做错了什么?
一个好的第一步是查看Leaflet reference documentation并使用记录的.eachLayer
函数而不是私有变量的for循环。
var idstore = [];
map.eachLayer(function(layer){
// ...
});