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

时间:2016-11-07 11:09:53

标签: javascript leaflet shapefile esri

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

1 个答案:

答案 0 :(得分:1)