Leaflet 传单绘制地图和导入保存的数据错误

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在地图上,但如果我尝试编辑它(单击“编辑层”按钮),多段线会更改颜色(这意味着它已被选中),但不会显示任何定位点,并且无法拖

我已经创建了一个mapbox gl和传单贴图,我正在尝试使用插件传单绘制添加和编辑一个图层

插件工作得很好;我可以创建路径(多段线)并使用geojson保存它

重新加载包含已保存数据的地图时出错:

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);
            }
        }
    });