В настоящее время я использую расширение топологии PostGIS, но у меня есть некоторые трудности в понимании того, как работает структура:
Одним из ключевых моментов является использование «слоев»: насколько я понимаю, атрибуты объектов должны храниться в таблице из схемы топологии (названной topo_actualname
) и регистрироваться как слой этой топологии с помощью AddTopoGeometryColumn
.
Однако, есть простой способ , чтобы присоединиться к атрибутам (хранящиеся в таблице слоя) с соответствующими особенностями (элементами в node
, face
или edge_data
)?
Теперь, что я делаю, это:
SELECT whatever
FROM layer_tb l
JOIN topo_topologyname.edge_data e ON (l.topo).id=edge_id;
Но я полагаю, что вся layer
концепция довольно бесполезна, если мне нужно знать как имя схемы топологии, так и имя слоя, чтобы получить необходимую информацию.
На самом деле, я думаю, что я понял, что topo
столбец на уровне имеет достаточно информации, чтобы знать, где находится соответствующая топология, и, кроме того, topology
схема хранит ссылку на каждую таблицу уровня для каждой топологии.
Существует ли короткий / простой / правильный способ объединения информации? Я искал что-то в функциях расширения топологии , но не смог найти ничего полезного.
источник
TopoGeometry
непосредственно к геометрии:SELECT whatever, ST_AsText(topogeom::geometry) FROM layer_tb
. Дело в том, что если позже края будут разделены, кажется, что геометрия может измениться в результате.Ответы:
Сопоставление атрибутов с топологией не является прямым . Отношения что - то вроде этого для узла:
Таким образом, ваш выбор оператора будет больше похож на это:
источник