Как удалить функции из уровня данных? - PullRequest
0 голосов
/ 08 октября 2019

Я использую gmap для отображения полигонов.

После запуска моего компонента отображается карта с полигоном, построенным из хранилища GEOJSON в базе данных. У меня нет проблем с этим. Каждый нарисованный многоугольник показан сверху на том, который идет из базы данных. Я разрешаю Менеджеру рисования и пользователям рисовать полигоны.

Итак, для этого у меня есть:

drawingManager.setMap(this.map);
    google.maps.event.addListener(drawingManager, 'overlaycomplete', event => {
      this.map.data.add(new google.maps.Data.Feature({
        geometry: new google.maps.Data.Polygon([event.overlay.getPath().getArray()])
      }));
      this.map.data.toGeoJson((obj) => {
      this.GEOJson = obj;
      console.log(JSON.stringify(this.GEOJson));
      });
    });

Я добавляю каждый новый многоугольник в слой данных карты и соответствующим образом изменяю свой GEOJson. Для удаления полигонов я написал функцию:

deletePolygon() {
  this.map.data.forEach(feature => {
  this.map.data.remove(feature);
  });
  this.GEOJson.features = [];
  console.log(JSON.stringify(this.GEOJson)); //GEOJson features are deleted.
   }

Моя проблема в том, что нарисованные полигоны по-прежнему отображаются. Тот, что поступил из базы данных, является единственным, который удален с карты.

Любая идея или реко будет очень ценной здесь.

С наилучшими пожеланиями

...