我使用Mapbox和Leaflet绘制,编辑和删除多边形等。可能还有一种情况,用户可能有拉链shapefile并希望直接使用它,而不是绘制多边形。因此,我使用leaflet.shapefile上传shapefile并将其添加到地图中。
但是当我尝试使用Leaflet Draw控件编辑shapefile时,我收到一个错误,告诉我" i.editing未定义"。我尝试将图层转换为GeoJSON,然后将其添加到featureGroup中以防万一(如下面的代码中所示),看看是否有任何影响,但它没有。
var layergeojson = layer.toGeoJSON();
featureGroup.addLayer(layergeojson);
这是我现在拥有的jsfiddle。我尝试在线研究以查看任何类似的案例,但我找不到任何案例。
是否可以使用Leaflet Draw控件编辑上传的shapefile?
答案 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