1

我已将 GeoMan 添加到我的传单地图中,只是想知道是否有一种方法可以将所有绘制的特征导出到 JSON 中。我仅将它用于开发,因此 JSON 可以进入 console.log

我只是在努力解决它。这是我迄今为止唯一的代码

map.pm.toggleGlobalDragMode();
map.pm.addControls({
  position: 'topright',
  editMode: true,



});

layer.pm.enable({ pinning: true, snappable: true })
4

1 回答 1

3

您可以使用以下代码:

function generateGeoJson(){
    var fg = L.featureGroup();    
    var layers = findLayers(map);
        layers.forEach(function(layer){
        fg.addLayer(layer);
         });
    console.log(fg.toGeoJSON());
}

function findLayers(map) {
    var layers = [];
    map.eachLayer(layer => {
      if (
        layer instanceof L.Polyline || //Don't worry about Polygon and Rectangle they are included in Polyline
        layer instanceof L.Marker ||
        layer instanceof L.Circle ||
        layer instanceof L.CircleMarker
      ) {
        layers.push(layer);
      }
    });

    // filter out layers that don't have the leaflet-geoman instance
    layers = layers.filter(layer => !!layer.pm);

    // filter out everything that's leaflet-geoman specific temporary stuff
    layers = layers.filter(layer => !layer._pmTempLayer);

    return layers;
  }

小提琴:https ://jsfiddle.net/falkedesign/054go8j2/

有关更多信息,请查看https://github.com/geoman-io/leaflet-geoman/issues/605

附加信息:

于 2020-07-14T05:52:10.720 回答