このトピックでは、ST_Intersection関数について説明します。 この関数は、入力ジオメトリオブジェクトが交差する点のセットに対応するジオメトリオブジェクトを返します。
構文
ジオメトリST_Intersection(geometry geomA、geomB);
geography ST_Intersection(geography geogA、geography geogB);
ジオメトリST_Intersection (ジオメトリセットgField);
パラメーター
パラメーター | 説明 |
geomA/geomB | 指定する2つのジオメトリオブジェクト。 |
geogA/geogB | 指定する2つの地理オブジェクト。 |
gField | 指定するジオメトリフィールド。 |
説明
2つの入力ジオメトリオブジェクトが交差しない場合、この関数は空のジオメトリオブジェクトを返します。
geographyオブジェクトを指定した場合、この関数はジオメトリ関数を使用してオブジェクトを処理します。 この関数は、最初に、入力地理オブジェクトをジオメトリオブジェクトに変換し、平面空間参照内の入力オブジェクトの交差を計算し、次に、世界測地系1984 (WGS84) 座標系に基づいて、交差を地理オブジェクトに変換します。
この関数はGeometryCollectionオブジェクトをサポートしません。
この関数は、入力オブジェクトのm座標を削除します。
集計関数は、すべてのジオメトリオブジェクトに対して順番に交差演算を実行し、ジオメトリオブジェクトの交差を返します。
例
デフォルトのパラメータ設定を使用して返される結果:
SELECT ST_AsText(ST_Intersection('POLYGON (0 0,0 2,2 0,0 0))'::geometry,'POLYGON((0 0,3 1,0 0))'::geometry)); st_astext -------------------------------- POLYGON((0 1,2 1,2 0,0 0,0 1)) (1行)
集計関数が呼び出された後に返される結果:
テーブルagg_result(id integer, geom geometry) を作成します。agg_result値に挿入する (0, ST_GeomFromText('POLYGON((0 0, 0 0.5, 0.5 0.5, 0.5 0, 0 0))'))); insert into agg_result select i, st_buffer('POINT(0 0)', 0.8 + random()* 0.1) from generate_series(1,100) からiとして; 選択st_astext(st_intersection(geom)) からagg_result; st_astext ---------------------------------------- POLYGON((0 0,0 0.5、0.5 0.5、0.5 0,0 0)) (1行)