我尝试在 Mapbox 中加载 geoJson 数据,并使用插件Leaflet.Draw
进行编辑以下是一个示例:fiddle
var featureGroup = L.featureGroup().addTo(map);
var geojson = {
"type": "FeatureCollection",
"features": [ ........... ]
}
L.geoJson(geojson).addTo(featureGroup);
当我点击编辑按钮时,我有一个错误:
未捕获的TypeError:无法读取属性'启用'未定义的
对象似乎可编辑,但我无法对其进行修改。
在地图框绘制图层中添加geojson对象的正确方法是什么?
答案 0 :(得分:6)
我找到了解决方案:
L.geoJson(geojson, {
onEachFeature: function (feature, layer) {
featureGroup.addLayer(layer);
}
});
答案 1 :(得分:3)
以下是使用CoffeeScript的工作示例:
drawnItems = new L.FeatureGroup()
map.addLayer drawnItems
layers = L.geoJson geojson
layers.eachLayer (layer) => drawnItems.addLayer layer
答案 2 :(得分:0)
我必须做以下事情让我的工作(除上述答案外):
L.geoJson(geojson, {
onEachFeature: function (feature, layer) {
if (layer.getLayers) {
layer.getLayers().forEach(function (l) {
featureGroup.addLayer(l);
})
} else {
featureGroup.addLayer(layer);
}
}
});
这是针对“特征”类型的geojson。