将从 R 的 sf 包导出的 GeoJSON 加载到 Mapbox Studio 时出错

Errors loading GeoJSON exported from R's sf package into Mapbox Studio

我正在尝试学习如何使用 Mapbox Studio,但我不知道如何使用 st_write() 函数上传我从 R 的 sf 包中导出的 GeoJSON 文件。例如,参见下面的 R 代码:

library(tigris)
states <- states()
states <- st_transform(states, crs = "EPSG:3857")
st_write(states, "states.geojson")

当我将导出的 states.geojson 文件加载到 Mapbox Studio 中时,出现以下错误:

加载我创建并导出为 GeoJSON 的其他数据集时,出现了不同的错误 - “计算 min/max 缩放时出错:边界无效”。

我是 Mapbox 和 GeoJSON 的新手,所以对此不太了解 - 但我希望能够使用 st_write() 从 R 导出 GeoJSON 文件并将它们加载到 Mapbox 中!任何关于为什么我会收到这些错误以及如何避免这些错误的见解将不胜感激。谢谢

我建议您在处理 GeoJSON 文件时避免使用 EPSG:3857,并坚持使用 WGS84 (EPSG:4326)。

current GeoJSON 标准仅允许 WGS84 - 参见 https://datatracker.ietf.org/doc/html/rfc7946#section-4(关于 lat-long 与 long-lat 约定有一些回旋余地,但学位是不可协商的;EPSG:3857 以米为单位)。

标准的版本允许其他坐标参考系统,这就是为什么R / {sf}允许您导出数据,但这是非常糟糕的做法这样做。您很可能 运行 陷入诸如您现在面临的问题。

更严格规范的官方原因是使用代码的 GeoJSON 很可能会在未连接的安装中结束,并且让它跟上 EPSG 数据库不断发展的性质可能是不切实际的。非官方原因涉及 IT 人员无法处理 真相 球面几何。