PostGIS: jak połączyć ciągłe funkcje o tych samych wartościach atrybutów?

9

Mam duże funkcje linii do przechowywania tabeli PostGIS.

Chciałbym scalić funkcje, które są ze sobą połączone i które mają identyczne wartości atrybutów. Oto przykład tego, co chciałbym osiągnąć.

  • Najbardziej zewnętrzne funkcje (czarne i niebieskie) nie są łączone, ponieważ nie są ciągłe, nawet jeśli ich wartości atrybutów są takie same
  • Funkcje zielony i czerwony są połączone, ponieważ pasują do obu warunków
  • Cecha żółta pozostała jak poprzednio.

Jak byś to osiągnął za pomocą zapytania SQL? wprowadź opis zdjęcia tutaj

wiltomap
źródło

Odpowiedzi:

7

Możesz to zrobić za pomocą ST_ClusterIntersecting :

SELECT attr, unnest(ST_ClusterIntersecting(geom))
FROM lines
GROUP by attr;
dbaston
źródło
Dzięki @dbaston! Wypróbuję to w najbliższych dniach i dam znać.
wiltomap 12.04.16
Ta funkcja ST_ClusterIntersecting()jest dostępna z PostGIS 2.2 ... Czy istnieje rozwiązanie ze starszą wersją? Korzystam z PostGIS 2.1.8 i na razie nie mogę zaktualizować PostGIS.
wiltomap 14.04.16
Nic, co uważałbym za dobre ... tak naprawdę ta sytuacja zmotywowała mnie do pisania ST_ClusterIntersecting. Niektóre pomysły sprzed 2.2 znajdują się na stronie gis.stackexchange.com/q/94203/18189
dbaston