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

Odpowiedzi:


7

Możesz to zrobić za pomocą ST_ClusterIntersecting :

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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.