このトピックでは、ST_Union関数について説明します。 この関数は、複数の指定されたジオメトリオブジェクトの和集合を表すジオメトリオブジェクトを作成します。
構文
ジオメトリST_Union (ジオメトリセットg1Field);
ジオメトリST_Union (ジオメトリg1、ジオメトリg2);
ジオメトリST_Union(geometry[] g1Array);
ジオメトリST_Union (ジオメトリセットg1Field、float8 gridsize);
ジオメトリST_Union (ジオメトリセットg1Field、cgstringオプション);
ジオメトリST_Union (ジオメトリセットg1Field、float8 gridsize、cstringオプション);
ジオメトリST_Union(geometry[] g1Array、float8 gridsize);
ジオメトリST_Union(geometry[] g1Array、cstringオプション);
ジオメトリST_Union(geometry[] g1Array、float8 gridsize、cstringオプション);
パラメーター
パラメーター | 説明 |
g1field | データセットで指定するジオメトリオブジェクトのフィールド。 |
g1 | 指定する最初のジオメトリオブジェクト。 |
g2 | 指定する2番目のジオメトリオブジェクト。 |
g1Array | ジオメトリオブジェクトで構成される配列。 |
gridsize | 指定するグリッドのサイズ。 このパラメーターは、ユニオン操作を実行するときに同じグリッド内の頂点をマージするために使用されます。 デフォルト値は -1.0で、このパラメーターが無効であることを示します。 |
オプション | 指定する並列コンピューティング機能のステータスと並列処理の程度。 このパラメーターは、並列コンピューティング機能を有効にし、並列度を決定するために使用されます。 この機能を有効にする場合、このパラメーターの値を |
説明
- この関数の出力タイプは、MULTIまたはGeometryCollectionです。 ST_Union関数には2つのバージョンがあります。
- バージョン1: ST_Union関数の入力は2つのジオメトリオブジェクトです。 ST_Union関数の出力は、MULTI、NON-MULTI、またはGeometryCollectionオブジェクトです。 2つのジオメトリオブジェクトのいずれかがNULLの場合、ST_Union関数はNULLを返します。
- バージョン2: ST_Union関数は集約関数として機能します。 入力は、ジオメトリオブジェクトのコレクションです。 出力は、MULTIまたはNON-MULTIオブジェクトにすることができます。
- ST_Collect関数とST_Union関数は交換可能である。 ST_Union関数は、指定したジオメトリオブジェクトの境界を解消して、構築されたMultiPolygonオブジェクトに交差する部分があるかどうかを確認します。 したがって、ほとんどの場合、ST_UnionはST_Collect関数よりも低速で実行されます。
例
- 次の例は、ST_Union関数とST_Collect関数の違いを示しています。
から (選択 'POLYGON((0 0,1 2,0 2,0 0))': geometry as g1,'POLYGON((1 0,3 0,3 1,1 0))'::geometry as g2) as t;
- 次の例は、gridsizeパラメータとoptionsパラメータの異なる設定での計算を示しています
。 tableAからst_area(st_union(geom、0.005)) を選択します。-- optionsパラメーターを指定します。 tableAからst_area(st_union(geom, '{"parallel": 4}'::cstring)) を選択します。-- gridsizeおよびoptionsパラメータを一度に指定します。 tableAからst_area(st_union(geom、0.005、'{"parallel": 4}'::cstring)) を選択します。