遍历传单地图图层

use*_*165 2 javascript maps object leaflet

我正在使用Leaflet JS来构建地图,但是在选择图层时遇到了一些问题。

我的目标是使地图适合多边形。Leaflet为地图上的每个元素生成一个Leaflet ID,但是这些ID是随机的。因此,我想创建一个将每个Leaflet ID与已知的多边形ID链接起来的数组。

这个概念来自这里。如何与地图外部的传单标记层互动?但我不确定如何实施。

对象“ map._layers”存储所有元素,包括每个多边形的ID。所以我如下遍历它:

var idstore = [];   
for (var x in map._layers) {
  // here idstore[x['polyid']] = x;
}
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用该数组将多边形ID与传单ID关联。结果数组应如下所示:

array('polygonid'=>'leafletid','155447'=>'478','748745' => 479);
Run Code Online (Sandbox Code Playgroud)

我的问题是循环无法正常工作。我只能看到即将出现的前2条记录实际上是叠加层(地图图块)。元素肯定在那个对象中。

我究竟做错了什么?

tmc*_*mcw 5

一个很好的第一步是浏览Leaflet参考文档,并使用文档.eachLayer功能而不是对私有变量进行for循环。

var idstore = [];
map.eachLayer(function(layer){
    // ...
});
Run Code Online (Sandbox Code Playgroud)

  • 我就是这么想的。我扩展了自己的“eachLayer”,并使其在“return false”时中断,就像 jQuery 的“.each”一样。谢谢。 (2认同)