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 中。