特定の SQL 関数およびタイプは、次のいずれかを実行したときに作成されます。
- Oracle または PostgreSQL データベースにジオデータベースを作成する。
- Oracle または PostgreSQL データベースに ST_Geometry 空間データ タイプをインストールする。
- createSQLiteDatabase ArcPy 関数を使用して SQLite データベースを作成し、ST_Geometry 空間データ タイプを指定する。
Oracle および PostgreSQL データベースの場合、ST_Geometry タイプおよびその関数は、sde ユーザーのスキーマに作成されます。SQLite の場合、タイプおよび関数は、SQLite データベースに対して SQL を実行する前に読み込む必要があるライブラリに格納されます。
このヘルプの次のセクションでは、ST_Geometry 空間データ タイプで使用できる関数のリストを記載し説明します。関数のトピックは次のような構成になっています。
- 説明
関数の説明
- 構文
関数で使用する正しい構文
関係演算子の場合は、パラメーターを指定する順序が重要になります。最初のパラメーターでは選択対象のテーブルを指定し、2 つ目のパラメーターではフィルターとして使用するテーブルを指定します。
- 戻り値のタイプ
関数を実行したときに返されるデータのタイプ
- 例
特定の関数を使用するサンプル
SQL 関数の一覧
以下のリンクをクリックすると、Oracle、PostgreSQL、および SQLite の ST_Geometry タイプで使用できる関数の説明にジャンプします。
ST_Geometry 関数を Oracle で使用する場合、関数と演算子を sde. で修飾する必要があります。たとえば、ST_Buffer は sde.ST_Buffer と指定します。sde. を追加すると、その関数が sde ユーザーのスキーマに格納されていることが明示されます。PostgreSQL の場合、この修飾は任意ですが、修飾子を付加することをお勧めします。SQLite データベースには sde スキーマがないため、SQLite でこの関数を使用する場合は、修飾を含めないでください。
ST_Geometry SQL 関数で入力として WKT (Well Known Text) 文字列を指定するときは、科学表記法を使用して非常に大きい値や非常に小さい値を指定できます。たとえば、新しいフィーチャを構築するときに WKT を使用して座標を指定する場合、座標の 1 つが 0.000023500001816501026 とすると、代わりに「2.3500001816501026e-005」と入力できます。
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 |
アクセサ関数
ジオメトリを入力として、それに関する特定の情報を返す関数がいくつかあります。
一部のアクセサ関数は、1 つまたは複数のフィーチャが特定の条件を満たすかどうかをチェックします。ジオメトリが条件を満たす場合、関数は 1 または t (TRUE) を返します。ジオメトリが条件を満たさない場合、関数は 0 または f (FALSE) を返します。
次の関数は、但し書きがあるものを除いて、すべての実装に適用されます。
アクセサ関数
ST_Entity(Oracle および SQLite のみ) |
ST_GeomFromCollection (PostgreSQL のみ) |
ST_GeoSize(PostgreSQL のみ) |
ST_Is3d(Oracle および SQLite のみ) |
ST_IsMeasured(Oracle および SQLite のみ) |
関係関数
関係関数は、ジオメトリを入力として受け取り、ジオメトリ間に特定のリレーションシップが存在するかどうかを判定します。空間リレーションシップの条件が満たされている場合、関数は 1 または t (TRUE) を返します。空間リレーションシップの条件が満たされていない (リレーションシップが存在しない) 場合、関数は 0 または f (FALSE) を返します。
次の関数は、但し書きがあるものを除いて、すべての実装に適用されます。
関係関数
ST_DWithin (PostgreSQL のみ) |
ST_EnvIntersects(Oracle および SQLite のみ) |
ST_OrderingEquals(Oracle および PostgreSQL のみ) |
ジオメトリ関数
空間データを入力として、それを分析して、新しい空間データを返します。
次の関数は、但し書きがあるものを除いて、すべての実装に適用されます。
ジオメトリ関数
ST_Aggr_ConvexHull(Oracle および SQLite のみ) |
ST_Aggr_Intersection(Oracle および SQLite のみ) |
ST_Aggr_Union(Oracle および SQLite のみ) |
ST_Equalsrs(PostgreSQL のみ) |