このトピックでは、ST_Equals関数について説明します。 この関数は、2つのジオメトリオブジェクトが空間的に等しいかどうかをチェックします。 2つのジオメトリオブジェクトが空間的に等しい場合、この関数はTrueを返します。 それ以外の場合、この関数はFalseを返します。
構文
ブールST_Equals (ジオメトリa、ジオメトリb);
パラメーター
パラメーター | 説明 |
a | 指定する最初のジオメトリオブジェクト。 |
b | 指定する2番目のジオメトリオブジェクト。 |
説明
- ST_Within(A,B) とST_Within(B,A) の両方がTrueを返す場合、ジオメトリオブジェクトAとジオメトリオブジェクトBは空間的に等しい。 ジオメトリオブジェクトAおよびジオメトリオブジェクトBは、異なる順序で配置されたそれらの点を有し得るが、それらは同じ空間構造を有する。
ST_OrderingEquals関数を使用して、ジオメトリオブジェクトAとジオメトリオブジェクトBのポイントが同じ順序で配置されているかどうかを確認できます。
- 指定したジオメトリオブジェクトの1つが無効な場合、ジオメトリオブジェクトがバイナリで等しい場合を除き、この関数はFalseを返します。
- この関数はGeometryCollectionオブジェクトをサポートしません。
例
- 次の例は、点が異なる順序で配置されている場合でも、2つのジオメトリオブジェクトがどのように空間的に等しいかを示しています。
SELECT ST_Equals('LINESTRING(0 1,2 3)'::geometry,'LINESTRING(2 3,0 1)'::geometry); st_equals ----------- t (1行)
- 次の例は、2つのジオメトリオブジェクトが空間的に等しい場合にどのように同一であるかを示しています。
SELECT ST_Equals('LINESTRING(0 1,0 3)'::geometry,'LINESTRING(0 1,0 2,0 3)'::geometry); st_equals ----------- t (1行)