2 つのジオメトリ オブジェクトの対称差(symmetric difference)を返します。つまり、互いに重複しない各ジオメトリの部分を返します。
構文
geometry ST_SymDifference(geometry geomA, geometry geomB)パラメーター
| パラメーター | 説明 |
|---|---|
geomA | 最初のジオメトリ オブジェクト。 |
geomB | 2 番目のジオメトリ オブジェクト。 |
注意事項
GeometryCollection はサポートされていません。 この関数は
GeometryCollectionオブジェクトをサポートしていません。3D ジオメトリのサポートは部分的です。 この関数は 3D ジオメトリをサポートしており、出力では Z 座標が保持されますが、対称差の計算には X 座標と Y 座標のみが使用されます。出力されるジオメトリ オブジェクトは、入力から元の Z 座標を引き継ぎます。
使用例
以下の例では、重複する 2 つのラインストリングの対称差を計算します。重複するセグメント (1 0, 2 0) は結果から除外され、各入力の非重複セグメントが MULTILINESTRING として返されます。
SELECT ST_AsText(
ST_SymDifference(
'LINESTRING(0 0, 2 0)'::geometry,
'LINESTRING(1 0, 3 0)'::geometry
)
);出力:
MULTILINESTRING((0 0,1 0),(2 0,3 0))
(1 row)次のステップ
ST_Difference — geomA の geomB と交差しない部分を返します(非対称)
ST_Union — 2つのジオメトリ オブジェクトのUNIONを返します
ST_Intersection — 2つのジオメトリ オブジェクトが共有する部分を返します