Ich verwende derzeit die PostGIS-Topologieerweiterung, habe jedoch einige Schwierigkeiten, die Funktionsweise der Struktur zu verstehen:
Einer der wichtigsten Punkte ist die Verwendung von "Layern": Soweit ich weiß, sollten Feature-Attribute in einer Tabelle außerhalb des Topologie-Schemas (des genannten Schemas topo_actualname
) gespeichert und als Layer dieser Topologie mit registriert werden AddTopoGeometryColumn
.
Jedoch ist es eine einfache Möglichkeit , die Attribute (gespeichert in der Schicht Tabelle) mit den entsprechenden Funktionen (Elementen in der verbinden node
, face
oder edge_data
)?
Was ich jetzt mache ist:
SELECT whatever
FROM layer_tb l
JOIN topo_topologyname.edge_data e ON (l.topo).id=edge_id;
Aber ich denke, das ganze layer
Konzept ist ziemlich nutzlos, wenn ich sowohl den Namen des Topologie-Schemas als auch den Namen des Layers kennen muss, um die gewünschten Informationen zu erhalten.
Tatsächlich habe ich verstanden, dass die topo
Spalte auf dem Layer über genügend Informationen verfügt, um zu wissen, wo sich die jeweilige Topologie befindet. Außerdem topology
speichert das Schema für jede Topologie einen Verweis auf jede Layer-Tabelle.
Gibt es eine kurze / einfache / richtige Möglichkeit, Informationen zusammenzufügen? Ich habe nach etwas in den Topologieerweiterungsfunktionen gesucht , aber nichts Nützliches gefunden.
quelle
TopoGeometry
direkt mit einer Geometrie:SELECT whatever, ST_AsText(topogeom::geometry) FROM layer_tb
. Die Sache ist, dass, wenn die Kanten später geteilt werden, es scheint, dass sich die Geometrie infolgedessen ändern könnte.Antworten:
Die Zuordnung der Attribute zur Topologie ist nicht direkt . Die Beziehung ist für einen Knoten ungefähr so:
Ihre select-Anweisung würde also eher so lauten:
quelle