Name

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

Synopsis

integer AddEdge(varchar toponame, geometry aline);

描述

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

[Note]

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

[Note]

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

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

[Warning]

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

可用性: 2.0.0

示例

SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 893917.2,227591.9 893900.4)', 26986) ) As edgeid;
-- result-
edgeid
--------
 1

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;
-- result --
edgeid
--------
 2

 SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.2 893900, 227591.9 893900.4,
  227704.5 893778.5)', 26986) ) As edgeid;
 -- gives error --
 ERROR:  Edge intersects (not on endpoints) with existing edge 1