Cette rubrique présente la syntaxe de base et des exemples d'utilisation des fonctions géospatiales.
Concepts géospatiaux
Les fonctions géospatiales portant le préfixe ST_ sont conformes à la norme SQL/MM et à la spécification OpenGIS de l'Open Geospatial Consortium (OGC). Elles utilisent le format Well-Known Text (WKT) pour décrire des géométries telles que des points, des lignes et des polygones. Le tableau suivant répertorie les géométries prises en charge ainsi que leur format WKT correspondant.
|
Géométrie |
Format WKT |
|
Point |
POINT (0 0) |
|
Ligne |
LINESTRING (0 0, 1 1, 1 2) |
|
Polygone |
POLYGON((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) |
|
Multipoint |
MULTIPOINT(0 0, 1 2) |
|
Multiligne |
MULTILINESTRING((0 0, 1 1, 1 2), (2 3, 3 2, 5 4)) |
|
Multipolygone |
MULTIPOLYGON(((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1))) |
|
Collection de géométries |
GEOMETRYCOLLECTION(POINT(2 3), LINESTRING(2 3, 3 4)) |
Fonctions
|
Type |
Fonction |
Syntaxe |
Description |
SQL |
SPL |
|
Constructeurs |
ST_AsText(x) |
Renvoie la représentation Well-Known Text (WKT) d'une géométrie. |
√ |
× |
|
|
ST_GeometryFromText(x) |
Construit une géométrie à partir d'une représentation WKT. |
√ |
× |
||
|
ST_LineFromText(x) |
Crée une ligne à partir d'une représentation WKT. |
√ |
× |
||
|
ST_Polygon(x) |
Génère un polygone depuis une représentation WKT. |
√ |
× |
||
|
ST_Point(x, y) |
Définit un point à partir des coordonnées X et Y. |
√ |
× |
||
|
Opérateurs |
ST_Boundary(x) |
Renvoie la limite d'une géométrie. |
√ |
× |
|
|
ST_Buffer(x, distance) |
Retourne une géométrie englobant tous les points situés à une distance spécifiée de la géométrie d'entrée. |
√ |
× |
||
|
ST_Difference(x, y) |
Renvoie la partie de la première géométrie qui ne coupe pas la seconde. |
√ |
× |
||
|
ST_Envelope(x) |
Calcule le rectangle englobant d'une géométrie. |
√ |
× |
||
|
ST_ExteriorRing(x) |
Renvoie une ligne représentant l'anneau extérieur d'un polygone. |
√ |
× |
||
|
ST_Intersection(x, y) |
Produit une géométrie correspondant à l'intersection de deux géométries. |
√ |
× |
||
|
ST_SymDifference(x, y) |
Renvoie une géométrie représentant les parties des géométries d'entrée qui ne se croisent pas. |
√ |
× |
||
|
Tests de relations spatiales |
ST_Contains(x, y) |
Renvoie |
√ |
× |
|
|
ST_Crosses(x, y) |
Renvoie |
√ |
× |
||
|
ST_Disjoint(x, y) |
Renvoie |
√ |
× |
||
|
ST_Equals(x, y) |
Renvoie |
√ |
× |
||
|
ST_Intersects(x, y) |
Renvoie |
√ |
× |
||
|
ST_Overlaps(x, y) |
Renvoie |
√ |
× |
||
|
ST_Relate(x, y, patternMatrix string) |
Renvoie |
√ |
× |
||
|
ST_Touches(x, y) |
Renvoie |
√ |
× |
||
|
ST_Within(x, y) |
Renvoie |
√ |
× |
||
|
Accesseurs |
ST_Area(x) |
Renvoie l'aire cartésienne 2D d'une géométrie. |
√ |
× |
|
|
ST_Centroid(x) |
Renvoie le centroïde géométrique d'une géométrie. |
√ |
× |
||
|
ST_CoordDim(x) |
Indique la dimension des coordonnées d'une géométrie. |
√ |
× |
||
|
ST_Dimension(x) |
Renvoie la dimension intrinsèque d'une géométrie, nécessairement inférieure ou égale à la dimension des coordonnées. |
√ |
× |
||
|
ST_Distance(x, y) |
Calcule la distance minimale entre deux géométries. |
√ |
× |
||
|
ST_EndPoint(x) |
Renvoie le dernier point d'une ligne. |
√ |
× |
||
|
ST_IsClosed(x) |
Renvoie |
√ |
× |
||
|
ST_IsEmpty(x) |
Renvoie |
√ |
× |
||
|
ST_IsRing(x) |
Renvoie |
√ |
× |
||
|
ST_Length(x) |
Renvoie la longueur cartésienne 2D d'une ligne. Pour une multiligne, cette fonction retourne la somme des longueurs de ses éléments. |
√ |
× |
||
|
ST_NumPoints(x) |
Compte le nombre de points (sommets) d'une géométrie. |
√ |
× |
||
|
ST_NumInteriorRing(x) |
Indique le nombre d'anneaux intérieurs d'un polygone. |
√ |
× |
||
|
ST_StartPoint(x) |
Renvoie le premier point d'une ligne. |
√ |
× |
||
|
ST_X(x) |
Extrait la coordonnée X d'un point. |
√ |
× |
||
|
ST_XMax(x) |
Renvoie la coordonnée X maximale d'une géométrie. |
√ |
× |
||
|
ST_XMin(x) |
Renvoie la coordonnée X minimale d'une géométrie. |
√ |
× |
||
|
ST_Y(x) |
Extrait la coordonnée Y d'un point. |
√ |
× |
||
|
ST_YMax(x) |
Renvoie la coordonnée Y maximale d'une géométrie. |
√ |
× |
||
|
ST_YMin(x) |
Renvoie la coordonnée Y minimale d'une géométrie. |
√ |
× |
||
|
Tuiles Bing |
bing_tile(x, y, zoom_level) |
Renvoie une tuile Bing à partir des coordonnées X et Y et du niveau de zoom spécifiés. |
√ |
× |
|
|
bing_tile(quadKey) |
Génère une tuile Bing à partir de la clé quadtree indiquée. |
√ |
× |
||
|
bing_tile_at(x, y, zoom_level) |
Renvoie une tuile Bing correspondant à la latitude, la longitude et le niveau de zoom fournis. |
√ |
× |
||
|
bing_tile_coordinates(x) |
Renvoie les coordonnées X et Y d'une tuile Bing. |
√ |
× |
||
|
bing_tile_polygon(x) |
Convertit une tuile Bing en sa représentation polygonale. |
√ |
× |
||
|
bing_tile_quadkey(x) |
Renvoie la clé quadtree d'une tuile Bing. |
√ |
× |
||
|
bing_tile_zoom_level(x) |
Indique le niveau de zoom d'une tuile Bing. |
√ |
× |
Fonction ST_AsText
Renvoie la représentation WKT d'une géométrie.
Syntax
ST_AsText(x)
Parameters
|
Paramètre |
Description |
|
x |
Géométrie d'entrée. |
Return value type
Le type de retour est varchar.
Examples
L'exemple suivant renvoie la représentation WKT d'un point.
-
Requête
* | SELECT ST_AsText(ST_Point(1,1)) Résultat de la requête et de l'analyse :
POINT (1 1).
Fonction ST_GeometryFromText
Construit une géométrie à partir d'une représentation Well-Known Text (WKT).
Syntax
ST_GeometryFromText(x)
Parameters
|
Paramètre |
Description |
|
x |
Ce paramètre doit être de type varchar. |
Return value type
geometry
Examples
Construction d'un multipolygone.
-
Requête
* | SELECT ST_GeometryFromText('multipolygon(((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))') La requête renvoie
MULTIPOLYGON (((10 10, 10 20, 20 20, 20 15, 10 10)), ((50 40, 50 50, 60 50, 60 40, 50 40))).
Fonction ST_LineFromText
Crée une ligne à partir d'un texte WKT.
Syntax
ST_LineFromText(x)
Parameters
|
Paramètre |
Description |
|
x |
Valeur de type varchar. |
Return value type
Type linestring
Examples
Construction d'une ligne.
-
Requête
* | SELECT ST_LineFromText('linestring(10 10,20 20)') Résultats de la requête :
LINESTRING (10 10, 20 20).
Fonction ST_Polygon
La fonction ST_Polygon génère un polygone à partir d'une représentation WKT.
Syntax
ST_Polygon(x)
Parameters
|
Paramètre |
Description |
|
x |
Doit être une valeur varchar. |
Return value type
polygon
Examples
Création d'un polygone.
-
Requête et analyse
* | SELECT ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))') Le résultat est
POLYGON ((10 10, 20 15, 20 20, 10 20, 10 10)).
Fonction ST_Point
Construit un point à partir des coordonnées X et Y spécifiées.
Syntax
ST_Point(x, y)
Parameters
|
Parameter |
Description |
|
x |
Coordonnée X du point. Le type de données doit être DOUBLE. |
|
y |
Coordonnée Y du point. Le type de données doit être DOUBLE. |
Return value type
point
Examples
Construction d'un point.
-
Requête
* | SELECT ST_Point(0,0) Le résultat de la requête est au format WKT :
POINT (0 0)
Fonction ST_Boundary
La fonction ST_Boundary renvoie la limite d'une géométrie.
La limite d'un point est vide. La fonction renvoie POINT EMPTY.
Celle d'une chaîne de lignes correspond à ses points d'extrémité.
Pour un polygone, elle se compose des chaînes de lignes formant son anneau extérieur ainsi que tous ses anneaux intérieurs.
Syntax
ST_Boundary(x)
Parameters
|
Parameter |
Description |
|
x |
Valeur de type geography. |
Return value type
geography type
Examples
Utilisez la fonction ST_Polygon pour construire un polygone, puis récupérez sa limite avec la fonction ST_Boundary.
-
Requête
* | SELECT ST_Boundary(ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))')) La requête renvoie
LINESTRING (10 10, 20 15, 20 20, 10 20, 10 10).
Fonction ST_Buffer
La fonction ST_Buffer renvoie une géométrie englobant tous les points situés à une distance spécifiée d'une géométrie d'entrée.
Syntax
ST_Buffer(x, distance)
Parameters
|
Parameter |
Description |
|
x |
Géométrie d'entrée. |
|
distance |
Distance du tampon. |
Return value type
geometry
Examples
Cet exemple utilise la fonction ST_Point pour construire un point, puis la fonction ST_Buffer afin de créer un polygone à une distance définie de ce point.
-
Requête
* | SELECT ST_Buffer(ST_Point(1,1),1) La requête renvoie une valeur POLYGON approximant un cercle. Ce polygone comprend de nombreux points de coordonnées, commençant par
(2 1, 1.9978589232386...).
Fonction ST_Difference
Renvoie une géométrie représentant la différence ensembliste entre deux géométries.
Syntax
ST_Difference(x, y)
Parameters
|
Parameter |
Description |
|
x |
Valeur géométrique. |
|
y |
Valeur géométrique. |
Return value type
Valeur géométrique.
Examples
Construisez deux géométries avec la fonction ST_GeometryFromText, puis calculez leur différence ensembliste à l'aide de la fonction ST_Difference.
-
Instruction de requête et d'analyse
* | SELECT ST_Difference( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,0 15,0 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) AS "Difference" La requête renvoie le résultat suivant :
MULTIPOLYGON (((0 10, 10 10, 10 17.5, 0 15, 0 10)), ((50 40, 60 40, 50 50, 50 40))).
Fonction ST_Envelope
Renvoie le cadre englobant d'une géométrie.
Syntax
ST_Envelope(x)
Parameters
|
Parameter |
Description |
|
x |
Valeur géométrique. |
Return value type
geometry
Examples
Cet exemple crée une géométrie via la fonction ST_GeometryFromText et obtient son cadre englobant grâce à la fonction ST_Envelope.
-
Instruction de requête et d'analyse
* | SELECT ST_Envelope( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) La requête renvoie
POLYGON ((10 10, 60 10, 60 50, 10 50, 10 10)).
Fonction ST_ExteriorRing
Renvoie l'anneau extérieur d'une géométrie sous forme de chaîne de lignes.
Syntax
ST_ExteriorRing(x)
Parameters
|
Parameter |
Description |
|
x |
Géométrie polygonale ou multipolygonale d'entrée. |
Return value type
geometry
Examples
Cet exemple emploie ST_GeometryFromText pour bâtir une géométrie et ST_ExteriorRing pour en extraire l'anneau extérieur.
-
Requête
* | SELECT ST_ExteriorRing( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) La requête renvoie
LINESTRING (10 10, 10 20, 20 20, 20 15, 10 10).
ST_Intersection
Renvoie l'intersection de deux géométries.
Syntax
ST_Intersection(x, y)
Parameters
|
Parameter |
Description |
|
x |
Première géométrie. |
|
y |
Seconde géométrie. |
Return value type
geometry
Examples
Dans cet exemple, on construit deux géométries avec la fonction ST_GeometryFromText avant de calculer leur intersection via la fonction ST_Intersection.
-
Requête
* | SELECT ST_Intersection( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) Résultats de la requête :
MULTIPOLYGON (((10 10, 10 20, 20 20, 20 15, 10 10)), ((50 40, 50 50, 60 50, 60 40, 50 40)))
Fonction ST_SymDifference
Renvoie une géométrie représentant la différence symétrique entre deux géométries.
Syntax
ST_SymDifference(x, y)
Parameters
|
Parameter |
Description |
|
x |
Géométrie. |
|
y |
Géométrie. |
Return value type
geometry
Examples
L'exemple ci-dessous construit deux géométries à l'aide de la fonction ST_GeometryFromText, puis applique la fonction ST_SymDifference pour obtenir leur différence symétrique.
-
Requête
* | SELECT ST_SymDifference( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) La requête renvoie
GEOMETRYCOLLECTION EMPTY.
Fonction ST_Contains
ST_Contains renvoie true si la première géométrie contient la seconde. Les deux géométries peuvent se croiser au niveau de leurs limites.
Syntax
ST_Contains(x, y)
Parameters
|
Parameter |
Description |
|
x |
Première géométrie d'entrée. |
|
y |
Seconde géométrie d'entrée. |
Return value type
boolean
Examples
Cet exemple vérifie si un polygone contient un point donné.
-
Requête
* | SELECT ST_Contains( ST_GeometryFromText( 'polygon((10 10,10 20,20 20,20 15,10 10))' ), ST_GeometryFromText( 'point(11 11)' ) ) La requête renvoie
true.
Fonction ST_Crosses
La fonction ST_Crosses renvoie true lorsque deux géométries partagent des points intérieurs communs.
Syntax
ST_Crosses(x, y)
Parameters
|
Parameter |
Description |
|
x |
Valeur géométrique. |
|
y |
Valeur géométrique. |
Return value type
Valeur booléenne.
Examples
Ici, on utilise la fonction ST_GeometryFromText pour définir deux géométries, puis la fonction ST_Crosses afin de déterminer si elles possèdent des points intérieurs communs.
-
Requête
* | SELECT ST_Crosses( ST_GeometryFromText( 'multipolygon (((10 10, 10 20, 20 20, 20 15 , 10 10), (50 40, 50 50, 60 50, 60 40, 50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10, 10 20, 20 20, 20 15 , 10 10), (50 40, 50 50, 60 50, 60 40, 50 50)))' ) ) La requête renvoie
false.
ST_Disjoint
La fonction ST_Disjoint vérifie si deux géométries sont disjointes. Elle renvoie true lorsqu'elles ne s'intersectent pas.
Syntax
ST_Disjoint(x, y)
Parameters
|
Parameter |
Description |
|
x |
Valeur géométrique. |
|
y |
Valeur géométrique. |
Return value type
boolean
Examples
Cet exemple construit deux géométries avec ST_GeometryFromText, puis recourt à ST_Disjoint pour vérifier leur intersection éventuelle.
-
Requête
* | SELECT ST_Disjoint( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) La requête renvoie
false.
Fonction ST_Equals
La fonction ST_Equals détermine si deux géométries sont identiques et renvoie true dans ce cas.
Syntax
ST_Equals(x, y)
Parameters
|
Parameter |
Description |
|
x |
Première géométrie. |
|
y |
Seconde géométrie. |
Return value type
boolean
Examples
Cet exemple se sert de la fonction ST_GeometryFromText pour créer deux géométries, puis teste leur identité au moyen de la fonction ST_Equals.
-
Requête
* | SELECT ST_Equals( ST_GeometryFromText( 'multipolygon(((10 10,10 20,20 20,20 15,10 10),(50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon(((10 10,10 20,20 20,20 15,10 10),(50 40,50 50,60 50,60 40,50 50)))' ) ) La requête renvoie
false.
Fonction ST_Intersects
Renvoie true si les projections planes de deux géométries s'intersectent.
Syntax
ST_Intersects(x, y)
Parameters
|
Parameter |
Description |
|
x |
Valeur de type geometry. |
|
y |
Valeur de type geometry. |
Return value type
boolean
Examples
Employez la fonction ST_GeometryFromText pour construire deux géométries, puis la fonction ST_Intersects pour contrôler leur intersection.
-
Exemple de requête
* | SELECT ST_Intersects( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) Le résultat de la requête et de l'analyse est
true.
Fonction ST_Overlaps
La fonction ST_Overlaps renvoie true lorsque deux géométries de même dimension se chevauchent sans qu'aucune ne contienne entièrement l'autre.
Syntax
ST_Overlaps(x, y)
Parameters
|
Parameter |
Description |
|
x |
Première géométrie d'entrée. |
|
y |
Seconde géométrie d'entrée. |
Return value type
boolean
Examples
Dans cet exemple, deux géométries sont construites via la fonction ST_GeometryFromText, puis leur chevauchement est testé avec la fonction ST_Overlaps.
-
Instruction de requête et d'analyse
* | SELECT ST_Overlaps( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) La requête renvoie
false.
Fonction ST_Relate
La fonction ST_Relate établit si deux géométries sont liées en examinant l'intersection de leurs intérieurs ou de leurs limites. Elle renvoie true le cas échéant.
Syntax
ST_Relate(x, y, patternMatrix string)
Parameters
|
Parameter |
Description |
|
x |
Valeur géométrique. |
|
y |
Valeur géométrique. |
|
patternMatrix string |
Chaîne de matrice de motif DE-9IM. La valeur est de type varchar. |
Return value type
boolean
Examples
Cet exemple bâtit deux géométries à l'aide de la fonction ST_GeometryFromText, puis invoque la fonction ST_Relate pour vérifier leur relation spatiale.
-
Requête
* | SELECT ST_Relate( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ), '****T****' ) La requête renvoie
true.
Fonction ST_Touches
La fonction ST_Touches renvoie true si deux géométries se touchent par leurs limites sans que leurs intérieurs ne s'intersectent.
Syntax
ST_Touches(x, y)
Parameters
|
Parameter |
Description |
|
x |
Première géométrie. |
|
y |
Seconde géométrie. |
Return value type
Renvoie une valeur boolean.
Examples
La requête suivante utilise la fonction ST_GeometryFromText pour créer deux géométries et la fonction ST_Touches pour vérifier leur contact.
-
Requête
* | SELECT ST_Touches( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) La requête renvoie
false.
Fonction ST_Within
La fonction ST_Within renvoie true si la première géométrie se trouve entièrement à l'intérieur de la seconde et que leurs limites ne s'intersectent pas.
Syntax
ST_Within(x, y)
Parameters
|
Parameter |
Description |
|
x |
Première géométrie d'entrée. |
|
y |
Seconde géométrie d'entrée. |
Return value type
boolean
Examples
Cet exemple construit deux géométries via la fonction ST_GeometryFromText, puis applique la fonction ST_Within pour déterminer si la première est totalement contenue dans la seconde.
-
Instruction de requête et d'analyse
* | SELECT ST_Within( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) La requête renvoie
false.
Fonction ST_Area
La fonction ST_Area calcule l'aire projetée d'une géométrie sur un plan bidimensionnel en utilisant la distance euclidienne.
Syntax
ST_Area(x)
Parameters
|
Parameter |
Description |
|
x |
Géométrie d'entrée. |
Return value type
double
Examples
Cet exemple calcule l'aire d'un multipolygone.
-
Requête
* | SELECT ST_Area( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) Renvoie
-25.0.
Fonction ST_Centroid
La fonction ST_Centroid renvoie le centre mathématique d'une géométrie d'entrée sous forme de point.
Syntax
ST_Centroid(x)
Parameters
|
Parameter |
Description |
|
x |
Géométrie d'entrée. |
Return value type
geometry
Examples
Cet exemple calcule le centroïde d'une géométrie multipolygonale.
-
Instruction de requête et d'analyse
* | SELECT ST_Centroid( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) L'instruction renvoie
POINT (176.66666666666669 131.66666666666669).
Fonction ST_CoordDim
La fonction ST_CoordDim renvoie la dimension des coordonnées d'une géométrie.
Syntax
ST_CoordDim(x)
Parameters
|
Parameter |
Description |
|
x |
Une valeur de type geometry. |
Return value type
bigint
Examples
Utilisez la fonction ST_GeometryFromText pour construire une géométrie, puis appelez ST_CoordDim pour obtenir sa dimension de coordonnées.
-
Requête
* | SELECT ST_CoordDim( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) Le résultat de la requête est
2.
Fonction ST_Dimension
Renvoie la dimension intrinsèque d'une géométrie. Cette valeur ne peut pas dépasser la dimension des coordonnées.
Syntax
ST_Dimension(x)
Parameters
|
Parameter |
Description |
|
x |
Une valeur de type geometry.
|
Return value type
bigint
Examples
Cet exemple utilise ST_Dimension pour déterminer la dimension intrinsèque d'une géométrie créée via ST_GeometryFromText.
-
Requête
* | SELECT ST_Dimension( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) Le résultat de la requête est
2.
Fonction ST_Distance
Renvoie la distance minimale entre deux géométries.
Syntax
ST_Distance(x, y)
Parameters
|
Parameter |
Description |
|
x |
Une valeur de type geometry. |
|
y |
Une valeur de type geometry. |
Return value type
double
Examples
L'exemple suivant crée deux géométries à l'aide de ST_GeometryFromText, puis calcule leur distance minimale avec ST_Distance.
-
Requête
* | SELECT ST_Distance( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) Le résultat obtenu est
0.0.
Fonction ST_EndPoint
ST_EndPoint renvoie le dernier point d'une chaîne de lignes.
Syntax
ST_EndPoint(x)
Parameters
|
Parameter |
Description |
|
x |
Une valeur de type geometry. |
Return value type
Une valeur de type point.
Examples
Construisez une chaîne de lignes avec ST_LineFromText, puis utilisez ST_EndPoint pour en extraire le dernier point.
-
Requête et analyse
* | SELECT ST_EndPoint( ST_LineFromText( 'linestring (10 10,20 20)' ) ) Résultat :
POINT (20 20).
ST_IsClosed
La fonction ST_IsClosed renvoie true si la géométrie est fermée.
Syntax
ST_IsClosed(x)
Parameters
|
Parameter |
Description |
|
x |
La géométrie à vérifier. |
Return value type
Une valeur booléenne.
Examples
Cet exemple construit une chaîne de lignes avec ST_LineFromText et vérifie si elle est fermée au moyen de ST_IsClosed.
-
Requête
* | SELECT ST_IsClosed( ST_LineFromText( 'linestring (10.05 10.28 , 20.95 20.89 )' ) ) Résultat de la requête :
false
Fonction ST_IsEmpty
La fonction ST_IsEmpty renvoie true lorsque la géométrie fournie en entrée est vide.
Syntax
ST_IsEmpty(x)
Parameters
|
Parameter |
Description |
|
x |
L'entrée doit être une valeur de type geometry. |
Return value type
Une valeur booléenne.
Examples
Créez un point avec la fonction ST_Point, puis vérifiez s'il est vide à l'aide de ST_IsEmpty.
-
Requête
* | SELECT ST_IsEmpty(ST_Point(1,1)) Les résultats de la requête et de l'analyse sont
false.
Fonction ST_IsRing
La fonction ST_IsRing renvoie true si la géométrie d'entrée constitue un anneau (une chaîne de lignes simple et fermée).
Syntax
ST_IsRing(x)
Parameters
|
Parameter |
Description |
|
x |
Le paramètre doit être de type |
Return value type
Boolean
Examples
Cet exemple construit une chaîne de lignes avec ST_LineFromText, puis vérifie s'il s'agit d'un anneau grâce à ST_IsRing.
-
Requête
* | SELECT ST_IsRing( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89 )' ) ) La requête renvoie
false.
Fonction ST_Length
La fonction ST_Length calcule la longueur projetée en 2D d'une chaîne de lignes selon la distance euclidienne. Pour une multichaîne de lignes, elle retourne la somme des longueurs des chaînes qui la composent.
Syntax
ST_Length(x)
Parameters
|
Parameter |
Description |
|
x |
Une valeur de type geometry. |
Return value type
Une valeur de type double.
Examples
Utilisez ST_LineFromText pour construire une chaîne de lignes, puis ST_Length pour en calculer la longueur.
-
Requête
* | SELECT ST_Length( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89)' ) ) La requête renvoie
15.211249126879752.
Fonction ST_NumPoints
Renvoie le nombre de points contenus dans une géométrie.
Syntax
ST_NumPoints(x)
Parameters
|
Parameter |
Description |
|
x |
Une valeur de type geometry. |
Return value type
bigint
Examples
Cet exemple construit d'abord une chaîne de lignes avec la fonction ST_LineFromText, puis utilise ST_NumPoints pour en compter les points.
-
Requête
* | SELECT ST_NumPoints( ST_LineFromText('linestring (10 10,20 20)') ) Résultat de la requête :
2
Fonction ST_NumInteriorRing
Renvoie le nombre d'anneaux intérieurs d'une géométrie.
Syntax
ST_NumInteriorRing(x)
Parameters
|
Parameter |
Description |
|
x |
Un objet géométrique. |
Return value type
Une valeur bigint.
Examples
L'exemple ci-dessous emploie ST_GeometryFromText pour créer une géométrie et ST_NumInteriorRing afin de dénombrer ses anneaux intérieurs.
-
Requête
* | SELECT ST_NumInteriorRing( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) La requête renvoie
1.
Fonction ST_StartPoint
Renvoie le premier point d'une chaîne de lignes.
Syntax
ST_StartPoint(x)
Parameters
|
Parameter |
Description |
|
x |
Spécifie la chaîne de lignes d'entrée. |
Return value type
point
Examples
Cet exemple crée une chaîne de lignes avec la fonction ST_LineFromText, puis en extrait le premier point via ST_StartPoint.
-
Requête
* | SELECT ST_StartPoint( ST_LineFromText( 'linestring (10 10,20 20 )' ) ) Résultats de la requête et de l'analyse :
POINT (10 10).
Fonction ST_X
Renvoie la coordonnée X d'un point fourni en entrée.
Syntax
ST_X(x)
Parameters
|
Parameter |
Description |
|
x |
Le paramètre doit être un point. |
Return value type
Le type de retour est double.
Examples
Cet exemple utilise la fonction ST_Point pour construire un point et ST_X pour en obtenir la coordonnée X.
-
Requête
* | SELECT ST_X(ST_Point(1,3)) La requête renvoie
1.0.
Fonction ST_XMax
ST_XMax renvoie la coordonnée x maximale d'une géométrie.
Syntax
ST_XMax(x)
Parameters
|
Parameter |
Description |
|
x |
Une valeur de type geometry. |
Return value type
Renvoie une valeur double.
Examples
Utilisez la fonction ST_GeometryFromText pour construire une géométrie, puis ST_XMax pour récupérer sa coordonnée x maximale.
-
Requête
* | SELECT ST_XMax( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) La requête renvoie
60.0.
Fonction ST_XMin
La fonction ST_XMin renvoie la coordonnée x minimale d'une géométrie.
Syntax
ST_XMin(x)
Parameters
|
Parameter |
Description |
|
x |
La géométrie d'entrée. |
Return value type
double
Examples
Cet exemple construit une géométrie avec la fonction ST_GeometryFromText, puis utilise ST_XMin pour en extraire la coordonnée x minimale.
-
Requête
* | SELECT ST_XMin( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) Résultats de la requête :
10.0
Fonction ST_Y
Renvoie la coordonnée y d'un point fourni en entrée.
Syntax
ST_Y(x)
Parameters
|
Parameter |
Description |
|
x |
Une valeur de type point. |
Return value type
Une valeur de type double.
Examples
Cet exemple utilise la fonction ST_Point pour créer un point et la fonction ST_Y pour récupérer sa coordonnée y.
-
Requête et analyse
* | SELECT ST_Y(ST_Point(1,3)) Résultats de la requête et de l'analyse :
3.0
Fonction ST_YMax
La fonction ST_YMax renvoie la coordonnée y maximale d'une géométrie.
Syntax
ST_YMax(x)
Parameters
|
Parameter |
Description |
|
x |
Une valeur de type geometry. |
Return value type
double
Examples
Cet exemple construit une géométrie avec la fonction ST_GeometryFromText et renvoie sa coordonnée y maximale via la fonction ST_YMax.
-
Requête et analyse
* | SELECT ST_YMax( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) Le résultat de la requête et de l'analyse est
50.0.
Fonction ST_YMin
Renvoie la coordonnée Y minimale d'une géométrie.
Syntax
ST_YMin(x)
Parameters
|
Parameter |
Description |
|
x |
La géométrie d'entrée. |
Return value type
double
Examples
Cet exemple utilise la fonction ST_GeometryFromText pour construire une géométrie et la fonction ST_YMin pour en obtenir la coordonnée Y minimale.
-
Requête et analyse
* | SELECT ST_YMin( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) Le résultat est
10.0.
bing_tile
La fonction bing_tile crée une tuile Bing.
Syntax
-
Crée une tuile Bing à partir d'une coordonnée x, d'une coordonnée y et d'un niveau de zoom.
bing_tile(x, y, zoom_level) -
Génère une tuile Bing à partir d'une clé quadtree.
bing_tile(quadKey)
Parameters
|
Parameter |
Description |
|
x |
La coordonnée x. Doit être un entier. |
|
y |
La coordonnée y. Doit être un entier. |
|
zoom_level |
Le niveau de zoom. Doit être un entier compris entre 1 et 23. |
|
quadKey |
La clé quadtree. |
Return value type
Renvoie une tuile Bing.
Examples
-
Exemple 1 : Création d'une tuile Bing à partir d'une coordonnée x, d'une coordonnée y et d'un niveau de zoom.
-
Requête
* | SELECT bing_tile(10, 20, 20) Résultats de la requête et de l'analyse :
{"x":10,"y":20,"zoom":20}
-
-
Exemple 2 : Génération d'une tuile Bing à partir d'une clé quadtree.
-
Requête
* | SELECT bing_tile(bing_tile_quadkey(bing_tile(10, 20, 20))) Résultats de la requête et de l'analyse :
{"x":10,"y":20,"zoom":20}
-
Fonction Bing_tile_at
La fonction bing_tile_at crée une tuile Bing à partir d'une latitude, d'une longitude et d'un niveau de zoom.
Syntax
bing_tile_at(x, y, zoom_level)
Parameters
|
Parameter |
Description |
|
x |
La latitude, sous forme de valeur double comprise dans l'intervalle |
|
y |
La longitude, sous forme de valeur double comprise dans l'intervalle |
|
zoom_level |
Le niveau de zoom, sous forme d'entier compris entre 1 et 23. |
Return value type
Un objet BingTile.
Examples
Cet exemple crée une tuile Bing.
-
Requête
* | SELECT bing_tile_at(47.265511, -122.465691, 12) La requête renvoie
{"x":654,"y":1436,"zoom":12}.
Fonction bing_tile_coordinates
Renvoie les coordonnées X et Y d'une tuile Bing spécifiée.
Syntax
bing_tile_coordinates(x)
Parameters
|
Parameter |
Description |
|
x |
Une valeur BingTile. |
Return value type
Renvoie un tableau de deux entiers : [X, Y].
Examples
Cet exemple récupère les coordonnées d'une tuile Bing donnée.
-
Requête
* | SELECT bing_tile_coordinates(bing_tile_at(47.265511, -122.465691, 12)) Résultat :
[654,1436].
bing_tile_polygon
Renvoie la représentation polygonale d'une tuile Bing.
Syntax
bing_tile_polygon(x)
Parameters
|
Parameter |
Description |
|
x |
Valeur BingTile. |
Return value type
polygon
Examples
Cet exemple renvoie la représentation polygonale d'une tuile Bing.
-
Instruction de requête
* | SELECT bing_tile_polygon(bing_tile_at(30.26, 120.19, 12)) Résultat de la requête :
POLYGON ((120.146484375 30.297017883372042, 120.146484375 30.221101852485987, 120.234375 30.221101852485987, 120.234375 30.297017883372042, 120.146484375 30.297017883372042))
Bing_tile_quadkey
La fonction bing_tile_quadkey renvoie la clé quadtree d'une tuile Bing.
Syntax
bing_tile_quadkey(x)
Parameters
|
Parameter |
Description |
|
x |
Valeur |
Return value type
varchar
Examples
L'exemple suivant convertit une tuile aux coordonnées (10, 20) avec un niveau de zoom 20 en sa clé quadtree correspondante.
-
Instruction de requête
* | SELECT bing_tile_quadkey(bing_tile(10, 20, 20)) La requête renvoie la clé quadtree
000000000000021210.
Fonction bing_tile_zoom_level
Renvoie le niveau de zoom d'une tuile Bing.
Syntax
bing_tile_zoom_level(x)
Parameters
|
Parameter |
Description |
|
x |
Objet BingTile. |
Return value type
double
Examples
L'exemple ci-dessous calcule le niveau de zoom pour une tuile Bing spécifique.
-
Instruction de requête
* | SELECT bing_tile_zoom_level(bing_tile(10, 20, 20)) Résultat de la requête :
20.