javascript - 有没有办法在传单 map 上编辑现有的geojson数据

标签 javascript reactjs leaflet react-leaflet leaflet.draw

我想为传单 map 上当前显示的 geojson 多边形图层提供编辑支持。当按下编辑按钮时,它会给我

Uncaught TypeError: Cannot read property 'lat' of null

这是我的代码:

const leafletGeoJSON = new L.GeoJSON(arr, {
  style(feature: any) {
    const temp = getColor(feature.properties.id);
    return {
      color: temp,
      fillColor: temp
    };
  },
  onEachFeature(feature, layer) {
    layer.bindTooltip(feature.properties.description);
  }
});

leafletGeoJSON.eachLayer(layer => {
  reactRef.leafletElement.addLayer(layer);
});

我用的是leaflet-draw

最佳答案

我 我终于找到了根本原因,因为我们在 DB 上使用 Multipolyon 我只是按原样渲染但实际上传单绘制不支持 MultiPolygon 我将数据结构更改为 Polygon 然后现在一切正常。

这里的关键是 featureGroup 选项。这告诉插件哪个 FeatureGroup 包含应该可编辑的图层。 featureGroup 可以包含 0 个或多个几何类型为 Point、LineString 和 Polygon 的要素。 Leaflet.draw 不适用于多几何特征,例如 MultiPoint、MultiLineString、MultiPolygon 或 GeometryCollection。如果您需要向绘图插件添加多几何特征,请将它们转换为非多几何特征(点、线串或多边形)的 FeatureCollection。

https://leaflet.github.io/Leaflet.draw/docs/leaflet-draw-latest.html#l-draw-feature

关于javascript - 有没有办法在传单 map 上编辑现有的geojson数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55951793/

相关文章:

java - Leaflet 和 Leaflet-search : resetStyle does not work to clear highlights on a map, 似乎是 "not a function"

javascript - 我怎样才能让我的 slider 控件保持在相同的位置

reactjs - 是否可以在 React 片段上使用 Enzyme 的快照?

reactjs - Typescript 高阶组件作为装饰器

leaflet - 添加标记/更新(如果存在)

javascript - 如何使 map 超出图层边界?

javascript - 如何从原始元素中删除 Bootstrap 标签输入事件

javascript - HTML/javascript 客户端图像压缩看起来是一个合理且万无一失的计划吗?

javascript - jQuery 点击功能在页面加载时启动

javascript - 更新 redux 中的多个值