拓扑处理函数

Polygonize

Polygonize — 查找并注册由拓扑边定义的所有面。

语法

polygonize ::=

参数

toponame

varchar 类型。

返回值

返回值为 text 类型。

示例

SELECT topology.polygonize('tt');
POLYGONIZE(text)      |
----------------------
4 faces registered    |
总数目:1

AddNode

AddNode — 将点节点添加到指定拓扑模式的节点表中,并返回新节点的nodeid。 如果点已经作为节点存在,则返回现有的nodeid。

语法

addnode ::=

参数

toponame

varchar 类型。

apoint

geometry 类型。

allowEdgeSplitting

boolean 类型。如果发现任何穿过节点的边,则会引发异常或分割边,具体取决于 allowedEdgeSplitting 参数值。

computeContainingFace

boolean 类型。如果computeContainingFace为真,新添加的节点将计算出正确的包含面。

返回值

返回值为 integer 类型。

示例

SELECT topology.addNode('nodes', 'POINT(0 0)');
ADDNODE(int)      |
------------------
1                 |
总数目:1

SELECT topology.AddNode('nodes', 'POINT(10 0)', false, true);
ADDNODE(int)      |
------------------
2                 |
总数目:1

AddEdge

AddEdge — 使用指定的线串几何将线串边添加到边表,并将关联的起点和终点添加到指定拓扑方案的点节点表,并返回新(或现有)边的edgeid。

语法

addedge ::=

参数

toponame

varchar 类型。

aline

geometry 类型。

返回值

返回值为 integer 类型。

示例

SELECT 'e1',  topology.addEdge('tt', 'LINESTRING(0 0, 8 0)');
?COLUMN?(varchar)      |ADDEDGE(int)      |
-----------------------------------------
e1                     |1                 |
总数目:1

AddFace

AddFace — 将面基元注册到拓扑并获取其标识符。

语法

addface ::=

参数

toponame

varchar 类型。

apolygon

geometry 类型。

force_new

boolean 类型。如果多边形几何体已经作为面存在,则:如果force_new为假(默认),则返回现有面的面id; 如果force_new为true,新的id将被分配给新产生的面。

返回值

返回值为 integer 类型。

示例

SELECT 'f1',  topology.addFace('tt', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
?COLUMN?(varchar)      |ADDFACE(int)      |
-----------------------------------------
f1                     |1                 |
总数目:1

ST_Simplify

ST_Simplify — 使用 Douglas-Peucker 算法返回给定 TopoGeometry 的“简化”几何版本。

语法

st_simplify ::=

参数

tg

TopoGeometry 类型。

tolerance

float8 类型。

返回值

返回值为 geometry 类型。

示例

SELECT 'S1',
  ST_Equals(ST_Simplify( G, 1), 'POLYGON((0 0,1 3,-2 3,0 0))'),
  ST_Equals(topology.ST_Simplify("tg", 1), 'POLYGON((0 0,1 3,-2 3,0 0))')
FROM tt.areas WHERE id = 1;
?COLUMN?(varchar)      |ST_EQUALS(boolean)      |ST_EQUALS(boolean)      |
-----------------------------------------------------------------------
S1                     |false                   |true                    |
总数目:1