Режим редактирования leaflet.pm для получения новых координат внутри фигуры - PullRequest
0 голосов
/ 03 ноября 2018

Я использую буклет js для построения карты с некоторыми булавками https://leafletjs.com/, и я также разрешаю рисовать фигуры, например. полигоны, круги и т. д. Я также редактирую их, используя плагин leaflet.pm https://github.com/codeofsumit/leaflet.pm.

Здесь есть события, но ни одно из событий не дает возврата корникатам новой позиции после отключения режима редактирования или после завершения перетаскивания. Это событие, к которому я подключился;

map.on('pm:globaleditmodetoggled', function(e) {
    console.log(e);
});

Где это событие дает мне то, что требуется;

map.on('pm:create', function(e) {
    let obj = {
        type: e.shape,
        coordinates: e.layer.editing.latlngs[0][0]
    };

    $('#cords').val(JSON.stringify(obj))
});

Есть идеи, как при редактировании фигуры получить координаты обновления?

1 Ответ

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

Я Sumit, сопровождающий leaflet.pm

Что вы можете сделать: прослушать создаваемое событие и добавить событие редактирования к новым фигурам:

map.on('pm:create',(e) {
  e.layer.on('pm:edit', ({ layer }) => {
    // layer has been edited
    console.log(layer.toGeoJSON());
  })
});

Конечно, всякий раз, когда вы добавляете слой на карту, вы также можете применить событие pm:edit к его ссылке. Кроме того, когда вы создаете слои или добавляете слои на карту, вы можете просто сохранить ссылку. Когда редактирование завершено, вы можете просто проверить ссылку на ее координаты (как обычно в листовке). Если вам просто нужно знать, когда редактирование завершено, используйте событие pm:edit, чтобы перехватывать каждый раз, когда слой редактировался.

Надеюсь, это поможет 101

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...