为什么leaflet.js在map.addlayer(layer)上加了不止一层?
Why leaflet.js adds more than one layer on 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
:
为什么 leaflet 添加了 3 层而不是一层?
在这种情况下 Layer
的三个实例是:
L.GeoJSON
的一个实例,它解析您的 geojson 数据并生成所需的矢量图层实例,在您的特定情况下,它只是...
L.Polygon
的实例,负责解释特定多边形的坐标和样式,并将该信息发送到...
L.Renderer
, which will be either a L.SVG
or a L.Canvas
depending on your browser and the prefercanvas
option of your map instance 的实例。渲染器负责在需要时实际绘制可见的东西(分别通过在 DOM 中生成 <svg>
元素或将像素推送到 <canvas>
)。
传单有问题。我尝试只添加一层,但传单添加了不止一层。
代码如下:
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
:
为什么 leaflet 添加了 3 层而不是一层?
在这种情况下 Layer
的三个实例是:
L.GeoJSON
的一个实例,它解析您的 geojson 数据并生成所需的矢量图层实例,在您的特定情况下,它只是...L.Polygon
的实例,负责解释特定多边形的坐标和样式,并将该信息发送到...L.Renderer
, which will be either aL.SVG
or aL.Canvas
depending on your browser and theprefercanvas
option of your map instance 的实例。渲染器负责在需要时实际绘制可见的东西(分别通过在 DOM 中生成<svg>
元素或将像素推送到<canvas>
)。