javascript - 为什么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
:
为什么传单添加了三层而不是一层?
解决方案
Layer
在这种情况下的三个实例是:
- 的一个实例
L.GeoJSON
,它解析您的 geojson 数据并生成所需的矢量图层实例,在您的特定情况下,这只是...... - 的一个实例
L.Polygon
,负责解释特定多边形的坐标和样式,并将该信息发送到... - 的一个实例,取决于您的浏览器和地图实例的选项
L.Renderer
,它可以是 aL.SVG
或 a 。渲染器负责在需要时实际绘制可见的东西(通过在 DOM 中生成元素,或者分别将像素推送到 a )。L.Canvas
prefercanvas
<svg>
<canvas>
推荐阅读
- javascript - 对来自测试之外的文件的页面标题进行断言
- c# - 在 ASP.Net Core 中创建多对多关系视图?
- javascript - 更新对象数组中的单个项目
- mongodb - 调用mongo存储库的保存方法时未调用Mongo Date Custom Converter
- csv - Neo4j 导入 CSV 文件(neo.TransientError.General.OutOfMemoryError)
- java - Jackson 可以解析不是 ISO-8601 的日期时间值吗?
- java - 使用OkHttp时Webapp卸载内存泄漏,是否误报?
- mariadb - 使用机器的外部 IP 地址时无法连接到数据库
- java - 我需要从线程返回一些东西
- python-3.x - 如何找到索引为时间戳的每小时的多个斜率?