Geojson数据导致mapbox崩溃,隔离错误的策略

Geojson data causes mapbox to crash, tactics to isolate the error

我已经从英国军械测量局下载了 shapefile 边界数据,并使用 QGIS 将其转换为 geojson 格式。转换过程中没有报告错误,鉴于数据来自政府组织,我认为可以合理地假设提供的数据是正确的、连贯的和完整的(这会影响我缩小范围的方式错误来源)。

我使用 mapbox 来显示这些数据,并通过网络服务检索它。当我用 mapbox 加载数据时,它会导致 mapbox "bluescreen",即浏览器选项卡完全崩溃并断开开发控制台(Chrome、FF 和 IE)。 polygons/features 太多了,我无法调查 "manually",而且我无法控制错误 - 即使 try/catch 也无济于事。 我已经开始系统地将数据集减半,结果发现错误包含在以字母 a-m 开头的边界区域的某处。我知道我可以继续使用这种方法并在某个时候找到错误,但我想知道你是否有一些提示可以让我

  1. 检查 WKT/geojson/polygonal 完整性。技术对我来说并不重要(C#、Java、JS 等等...),只要它是一个简洁的过程即可。 (显然,Postgres/Postgis 有 this,但我所有的数据都驻留在一个对象数据库中,如果有任何其他方法可以检查,我更喜欢:-))
  2. 检查地理数据的完整性,特别是关于 mapbox 消耗的。

我的假设是 "correct"(即无错误且格式正确)地理数据将在 mapbox 中正确呈现,但正如我的问题所示:介于政府网站的官方数据集之间,使用成熟的工具进行无错误转换并使用最新版本在 mapbox 中进行渲染,仍然 出错。

感谢您解决此问题的提示!

编辑:令人惊讶的是,Firefox 似乎比 Chrome 处理得更好。使用相同的数据不会崩溃。

首先,我担心你的问题没有正确或错误的答案,我不知道你想如何接受答案。这通常是一个问题的坏兆头。

其次,我不会为 "must be valid" 使用数据集,即使它来自政府。将数据导出为一种格式总是会有一些边缘情况,或者它们可能不会像您希望的那样严格遵循 geojson 规范。

不过,您可以尝试这样做:

  1. 通常数据过于精确而无法使用(过度拟合),您应该尝试使用您选择的工具 simplify 您的 geojson 数据以减小其大小。您可以使用以下其中一项来完成该任务(还有更多 ofc。)

  2. 看看能不能把简化版加载到浏览器里

  3. 如果您的文件不是太大,您可以尝试使用 http://geojsonlint.com/ or http://geojson.io/ 等外部工具验证 geojson。

  4. 尝试使用其他浏览器,看看它是否可以更好地处理数据。奇怪的是你的浏览器崩溃了。如果 chrome 内存不足,它通常会通知您该问题。

除此之外,我认为查找问题仍然是一项手动任务。