Как установить слой как отредактированный для вызова draw: отредактировано - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь создать маркеры на карте вручную с помощью Leaflet.Draw. Когда я добавляю маркер с помощью Leaflet.Draw, в обработчике draw: create я хочу открыть всплывающее окно, в котором создается форма.

Далеко не все работает, и я могу обработать и сохранить создание этого всплывающего окна и маркера в базе данных.

Твист здесь, когда я хочу отредактировать его:

Я нажимаю на кнопку редактирования, маркер становится редактируемым, я нажимаю на него, чтобы открыть всплывающее окно с формой. Я изменяю сообщение во всплывающем окне, нажимаю кнопку «Сохранить» на панели инструментов «Редактировать», которая вызывает обработчик draw: edited.

К сожалению, мой маркер не сдвинулся и поэтому не считается отредактированным слоем.

Как можно установить этот маркер как "Отредактированный", чтобы он считался отредактированным обработчиком draw: edited, даже если он не перемещался?

На самом деле, как работают эти обработчики?

1 Ответ

0 голосов
/ 16 ноября 2018

Глядя на источник Leaflet.Draw, он перехватывает событие dragend на таком маркере, как этот

_onDragEnd: function (e) {
        var layer = e.target;
        layer.edited = true;
        this._map.fire(L.Draw.Event.EDITMOVE, {layer: layer});
    }    

Вы можете установить свойство layer.edited (где layer - ваш маркер) в вашем коде.

...