Как добавить свойства в слой leaflet-geoman при использовании панели инструментов - PullRequest
0 голосов
/ 30 марта 2020

Мне нужно добавить пользовательский реквизит в мои созданные polys. Для этого в настоящее время, когда пользователь выбирает на панели инструментов многоугольник и создает фигуру, в событии создания я преобразую его в json, удаляю его из карты, добавляю пользовательский реквизит в json и перезагружаю вновь созданный слой.

this.map.on('pm:create', e => {
      const id = getUID();
      const leafId = e.layer._leaflet_id;
      const featureGroup = L.featureGroup().addLayer(e.layer);

      this.map.eachLayer(layer => {
        if (layer._leaflet_id === leafId) {
          this.map.removeLayer(layer);
        }
      });

      const data = featureGroup.toGeoJSON();
      data.features[0].properties = {
        id,
        name: `Zone ${id}`
      };

      this.zoneService.add({id, data: JSON.stringify(data)})
        .pipe(
          switchMap((res) => this.zoneService.getAll().pipe(this.addToMap(this.map)))
        ).subscribe();
    });

Это работает, но я чувствую, что не делаю что-то прямо здесь. Добавление удаления Добавление должно быть лучшего способа. Спасибо за любую помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...