Name

AddEdge — Lägger till en linestringskant i tabellen edge och associerade start- och slutpunkter i tabellen point nodes i det angivna topologischemat med hjälp av den angivna linestringsgeometrin och returnerar edgeid för den nya (eller befintliga) kanten.

Synopsis

bigint AddEdge(varchar toponame, geometry aline);

Beskrivning

Lägger till en edge i edge-tabellen och associerade noder i nodes-tabellen i det angivna toponame-schemat med hjälp av den angivna geometrin för linestrings och returnerar edgeid för den nya eller befintliga posten. Den nyligen tillagda kanten har "universe"-yta på båda sidor och länkar till sig själv.

[Note]

Om aline-geometrin korsar, överlappar, innehåller eller är innesluten av en befintlig linestringskant, så kastas ett fel och kanten läggs inte till.

[Note]

Geometrin för aline måste ha samma srid som definierats för topologin, annars kommer ett ogiltigt sys-fel för spatial referens att kastas.

Utförs av GEOS-modulen.

[Warning]

AddEdge är föråldrad från och med 3.5.0. Använd TopoGeo_AddLineString istället.

Tillgänglighet: 2.0.0

Exempel

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