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

标签 javascript leaflet shapefile esri

我正在使用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/

相关文章:

javascript - 对象文字属性值简写

javascript - 如何使用javascript将 "screenshot"传单映射到base64?

javascript - 有没有办法在绘制之前获取标签的宽度和高度?

javascript - 为多个标签提供相同的 ID 是一种好习惯吗?

javascript - 选择一个单选按钮以显示弹出窗口并保持选中状态

javascript - jquery.Lazy 不加载滚动上的所有图像

python - 使用 shapefile 或 geopandas 绘制蒙面南极洲

r - 在 R ggplot 中将多边形对齐在一起

python - 将 Pandas Dataframe 写入 DBF 文件?

c# - 在页面加载时调用 Javascript