名称

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

大纲

bigint AddEdge(varchar toponame, geometry aline);

Description

使用指定的线串几何图形将边添加到边表,并将关联节点添加到指定toponame模式的节点表,并返回新记录或现有记录的edgeid。 新添加的边两侧都有“宇宙”面,并与其自身相连。

[注意]

如果aline几何图形与现有线串边交叉、重叠、包含或被现有线串边包含,则会引发错误并且不会添加边。

[注意]

aline 的几何形状必须具有与为拓扑定义的相同的 srid,否则将引发无效的空间参考系统错误。

这个函数是由 GEOS 模块执行的。

[警告]

AddEdge 在 3.5.0 版本中已弃用。请改用 TopoGeo_AddLineString

可用性: 2.0.0

示例

Code
SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 893917.2,227591.9 893900.4)', 26986)) AS edgeid;
栅格输出
1
Code
SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.9 893900.4,227622.6 893844.2,227641.6 893816.5,227704.5 893778.5)', 26986)) AS edgeid;
栅格输出
2

This query errors because the edge intersects an existing edge away from the endpoints.

Code
SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.2 893900,227591.9 893900.4,227704.5 893778.5)', 26986)) AS edgeid;
栅格输出
ERROR:  Edge intersects (not on endpoints) with existing edge 1