Leaflet 如何在使用工具栏时向传单几何图形图层添加特性

Leaflet 如何在使用工具栏时向传单几何图形图层添加特性,leaflet,leaflet-geoman,Leaflet,Leaflet Geoman,我需要添加自定义道具到我创建的多边形。为了在用户当前在工具栏中选择多边形并创建形状时执行此操作,在创建事件中,我将其转换为json,将其从地图中移除,将自定义道具添加到json并重新加载新创建的层 this.map.on('pm:create', e => { const id = getUID(); const leafId = e.layer._leaflet_id; const featureGroup = L.featureGroup().add

我需要添加自定义道具到我创建的多边形。为了在用户当前在工具栏中选择多边形并创建形状时执行此操作,在创建事件中,我将其转换为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();
    });

这是工作,但我觉得我没有做什么权利在这里。添加删除添加,一定有更好的方法。感谢您的帮助

您只需要向图层添加属性还是需要geojson属性?如果你需要一个普通属性,你可以在选项中添加你想要的:
map.pm.Draw.setPathOptions({custom:“prop”})并用
图层选项.custom
读取。如果您需要geojson中的结构,那么必须按照您所做的那样进行。一个简单的例子:查看控制台。谢谢你的评论,我还需要geojson道具。创建过程需要添加自定义道具并将其保存到远程,以便我可以重新加载、编辑和上载等。您只需要向图层添加属性,还是需要geojson属性?如果你需要一个普通属性,你可以在选项中添加你想要的:
map.pm.Draw.setPathOptions({custom:“prop”})并用
图层选项.custom
读取。如果您需要geojson中的结构,那么必须按照您所做的那样进行。一个简单的例子:查看控制台。谢谢你的评论,我还需要geojson道具。创建过程需要添加自定义道具,并将其保存到远程,以便我可以重新加载、编辑和上载等。。。