Wie kann die Topologie beim Bearbeiten von Polygonen in OpenLayers beibehalten werden?


9

Ich stehe vor diesem Problem: Ich habe eine Chloroplethenkarte, die auf einer Reihe von Polygonen mit einigen Daten basiert. Mit WFS-T (Postgis, Geoserver, Openlayers) kann ich die Geometrie der Polygone bearbeiten. Das funktioniert gut.

Meine Polygone sehen aus wie Staatsgrenzen. Sie haben gemeinsame Eckpunkte. Wenn ich die Geometrie eines Polygons bearbeite (z. B. Scheitelpunkte mit modifyFeature verschieben), muss ich die Geometrie eines benachbarten Polygons beeinflussen. Es sollte keine Löcher oder Überlappungen geben.

Ist es möglich das zu tun?

Vielen Dank


Wahrscheinlich;) Ich glaube nicht, dass OpenLayers so etwas sofort unterstützt, aber es wäre implementierbar. Sie können jeden Rand mit einem Linestring darstellen und die Linestrings ändern. Wenn der Linestring aktualisiert wird, aktualisieren Sie die zwei (oder mehr) Polygone, die sich am Rand berühren, entfernen den alten Rand und fügen den neuen ein.
Canisrufus

Antworten:



2

Nur Hinweise, glaube nicht, dass OpenLayers dazu in der Lage ist. Die meisten Open-Source-Desktop-GISs sind nicht in der Lage, eine Reihe unterschiedlicher Scheitelpunkte zu erfassen. Daher scheint es mir ein Traum zu sein, dies online zu tun.

Für einfache Geometrie kann das Knacken genug sein http://openlayers.org/dev/examples/snapping.html nicht reif genug, ich hoffe , https://github.com/bjornharrtell/jsts wird ein Weg sein , Kreuzung zu tun (und Lösen Sie Ihr Problem indirekt) auf der Clientseite, bevor Sie Inhalte zurücksenden. Im Moment werde ich mehr über die Verarbeitung nach dem Zeichnen mit PostGIS-Triggern nachdenken und korrigierte Zeichnungen zurücksenden. Topologie - Implementierung in PostGIS kann helfen http://www.postgresql-sessions.org/2/sandro_santilli_-_topology_with_postgis_2.0 immer auf Server - Seite finden Sie Möglichkeiten der WPS vielleicht http://community.esdi-humboldt.eu/documents/show / 4

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.