- Catégories :
ST_SYMDIFFERENCE¶
En tenant compte de deux objets d’entrée GEOGRAPHY, renvoie un objet GEOGRAPHY qui représente l’ensemble des points des deux objets d’entrée qui ne font pas partie de l’intersection des objets (c’est-à-dire la différence symétrique des deux objets).
- Voir aussi :
Syntaxe¶
ST_SYMDIFFERENCE( <geography_expression_1> , <geography_expression_2> )
Arguments¶
geography_expression_1
Un objet GEOGRAPHY.
geography_expression_2
Un objet GEOGRAPHY.
Renvoie¶
La fonction renvoie une valeur de type GEOGRAPHY.
Si geography_expression_1
et geography_expression_2
sont égaux (c’est-à-dire que la différence symétrique est un ensemble vide de points), la fonction renvoie NULL.
Notes sur l’utilisation¶
Si un sommet d’un objet d’entrée se trouve sur la limite de l’autre objet d’entrée (à l’exclusion des sommets), la sortie peut ne pas être précise.
Il n’est pas garanti que la fonction produise des résultats normalisés et/ou minimaux. Par exemple, une sortie peut consister en un LineString contenant plusieurs points qui ne forment en fait qu’un seul segment droit.
Exemples¶
L’exemple suivant renvoie un objet GEOGRAPHY qui représente la différence symétrique entre deux objets GEOGRAPHY d’entrée :
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;
Cet exemple produit le résultat suivant :
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 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))) | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Les images suivantes illustrent les différences dans les zones qui représentent les objets d’entrée et de sortie :
Entrée |
Sortie |
---|---|