Leaflet 传单绘制地图和导入保存的数据错误
我已经创建了一个mapbox gl和传单贴图,我正在尝试使用插件传单绘制添加和编辑一个图层 插件工作得很好;我可以创建路径(多段线)并使用geojson保存它 重新加载包含已保存数据的地图时出错:Leaflet 传单绘制地图和导入保存的数据错误,leaflet,mapbox-gl-js,leaflet.draw,Leaflet,Mapbox Gl Js,Leaflet.draw,我已经创建了一个mapbox gl和传单贴图,我正在尝试使用插件传单绘制添加和编辑一个图层 插件工作得很好;我可以创建路径(多段线)并使用geojson保存它 重新加载包含已保存数据的地图时出错: TypeError: dataLayer.push is not a function TypeError: a.slice is not a function plyline在地图上,但如果我尝试编辑它(单击“编辑层”按钮),多段线会更改颜色(这意味着它已被选中),但不会显示任何定位点,并且无法拖
TypeError: dataLayer.push is not a function
TypeError: a.slice is not a function
plyline在地图上,但如果我尝试编辑它(单击“编辑层”按钮),多段线会更改颜色(这意味着它已被选中),但不会显示任何定位点,并且无法拖动或编辑
dataLayer是我创建的包含新数据的层
JSON数据在上进行了验证,看起来不错
我认为我创建的数据层不正确
// ADD data stored in DB
var geojson = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "LineString",
"coordinates": [
[
9.67420756816864,
44.93391475147485
],
[
9.674186110496521,
44.93359955072641
]
]
}
},
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [
9.67420756816864,
44.933929941828694
]
}
}
]
};
var dataLayer = L.geoJson(geojson);
// featureGroup is the layer editable
var featureGroup = L.featureGroup();
// add data from DB to editable layer
dataLayer.addTo(featureGroup);
// add editable layer to the Map
featureGroup.addTo(map);
我的代码出了什么问题?Geojson标准不包含额外的功能,因此我只有路径,而没有额外的项目,例如th锚定点(矩形)。要解决此问题,我需要将代码修复为:
// featureGroup is the layer editable
var featureGroup = L.featureGroup();
featureGroup.addTo(map);
L.geoJson(geojson, {
onEachFeature: function (feature, layer) {
if (layer.getLayers) {
layer.getLayers().forEach(function (l) {
featureGroup.addLayer(l);
})
} else {
featureGroup.addLayer(layer);
}
}
});