GEOS は、2 次元ベクトル ジオメトリに対して演算を実行するための C++ ライブラリです。これは主に JTS Topology Suite Java ライブラリの移植版です。 PostGIS で使用されるアルゴリズムの多く、Python の Shapely パッケージ、R の sf パッケージなどを提供します。
詳細については、プロジェクトのホームページをご覧ください。
公式 Git リポジトリは GitHub にあります。
CI | 状態 | CI | 状態 | CI | 状態 |
---|---|---|---|---|---|
GitHub | ベッシー | デビー | |||
GitLab CI | ベッシー32 | ウィニー | |||
ベリー | ドロニー | ||||
ベリー64 |
INSTALL ファイルを参照してください。
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 の使用例は、examples ディレクトリにあります。
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 の一般的に使用される機能は、 geos.h
ヘッダー ファイルで利用できます。あまり一般的ではない機能には、 #include <geos/algorithm/distance/DiscreteHausdorffDistance.h>
など、個々のクラスのヘッダーをインクルードすることでアクセスできます。
#include <geos.h>
C++ の使用例は、examples ディレクトリにあります。
GEOS には多くの言語のバインディングがあります。バインディングのページを参照してください。
API ドキュメントは Doxygen を使用して生成できます。ドキュメントはデフォルトのビルドには含まれていません。ドキュメントを構築するには、次を実行します。
cmake -DBUILD_DOCUMENTATION=YES
cmake --build . --target docs
コードを目的のスタイルにフォーマットするには、ソース ツリーに含まれるスタイル バージョンを使用します。
tools/astyle.sh <yourfile.cpp>
testing/README.md のドキュメントを参照してください。
geosop
- GEOS 用の CLI。ドキュメントは util/geosop/README.md にあります。