1

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

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

4

2 回答 2

3

要获取地图的所有图层,您可以使用以下命令:

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());
于 2020-04-20T06:19:11.973 回答
0

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

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

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

现在您可以轻松地进行迭代yourCustomPolygonLayer

yourCustomPolygonLayer.eachLayer(layer => {
    console.info(layer._latlngs)
})
于 2021-12-05T18:33:38.607 回答