Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 编辑使用传单上载的形状文件。形状文件_Javascript_Leaflet_Mapbox_Shapefile_Leaflet.draw - Fatal编程技术网

Javascript 编辑使用传单上载的形状文件。形状文件

Javascript 编辑使用传单上载的形状文件。形状文件,javascript,leaflet,mapbox,shapefile,leaflet.draw,Javascript,Leaflet,Mapbox,Shapefile,Leaflet.draw,我正在使用Mapbox和传单来绘制、编辑和删除多边形等。在这种情况下,用户可能已经压缩了形状文件,并希望直接使用它,而不是绘制多边形。因此,我使用上载形状文件并将其添加到地图中 但是当我尝试使用传单绘制控件编辑shapefile时,我得到一个错误,告诉我“I.editing未定义”。在将该层添加到featureGroup之前,我尝试将其转换为GeoJSON,以防万一(如下面的代码所示),看看这是否有任何效果,但没有效果 var layergeojson = layer.toGeoJSON();

我正在使用Mapbox和传单来绘制、编辑和删除多边形等。在这种情况下,用户可能已经压缩了形状文件,并希望直接使用它,而不是绘制多边形。因此,我使用上载形状文件并将其添加到地图中

但是当我尝试使用传单绘制控件编辑shapefile时,我得到一个错误,告诉我“I.editing未定义”。在将该层添加到featureGroup之前,我尝试将其转换为GeoJSON,以防万一(如下面的代码所示),看看这是否有任何效果,但没有效果

var layergeojson = layer.toGeoJSON();
featureGroup.addLayer(layergeojson);
这是我现在拥有的东西的一部分。我试着在网上搜索任何类似的案例,但我找不到


是否可以使用传单绘制控件编辑上载的形状文件

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

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


至于编辑生成的图层,可能与此相关:

Awesome!这正是我需要的。这似乎也解决了我在之前的设置中遇到的另一个问题,当时我试图将层转换为WKT字符串(不是JSFIDLE的一部分)。非常感谢!!:)附言:我不必将其转换为GeoJSON,因为我的主要目标是编辑shapefile,而将其转换为GeoJSON是我试图解决它的不同方法之一。但这是一个很好的小细节,我将来可能会用到。所以也谢谢你。