Leaflet 在MapBox中加载geoJson,以便使用传单进行编辑。Draw

Leaflet 在MapBox中加载geoJson,以便使用传单进行编辑。Draw,leaflet,geojson,mapbox,Leaflet,Geojson,Mapbox,我尝试在Mapbox中加载geoJson数据,并使用插件对其进行编辑 以下是一个例子: 单击“编辑”按钮时,出现错误: 未捕获的TypeError:无法读取未定义的属性“enable” 对象似乎是可编辑的,但我无法修改它 在mapboxdraw图层中添加geojson对象的正确方法是什么?我找到了解决方案: L.geoJson(geojson, { onEachFeature: function (feature, layer) { featureGroup.addLayer(lay

我尝试在Mapbox中加载geoJson数据,并使用插件对其进行编辑

以下是一个例子:

单击“编辑”按钮时,出现错误:

未捕获的TypeError:无法读取未定义的属性“enable”

对象似乎是可编辑的,但我无法修改它


在mapboxdraw图层中添加geojson对象的正确方法是什么?

我找到了解决方案:

L.geoJson(geojson, {
  onEachFeature: function (feature, layer) {
    featureGroup.addLayer(layer);
  }
});

下面是使用CoffeeScript的工作示例:

drawnItems = new L.FeatureGroup()
map.addLayer drawnItems

layers = L.geoJson geojson
layers.eachLayer (layer) => drawnItems.addLayer layer

为了让我的工作顺利进行,我必须做以下工作(除了上述答案):


这是针对geojson的,它是一种“功能”类型。

我实际上也有同样的问题。不过我用的是地图盒。我试着把它添加到我的代码中,但似乎没有效果。如果你能看一看,我将不胜感激。它似乎将我的GeoJSON添加到层中,但我仍然得到与您相同的错误。事实上,除了我的圆没有显示为圆之外,这似乎起到了作用。这肯定会帮助我前进!谢谢
drawnItems = new L.FeatureGroup()
map.addLayer drawnItems

layers = L.geoJson geojson
layers.eachLayer (layer) => drawnItems.addLayer layer
L.geoJson(geojson, {
  onEachFeature: function (feature, layer) {
    if (layer.getLayers) {
      layer.getLayers().forEach(function (l) {
        featureGroup.addLayer(l);
      })
    } else {
      featureGroup.addLayer(layer);
    }
  }
});