使用* .toGeoJSON()时shapefile的GeoJSON字符串在Mapbox中不完整

时间:2017-01-26 22:12:55

标签: javascript leaflet mapbox geojson

我正在使用Mapbox和Leaflet绘制,编辑和删除多边形等。我还使用leaflet.shapefile上传shapefile并将它们添加到地图中。

对于某个应用程序,我需要将该层转换为GeoJSON对象,然后使用此代码将其转换为JSON字符串:

var fcgeojson = layer.toGeoJSON();
var fcgeojsonstring = JSON.stringify(fcgeojson);

我在this jsfiddle中有一个工作版本。对于大多数shapefile,它工作得很好。但是,在某些情况下,就像我使用this shapefile时一样,其中一个多边形的JSON字符串实际上是不完整的。您可以通过点击jsfiddle中的“测试”按钮来查看这些字符串。

我无法弄清楚为什么会发生这种情况(我的猜测可能是shapefile有太多顶点)。

1 个答案:

答案 0 :(得分:1)

用于测试json字符串的方法是问题出现的地方。不完整的json字符串来自stringify或alert。对于这个问题,问题可能在于后者。

Javascript警告截断10 000个字符的邮件,这恰好是在你的jsfiddle加载shapefile时在警告框中为我显示的字符数。

当我使用console.log()而不是alert()时,我可以看到整个json(长度接近14000个字符)。虽然,console.log的最大大小因浏览器而异,因此您可以随时设置div或其他元素的内容以在屏幕上显示完整内容。