如何使用传单一次仅编辑一个要素/面


我已经几天了

,我一直在努力解决我的问题。

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

OpenLayers,但自然不会传单。

这是我的代码摘录:

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();
     });
}

相关内容

最新更新