Jak zachować topologię podczas edycji wielokątów w OpenLayers?


9

Mam do czynienia z tym problemem: mam mapę chloropletu opartą na zestawie wielokątów z pewnymi danymi. Za pomocą WFS-T (postgis, geoserver, openlayers) jestem w stanie edytować geometrię wielokątów. To działa dobrze.

Moje wielokąty wyglądają jak granice państwowe. Mają wspólne wierzchołki graniczne. Kiedy edytuję geometrię jakiegoś wielokąta (np. Poruszam wierzchołkami za pomocą metody editFeature), muszę wpływać na geometrię dowolnego sąsiedniego wielokąta. Nie powinno być dziur ani zakładek.

Czy można to zrobić?

Dzięki


Prawdopodobnie;) Nie wierzę, że OpenLayers obsługuje coś takiego po wyjęciu z pudełka, ale byłoby to możliwe do wdrożenia. Możesz reprezentować każdą ramkę za pomocą linii i modyfikować linie. Następnie, gdy aktualizacja linii zostanie zaktualizowana, zaktualizujesz dwa (lub więcej) wielokąty, które dotykają granicy, usuwając starą ramkę i wstawiając nową.
canisrufus,

Odpowiedzi:



2

Tylko wskazówki, nie sądzę, że OpenLayers jest w stanie to zrobić. Większość komputerowych systemów GIS typu open source nie jest w stanie wykonać przyciągania do linii różnych wierzchołków, więc robienie tego online wydaje mi się snem.

W przypadku prostej geometrii przyciąganie może wystarczyć http://openlayers.org/dev/examples/snapping.html Niewystarczająco dojrzałe, mam nadzieję, że https://github.com/bjornharrtell/jsts będzie sposobem na skrzyżowanie (i samodzielnie rozwiąż problem) po stronie klienta przed odesłaniem treści. W tej chwili pomyślę więcej o przetwarzaniu po losowaniu za pomocą wyzwalaczy PostGIS i odesłaniu poprawionych losowań. Wdrożenie topologii w PostGIS może pomóc http://www.postgresql-sessions.org/2/sandro_santilli_-_topology_with_postgis_2.0 Zawsze po stronie serwera, zobacz możliwości WPS może http://community.esdi-humboldt.eu/documents/show / 4

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.