我正在使用leaflet.shapefile插件 Leaflet JS ,我正在尝试根据特定的缩放级别将 esri 形状/多边形更改为普通标记图标
该插件允许我将 zip 文件上传到我们的网络服务器上,然后由插件处理该文件并作为层添加到 Leaflet JS 中
var properties = new L.Shapefile('data/Test.zip', { style: propertyStyle, onEachFeature: propertyOnEachFeature })
我想要实现的目标:当用户放大多边形形状时可见,但是当用户放大到缩放级别 10 以上时,它应该显示一个标记,因为 esri 形状/多边形非常小并且几乎不可见.
放大和缩小部分很容易完成:
map.on('zoomend', function() {
if (map.getZoom() <10){
if (map.hasLayer(properties)) {
map.removeLayer(properties);
} else {
console.log("no property layer active");
}
}
if (map.getZoom() >= 10){
if (map.hasLayer(properties)){
console.log("property layer already added");
} else {
map.addLayer(properties);
}
}
}
但是我不知道如何将 L.ShapeFile 更改为 L.Marker 或正确的方法是什么。
感谢您的帮助和建议。
更新
“IvanSanchez”为我提供的答案正是我正在寻找的。 有了这个简单的插件'Leaflet.Deflate ' 我能够简单地将任何形状、多边形、圆形或直线转换为标记,所需要做的就是包含插件 js 和一个衬垫:
L.Deflate({minSize: 20}).addTo(map);
最佳答案
关于javascript - Leaflet JS - 将 esri 形状更改为特定缩放级别的标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40463746/