我找不到任何简单的 C 源文件或库来解析 geojson 文件(实现rfc7946标准)。
也许这样的解析器存在于像 GRASS 或 GDAL 这样的项目中?但是我在浏览 C 库的世界时仍然有些麻烦。
一些曲目?
GeoJSON是 JSON 格式,因此您可以使用 JSON 解析器。有几个:
https://github.com/search?l=C&q=json+parser&type=Repositories
您应该自己添加支票和其他东西。
如果你需要某种数据的表示,你可以自己写。Mapbox 编写了一个C++ 版本的 GeoJSON 解析器,用于将 GeoJSON 转换为基于RapidJSON的 geometry.hpp 表示,代码不到 1k 行。
可以在 SpatiaLite中找到符合标准(RFC 7946) 的 GeoJSON C 实现,但使用典型的 JSON 解析器可能更容易。如果你想使用这个库,你可以查看virtualgeojson.c 。
如果您想做基本的几何操作,Ho1 的答案是完美的。对于高级的东西(你不想重新发明),你可以考虑使用geos的 CAPI。
请注意,CAPI GeoJSON 编写器是相当新的,不幸的是文档不是最新的。这是包含这些更改的头文件:https ://github.com/libgeos/geos/blob/main/capi/geos_c.h.in
我终于开始了。
我正在编写一个基于json-parser的小型库,它可以说明解析的 json 是否是有效的 geojson。(根据标准 7946)。
这显然是初稿,还有很多工作要做。
我是 C 的初学者,所以如果您有任何建议或意见,我显然很感兴趣。