编辑使用leaflet.shapefile

时间:2016-09-26 18:33:15

标签: javascript leaflet mapbox shapefile leaflet.draw

我使用Mapbox和Leaflet绘制,编辑和删除多边形等。可能还有一种情况,用户可能有拉链shapefile并希望直接使用它,而不是绘制多边形。因此,我使用leaflet.shapefile上传shapefile并将其添加到地图中。

但是当我尝试使用Leaflet Draw控件编辑shapefile时,我收到一个错误,告诉我" i.editing未定义"。我尝试将图层转换为GeoJSON,然后将其添加到featureGroup中以防万一(如下面的代码中所示),看看是否有任何影响,但它没有。

var layergeojson = layer.toGeoJSON();
featureGroup.addLayer(layergeojson);

这是我现在拥有的jsfiddle。我尝试在线研究以查看任何类似的案例,但我找不到任何案例。

是否可以使用Leaflet Draw控件编辑上传的shapefile?

1 个答案:

答案 0 :(得分:3)

执行var layergeojson = layer.toGeoJSON()时,layergeojson现在包含一个普通的GeoJSON对象,而不是一个Leaflet图层。

因此,featureGroup.addLayer(layergeojson)应该抛出错误(打开浏览器控制台)。相反,您应该使用.addData()方法:featureGroup.addData(layergeojson)

至于编辑结果图层,可能与此相关:https://gis.stackexchange.com/questions/203540/how-to-edit-an-existing-layer-using-leaflet/203773#203773