GEOS 是一个用于对二维向量几何执行运算的 C++ 库。它主要是 JTS Topology Suite Java 库的端口。它提供了 PostGIS、Python 的 Shapely 包、R 的 sf 包等使用的许多算法。
更多信息请访问项目主页。
官方 Git 存储库位于 GitHub。
CI | 地位 | CI | 地位 | CI | 地位 |
---|---|---|---|---|---|
GitHub | ![]() | 贝西 | 黛比 | ||
亚搏体育appGitLab持续集成 | 贝西32 | 维尼 | |||
贝里 | 德罗尼 | ||||
贝里64 |
请参阅安装文件。
另请参阅 C API 教程和 C++ API 教程。代码库中有代码示例。
GEOS 承诺 C API 的长期稳定性。一般来说,C API 的后续版本可能会添加新函数,但不会删除或更改现有类型或函数签名。 C 库使用 C++ 接口,但 C 库遵循正常的 ABI 更改敏感版本控制,因此仅链接到 C 库的程序应该可以在 GEOS 升级时无需重新链接即可工作。因此,建议对要动态链接到 GEOS 系统安装的软件使用 C API。
geos-config
程序可用于确定适当的编译器和链接器标志,以针对 C 库进行构建:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
C API 的所有功能均可通过geos_c.h
头文件获得。
C API 的文档通过geos_c.h
头文件中的注释提供。 C API 使用示例可以在示例目录中找到。
GEOS 的 C++ 接口为 C++ 程序提供了更自然的 API,以及 C API 中未公开的附加功能。然而,决定使用 C++ 接口的开发人员应该注意,GEOS 不承诺不同版本之间 C++ API 的 API 或 ABI 稳定性。 C++ API/ABI 中的重大更改通常不会公布或包含在 NEWS 文件中。
C++ 库名称将在每个次要版本中更改。
geos-config
程序可用于确定适当的编译器和链接器标志,以针对 C++ 库进行构建:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos
针对 C++ 库构建时可能会发出编译器警告。要删除编译器警告,请在程序中的某处定义USE_UNSTABLE_GEOS_CPP_API
。
geos.h
头文件中提供了 GEOS 的常用功能。可以通过包含各个类的标头来访问不太常见的功能,例如#include <geos/algorithm/distance/DiscreteHausdorffDistance.h>
。
#include <geos.h>
C++ 使用示例可以在示例目录中找到。
GEOS 具有多种语言的绑定,请参阅绑定页面。
API 文档可以使用 Doxygen 生成。默认版本中不包含文档。要构建文档,请运行:
cmake -DBUILD_DOCUMENTATION=YES
cmake --build . --target docs
要将代码格式化为所需的样式,请使用源代码树中包含的 astyle 版本:
tools/astyle.sh <yourfile.cpp>
请参阅测试/README.md 中的文档。
geosop
- GEOS 的 CLI。文档位于 util/geosop/README.md 中。