ST_SYMDIFFERENCE
📄字数 621
👁️阅读量 加载中...
功能描述
返回表示几何图形 A 和 B 不相交部分的几何图形。
语法格式
sql
GEOMETRY ST_SYMDIFFERENCE(GEOMETRY geomA, GEOMETRY geomB, DOUBLE gridSize = -1);参数说明
- geomA:第一个目标 GEOMETRY 对象。
- geomB:第二个目标 GEOMETRY 对象。
- gridSize:指定大小的网格,可选。
函数返回类型
GEOMETRY 类型
使用说明
- 此函数相当于:
ST_Union(A,B) - ST_Intersection(A,B)。 - 如果指定 gridSize 参数,则输入将捕捉到给定大小的网格,并在同一网格上计算结果顶点。
- 此函数是通过GEOS模块实现的。
- 该函数支持 3d 并且不会丢失 z-index。 但是,结果仅使用 XY 计算。 结果 Z 值被复制、平均或插值。
示例
两条线串的对称差:
sql
SQL> SELECT ST_AsText(
ST_SymDifference(
ST_GeomFromText('LINESTRING(50 100, 50 200)'),
ST_GeomFromText('LINESTRING(50 50, 50 150)')
)
);
+-------------------------------------------------+
| EXPR1 |
+-------------------------------------------------+
| MULTILINESTRING((50 150,50 200),(50 50,50 100)) |
+-------------------------------------------------+
(1 row)3D:
sql
SQL> SELECT ST_AsEWKT(ST_SymDifference(ST_GeomFromEWKT('LINESTRING(1 2 1, 1 4 2)'),
ST_GeomFromEWKT('LINESTRING(1 1 3, 1 3 4)')));
+----------------------------------------------+
| EXPR1 |
+----------------------------------------------+
| MULTILINESTRING((1 3 4,1 4 2),(1 1 3,1 2 1)) |
+----------------------------------------------+
(1 row)