如何获取Leaflet-geoman添加的所有特性的geojson

How to get the geojson of all features added by Leaflet-geoman

我正在使用 Leaflet-geoman 在地图中绘制圆形和多边形。

如何获取地图中绘制的所有要素的 geojson?

要获取地图的所有层,您可以使用此方法:

var fg = L.featureGroup();
map.eachLayer((layer)=>{
   if(layer instanceof L.Path || layer instanceof L.Marker){
    fg.addLayer(layer);
  }
});
console.log(fg.toGeoJSON());

如果您只想要插件中使用的层:

var fg = L.featureGroup();
map.eachLayer((layer)=>{
   if((layer instanceof L.Path || layer instanceof L.Marker) && layer.pm){
    fg.addLayer(layer);
  }
});
console.log(fg.toGeoJSON());

我建议使用自定义传单 featureGroup,它可以提供给 geoman。假设您正在绘制多边形

const yourCustomPolygonLayer = L.featureGroup().addTo(map);

map.pm.setGlobalOptions({
    layerGroup: yourCustomPolygonLayer
});

现在您可以轻松地遍历 yourCustomPolygonLayer

yourCustomPolygonLayer.eachLayer(layer => {
    console.info(layer._latlngs)
})