拓扑处理函数¶
Polygonize¶
Polygonize — 查找并注册由拓扑边定义的所有面。
返回值¶
返回值为 text 类型。
示例¶
SELECT topology.polygonize('tt');
POLYGONIZE(text) |
----------------------
4 faces registered |
总数目:1
AddNode¶
AddNode — 将点节点添加到指定拓扑模式的节点表中,并返回新节点的nodeid。 如果点已经作为节点存在,则返回现有的nodeid。
参数¶
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。
返回值¶
返回值为 integer 类型。
示例¶
SELECT 'e1', topology.addEdge('tt', 'LINESTRING(0 0, 8 0)');
?COLUMN?(varchar) |ADDEDGE(int) |
-----------------------------------------
e1 |1 |
总数目:1
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 的“简化”几何版本。
返回值¶
返回值为 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