我在leaflet.shapefile使用Leaflet JS插件,我正在尝试将esri形状/多边形更改为普通标记图标,具体取决于某个缩放级别
该插件允许我将zipfile上传到我们的网络服务器上,然后由插件处理并作为图层添加到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);