Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_SYMDIFFERENCE

📄字数 621
👁️阅读量 加载中...

功能描述

返回表示几何图形 A 和 B 不相交部分的几何图形。

语法格式

sql
GEOMETRY ST_SYMDIFFERENCE(GEOMETRY geomA, GEOMETRY geomB, DOUBLE gridSize = -1);

参数说明

  • geomA:第一个目标 GEOMETRY 对象。
  • geomB:第二个目标 GEOMETRY 对象。
  • gridSize:指定大小的网格,可选。

函数返回类型

GEOMETRY 类型

使用说明

  1. 此函数相当于:ST_Union(A,B) - ST_Intersection(A,B)
  2. 如果指定 gridSize 参数,则输入将捕捉到给定大小的网格,并在同一网格上计算结果顶点。
  3. 此函数是通过GEOS模块实现的。
  4. 该函数支持 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)