Actualmente estoy usando la extensión de topología PostGIS, pero tengo algunas dificultades para comprender cómo funciona la estructura:
Uno de los puntos clave es el uso de "capas": por lo que entiendo, los atributos de las características deben almacenarse en una tabla fuera del esquema de la topología (la nombrada topo_actualname
) y registrarse como una capa de esa topología AddTopoGeometryColumn
.
Sin embargo, hay una manera sencilla de unirse a los atributos (almacenados en la tabla de capas) con las respectivas características (elementos en el node
, face
o edge_data
)?
Ahora, lo que hago es:
SELECT whatever
FROM layer_tb l
JOIN topo_topologyname.edge_data e ON (l.topo).id=edge_id;
Pero supongo que todo el layer
concepto es bastante inútil si tengo que conocer tanto el nombre del esquema de topología como el nombre de la capa para obtener la información que quiero.
De hecho, creo que entendí que la topo
columna en la capa tiene suficiente información para saber dónde está la topología respectiva y, además, el topology
esquema almacena una referencia a cada tabla de capa para cada topología.
¿Hay una manera corta / simple / adecuada de unir información? Estaba buscando algo en las funciones de extensión de topología , pero no pude encontrar nada útil.
fuente
TopoGeometry
directamente a una geometría:SELECT whatever, ST_AsText(topogeom::geometry) FROM layer_tb
. La cuestión es que si los bordes se dividen más tarde, parece que la geometría podría cambiar como resultado.Respuestas:
La asignación de los atributos a la topología no es directa . La relación es algo así para un nodo:
Entonces su declaración de selección sería más como esta:
fuente