PostGIS: як об’єднати суміжні функції, що мають однакові значення атрибутів?


9

У мене є велика таблиця PostGIS, в якій зберігаються функції ліній.

Я хотів би об'єднати функції, які обидва з'єднані один з одним і дали значенням атрибутів однакові. Ось нижче приклад того, що я хотів би досягти.

  • Найкращі функції (чорні та сині) не об'єднуються, оскільки вони не є суміжними, навіть якщо значення їх атрибутів однакові
  • Особливості зеленого та червоного кольорів об’єднані, оскільки вони відповідають обом умовам
  • Особливість жовтого кольору залишається як і раніше.

Як би ви цього домоглися за допомогою SQL-запиту? введіть тут опис зображення

Відповіді:


7

Це можна зробити за допомогою ST_ClusterIntersecting :

SELECT attr, unnest(ST_ClusterIntersecting(geom))
FROM lines
GROUP by attr;

Дякую @dbaston! Я спробую це в найближчі дні і повідомляю вас.
wiltomap

Функція ST_ClusterIntersecting()доступна у PostGIS 2.2 ... Чи є рішення зі старшою версією? Я перебуваю на PostGIS 2.1.8, і наразі не можу оновити PostGIS.
wiltomap

Нічого, що я вважав би гарним .... насправді ця ситуація мотивувала мене писати ST_ClusterIntersecting. Деякі ідеї до 2.2 є на веб-
dbaston
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.