PostGIS 3.5 Topology Cheatsheet

Neu in dieser Version 1Verbessert in dieser Version 2   Erfordert GEOS (3.9,3.10,3.11,3.12) oder höher g3.9  
Topologische Datentypen
getfaceedges_returntype    Ein zusammengesetzter Typ, der aus einer Sequenznummer und einer Randnummer besteht.
TopoGeometry    Ein zusammengesetzter Typ, der eine topologisch festgelegte Geometrie darstellt.
validatetopology_returntype    Ein zusammengesetzter Datentyp, der aus einer Fehlermeldung und id1 und id2 besteht. id1 und id2 deuten auf die Stelle hin, an der der Fehler auftrat. Dies ist der von ValidateTopology zurückgegebene Datentyp.

Topologische Domänen
TopoElement    Ein Feld mit 2 Ganzzahlen, welches in der Regel für die Auffindung einer Komponente einer TopoGeometry dient.
TopoElementArray    Ein Feld mit TopoElement Objekten.

Verwaltung von Topologie und TopoGeometry
AddTopoGeometryColumn    Fügt ein TopoGeometry Attribut an eine bestehende Tabelle an, registriert dieses neue Attribut als einen Layer in topology.layer und gibt die neue layer_id zurück.
  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)    Benennt eine topogeometrische Spalte um
DropTopology (topology_schema_name)    Bitte mit Vorsicht verwenden: Löscht ein topologisches Schema und dessen Referenz in der Tabelle topology.topology, sowie die Referenzen zu den Tabellen in diesem Schema aus der Tabelle geometry_columns.
RenameTopology (old_name, new_name)    Benennt eine Topologie um
DropTopoGeometryColumn (schema_name, table_name, column_name)    Entfernt ein TopoGeometry-Attribut aus der Tabelle mit der Bezeichnung table_name im Schema schema_name und entfernt die Registrierung der Attribute aus der Tabelle "topology.layer".
Populate_Topology_Layer ()    Fügt fehlende Einträge zu der Tabelle topology.layer hinzu, indem Metadaten aus den topologischen Tabellen ausgelesen werden.
TopologySummary (topology_schema_name)    Nimmt den Namen einer Topologie und liefert eine Zusammenfassung der Gesamtsummen der Typen und Objekte in der Topologie.
ValidateTopology (toponame, bbox)    Liefert eine Menge validatetopology_returntype Objekte, die Probleme mit der Topologie beschreiben.
ValidateTopologyRelation (toponame)    Gibt Informationen über ungültige Topologiebeziehungssätze zurück
FindTopology    Gibt einen Topologie-Datensatz mit anderen Mitteln zurück.
  1. topogeom
  2. layerTable, layerColumn
  3. layerSchema, layerTable, layerColumn
  4. topoName
  5. id
FindLayer    Gibt einen topology.layer-Datensatz mit anderen Mitteln zurück.
  1. tg
  2. layer_table, feature_column
  3. schema_name, table_name, feature_column
  4. topology_id, layer_id

Verwaltung der Topologie-Statistiken

Topologie Konstruktoren
CreateTopology    Erstellt ein neues Topologie-Schema und trägt es in die Tabelle topology.topology ein.
  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)    Erstellt eine Kopie einer Topologie (Knoten, Kanten, Flächen, Ebenen und TopoGeometrien) in ein neues Schema
ST_InitTopoGeo  mm (topology_schema_name)    Erstellt ein neues Topologie-Schema und trägt es in die Tabelle topology.topology ein.
ST_CreateTopoGeo  mm (atopology, acollection)    Fügt eine Sammlung von Geometrien an eine leere Topologie an und gibt eine Bestätigungsmeldung aus.
TopoGeo_AddPoint (atopology, apoint, tolerance)    Fügt einen Punkt, unter Berücksichtigung einer Toleranz, an eine bestehende Topologie an. Existierende Kanten werden eventuell aufgetrennt.
TopoGeo_AddLineString (atopology, aline, tolerance)    Fügt einen Linienzug, unter Berücksichtigung einer Toleranz, an eine bestehende Topologie an. Existierende Kanten/Maschen werden eventuell aufgetrennt. Gibt den Identifikator der Kante aus.
TopoGeo_AddPolygon (atopology, apoly, tolerance)    Fügt ein Polygon, unter Berücksichtigung einer Toleranz, an eine bestehende Topologie an. Existierende Kanten/Maschen werden eventuell aufgetrennt. Gibt den Identifikator der Masche zurück.
TopoGeo_LoadGeometry  1 (atopology, ageom, tolerance)    Load a geometry into an existing topology, snapping and splitting as needed.

Topologie Editoren
ST_AddIsoNode  mm (atopology, aface, apoint)    Fügt einen isolierten Knoten zu einer Masche in einer Topologie hinzu und gibt die "nodeid" des neuen Knotens aus. Falls die Masche NULL ist, wird der Knoten dennoch erstellt.
ST_AddIsoEdge  mm (atopology, anode, anothernode, alinestring)    Fügt eine isolierte Kante, die durch die Geometrie alinestring festgelegt wird zu einer Topologie hinzu, indem zwei bestehende isolierte Knoten anode und anothernode verbunden werden. Gibt die "edgeid" der neuen Kante aus.
ST_AddEdgeNewFaces  mm (atopology, anode, anothernode, acurve)    Fügt eine Kante hinzu. Falls dabei eine Masche aufgetrennt wird, so wird die ursprüngliche Masche gelöscht und durch zwei neue Maschen ersetzt.
ST_AddEdgeModFace  mm (atopology, anode, anothernode, acurve)    Fügt eine Kante hinzu. Falls dabei eine Masche aufgetrennt wird, so wird die ursprüngliche Masche angepasst und eine weitere Masche hinzugefügt.
ST_RemEdgeNewFace  mm (atopology, anedge)    Entfernt eine Kante. Falls die gelöschte Kante zwei Maschen voneinander getrennt hat, werden die ursprünglichen Maschen gelöscht und durch einer neuen Masche ersetzt.
ST_RemEdgeModFace  mm (atopology, anedge)    Entfernt eine Kante, und wenn die Kante zwei Flächen trennt, wird eine Fläche gelöscht und die andere Fläche so verändert, dass sie den Raum beider Flächen abdeckt.
ST_ChangeEdgeGeom  mm (atopology, anedge, acurve)    Ändert die geometrische Form einer Kante, ohne sich auf die topologische Struktur auszuwirken.
ST_ModEdgeSplit  mm (atopology, anedge, apoint)    Trennt eine Kante auf, indem ein neuer Knoten entlang einer bestehenden Kante erstellt wird. Ändert die ursprüngliche Kante und fügt eine neue Kante hinzu.
ST_ModEdgeHeal  mm (atopology, anedge, anotheredge)    "Heilt" zwei Kanten, indem der verbindende Knoten gelöscht wird, die erste Kante modifiziert und die zweite Kante gelöscht wird. Gibt die ID des gelöschten Knoten zurück.
ST_NewEdgeHeal  mm (atopology, anedge, anotheredge)    "Heilt" zwei Kanten, indem der verbindende Knoten und beide Kanten gelöscht werden. Die beiden Kanten werden durch eine Kante ersetzt, welche dieselbe Ausichtung wie die erste Kante hat.
ST_MoveIsoNode  mm (atopology, anode, apoint)    Verschiebt einen isolierten Knoten in einer Topologie von einer Stelle an eine andere. Falls die neue Geometrie apoint bereits als Knoten existiert, wird eine Fehlermeldung ausgegeben. Gibt eine Beschreibung der Verschiebung aus.
ST_NewEdgesSplit  mm (atopology, anedge, apoint)    Trennt eine Kante auf, indem ein neuer Knoten entlang einer bestehenden Kante erstellt, die ursprüngliche Kante gelöscht und durch zwei neue Kanten ersetzt wird. Gibt die ID des neu erstellten Knotens aus, der die neuen Kanten verbindet.
ST_RemoveIsoNode  mm (atopology, anode)    Löscht einen isolierten Knoten und gibt eine Beschreibung der getroffenen Maßnahmen aus. Falls der Knoten nicht isoliert ist (ist der Anfangs- oder der Endpunkt einer Kante), wird eine Fehlermeldung ausgegeben.
ST_RemoveIsoEdge  mm (atopology, anedge)    Löscht einen isolierten Knoten und gibt eine Beschreibung der getroffenen Maßnahmen aus. Falls der Knoten nicht isoliert ist, wird eine Fehlermeldung ausgegeben.

Zugriffsfunktionen zur Topologie
GetEdgeByPoint (atopology, apoint, tol1)    Findet die edge-id einer Kante die einen gegebenen Punkt schneidet.
GetFaceByPoint (atopology, apoint, tol1)    Findet eine Fläche, die einen bestimmten Punkt schneidet.
GetFaceContainingPoint (atopology, apoint)    Findet die Fläche, die einen Punkt enthält.
GetNodeByPoint (atopology, apoint, tol1)    Findet zu der Lage eines Punktes die node-id eines Knotens.
GetTopologyID (toponame)    Gibt für den Namen einer Topologie die ID der Topologie in der Tabelle "topology.topology" aus.
GetTopologySRID (toponame)    Gibt für den Namen einer Topologie, die SRID der Topologie in der Tabelle "topology.topology" aus.
GetTopologyName (topology_id)    Gibt für die ID der Topologie, den Namen der Topologie (Schema) zurück.
ST_GetFaceEdges  mm (atopology, aface)    Gibt die Kanten, die aface begrenzen, sortiert aus.
ST_GetFaceGeometry  mm (atopology, aface)    Gibt für eine Topologie und eine bestimmte Maschen-ID das Polygon zurück.
GetRingEdges (atopology, aring, max_edges=null)    Gibt eine sortierte Liste von mit Vorzeichen versehenen Identifikatoren der Kanten zurück, die angetroffen werden, wenn man an der Seite der gegebenen Kante entlangwandert.
GetNodeEdges (atopology, anode)    Gibt für einen Knoten die sortierte Menge der einfallenden Kanten aus.

Topologie Verarbeitung
Polygonize (toponame)    Findet und registriert alle Maschen, die durch die Kanten der Topologie festgelegt sind.
AddNode (toponame, apoint, allowEdgeSplitting=false, computeContainingFace=false)    Fügt einen Knotenpunkt zu der Tabelle "node" in dem vorgegebenen topologischen Schema hinzu und gibt die "nodeid" des neuen Knotens aus. Falls der Punkt bereits als Knoten existiert, wird die vorhandene nodeid zurückgegben.
AddEdge (toponame, aline)    Fügt die Kante eines Linienzugs in der Tabelle "edge", und die zugehörigen Anfangs- und Endpunkte in die Knotenpunkttabelle, des jeweiligen topologischen Schemas ein. Dabei wird die übergebene Linienzuggeometrie verwendet und die edgeid der neuen (oder bestehenden) Kante ausgegeben.
AddFace (toponame, apolygon, force_new=false)    Registriert die Elementarstruktur einer Masche in einer Topologie und gibt den Identifikator der Masche aus.
ST_Simplify (tg, tolerance)    Gibt für eine TopoGeometry eine "vereinfachte" geometrische Version zurück. Verwendet den Douglas-Peucker Algorithmus.
RemoveUnusedPrimitives (topology_name, bbox)    Entfernt Topologieprimitive, die zur Definition bestehender TopoGeometry-Objekte nicht benötigt werden.

TopoGeometry Konstruktoren
CreateTopoGeom    Erzeugt ein neues topologisch geometrisches Objekt aus einem Feld mit topologischen Elementen - tg_type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection
  1. toponame, tg_type, layer_id, tg_objs
  2. toponame, tg_type, layer_id
toTopoGeom    Wandelt eine einfache Geometrie in eine TopoGeometry um.
  1. geom, toponame, layer_id, tolerance
  2. geom, topogeom, tolerance
TopoElementArray_Agg (tefield)    Gibt für eine Menge an element_id, type Feldern (topoelements) ein topoelementarray zurück.
TopoElement (topo)    Konvertiert eine Topogeometrie in ein Topoelement.

TopoGeometry Editoren
clearTopoGeom (topogeom)    Löscht den Inhalt einer TopoGeometry.
TopoGeom_addElement (tg, el)    Fügt ein Element zu der Definition einer TopoGeometry hinzu.
TopoGeom_remElement (tg, el)    Entfernt ein Element aus der Definition einer TopoGeometry.
TopoGeom_addTopoGeom (tgt, src)    Fügt Element einer TopoGeometry zur Definition einer anderen TopoGeometry hinzu.
toTopoGeom    Fügt eine Geometrie zu einer bestehenden TopoGeometry hinzu.

TopoGeometry Accessors
GetTopoGeomElementArray    Gibt ein topoelementarray (ein Feld von topoelements) zurück, das die topologischen Elemente und den Datentyp der gegebenen TopoGeometry (die Elementarstrukturen) enthält.
  1. toponame, layer_id, tg_id
  2. tg
GetTopoGeomElements    Gibt für eine TopoGeometry (Elementarstrukturen) einen Satz an topoelement Objekten zurück, welche die topologische element_id und den element_type beinhalten.
  1. toponame, layer_id, tg_id
  2. tg
ST_SRID  mm (tg)    Gibt den räumlichen Referenzbezeichner für eine Topogeometrie zurück.

TopoGeometry Ausgabe
AsGML    Gibt die GML-Darstellung einer TopoGeometry zurück.
  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)    Gibt die TopoJSON-Darstellung einer TopoGeometry zurück.

Räumliche Beziehungen einer Topologie
Equals  3d (tg1, tg2)    Gibt TRUE zurück, wenn zwei TopoGeometry Objekte aus denselben topologischen Elementarstrukturen bestehen.
Intersects  3d (tg1, tg2)    Gibt TRUE zurück, wenn sich kein beliebiges Paar von Elemtarstrukturen zweier TopoGeometry Objekte überschneidet.

Importieren und Exportieren von Topologien