【问题标题】:leaflet.pm edit mode get new coordinates within shapeLeaflet.pm 编辑模式获取形状内的新坐标
【发布时间】:2019-04-07 13:57:57
【问题描述】:

我正在使用传单 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))
});

任何想法如何在编辑形状时获得更新坐标?

【问题讨论】:

    标签: javascript leaflet leaflet-geoman leaflet.pm


    【解决方案1】:

    我是 Leaflet.pm 的维护者 Sumit

    您可以做的是:监听正在创建的事件并将编辑事件添加到新形状中:

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

    当然,每当您向地图添加图层时,您也可以将pm:edit 事件应用于其引用。 此外,当您创建图层或向地图添加图层时,您可以简单地存储参考。编辑完成后,您只需检查参考的坐标(就像您通常在传单中所做的那样)。如果您只需要知道何时完成编辑,请使用pm:edit 事件来捕捉图层何时被编辑。

    希望对你有所帮助?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      • 2019-05-11
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      相关资源
      最近更新 更多