Name

AddEdge — Ajoute une arête linéaire à la table des arêtes et les points de départ et d'arrivée associés à la table des nœuds de points du schéma topologique spécifié en utilisant la géométrie linéaire spécifiée et renvoie l'identifiant de l'arête nouvelle (ou existante).

Synopsis

bigint AddEdge(varchar toponame, geometry aline);

Description

Ajoute une arête à la table des arêtes et les nœuds associés à la table des nœuds du schéma toponame spécifié en utilisant la géométrie de ligne spécifiée et renvoie l'identifiant de l'arête du nouvel enregistrement ou de l'enregistrement existant. L'arête nouvellement ajoutée a une face "univers" des deux côtés et est liée à elle-même.

[Note]

Si la géométrie aline croise, chevauche, contient ou est contenue par un bord de ligne existant, une erreur est générée et l'arête n'est pas ajoutée.

[Note]

La géométrie de aline doit avoir la même srid que celle définie pour la topologie, sinon une erreur sys de référence spatiale non valide sera levée.

Effectué par le module GEOS.

[Warning]

AddEdge est obsolète depuis la version 3.5.0. Utilisez plutôt TopoGeo_AddLineString.

Disponibilité : 2.0.0

Exemples

SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 893917.2, 227591.9 893900.4)', 26986)) AS 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;
2

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

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