Листовка.Нарисовать кнопку редактирования и удаления не работает

#javascript #django #leaflet #leaflet.draw

#javascript #django #листовка #leaflet.draw

Вопрос:

Я использую Leaflet Draw, чтобы пользователи могли рисовать полилинию на карте для измерения сечений. Первый шаг — использовать листовку.Нарисуйте, чтобы пользователи могли рисовать линию. Листовка.Рисунок включает в себя кнопку удаления и редактирования. Однако эти кнопки не работают.

Я (повторно) использовал рабочий код из других проектов, чтобы создать элемент управления draw и передать ему FeatureGroup и редактируемые слои.

 // My draw Toolbar
var drawnItems = new L.FeatureGroup()
map.addLayer(drawnItems)
var drawControl = new L.Control.Draw({
  draw:{polygon: false,
        marker: false,
        circlemarker: false,
        rectangle: false,
        circle: false,
    },
  edit: {
    featureGroup: drawnItems
  }
});

map.addControl(drawControl);
map.on(L.Draw.Event.CREATED, function (e) {
   var layer = e.layer;
   map.addLayer(layer);
});
  

Похоже, я правильно связываю группу объектов, но по какой-то причине удаление и редактирование не работают:(

Ответ №1:

Вы добавляете нарисованные элементы в, map но они должны быть добавлены в слой, на который указывает edit.featureGroup , если вы хотите их отредактировать, т.е. drawnItems :

 map.on(L.Draw.Event.CREATED, function (e) {
    var layer = e.layer;
    drawnItems.addLayer(layer);
});
  

Вот демоhttps://jsfiddle.net/4g5u071r /