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.
W PostGIS 2.2 z SFCGAL można to zrobić za pomocą ST_StraightSkeleton lub ST_ApproximateMedialAxis , w zależności od kryteriów.
źródło
wtyczka szkieletu JUMP jest dostępna jako część openjump http://www.openjump.org
źródło
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.
źródło
Po raz kolejny ET GeoWizards może być odpowiedzią. Wypróbuj narzędzie Utwórz linie środkowe z wielokątów .
źródło