このトピックでは、ST_Covers関数について説明します。 この関数は、指定した2番目のジオメトリオブジェクトまたはジオグラフィオブジェクトの点が、指定した最初のジオメトリオブジェクトまたはジオグラフィオブジェクトの外側にないかどうかを確認します。 2番目のオブジェクトの点が1番目のオブジェクトの外側にない場合、この関数はTrueを返します。 それ以外の場合、この関数はFalseを返します。
構文
ブールST_Covers(geometry geomA、geomB);
ブールST_Covers(geography geogpolyA、geography geogpointB); パラメーター
| パラメーター | 説明 |
| geomA | 指定する最初のジオメトリオブジェクト。 |
| geomB | 指定する2番目のジオメトリオブジェクト。 |
| geogpolyA | 指定する最初のgeographyオブジェクト。 |
| geogpointB | 指定する2番目のgeographyオブジェクト。 |
説明
- この関数はGeometryCollectionオブジェクトをサポートしません。
- 無効なジオメトリオブジェクトを指定しないでください。 無効なジオメトリオブジェクトを指定した場合、この関数は予期しない結果を返します。
- この関数は境界ボックスを生成し、指定したジオメトリオブジェクトで使用できるインデックスを使用できます。 インデックスを使用しない場合は、_ST_Covers関数を使用することを推奨します。
例
次の例は、ST_Covers関数とST_Contains関数を使用します。
SELECT ST_Covers(g1,g2), ST_Contains(g1,g2) FROM (SELECT 'POLYGON((0 0,1 0,0 0))'::geometry as g1),
'LINESTRING(0 0,1 1)'::geometry as g2) as test;
st_covers | st_contains
---------- ------------------
t | f
(1行)