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
Odpowiedzi:
Wiem, że to pytanie ma 3 lata, ale myślę, że pomoże to przyszłym osobom czytającym ten temat.
Implementację topologii OpenLayers można znaleźć tutaj: http://dev.openlayers.org/sandbox/bjornharrtell/eventbasedtopology2/examples/topology.html
źródło
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
źródło