2

我正在使用带有 Leaflet 的 Mapbox 来绘制、编辑和删除多边形等。还有一种情况是,用户可能已经压缩了 shapefile 并希望直接使用它,而不是绘制多边形。所以我使用Leaflet.shapefile上传 shapefile 并将它们添加到地图中。

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

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

这是我现在拥有的一个jsfiddle 。我尝试在网上搜索以查看任何类似的案例,但我无法找到任何类似的案例。

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

4

1 回答 1

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

于 2016-09-27T06:41:22.110 回答