ST_DIFFERENCE
📄字数 646
👁️阅读量 加载中...
功能描述
返回几何图形 A 与 B 不相交的部分。
语法格式
sql
GEOMETRY ST_DIFFERENCE(GEOMETRY geomA, GEOMETRY geomB, DOUBLE gridSize = -1);参数说明
- geomA:第一个目标 GEOMETRY 对象。
- geomB:第二个目标 GEOMETRY 对象。
- gridSize:给定大小的网格,可选。
函数返回类型
GEOMETRY 类型
使用说明
- 此函数相当于:
A - ST_Intersection(A,B)。 - 如果 A 完全包含在 B 中,则返回空几何结构。
- 此函数与输入顺序有关。ST_DIFFERENCE(A, B) 始终返回 A 的一部分。
- 如果指定 gridSize 参数,则输入将捕捉到给定大小的网格,并在同一网格上计算结果顶点。
- 此函数是由 GEOS 模块执行的。
- 该函数支持 3d 并且不会丢失 z-index。 但是,结果仅使用 XY 计算。 结果 Z 值被复制、平均或插值。
示例
两个线串之间的差异:
sql
SQL> SELECT ST_AsText(
ST_Difference(
'LINESTRING(50 100, 50 200)'::geometry,
'LINESTRING(50 50, 50 150)'::geometry
)
);
+---------------------------+
| EXPR1 |
+---------------------------+
| LINESTRING(50 150,50 200) |
+---------------------------+
(1 row)3D点的差异:
sql
SQL> SELECT ST_AsEWKT( ST_Difference(
'MULTIPOINT(-118.58 38.38 5,-118.60 38.329 6,-118.614 38.281 7)' :: geometry,
'POINT(-118.614 38.281 5)' :: geometry
) );
+---------------------------------------------+
| EXPR1 |
+---------------------------------------------+
| MULTIPOINT(-118.6 38.329 6,-118.58 38.38 5) |
+---------------------------------------------+
(1 row)