ST_SNAPTOGRID
📄字数 1.2K
👁️阅读量 加载中...
功能描述
将输入几何体的所有点捕捉到由其原点和像元大小定义的网格。
语法格式
sql
GEOMETRY ST_SNAPTOGRID(GEOMETRY geomA, DOUBLE originX, DOUBLE originY, DOUBLE sizeX, DOUBLE sizeY);
GEOMETRY ST_SNAPTOGRID(GEOMETRY geomA, DOUBLE sizeX, DOUBLE sizeY);
GEOMETRY ST_SNAPTOGRID(GEOMETRY geomA, DOUBLE size);
GEOMETRY ST_SNAPTOGRID(GEOMETRY geomA, GEOMETRY pointOrigin, DOUBLE sizeX, DOUBLE sizeY, DOUBLE sizeZ, flDOUBLEoat sizeM);参数说明
- geomA:目标 GEOMETRY 对象。
- originX:原点 X值。
- originY:原点 Y值。
- sizeX:像元 X 值。
- sizeY:像元 Y 值。
- sizeZ:像元 Z 值。
- sizeM:像元 M 值。
- size:像元大小, X、Y 值
- pointOrigin:原点, POINT 对象。
函数返回类型
GEOMETRY 类型
使用说明
- 删除落在同一单元上的连续点。如果输出点不足以定义给定类型的几何图形,则最终返回 NULL。
- 集合中折叠的几何图形将从其中剥离。
- 对于降低精度很有用。
- 返回的几何图形可能会失去其简单性(请参阅ST_IsSimple)。
- 返回的几何图形将具有与输入几何图形相同的维度,但更高的维度值保持不变。
- 该函数支持 3d 并且不会丢失 z-index。
示例
捕捉网格精度为0.001的几何体,并删除落在同一单元上的连续点:
sql
SQL> SELECT TO_CHAR(ST_ASTEXT(ST_SNAPTOGRID(
ST_GEOMFROMTEXT('LINESTRING(1.1115678 2.123, 4.111111 3.2374897, 4.11112 3.23748667)'),0.001)));
+-------------------------------------+
| EXPR1 |
+-------------------------------------+
| LINESTRING(1.112 2.123,4.111 3.237) |
+-------------------------------------+捕捉 4D 几何体:
sql
SQL> SELECT TO_CHAR(ST_ASEWKT(ST_SNAPTOGRID(
ST_GEOMFROMEWKT('LINESTRING(-1.1115678 2.123 2.3456 1.11111,
4.111111 3.2374897 3.1234 1.1111, -1.11111112 2.123 2.3456 1.1111112)'),
ST_GEOMFROMEWKT('POINT(1.12 2.22 3.2 4.4444)'),
0.1, 0.1, 0.1, 0.01)));
+------------------------------------------------------------------------------+
| EXPR1 |
+------------------------------------------------------------------------------+
| LINESTRING(-1.08 2.12 2.3 1.1144,4.12 3.22 3.1 1.1144,-1.08 2.12 2.3 1.1144) |
+------------------------------------------------------------------------------+捕捉 4D 几何体,设置size为0.01,只改变 X 和 Y 的值,Z 和 M 值不变:
sql
SQL> SELECT TO_CHAR(ST_ASEWKT(ST_SNAPTOGRID(ST_GEOMFROMEWKT('LINESTRING(-1.1115678 2.123 3 2.3456,4.111111 3.2374897 3.1234 1.1111)'), 0.01)));
+---------------------------------------------------------+
| EXPR1 |
+---------------------------------------------------------+
| LINESTRING(-1.11 2.12 3 2.3456,4.11 3.24 3.1234 1.1111) |
+---------------------------------------------------------+