ジオメトリの整合チェック

ジオメトリ整合チェック機能は、st_shapelib ライブラリ(Oracle)および st_geometry ライブラリ(PostgreSQL、IBM DB2、および Informix)を介して、ST_Geometry タイプによって提供されます。テーブルを作成すると、レコードを挿入または更新するときにデータの整合チェックが実行されます。

空間テーブルにデータを挿入する方法は主に 2 つあります。

コンストラクタ関数は、実装された空間タイプによってそれぞれ定義されるため、ジオメトリ データの整合チェックに使用される方法は異なる場合があります。Esri と IBM ST_Geometry のコンストラクタ関数および ArcGIS API は、フィーチャが作成されたときに、Esri シェープ ライブラリを使用してジオメトリ データを整合チェックします。SDO_Geometry、PostGIS ジオメトリ、Microsoft SQL Server geometry または geography などの他の空間タイプには、独自のコンストラクタ関数が存在し、独自のシェープ検証ルールが使用されます。そのため、ArcGIS の外部でフィーチャをこれらの空間タイプに挿入または更新する場合に適用される検証ルールについて、Oracle、PostGIS、または SQLServer のドキュメントを参照する必要があります。

ArcGIS も、データを読み取るときにジオメトリを整合チェックします。ArcGIS では、無効なジオメトリはレンダリングできません。

ArcGIS がジオメトリを読み取るときに、以下のジオメトリ整合チェックツールが Esri API、ST_Geometry コンストラクタ関数に適用されます。

ポイント シェープの整合性ルール

シンプル ラインまたはラインストリングの整合性ルール

ラインまたはスパゲッティ ストリングの整合性ルール

エリア シェープの整合性ルールと操作

空間参照 ID

ST_Geometry タイプを使用するフィーチャクラスの場合、テーブルが作成された空間参照 ID(SRID)の範囲外となる座標の値を挿入しようとすると、INSERT ステートメントは失敗し、次のようなメッセージが表示されます。

DBMS

エラー メッセージ

Oracle

ERROR at line 1:
ORA-20004: Error generating shape from text (-112)
ORA-06512: at "SDE.ST_GEOMETRY_SHAPELIB_PKG", line 42
ORA-06512: at "SDE.ST_POLYGON", line 69
ORA-06512: at line 1

PostgreSQL

ERROR: ESRI: error generating shape [-112]:

Informix

SQL Error (-937): Coordinates out of bounds in ST_PolyFromText.

DB2

GSE3416N Coordinate out of bounds

SQLite

Error: ST_Geometry failed with SDE error -139:
'The specified coordinate exceeds the valid coordinate range':[4]

関連トピック

5/25/2014