Leaflet JS - 在特定缩放级别将 esri 形状更改为标记
Leaflet JS - changing esri shape into marker on certain zoom level
我正在使用 leaflet.shapefile plugin with Leaflet JS,我正在尝试根据特定的缩放级别将 esri shape/polygon 更改为普通标记图标
该插件允许我将一个 zip 文件上传到我们的网络服务器,然后由插件处理并作为一个层添加到 Leaflet JS 中
var properties = new L.Shapefile('data/Test.zip', { style: propertyStyle, onEachFeature: propertyOnEachFeature })
我想要实现的目标:当用户放大多边形形状时可见,但是当用户放大到 zoomlevel 10 以上时,它应该显示一个标记,因为 esri shape/polygons 非常很小,几乎看不见。
放大和缩小部分很容易完成:
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.shapefile plugin with Leaflet JS,我正在尝试根据特定的缩放级别将 esri shape/polygon 更改为普通标记图标
该插件允许我将一个 zip 文件上传到我们的网络服务器,然后由插件处理并作为一个层添加到 Leaflet JS 中
var properties = new L.Shapefile('data/Test.zip', { style: propertyStyle, onEachFeature: propertyOnEachFeature })
我想要实现的目标:当用户放大多边形形状时可见,但是当用户放大到 zoomlevel 10 以上时,它应该显示一个标记,因为 esri shape/polygons 非常很小,几乎看不见。
放大和缩小部分很容易完成:
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);