Листовка JS GeoMan в JSON данные - PullRequest
0 голосов
/ 14 июля 2020

Я добавил GeoMan к своей карте-буклету и просто хотел бы знать, есть ли способ экспортировать все нарисованные элементы в JSON. Я использую его только для разработки, поэтому JSON может go в console.log

Я просто изо всех сил пытаюсь это решить. Это единственный код, который у меня есть

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



});

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

1 Ответ

1 голос
/ 14 июля 2020

Вы можете использовать этот код:

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;
  }

Fiddle: https://jsfiddle.net/falkedesign/054go8j2/

Для получения дополнительной информации посмотрите https://github.com/geoman-io/leaflet-geoman/issues/605

Дополнительная информация:

  • В следующей Realease будет функция для получения всех слоев.
  • закрепление работает только с pro версия
  • Geoman Пример: https://jsfiddle.net/o1dwu2vg/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...