- Catégories :
ST_DIFFERENCE¶
En tenant compte de deux objets GEOGRAPHY en entrée, renvoie un objet GEOGRAPHY qui représente les points du premier objet qui ne sont pas dans le second (c’est-à-dire la différence entre les deux objets).
- Voir aussi :
Syntaxe¶
ST_DIFFERENCE( <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 tous les points de geography_expression_1
sont dans geography_expression_2
(c’est-à-dire que la différence 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 entre deux objets GEOGRAPHY d’entrée :
ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT = 'WKT'; SELECT ST_DIFFERENCE( 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 difference_between_objects;
Cet exemple produit le résultat suivant :
+-------------------------------------------------------------------------------------------------------------+ | DIFFERENCE_BETWEEN_OBJECTS | |-------------------------------------------------------------------------------------------------------------| | POLYGON((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)) | +-------------------------------------------------------------------------------------------------------------+
Les images suivantes illustrent les différences dans les zones qui représentent les objets d’entrée et de sortie :
Entrée |
Sortie |
---|---|