Upraszczasz wielokąty do znakowania linii?


16

Chciałbym uprościć niektóre wielokąty, które przedstawiają rzeki w linie. Zakładam, że dziury w wielokątach można pominąć. Czy ktoś ma jakiś dobry pomysł, jak to zrobić?

Byłoby miło, gdyby można było to zrobić bezpośrednio w postgis lub innym narzędziu open source, ale wystarczy krótki opis algorytmu.

Odpowiedzi:


13

Żaden link już nie działa, Julien: czy uważasz, że możesz podać streszczenie algorytmów lub przynajmniej formalne odniesienia, aby umożliwić ludziom przeglądanie dokumentów?
whuber

Tak, zaktualizowałem odpowiedź z odpowiednim odniesieniem do nowszego artykułu.
Julien

2
Dziękuję Ci! (Nie mogę jednak dodać kolejnej aprobaty - miałem tylko jedną. :-)
whuber

4

W PostGIS 2.2 z SFCGAL można to zrobić za pomocą ST_StraightSkeleton lub ST_ApproximateMedialAxis , w zależności od kryteriów.


2

wtyczka szkieletu JUMP jest dostępna jako część openjump http://www.openjump.org


1

Jako ostrzeżenie, nigdy wcześniej tego nie próbowałem. Twój sukces będzie zależeć od jakości danych, które obecnie posiadasz.

Pomyśl o wielokącie jako o pasie trójkątów. Każdy trójkąt łączy się z wierzchołkiem po przeciwnej stronie korytarza za pomocą krawędzi. Teraz, dla każdej krawędzi w korytarzu, po prostu umieść prawy klaps w środku na środku. Te nowe wierzchołki są punktami linii. Prawdopodobnie możesz manipulować sposobem wybierania środkowego punktu na krawędzi dla większej dokładności.


0

Po raz kolejny ET GeoWizards może być odpowiedzią. Wypróbuj narzędzie Utwórz linie środkowe z wielokątów .

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.