ST_Geometry を使用する SQL 関数のクイック ツアー
特定の SQL 関数およびタイプは、次のいずれかを実行したときに作成されます。
- Oracle または PostgreSQL データベースにジオデータベースを作成する。
- Oracle または PostgreSQL データベースに ST_Geometry 空間データ タイプをインストールする。
- createSQLiteDatabase ArcPy 関数を使用して SQLite データベースを作成し、ST_Geometry 空間データ タイプを指定する。
Oracle および PostgreSQL データベースの場合、ST_Geometry タイプおよびその関数は、sde ユーザのスキーマに作成されます。SQLite の場合、タイプおよび関数は、SQLite データベースに対して SQL を実行する前に読み込む必要があるライブラリに格納されます。
このヘルプの次のセクションでは、ST_Geometry 空間データ タイプで使用できる関数のリストを記載し説明します。関数のトピックは次のような構成になっています。
-
定義
関数の説明
-
構文
関数で使用する正しい構文
関係演算子の場合は、パラメータを指定する順序が重要になります。最初のパラメータでは選択対象のテーブルを指定し、2 つ目のパラメータではフィルタとして使用するテーブルを指定します。
-
戻り値のタイプ
関数を実行したときに返されるデータのタイプ
-
例
特定の関数を使用するサンプル
このセクションのサンプルは、作成したテーブルに空間インデックスを構築しません。空間インデックスを作成する場合は、「ST_Geometry 列を持つテーブルでの空間インデックスの作成」をご参照ください。
SQL 関数の一覧
以下のリンクをクリックすると、Oracle、PostgreSQL、および SQLite の ST_Geometry タイプで使用できる関数の説明にジャンプします。
ST_Geometry 関数を Oracle で使用する場合、関数と演算子を sde. で修飾する必要があります。たとえば、ST_Buffer は sde.ST_Buffer と指定します。sde. を追加すると、その関数が sde ユーザのスキーマに格納されていることが明示されます。PostgreSQL の場合、この修飾は任意ですが、修飾子を付加することをお勧めします。SQLite データベースには sde スキーマがないため、SQLite でこの関数を使用する場合は、修飾を含めないでください。
ST_Geometry 以外の、たとえば PostGIS ジオメトリ タイプや Oracle SDO_Geometry タイプのような空間タイプに使用される関数については、それぞれ PostGIS または Oracle Spatial のマニュアルをご参照ください。PostGIS のマニュアルは www.postgis.org にあります。Oracle のドキュメントは、Oracle Web サイトにあります。
ST_Geometry SQL 関数は、用途に基づいてグループ分けできます。
コンストラクタ関数
コンストラクタ関数は、いずれかのジオメトリ タイプまたはジオメトリのテキスト記述を受け取り、ジオメトリを作成します。次の表は、コンストラクタ関数の一覧で、各関数における ST_Geometry 実装の対応状況を示しています。
関数 |
Oracle |
PostgreSQL |
SQLite |
---|---|---|---|
X |
X |
||
X |
X |
||
X |
|||
X |
|||
X |
X |
X |
|
X |
|||
X |
X |
||
X |
|||
X |
X |
||
X |
X |
X |
|
X |
X |
X |
|
X |
|||
X |
X |
||
X |
X |
X |
|
X |
|||
X |
X |
||
X |
X |
X |
|
X |
X |
||
X |
X |
X |
|
X |
|||
X |
X |
X |
|
X |
X |
X |
|
X |
X |
X |
|
X |
|||
X |
X |
X |
|
X |
|||
X |
X |
||
X |
X |
X |
|
X |
|||
X |
X |
||
X |
X |
X |
|
X |
X |
X |
|
X |
X |
アクセサ関数
ジオメトリを入力として、それに関する特定の情報を返す関数がいくつかあります。
一部の関数は、1 つまたは複数のフィーチャが特定の条件を満たすかどうかをチェックします。ジオメトリが条件を満たす場合、関数は 1 または t(TRUE)を返します。ジオメトリが条件を満たさない場合、関数は 0 または f(FALSE)を返します。
次の関数は、但し書きがあるものを除いて、すべての実装に適用されます。
ST_Entity(Oracle および SQLite のみ) |
ST_GeoSize(PostgreSQL のみ) |
ST_Is3d(Oracle および SQLite のみ) |
ST_IsMeasured(Oracle および SQLite のみ) |
関係関数
関係関数は、ジオメトリを入力として受け取り、ジオメトリ間に特定のリレーションシップが存在するかどうかを判定します。空間リレーションシップの条件が満たされている場合、関数は 1 または t(TRUE)を返します。空間リレーションシップの条件が満たされていない(リレーションシップが存在しない)場合、関数は 0 または f(FALSE)を返します。
次の関数は、但し書きがあるものを除いて、すべての実装に適用されます。
ST_EnvIntersects(Oracle および SQLite のみ) |
ST_OrderingEquals(Oracle および SQLite のみ) |
ジオメトリ関数
空間データを入力として、それを分析して、新しい空間データを返します。
次の関数は、但し書きがあるものを除いて、すべての実装に適用されます。
ST_Aggr_ConvexHull(Oracle および SQLite のみ) |
ST_Aggr_Intersection(Oracle および SQLite のみ) |
ST_Aggr_Union(Oracle および SQLite のみ) |
ST_Equalsrs(PostgreSQL のみ) |