PostGIS 3.6 Topology Cheatsheet

Nouveautés de cette version 1Améliorations dans cette version 2   Nécessite GEOS (3.9,3.10,3.11,3.12) ou une version plus récente g3.9  
Les types associés à "Topology"
getfaceedges_returntype    Type composite composé d'un numéro de séquence et d'un numéro d'arête.
TopoGeometry    Un type composite représentant une géométrie topologiquement définie.
validatetopology_returntype    Un type composite composé d'un message d'erreur et de id1 et id2 pour indiquer l'emplacement de l'erreur. Il s'agit du type de retour pour ValidateTopology.

Domaines de topologie
TopoElement    Un tableau de 2 entiers généralement utilisé pour identifier un composant TopoGeometry.
TopoElementArray    Un tableau d'objets TopoElement.

Gestion de la topologie et de TopoGeometry
AddTopoGeometryColumn    Ajoute une colonne topogeometry à une table existante, enregistre cette nouvelle colonne en tant que couche dans topology.layer et renvoie le nouveau numéro d'identification de la couche.
  1. topology_name, schema_name, table_name, column_name, feature_type
  2. topology_name, schema_name, table_name, column_name, feature_type, child_layer
RenameTopoGeometryColumn (layer_table, feature_column, new_name)    Renomme une colonne topogeometry
DropTopology (topology_schema_name)    À utiliser avec précaution : Abandonne un schéma de topologie et supprime sa référence dans la table topology.topology et les références aux tables de ce schéma dans la table geometry_columns.
RenameTopology (old_name, new_name)    Renomme une topologie
DropTopoGeometryColumn (schema_name, table_name, column_name)    Supprime la colonne topogeometry de la table nommée table_name dans le schéma schema_name et désenregistre les colonnes de la table topology.layer.
Populate_Topology_Layer ()    Ajoute les entrées manquantes à la table topology.layer en lisant les métadonnées des tables topo.
TopologySummary (topology_schema_name)    Prend un nom de topologie et fournit des totaux récapitulatifs des types d'objets dans la topologie.
ValidateTopology (toponame, bbox)    Renvoie un ensemble d'objets validatetopology_returntype détaillant les problèmes liés à la topologie.
ValidateTopologyRelation (toponame)    Renvoie des informations sur les enregistrements de relations topologiques non valides
FindTopology    Renvoie un enregistrement topologique par différents moyens.
  1. topogeom
  2. layerTable, layerColumn
  3. layerSchema, layerTable, layerColumn
  4. topoName
  5. id
FindLayer    Renvoie un enregistrement topology.layer par différents moyens.
  1. tg
  2. layer_table, feature_column
  3. schema_name, table_name, feature_column
  4. topology_id, layer_id

Gestion des statistiques de topologie

Constructeurs de topologie
CreateTopology    Crée un nouveau schéma topologique et l'enregistre dans la table topology.topology.
  1. topology_schema_name
  2. topology_schema_name, srid
  3. topology_schema_name, srid, prec
  4. topology_schema_name, srid, prec, hasz
CopyTopology (existing_topology_name, new_name)    Copie une topologie (nœuds, arêtes, faces, couches et TopoGeometries) dans un nouveau schéma
ST_InitTopoGeo  mm (topology_schema_name)    Crée un nouveau schéma topologique et l'enregistre dans la table topology.topology.
ST_CreateTopoGeo  mm (atopology, acollection)    Ajoute une collection de géométries à une topologie vide donnée et renvoie un message détaillant le succès.
TopoGeo_AddPoint (atopology, apoint, tolerance)    Ajoute un point à une topologie existante en utilisant une tolérance et en divisant éventuellement une arête existante.
TopoGeo_AddLineString (atopology, aline, tolerance)    Adds a linestring to an existing topology using a tolerance and possibly splitting existing edges/faces.
TopoGeo_AddPolygon (atopology, apoly, tolerance)    Ajoute un polygone à une topologie existante en utilisant une tolérance et en divisant éventuellement les arêtes/faces existantes. Renvoie les identifiants des faces.
TopoGeo_LoadGeometry (atopology, ageom, tolerance)    Charge une géométrie dans une topologie existante, en effectuant de l'accrochage et des divisions si nécessaire.

Éditeurs de topologie
ST_AddIsoNode  mm (atopology, aface, apoint)    Ajoute un noeud isolé à une face dans une topologie et renvoie le nodeid du nouveau noeud. Si la face est nulle, le noeud est quand même créé.
ST_AddIsoEdge  mm (atopology, anode, anothernode, alinestring)    Ajoute une arête isolée définie par la géométrie alinestring à une topologie reliant deux nœuds isolés existants anode et anothernode et renvoie l'identifiant de l'arête de la nouvelle arête.
ST_AddEdgeNewFaces  mm (atopology, anode, anothernode, acurve)    Ajoutez une nouvelle arête et, si elle divise une face, supprimez la face d'origine et remplacez-la par deux nouvelles faces.
ST_AddEdgeModFace  mm (atopology, anode, anothernode, acurve)    Ajoutez une nouvelle arête et, si elle divise une face, modifiez la face d'origine et ajoutez une nouvelle face.
ST_RemEdgeNewFace  mm (atopology, anedge)    Enlève une arête et, si l'arête enlevée séparait deux faces, supprime les faces originales et les remplace par une nouvelle face.
ST_RemEdgeModFace  mm (atopology, anedge)    Supprime une arête et, si l'arête sépare deux faces, supprime une face et modifie l'autre face pour couvrir l'espace des deux.
ST_ChangeEdgeGeom  mm (atopology, anedge, acurve)    Modifie la forme d'une arête sans affecter la structure de la topologie.
ST_ModEdgeSplit  mm (atopology, anedge, apoint)    Fractionner une arête en créant un nouveau nœud le long d'une arête existante, en modifiant l'arête d'origine et en ajoutant une nouvelle arête.
ST_ModEdgeHeal  mm (atopology, anedge, anotheredge)    Répare deux arêtes en supprimant le nœud qui les relie, en modifiant la première arête et en supprimant la seconde. Renvoie l'identifiant du nœud supprimé.
ST_NewEdgeHeal  mm (atopology, anedge, anotheredge)    Répare deux arêtes en supprimant le nœud qui les relie, en supprimant les deux arêtes et en les remplaçant par une arête dont la direction est la même que la première arête fournie.
ST_MoveIsoNode  mm (atopology, anode, apoint)    Déplace un nœud isolé dans une topologie d'un point à un autre. Si la nouvelle géométrie apoint existe en tant que noeud, une erreur est générée. Retourne la description du déplacement.
ST_NewEdgesSplit  mm (atopology, anedge, apoint)    Fractionne une arête en créant un nouveau nœud le long d'une arête existante, en supprimant l'arête d'origine et en la remplaçant par deux nouvelles arêtes. Renvoie l'identifiant du nouveau nœud créé qui relie les nouvelles arêtes.
ST_RemoveIsoNode  mm (atopology, anode)    Supprime un noeud isolé et renvoie la description de l'action. Si le noeud n'est pas isolé (début ou fin d'une arête), une exception est levée.
ST_RemoveIsoEdge  mm (atopology, anedge)    Supprime une arête isolée et renvoie la description de l'action. Si l'arête n'est pas isolée, une exception est levée.

Accès à la topologie
GetEdgeByPoint (atopology, apoint, tol1)    Trouve l'identifiant d'une arête qui coupe un point donné.
GetFaceByPoint (atopology, apoint, tol1)    Recherche la face intersectant un point donné.
GetFaceContainingPoint (atopology, apoint)    Recherche la face contenant un point.
GetNodeByPoint (atopology, apoint, tol1)    Recherche l'identifiant d'un nœud à un point donné.
GetTopologyID (toponame)    Retourne l'identifiant d'une topologie dans la table topology.topology étant donné le nom de la topologie.
GetTopologySRID (toponame)    Renvoie le SRID d'une topologie dans la table topology.topology en fonction du nom de la topologie.
GetTopologyName (topology_id)    Renvoie le nom d'une topologie (schéma) en fonction de l'identifiant de la topologie.
ST_GetFaceEdges  mm (atopology, aface)    Renvoie un ensemble d'arêtes ordonnées qui délimitent aface.
ST_GetFaceGeometry  mm (atopology, aface)    Renvoie le polygone dans la topologie donnée avec l'identifiant de face spécifié.
GetRingEdges (atopology, aring, max_edges=null)    Renvoie l'ensemble ordonné des identifiants d'arêtes signés rencontrés en évoluant sur un côté d'arête donné.
GetNodeEdges (atopology, anode)    Renvoie un ensemble ordonné d'arêtes incidentes au nœud donné.

Traitement de la topologie
Polygonize (toponame)    Recherche et enregistre toutes les faces définies par les arêtes de la topologie.
AddNode (toponame, apoint, allowEdgeSplitting=false, computeContainingFace=false)    Ajoute un nœud ponctuel à la table des nœuds dans le schéma topologique spécifié et renvoie le nodeid du nouveau nœud. Si le point existe déjà en tant que nœud, l'identifiant du nœud existant est renvoyé.
AddEdge (toponame, aline)    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).
AddFace (toponame, apolygon, force_new=false)    Enregistre une primitive de face dans une topologie et obtient son identifiant.
ST_Simplify (tg, tolerance)    Renvoie une version géométrique "simplifiée" de la TopoGeometry donnée en utilisant l'algorithme de Douglas-Peucker.
RemoveUnusedPrimitives (topology_name, bbox)    Supprime les primitives topologiques qui ne sont pas nécessaires pour définir les objets TopoGeometry existants.

Constructeurs de TopoGeometry
CreateTopoGeom    Crée un nouvel objet géométrique topo à partir d'un tableau d'éléments topo - tg_type : 1 :[multi]point, 2 :[multi]ligne, 3 :[multi]poly, 4:collection
  1. toponame, tg_type, layer_id, tg_objs
  2. toponame, tg_type, layer_id
toTopoGeom    Convertit une géométrie simple en une géométrie topographique.
  1. geom, toponame, layer_id, tolerance
  2. geom, topogeom, tolerance
TopoElementArray_Agg (tefield)    Renvoie un topoelementarray pour un ensemble de tableaux de type, element_id (topoelements).
TopoElement (topo)    Convertit une topogeometry en un topoelement.

Editeurs de TopoGeometry
clearTopoGeom (topogeom)    Efface le contenu d'une géométrie topo.
TopoGeom_addElement (tg, el)    Ajoute un élément à la définition d'une TopoGeometry.
TopoGeom_remElement (tg, el)    Supprime un élément de la définition d'une TopoGeometry.
TopoGeom_addTopoGeom (tgt, src)    Ajoute un élément d'une TopoGeometry à la définition d'une autre TopoGeometry.
toTopoGeom    Ajoute une forme géométrique à une géométrie topographique existante.

Accès aux TopoGeometry
GetTopoGeomElementArray    Renvoie un topoelementarray (un tableau de topoelements) contenant les éléments topologiques et le type de la TopoGeometry donnée (éléments primitifs).
  1. toponame, layer_id, tg_id
  2. tg
GetTopoGeomElements    Renvoie un ensemble d'objets topoelement contenant les éléments topologiques element_id,element_type de la TopoGeometry donnée (éléments primitifs).
  1. toponame, layer_id, tg_id
  2. tg
ST_SRID  mm (tg)    Renvoie l'identifiant de référence spatiale d'une topogeometry.

Sorties TopoGeometry
AsGML    Renvoie la représentation GML d'une topogeometry.
  1. tg
  2. tg, nsprefix_in
  3. tg, visitedTable
  4. tg, visitedTable, nsprefix
  5. tg, nsprefix_in, precision, options
  6. tg, nsprefix_in, precision, options, visitedTable
  7. tg, nsprefix_in, precision, options, visitedTable, idprefix
  8. tg, nsprefix_in, precision, options, visitedTable, idprefix, gmlversion
AsTopoJSON (tg, edgeMapTable)    Renvoie la représentation TopoJSON d'une topogeometry.

Relations spatiales de topologie
Equals  3d (tg1, tg2)    Retourne vrai si deux topogeometries sont composées des mêmes primitives topologiques.
Intersects  3d (tg1, tg2)    Retourne true si une paire de primitives des deux topogeometries s'intersectent.

Importer et exporter des topologies