このトピックでは、ST_Relate関数について説明します。 この関数は、2つのジオメトリオブジェクトが空間的に関連するかどうかをチェックします。 たとえば、この関数は、2つのジオメトリオブジェクトが交差するかどうか、または一方のジオメトリオブジェクトが他方に含まれるかどうかをチェックします。
構文
boolean ST_Relate(geometry geomA、geomB、text intersectionMatrixPattern);
テキストST_Relate(geometry geomA , geometry geomB);
テキストST_Relate(geometry geomA、geometry geomB、integer boundaryNodeRule);
パラメーター
パラメーター | 説明 |
geomA | 指定する最初のジオメトリオブジェクト。 |
geomB | 指定する2番目のジオメトリオブジェクト。 |
intersectionMatrixPattern | 指定するDE-9IMの行列パターン。 |
boundaryNodeRule | 指定する境界ノードルール。 |
説明
- バージョン1: この関数は、指定したジオメトリオブジェクトが、定義したDE-9IMのマトリックスパターンに従って、内部リング、境界、または外部リングで空間的に交差するかどうかを確認します。 指定されたすべての条件が満たされると、この関数はTrueを返します。 それ以外の場合、この関数はFalseを返します。
- この使用法は、特に道路の交差点や交差点の複合チェックをワンステップでテストする必要がある場合に適しています。
- この関数はGeometryCollectionオブジェクトをサポートしません。
- バージョン2: この関数は、指定したジオメトリオブジェクトのDE-9IM行列を返します。 この関数はGeometryCollectionオブジェクトをサポートしません。
- バージョン3: バージョン3はバージョン2と似ていますが、バージョン3では境界ノードルールを定義できます。
- 1: OGC/MOD2
- 2: エンドポイント
- 3: MultivalentEndpoint
- 4: MonovalentEndpoint
例
- バージョン1:
ST_Relateを選択 ('LINESTRING(0 0,0 1)'::geometry, 'LINESTRING(0 0,1 1)'::geometry,'FF1F00102'); st_relate ----------- t (1行)
- バージョン2:
ST_Relate('LINESTRING(0 0,0 1)'::geometry, 'LINESTRING(0 0,1 1)'::geometry); st_relate ----------- FF1F00102 (1行)