首页 文章

如何使用Leaflet一次只能编辑一个特征/多边形?

提问于
浏览
5

这是我试图解决问题的日子 .

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

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

1 回答

  • 5

    我觉得你很亲密在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();
         });
    }
    

相关问题