| 原作者 | マーティン・デイビス |
|---|---|
| 安定リリース | 1.20.0 [1]
/ 2024年8月30日 |
| リポジトリ |
|
| 書かれた | ジャワ |
| プラットフォーム | Java SE |
| タイプ | 図書館 |
| ライセンス | Eclipse Public License v.1.0 (1.15 以降)、GNU Lesser General Public License (バージョン 1.14 まで) |
| Webサイト | 場所tech.github.io/jts/ |
JTSトポロジースイート(Javaトポロジースイート)は、ユークリッド平面線形幾何学のオブジェクトモデルと一連の基本的な幾何学関数を提供するオープンソース のJava ソフトウェアライブラリです。JTSは主に、地理情報システムなどのベクターベースの地理情報ソフトウェアのコアコンポーネントとして使用することを目的としています。[2]また、計算幾何学のアルゴリズムを 提供する汎用ライブラリとしても使用できます。[3]
JTS は、 OpenGISコンソーシアムの SQL 用シンプル フィーチャ仕様で定義されているジオメトリ モデルと API を実装します。JTS は、空間アプリケーションを構築するための標準準拠のジオメトリ システムを定義します。例としては、ビューア、空間クエリ プロセッサ、データの検証、クリーニング、統合を実行するツールなどがあります。
Java ライブラリに加えて、JTS の基礎と選択された関数は、 GEOSソフトウェア ライブラリの形式で、すべての主要なオペレーティング システム上の C スタイルのリンクで使用するために C++ ポートで維持されます。
JTS 1.14 まで、および GEOS ポートは、GNU Lesser General Public License (LGPL) に基づいて公開されています。
LocationTech の採用により、今後のリリースは EPL/BSD ライセンスの下で行われることになります。
範囲
JTS は次の機能を提供します。
ジオメトリモデル
ジオメトリ クラスは、ポイント、ラインストリング、ポリゴン、およびコレクションのモデリングをサポートします。ジオメトリは線形であり、境界は頂点間の線形補間によって暗黙的に定義されます。ジオメトリは 2 次元ユークリッド平面に埋め込まれます。ジオメトリの頂点には Z 値も含まれる場合があります。
ジオメトリ座標では、ユーザー定義の精度モデルがサポートされています。計算は、すべての精度モデルで堅牢なジオメトリ計算を提供するアルゴリズムを使用して実行されます。
幾何関数
- トポロジーの妥当性チェック
- 面積と距離関数
- エゲンホーファーDE-9IMモデルに基づく空間述語[4]
- オーバーレイ関数(交差、差、和、対称差を含む)
- バッファ計算(異なるキャップと結合タイプを含む)
- 凸包
- ダグラス・ポイッカーアルゴリズムを含む幾何学的簡略化
- 幾何学的緻密化
- 線形参照
- 精度削減
- ドロネー三角形分割と制約付きドロネー三角形分割
- ボロノイ図の生成
- 最小の囲み四角形
- 離散ハウスドルフ距離
空間構造とアルゴリズム
I/O機能
歴史
JTS の初期作業の資金は、マーク・ソンドハイムとデビッド・スキーの提案に基づいて、2000 年秋に GeoConnections とブリティッシュ コロンビア州政府から調達されました。作業は、当時 Vivid Solutions に所属していたマーティン・デイビス (ソフトウェア設計および主任開発者) とジョナサン・アキノ (開発者) によって行われました。それ以来、JTS はマーティン・デイビスによって独立したソフトウェア プロジェクトとして維持されてきました。[5]
2016 年後半から 2017 年初頭にかけて、JTS は LocationTech に採用されました。
JTS を使用したプロジェクト
プラットフォーム
JTSはJava JDK 1.4プラットフォームで開発されており、100%純粋なJavaです。最近のすべてのJDKでも動作します。[6]
JTS は、Net Topology Suite として .NET Frameworkに移植されています。
JTS サブセットは、エントリ ポイントが C インターフェイスとして宣言され、GEOSライブラリとしてC++に移植されました。
C/C++ ポート: GEOS
GEOS は、JTS のサブセットと選択された関数の C/C++ ポートです。これは、Linux、Mac、および Windows プラットフォーム上のネイティブのコンパイル済み実行可能バイナリのソフトウェア エコシステムにおける基礎コンポーネントです。Java および Java 仮想マシン (JVM) のランタイム構造のため、Java で記述されたコード ライブラリは、基本的に、標準化されたクロスリンク環境 (多くの場合、C から構築) のライブラリとして使用できません。Linux、Microsoft Windows、および Mac OSX を含む BSD ファミリは、さまざまな言語のライブラリをネイティブ ランタイム実行可能ファイルに統合 (リンク) できるリンク構造を使用します。Java は、設計上、特別な手段 ( JNI ) なしではこの相互運用性に参加しません。
GEOS を使用するアプリケーション
GEOS は、以下に挙げる一般的なアプリケーションに内部的にリンクして出荷されます。また、GIS で広くサポートされている内部エンジンであるGDALで使用可能な標準ベースのジオメトリ クラスを定義して実装することにより、GEOS はさらに多くのアプリケーションでコア ジオメトリ実装になります。
- GDAL - OGR - ラスターおよびベクター データの書き換え
- QGIS - デスクトップ クロスプラットフォーム、オープンソース GIS
- PostGIS - PostgreSQL の空間タイプと操作
- GeoDjango – Django の GIS 対応データベースのサポート
- Google Earth – 仮想地球儀と世界画像プログラム
- GRASS GIS ライブラリとアプリケーション
- MapServer - 空間対応インターネット アプリケーションを構築するためのオープン ソース開発環境
- World Wind Java – NASA のオープンソース仮想地球儀と世界画像技術
- Orfeo ツールボックス– 衛星画像処理ライブラリ
- R – 空間データ分析用の拡張機能を備えたオープンソースの統計ソフトウェア。
- SAGA GIS [7]クロスプラットフォームのオープンソースGISソフトウェア
参照
参考文献
- ^ 「リリース 1.20.0」。2024年8月30日。 2024年9月22日閲覧。
- ^ 「2012 年版フリーおよびオープンソース GIS ソフトウェア マップ - 研究、開発、採用を促進するためのガイド」2013 年 5 月 18 日にWayback Machineにアーカイブ、S. Steiniger および AJS Hunter
- ^ Davis, Martin (2007 年 9 月 26 日). 「JTS トポロジー スイートの秘密」 . 2017 年 1 月 26 日閲覧。
- ^ マックス・エゲンホーファーによる二項位相関係の正式な定義
- ^ 「JTSとGEOSの歴史 - M. Davis」2007年6月10日。 2013年5月27日閲覧。
- ^ 「JTS | FAQ」。locationtech.github.io 。 2019年7月18日閲覧。
- ^ 「SAGA GIS」 . 2020年9月29日閲覧。
外部リンク
- 公式サイト
- Net Topology Suite ホームページ
- GEOSホームページ
