Я намагаюся провести базовий типологічний аналіз за допомогою PostGIS. Моя мета - знайти будь-які багатокутники, які стосуються інших багатокутників. Для цього я думав, що ST_GetFaceEdges
це спрацює ( посилання ). Я хочу перевірити кожен багатокутник у своїй базі даних та перерахувати всі інші багатокутники, які торкаються його. На зображенні нижче я б очікував, що результат скаже, що два багатокутники (це будівлі) торкаються однієї будівлі, а результати інших 4 говорять про те, що вони торкаються 0 багатокутників.
Однак у мене виникають труднощі з розумінням, що робити. Коли я намагався скопіювати приклад, було кілька його частин, які я не зрозумів.
-- Returns the sequence, edge id
-- , and geometry of the edges that bound face 1
-- If you just need geom and seq, can use ST_GetFaceGeometry
SELECT t.seq, t.edge, geom
FROM topology.ST_GetFaceEdges('tt',1) As t(seq,edge)
INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;
Я не впевнений, чи topology
це ім’я таблиці, стовпця чи частини функції. Я припускав, що це був стіл, але я не впевнений.
-- try out on sample of data
-- Table is called 'TestArea', column used is 'fid_1'
SELECT t.seq, t.edge, geom
FROM TestArea.ST_GetFaceEdges('fid_1', 1) As t(seq,edge)
INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;
Я також не впевнений, яка функція внутрішнього з'єднання - це приєднує результат до вихідного об'єкта?
AddTopoGeometryColumn
таблицю до запуску запиту? На основі результатів зі ST_Touches
значень я перевірив все, що має сенс, але, можливо, це було випадково.
AddTopoGeometryColumn
, але і ваші дані повинні бути оцифровані топологічно послідовно. Наприклад, за традицією ви оцифрували два двоквартирні будинки як два багатокутники та використовували "прив'язку до вершини" у вашому ГІС для забезпечення спільних дотиків до стіни, але вони зберігатимуться як дві збігаються лінії з збігом точок на кожному кінці. Але топологічно оцифровувати їх означає, що спільна стіна насправді є лише однією лінією та двома вузлами, що розділяються кожним багатокутником. ST_Touches
просто проводить просторову перевірку близькості, а не топологічну.
CreateTopology
і так далі ( bit.ly/oLk8QY ) Але так, як на мене виглядає дигіталізація ваших будівель наче вони топологічно відрізняються, незважаючи на візуальну близькість їхніх країв. Просто щось, про що мають знати майбутні розпитувачі.