Мне нужно добавить пользовательский реквизит в мои созданные 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();
});
Это работает, но я чувствую, что не делаю что-то прямо здесь. Добавление удаления Добавление должно быть лучшего способа. Спасибо за любую помощь