Obecnie używam rozszerzenia topologii PostGIS, ale mam pewne trudności ze zrozumieniem, jak działa struktura:
Jednym z kluczowych punktów jest użycie „warstw”: jak rozumiem, atrybuty cech powinny być przechowywane w tabeli poza schematem topologii (o nazwie topo_actualname
) i zarejestrowane jako warstwa tej topologii AddTopoGeometryColumn
.
Jednakże, istnieje prosty sposób, aby dołączyć atrybuty (przechowywane w tabeli Layer) z odpowiednich funkcji (w elementach node
, face
lub edge_data
)?
Teraz robię to:
SELECT whatever
FROM layer_tb l
JOIN topo_topologyname.edge_data e ON (l.topo).id=edge_id;
Ale layer
wydaje mi się, że cała koncepcja jest raczej bezużyteczna, jeśli muszę znać zarówno nazwę schematu topologii, jak i nazwę warstwy, aby uzyskać potrzebne informacje.
W rzeczywistości wydaje mi się, że rozumiem, że topo
kolumna na warstwie ma wystarczającą ilość informacji, aby wiedzieć, gdzie jest odpowiednia topologia, a ponadto topology
schemat przechowuje odniesienie do każdej tabeli warstw dla każdej topologii.
Czy istnieje krótki / prosty / właściwy sposób łączenia informacji? Szukałem czegoś w funkcjach rozszerzenia topologii , ale nie znalazłem nic przydatnego.
źródło
TopoGeometry
bezpośrednio do geometrii:SELECT whatever, ST_AsText(topogeom::geometry) FROM layer_tb
. Chodzi o to, że jeśli krawędzie zostaną później podzielone, wydaje się, że geometria może się w rezultacie zmienić.Odpowiedzi:
Odwzorowanie atrybutów na topologię nie jest bezpośrednie . Związek jest coś takiego dla węzła:
Zatem twoja instrukcja select będzie wyglądać mniej więcej tak:
źródło