- Kategorien:
ST_SYMDIFFERENCE¶
Gibt bei zwei GEOGRAPHY-Eingabeobjekten ein GEOGRAPHY-Objekt zurück, das die Menge der Punkte aus beiden Eingabeobjekten darstellt, die nicht Teil der Schnittmenge der Objekte sind (d. h. die symmetrische Differenz der beiden Objekte).
- Siehe auch:
Syntax¶
ST_SYMDIFFERENCE( <geography_expression_1> , <geography_expression_2> )
Argumente¶
geography_expression_1
Ein GEOGRAPHY-Objekt.
geography_expression_2
Ein GEOGRAPHY-Objekt.
Rückgabewerte¶
Die Funktion gibt einen Wert vom Typ GEOGRAPHY zurück.
Wenn geography_expression_1
und geography_expression_2
gleich sind (d. h. die symmetrische Differenz ist eine leere Punktmenge), gibt die Funktion NULL zurück.
Nutzungshinweise¶
Befindet sich ein beliebiger Punkt eines Eingabeobjekts auf der Grenze des anderen Eingabeobjekts (ohne Punkte), ist die Ausgabe möglicherweise nicht korrekt.
Es wird nicht garantiert, dass die Funktion normalisierte und/oder minimale Ergebnisse liefert. Eine Ausgabe könnte zum Beispiel aus einem LineString-Objekt bestehen, das mehrere Punkte enthält, die eigentlich nur ein gerades Segment bilden.
Beispiele¶
Im folgende Beispiel wird ein GEOGRAPHY-Objekt zurückgegeben, das die symmetrische Differenz zwischen zwei GEOGRAPHY-Eingabeobjekten darstellt:
ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT = 'WKT'; SELECT ST_SYMDIFFERENCE( TO_GEOGRAPHY('POLYGON((0 0, 1 0, 2 1, 1 2, 2 3, 1 4, 0 4, 0 0))'), TO_GEOGRAPHY('POLYGON((3 0, 3 4, 2 4, 1 3, 2 2, 1 1, 2 0, 3 0))') ) AS symmetric_difference_between_objects;
Dieses Beispiel ergibt die folgende Ausgabe:
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | SYMMETRIC_DIFFERENCE_BETWEEN_OBJECTS | |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | MULTIPOLYGON(((1 1,1.5 1.500171359,1 2,1.5 2.500285599,1 3,1.5 3.500399839,1 4,0 4,0 0,1 0,1.5 0.5000571198,1 1)),((3 0,3 4,2 4,1.5 3.500399839,2 3,1.5 2.500285599,2 2,1.5 1.500171359,2 1,1.5 0.5000571198,2 0,3 0))) | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Die folgenden Bilder veranschaulichen die Unterschiede in den Flächen, die die Eingabe- und Ausgabeobjekte darstellen:
Eingabe |
Ausgabe |
---|---|