首页 > 解决方案 > 为什么leaflet.js 在map.addlayer(layer) 上添加了不止一层?

问题描述

我的传单有问题。我尝试只添加一层,但传单添加了不止一层。

这是代码:

var region_layer = L.geoJSON(layer);

// Count layers
console.log("Before adding a layer")
let i = 0;
mymap.eachLayer(function(){ i += 1; });
console.log('Map has', i, 'layers.');

// Add one layer
mymap.addLayer(region_layer);

// Count layers again
console.log("After adding a layer")
let z = 0;
mymap.eachLayer(function(){ z += 1; });
console.log('Map has', z, 'layers.');

这是控制台中的输出:

Before adding a layer
Map has 0 layers.
After adding a layer
Map has 3 layers.

这是第一个变量的方面layer

在此处输入图像描述

为什么传单添加了三层而不是一层?

标签: javascriptleafletlayer

解决方案


Layer在这种情况下的三个实例是:

  • 的一个实例L.GeoJSON,它解析您的 geojson 数据并生成所需的矢量图层实例,在您的特定情况下,这只是......
  • 的一个实例L.Polygon,负责解释特定多边形的坐标和样式,并将该信息发送到...
  • 的一个实例,取决于您的浏览器和地图实例的选项L.Renderer,它可以是 aL.SVG或 a 。渲染器负责在需要时实际绘制可见的东西(通过在 DOM 中生成元素,或者分别将像素推送到 a )。L.Canvasprefercanvas<svg><canvas>

推荐阅读