这几天我一直在努力解决我的问题。
我有一个来自 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 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();
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)