OnlineMapMaker logo

Symmetric Difference Tool: GeoJSON & Shapefile

Zeichnen oder laden Sie zwei Polygon-Layer hoch und behalten Sie nur die Teile, die sich zwischen ihnen nicht überlappen. Vollbild öffnen ↗

Rate this tool:
Advertisement
Loading map…
Benötigen Sie Unterstützung bei Ihrem GIS-Projekt?Unsere Dienstleistungen entdecken

Was ist eine symmetrische Differenz in GIS?

Die symmetrische Differenz (auch XOR oder exklusives Oder genannt) ist eine Vektor-Overlay-Operation, die nur die Teile zweier Polygon-Layer behält, die sich nicht überlappen, und die gemeinsame Fläche vollständig verwirft. Überall dort, wo Sie herausfinden müssen, was sich zwischen zwei Grenzen geändert hat, sei es eine alte Zonierungslinie gegenüber einer neuen oder zwei Abdeckungsgebiete, die Sie vergleichen möchten, liefert dieses Tool die Antwort. Es führt die gesamte Berechnung lokal in Ihrem Browser aus: Zeichnen Sie zwei Formen direkt auf der Karte oder laden Sie eine GeoJSON-Datei oder ein gezipptes Shapefile hoch, und es arbeitet als eigenständiges GeoJSON- und Shapefile-Symmetric-Difference-Tool, ohne Ihre Daten irgendwohin zu senden. Die Karte selbst lädt standardmäßig ohne Basiskarte, damit das Tool schnell und schlank startet. Schalten Sie eine Basiskarte in der Seitenleiste nur dann ein, wenn Sie Straßen- oder Satellitenkontext unter Ihren Layern haben möchten.

Häufig gestellte Fragen

Werden meine Daten irgendwohin hochgeladen?
Nein. Zeichnen, Dateilesen, der Auflösungsschritt, beide Differenz-Durchläufe und die abschließende Flächenberechnung finden alle lokal in Ihrem Browser mit JavaScript statt. Es wird nichts an einen Server gesendet.
Welcher Algorithmus berechnet die symmetrische Differenz, und ist er genau?
Das Tool führt einen booleschen Sweep-Line-Differenz-Algorithmus nach Martinez-Rueda-Art zweimal aus, einmal für A minus B und einmal für B minus A, dieselbe Engine, die auch das Polygon-Differenz-Tool und das Polygon-Intersection-Tool dieser Website verwenden. Sie behandelt konkave Polygone und Polygone mit Löchern korrekt.
Zeigt dieses Tool auch die überlappende Fläche, oder nur die nicht überlappenden Teile?
Nur die nicht überlappenden Teile. Die gemeinsame, überlappende Fläche wird bewusst verworfen, das ist der ganze Sinn einer symmetrischen Differenz. Wenn Sie die Überlappung selbst benötigen, berechnet das Polygon-Intersection-Tool dieser Website genau das.
Wie unterscheidet sich die symmetrische Differenz von einer normalen Differenz (Erase)?
Eine normale Differenz ist einseitig gerichtet: Sie subtrahiert Layer B von Layer A und behält nur das, was von A übrig bleibt. Die symmetrische Differenz ist zweiseitig gerichtet: Sie behält den exklusiven Teil von A und den exklusiven Teil von B, sodass Sie sehen, was sich auf beiden Seiten geändert hat, nicht nur auf einer.
Wie finde ich die Teile zweier Polygone, die sich nicht überlappen?
Zeichnen oder laden Sie zwei Polygon-Layer hoch, wählen Sie sie in diesem Tool als Layer A und Layer B, und klicken Sie auf "Symmetrische Differenz berechnen". Die überlappende Fläche wird vollständig verworfen, und nur die beiden nicht überlappenden Teile bleiben im Ergebnis übrig.
Kann ich das mit mehreren Polygonen pro Layer verwenden?
Ja. Enthält ein Layer mehr als ein Feature, werden diese zunächst mit einer booleschen Vereinigung zu einer einzigen Form zusammengeführt, sodass die symmetrische Differenz zwischen den beiden Layern als Ganzes berechnet wird, nicht Feature für Feature.
Kann ich GeoJSON oder Shapefile hochladen, oder nur zeichnen?
Beides. Zeichnen Sie direkt auf der Karte, ziehen Sie eine .geojson-Datei hinein, oder ziehen Sie ein gezipptes Shapefile (.zip mit .shp, .dbf und .shx) hinein. Alle drei Eingabemethoden können für Layer A und Layer B gemischt werden.
Warum startet die Karte ohne Basiskarte, und wie schalte ich eine ein?
Die Karte lädt standardmäßig ohne Straßen- oder Satellitenkacheln, damit das Tool schnell startet und der Fokus auf Ihren Polygonen liegt. Aktivieren Sie das Kästchen "Basiskarte anzeigen" in der Seitenleiste, sobald Sie geografischen Kontext benötigen, und wählen Sie dann Straße oder Satellit.
Welche GIS-Software hat ein integriertes Symmetric-Difference-Werkzeug?
PostGIS bietet ST_SymDifference als SQL-Funktion, QGIS hat einen Algorithmus "Symmetrische Differenz" in seiner Processing-Toolbox, ArcGIS Pro hat ein Symmetrische-Differenz-Geoverarbeitungswerkzeug, und Pythons Shapely hat eine .symmetric_difference()-Methode. Alle berechnen dasselbe Ergebnis wie dieses Tool.
Was ist eine symmetrische Differenz in GIS?
Die symmetrische Differenz ist eine Vektor-Overlay-Operation, die nur die Fläche behält, die genau einem von zwei Polygon-Layern gehört, nicht beiden. Sie wird als A ⊕ B = (A ∪ B) − (A ∩ B) geschrieben: alles in einer der beiden Formen, minus dem, was sie gemeinsam haben.

Praxisbeispiele

🗺️
Erkennung von Zonierungs- und Grenzänderungen
Laden Sie eine alte Zonierungsgrenze als Layer A und die neu vorgeschlagene Grenze als Layer B, um in einem kombinierten Ergebnis genau zu sehen, welche Flächen hinzugefügt und welche entfernt wurden, statt zwei Karten mit dem Auge zu vergleichen.
🌊
Aktualisierungen von Hochwasserzonenkarten
Vergleichen Sie eine ältere FEMA-artige Hochwasserzonengrenze mit einer aktualisierten, um genau hervorzuheben, welche Grundstücke neu in das Hochwasserrisikogebiet aufgenommen oder daraus entfernt wurden.
🗳️
Überprüfung von Neueinteilungen und Wahlkreisgrenzen
Laden Sie eine aktuelle Wahlkreisgrenze und einen vorgeschlagenen Neuzuschnitt, um genau zu sehen, welche Flächen und welche Wähler zwischen den Wahlkreisen wechseln würden.
📐
Streitigkeiten bei Vermessungs- und Urkundengrenzen
Legen Sie eine professionell vermessene Grundstücksgrenze über die in einer Urkunde eingetragene Grenze, um genau den umstrittenen Landstreifen zu isolieren, in dem beide voneinander abweichen.
🛰️
Erkennung von Landbedeckungsänderungen aus Satellitendaten
Vergleichen Sie eine Landklassifizierungs-Polygonschicht eines Jahres mit derselben Fläche eines späteren Jahres, um genau die Parzellen zu isolieren, die die Klassifizierung geändert haben, ohne jedes Polygon von Hand prüfen zu müssen.
📡
Vergleich von Telekom-Abdeckungsgebieten
Vergleichen Sie die Abdeckungspolygone zweier Netzbetreiber, um genau die Flächen zu isolieren, die nur von einem Netz versorgt werden, die Teile, die für eine wettbewerbliche Abdeckungsanalyse am wichtigsten sind.

Schritt für Schritt: Eine symmetrische Differenz finden

Leere Symmetric-Difference-Tool-Karte ohne geladene Basiskarte, mit den Schaltflächen Zeichnen, Hochladen und Beispielpolygon vor dem Hinzufügen eines Layers
1
Schritt 1: Tool öffnen und ersten Layer hinzufügen
Das leere Tool startet ohne Basiskarte: Polygon zeichnen, Datei hochladen oder auf Beispielpolygone klicken.
Zwei überlappende Beispiel-Polygon-Layer auf einfachem Hintergrund ohne Basiskarte, mit sichtbarer Layer-Liste in der Seitenleiste
2
Schritt 2: Einen zweiten überlappenden Layer hinzufügen
Zwei Layer geladen, immer noch ohne Basiskarte. Layer A und Layer B sind bereits für Sie vorausgewählt.
Nahaufnahme der Seitenleiste mit den Dropdown-Auswahlfeldern für Layer A und Layer B sowie der Schaltfläche Symmetrische Differenz berechnen
3
Schritt 3: Layer A und Layer B auswählen
Bestätigen Sie Layer A und Layer B und klicken Sie dann auf Symmetrische Differenz berechnen, um das Overlay auszuführen.
Die berechnete symmetrische Differenz als zwei getrennt hervorgehobene Formen auf der Karte mit einer Flächenanzeige in der Seitenleiste, Basiskarte jetzt eingeschaltet
4
Schritt 4: Das nicht überlappende Ergebnis prüfen
Das Ergebnis: die genauen nicht überlappenden Flächen und ihre kombinierte Größe. Hier wurde zum Kontext eine Basiskarte eingeschaltet.
Layer-Manager-Panel mit Layer A, Layer B und dem Symmetric-Difference-Layer sowie Export- und Download-Steuerelementen
5
Schritt 5: Das Ergebnis-Layer exportieren
Exportieren Sie das Ergebnis allein oder alle drei Layer zusammen als GeoJSON.

Die GIS-Bibliotheken hinter Symmetric Difference

Die symmetrische Differenz ist so verbreitet, dass die meiste GIS-Software sie als einzelnes benanntes Werkzeug anbietet, obwohl sie im Hintergrund fast immer aus denselben Vereinigungs- und Differenz-Grundfunktionen aufgebaut ist, die auf dieser Seite gerade beschrieben wurden.

  • Turf.js (difference + union): Die eigene Engine dieses Tools. Turf.js hat keine einzelne symmetricDifference-Funktion, daher ruft dieses Tool @turf/difference zweimal und @turf/union zum Auflösen mehrteiliger Layer auf, alles als reines JavaScript direkt in Ihrem Browser-Tab.
  • PostGIS ST_SymDifference: Die räumliche Erweiterung von PostgreSQL bietet ST_SymDifference als einzelne SQL-Funktion, die auf der GEOS-Bibliothek basiert, derselben C++-Engine, die auch ST_Intersection und ST_Difference berechnet.
  • QGIS Symmetrische Differenz: Die Processing-Toolbox von QGIS enthält unter Vektor-Overlay einen eigenen Algorithmus "Symmetrische Differenz", der ebenfalls unter der Oberfläche GEOS aufruft.
  • ArcGIS Symmetrische Differenz: Esris ArcGIS Pro bietet ein Symmetrische-Differenz-Geoverarbeitungswerkzeug mit demselben Verhalten, zwei Layer als Eingabe, das XOR als Ergebnis, allerdings implementiert mit Esris eigener Geometrie-Engine statt GEOS.
  • Shapely (symmetric_difference): Pythons Shapely-Bibliothek stellt eine .symmetric_difference()-Methode direkt an ihren Geometrieobjekten bereit, die wie fast alles in Shapely intern an GEOS delegiert.

Alle fünf Werkzeuge stimmen in derselben zugrunde liegenden Mathematik überein, denn die symmetrische Differenz hat für ein gegebenes Geometriepaar genau ein richtiges Ergebnis. Der praktische Unterschied liegt, wie bei den anderen Overlay-Tools dieser Website, darin, wo die Berechnung läuft: GEOS-basierte Werkzeuge benötigen PostgreSQL, QGIS oder eine Python-Umgebung, während die Turf.js-Engine dieses Tools als Polygon-XOR-Finder direkt auf Ihrem Gerät läuft, sodass keine Datei irgendwohin hochgeladen wird.

Advertisement

Ihre Ergebnisse exportieren

Jeder Layer kann einzeln exportiert werden, oder Sie exportieren alles auf einmal:

  • Export eines einzelnen Layers: Das Download-Symbol neben einem Layer exportiert nur dessen Features als eigenständige .geojson-Datei.
  • Alles exportieren: Die Schaltfläche "Alle Layer herunterladen" kombiniert Layer A, Layer B und das Symmetric-Difference-Ergebnis in einer einzigen GeoJSON-FeatureCollection und kennzeichnet jedes Feature mit seinem Herkunfts-Layer.
  • GeoJSON-Format: Die Ausgabedateien sind Standard-GeoJSON nach RFC 7946, das direkt in QGIS, ArcGIS, Google Earth, Mapbox und praktisch jedem anderen GIS-Werkzeug geöffnet werden kann.

Da die Ausgabe reines GeoJSON ist, lässt sie sich später problemlos wieder in dieses Tool oder in jeden anderen GeoJSON- oder Shapefile-Workflow einer Desktop-GIS-Software importieren.

Mehrere Layer verwalten

Der Layer-Manager in der Seitenleiste sammelt jeden hinzugefügten Polygon-Layer sowie jedes erzeugte Symmetric-Difference-Ergebnis in einer Liste. Sie können das Tool mehrmals mit unterschiedlichen Layer-Paaren ausführen, alle Ergebnisse gleichzeitig auf der Karte behalten und jeden nicht mehr benötigten Layer löschen, ohne die anderen zu beeinflussen, nützlich, um zu prüfen, wie sich mehrere Kandidatengrenzen jeweils von einem Basis-Layer unterscheiden.

Ihre Layer stylen

Jeder Layer, einschließlich des Ergebnisses, kann unabhängig neu gestaltet werden, und die Basiskarte selbst ist vollständig optional:

  • Farbauswahl: Klicken Sie auf das Farbfeld neben einem Layer in der Seitenleiste, um dessen Füll- und Umrissfarbe sofort zu ändern.
  • Sichtbarkeit umschalten: Deaktivieren Sie einen Layer, um ihn auf der Karte auszublenden, ohne ihn zu löschen, nützlich, um Layer A und Layer B einzeln mit dem Ergebnis zu vergleichen.
  • Basiskarte umschalten: Die Karte lädt standardmäßig ohne Basiskarte, damit das Tool schnell bleibt und der Fokus auf Ihren Formen liegt. Aktivieren Sie jederzeit "Basiskarte anzeigen" in der Seitenleiste, um eine Straßen- oder Satellitenkarte unter Ihren Layern hinzuzufügen, und schalten Sie sie ebenso einfach wieder aus.

Keine dieser Stileinstellungen wird außerhalb Ihrer Sitzung gespeichert, sie steuern nur, wie die Karte während der Arbeit aussieht.

Wie der Symmetric-Difference-Algorithmus funktioniert

Die symmetrische Differenz hat eine einfache mengentheoretische Definition: Sie umfasst jeden Punkt, der zu Polygon A oder Polygon B gehört, aber nicht zu beiden. Als Formel geschrieben: A ⊕ B = (A ∪ B) − (A ∩ B), also die Vereinigung der beiden Formen minus ihrer Schnittmenge. Es gibt eine zweite, gleichwertige Schreibweise derselben Operation, die sich in der Praxis zuverlässiger berechnen lässt: A ⊕ B = (A − B) ∪ (B − A), also die Teile von A ohne B, kombiniert mit den Teilen von B ohne A. Dieses Tool verwendet die zweite Form.

Diese Wahl ist wichtig, denn erst eine vollständige Vereinigung zu berechnen und dann eine Schnittmenge davon abzuziehen bedeutet, zwei separate boolesche Overlay-Operationen hintereinander auszuführen, wobei sich jeder Rundungsfehler aus der ersten in die zweite fortpflanzt. Führt man stattdessen zwei unabhängige Differenz-Operationen aus, eine für A minus B und eine für B minus A, und legt beide Ergebnisse einfach in denselben Ausgabe-Layer, braucht es überhaupt keine gemeinsame Zwischengeometrie, und jede Hälfte kann unabhängig von der anderen fehlschlagen. Hat ein realer Datensatz einen fehlerhaft geformten Ring, liefert dieses Tool trotzdem die Hälfte zurück, die erfolgreich war, entsprechend gekennzeichnet.

Die Pipeline, die dieses Tool ausführt

  1. Jeden Eingabe-Layer auflösen: Enthält ein Layer mehr als ein Feature, werden zunächst alle Polygone darin mit einer booleschen Vereinigung zu einer einzigen Geometrie zusammengeführt, sodass der Layer wie eine einzige Form und nicht wie eine Liste getrennter Teile behandelt wird.
  2. A minus B berechnen: Die aufgelöste Geometrie von Layer A und die aufgelöste Geometrie von Layer B werden demselben Sweep-Line-Boolean-Differenz-Algorithmus übergeben, den auch das Polygon-Differenz-Tool dieser Website verwendet, wobei nur der Teil von A außerhalb von B erhalten bleibt.
  3. B minus A berechnen: Derselbe Algorithmus läuft ein zweites Mal mit vertauschten Layern und behält nur den Teil von B, der außerhalb von A liegt.
  4. Beide Hälften kennzeichnen und zusammenführen: Jeder verbleibende Teil wird in seinen Eigenschaften als Nur A oder Nur B gekennzeichnet und in einen gemeinsamen Ausgabe-Layer gelegt, sodass das Ergebnis immer genau zeigt, wo sich die beiden Eingaben unterscheiden.
  5. Die exklusive Fläche summieren: Die Fläche jedes Ausgabe-Features wird mit einer sphärischen Flächenformel summiert und in Hektar, Quadratkilometern und Acres angezeigt, sodass Sie neben der Form auch eine konkrete Zahl erhalten.

Jeder der beiden Differenz-Durchläufe ist für sich genommen ein boolescher Sweep-Line-Clipping-Algorithmus nach Martinez-Rueda-Art: Er sortiert jeden Kantenendpunkt von links nach rechts, führt eine vertikale Linie über die Daten und klassifiziert jedes entstehende Segment anhand von Winding-Regeln als innerhalb oder außerhalb des anderen Polygons, genau dieselbe Engine und dieselbe Mathematik, die auch das Polygon-Intersection-Tool und das Polygon-Differenz-Tool dieser Website verwenden. Für die symmetrische Differenz braucht es keinen neuen Clipping-Algorithmus, sondern nur den vorhandenen, zweimal mit vertauschten Operanden aufgerufen.

Advertisement

So fügen Sie Ihre Polygon-Layer hinzu

Es gibt zwei Wege, Polygone in das Tool zu bringen, bevor Sie eine symmetrische Differenz berechnen, und beide akzeptieren GeoJSON oder ein gezipptes Shapefile:

  • Auf der Karte zeichnen: Klicken Sie auf "Polygon zeichnen", klicken Sie auf die Karte, um Ecken zu setzen, dann doppelklicken Sie, drücken Sie Enter oder klicken Sie auf Fertigstellen, um die Form zu schließen. Wiederholen Sie dies für ein zweites Polygon.
  • Eine Datei hochladen: Ziehen Sie eine .geojson-Datei oder ein gezipptes Shapefile (.zip mit .shp/.dbf/.shx darin) irgendwo auf die Karte, oder verwenden Sie die Schaltfläche Hochladen. Es werden nur Polygon- und MultiPolygon-Features eingelesen, Punkte und Linien werden übersprungen.

Sobald Sie mindestens zwei Polygon-Layer haben, wählen Sie einen als Layer A und den anderen als Layer B in der Seitenleiste aus und klicken Sie auf "Symmetrische Differenz berechnen", um nur die nicht überlappende Fläche zu behalten.

Advertisement

Verwandte Geoverarbeitungswerkzeuge

Map tiles © OpenStreetMap contributors and CARTO, Esri (satellite, opt-in). Symmetric difference math powered by Turf.js. Shapefile parsing by shpjs. Map rendering by Leaflet. All drawing, file reading and calculation is local, no data is uploaded to any server.

Muhammad Gulraiz Khan, GIS-Experte und Gründer von KONAKTIVE und OnlineMapMaker.com

Über den Autor

Muhammad Gulraiz Khan

GIS-Experte & Berater · Gründer, KONAKTIVE

Muhammad Gulraiz Khan ist ein GIS-Experte mit über einem Jahrzehnt Berufserfahrung in der Bereitstellung geografischer Lösungen für den Energiesektor, darunter Projekte für die Weltbank, die International Finance Corporation (IFC) und USAID. Er hat OnlineMapMaker.com aufgebaut, um professionelle Kartierungswerkzeuge kostenlos und für jeden zugänglich zu machen.

Advertisement