Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_WRAPX

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

功能描述

此函数分割输入的几何图形,然后按照move参数指定的方向移动落在给定wrap线右侧(对于负移动)或左侧(对于正移动)的每个结果组件 ,最终将碎片重新组合在一起。

语法格式

sql
GEOMETRY ST_WRAPX(GEOMETRY geom, DOUBLE wrap, DOUBLE move);

参数说明

  • geom:目标 GEOMETRY 对象。
  • wrap: 围绕线。
  • move: 移动距离

函数返回类型

GEOMETRY 类型

使用说明

  1. 对于"重新居中"经纬度输入以使感兴趣的特征不会从一侧生成到另一侧非常有用。
  2. 该函数支持 3d 并且不会丢失 z-index。

示例

sql

SQL> CREATE OR REPLACE FUNCTION test(geom geometry, wrap double, amount double, exp geometry) RETURN VARCHAR
     IS
     DECLARE
         obt geometry;
     BEGIN
         obt := ST_NORMALIZE(ST_WRAPX(geom, wrap, amount));
       IF ST_ORDERINGEQUALS(obt, exp) THEN
         RETURN 'OK';
       ELSE
         RETURN 'KO:' || ST_AsEWKT(obt) || ' != ' || ST_AsEWKT(exp);
       END IF;
     END;
     /

SQL>  SELECT 'A1', test(
       'POLYGON((0 0,10 0,10 10,0 10,0 0),
                (1 2,3 2,3 4,1 4,1 2),
                (4 2,6 2,6 4,4 4,4 2),
                (7 2,9 2,9 4,7 4,7 2))', 5, 10,
       'POLYGON((5 0,5 2,6 2,6 4,5 4,5 10,10 10,15 10,15 4,14 4,14 2,15 2,15 0,10 0,5 0),
                (11 2,13 2,13 4,11 4,11 2),
                (7 2,9 2,9 4,7 4,7 2))');

+-------+-------+
| EXPR1 | EXPR2 |
+-------+-------+
| A1    | OK    |
+-------+-------+