繁体   English   中英

Leaflet JS-在特定缩放级别将esri形状更改为标记

[英]Leaflet JS - changing esri shape into marker on certain zoom level

我正在将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);

请参阅Leaflet.Deflate插件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM