このトピックでは、ST_Crosses関数について説明します。 この関数は、2つのジオメトリオブジェクトが部分的に交差するが、一方が他方の内側にないかどうかをチェックします。 2つのジオメトリオブジェクトが部分的に交差するが、一方が他方の内側にない場合、この関数はTrueを返します。 それ以外の場合、この関数はFalseを返します。
構文
ブールST_Crosses (ジオメトリg1、ジオメトリg2);
パラメーター
パラメーター | 説明 |
g1 | 指定する最初のジオメトリオブジェクト。 |
g2 | 指定する2番目のジオメトリオブジェクト。 |
説明
- この関数は、指定したジオメトリオブジェクトの交点が空のセットではなく、ジオメトリオブジェクトの最大寸法よりも小さい寸法を持つ場合にのみTrueを返します。
- この関数は、指定した2つのジオメトリオブジェクトの交点がいずれかのジオメトリオブジェクトと等しくない場合にのみTrueを返します。
- 指定するジオメトリオブジェクトは、次のいずれかのDE-9IM行列パターンを使用する必要があります。
- T * T ******: このパターンは、点と線、点と領域、または線と領域を指定するときに使用されます。
- T ***** T **: このパターンは、線と点、領域と点、または領域と線を指定するときに使用されます。
- 0 *******: このパターンは、2行を指定するときに使用されます。
- この関数はGeometryCollectionオブジェクトをサポートしません。
- この関数は境界ボックスを生成し、指定したジオメトリオブジェクトで使用できるインデックスを使用できます。 インデックスを使用しない場合は、_ST_Crosses関数を使用することを推奨します。
例
- デフォルトのパラメーター設定を使用して、2つのジオメトリオブジェクトを比較します。
SELECT ST_Crosses('LINESTRING(0 0,3 3)': geometry,'LINESTRING(0 1,1 0)'::geometry); st_crosses ------------ t (1行)
- 重なり合う2つのジオメトリオブジェクトを比較します。
SELECT ST_Crosses('LINESTRING(0 0,3 3)': geometry,'LINESTRING(0 0,1 1)'::geometry); st_crosses ------------ f (1行)
- 2つのジオメトリオブジェクトのうち、交差する寸法が最大寸法と同じであるジオメトリオブジェクトを比較します。
SELECT ST_Crosses('LINESTRING(0 0,3 3)'::geometry,'LINESTRING(1 1,4 4)'::geometry); st_crosses ------------ f (1行)