gpt4 book ai didi

draw - 如何使用 Leaflet 一次只允许编辑一个特征/多边形?

转载 作者:行者123 更新时间:2023-12-04 15:22:07 29 4
gpt4 key购买 nike

这几天我一直在努力解决我的问题。

我有一个来自 GeoJSON 的多边形层。我想用点击事件编辑我的多边形。当我点击一个多边形时,它变得可编辑,但我想要的是当我点击另一个多边形时,第一个多边形不再处于可编辑模式。

OpenLayers 但自然没有 Leaflet。

这是我的代码的摘录:

var editableLayers = new L.FeatureGroup().addTo(map);
var polygon_json;
$.ajax({
type: "GET",
dataType: "json",
url: "get_json.php",
success: function (response) {
meaux_json = L.geoJson(response, {
onEachFeature: onEachFeature
});
}
});

//edit the targeted polygon
function onEachFeature (feature, layer) {
editableLayers.addLayer(layer);
layer.on('click', function(e){
e.target.editing.enable();
});
}

一个人能够做到,但我很难理解如何:
https://github.com/dwilhelm89/Ethermap

最佳答案

我认为你很接近。在您的 onEachFeature 函数中,您应该存储被点击的功能,以便您可以在点击处理程序中启用/禁用编辑。

var selectedFeature = null;
//edit the targeted polygon
function onEachFeature (feature, layer) {
editableLayers.addLayer(layer);
layer.on('click', function(e){
if(selectedFeature)
selectedFeature.editing.disable();
selectedFeature = e.target;
e.target.editing.enable();
});
}

关于draw - 如何使用 Leaflet 一次只允许编辑一个特征/多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26932125/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com