Fonctions géospatiales de la version 2 du moteur Athena - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fonctions géospatiales de la version 2 du moteur Athena

Cette rubrique répertorie les fonctions géospatiales ESRI qui sont prises en charge à partir de la version 2 du moteur Athena. Pour plus d'informations sur les versions du moteur Athena, voir Gestion des versions du moteur Athena.

Modifications apportées à la version 2 du moteur Athena

Athena prend en charge les types de fonctions géospatiales suivants :

Fonctions de constructeur

Utilisez des fonctions de constructeur pour obtenir des représentations binaires des types de données géométriques point, line ou polygon. Vous pouvez également utiliser ces fonctions pour convertir des données binaires en texte et obtenir des valeurs binaires pour les données géométriques exprimées au format WKT (well-known text).

ST_AsBinary(geometry)

Renvoie un type de données varbinary qui contient la représentation WKB de la géométrie spécifiée. Exemple :

SELECT ST_AsBinary(ST_Point(-158.54, 61.56))

ST_AsText(geometry)

Convertit chacun des types de données géométriques spécifiés en texte. Renvoie une valeur dans un type de données varchar, qui est une représentation WKT du type de données de géométrie. Exemple :

SELECT ST_AsText(ST_Point(-158.54, 61.56))

ST_GeomAsLegacyBinary(geometry)

Renvoie un varbinary hérité à partir de la géométrie spécifiée. Exemple :

SELECT ST_GeomAsLegacyBinary(ST_Point(-158.54, 61.56)

ST_GeometryFromText(varchar)

Convertit un texte au format WKT en un type de données de géométrie. Renvoie une valeur dans un type de données de géométrie. Exemple :

SELECT ST_GeometryFromText(ST_AsText(ST_Point(1, 2)))

ST_GeomFromBinary(varbinary)

Renvoie un objet de type géométrique à partir d'une représentation WKB. Exemple :

SELECT ST_GeomFromBinary(ST_AsBinary(ST_Point(-158.54, 61.56)))

ST_GeomFromLegacyBinary(varbinary)

Renvoie un objet de type géométrique à partir d'un type varbinary hérité. Exemple :

SELECT ST_GeomFromLegacyBinary(ST_GeomAsLegacyBinary(ST_Point(-158.54, 61.56)))

ST_LineFromText(varchar)

Renvoie une valeur dans un type de données de géométrie line. Exemple :

SELECT ST_Line('linestring(1 1, 2 2, 3 3)')

ST_LineString(array(point))

Renvoie un type géométrique LineString formé à partir d'un tableau de types géométriques ponctuels. S'il y a moins de deux points non vides dans le tableau spécifié, une chaîne LineString vide est renvoyée. Renvoie une exception si un élément du tableau est nul, vide ou identique au précédent. Il est possible que la géométrie renvoyée ne soit pas simple. En fonction de l'entrée spécifiée, la géométrie renvoyée peut s'auto-intersecter ou contenir des sommets en double. Exemple :

SELECT ST_LineString(ARRAY[ST_Point(-158.54, 61.56), ST_Point(-158.55, 61.56)])

ST_MultiPoint(array(point))

Renvoie un objet géométrique MultiPoint formé à partir des points spécifiés. Renvoie un caractère nul si le tableau spécifié est vide. Renvoie une exception si un élément du tableau est nul ou vide. Il est possible que la géométrie renvoyée ne soit pas simple et qu'elle contienne des points en double si le tableau spécifié en contient. Exemple :

SELECT ST_MultiPoint(ARRAY[ST_Point(-158.54, 61.56), ST_Point(-158.55, 61.56)])

ST_Point(double, double)

Renvoie un objet point de type géométrique. Pour les valeurs de données d'entrée de cette fonction, utilisez des valeurs géométriques, telles que les valeurs du système de coordonnées cartésiennes en UTM (Universal Transverse Mercator) ou des unités de cartes géographiques (longitude et latitude) en degrés décimaux. Les valeurs de latitude et de longitude utilisent le système géodésique mondial, également appelé WGS 1984 ou EPSG:4326. WGS 1984 est le système de coordonnées utilisé par le GPS (Global Positioning System).

Par exemple, dans la notation suivante, les coordonnées cartographiques sont spécifiées dans la longitude et la latitude, et la valeur .072284, qui est la distance tampon, est spécifiée dans les unités angulaires en degrés décimaux :

SELECT ST_Buffer(ST_Point(-74.006801, 40.705220), .072284)

Syntaxe :

SELECT ST_Point(longitude, latitude) FROM earthquakes LIMIT 1

L'exemple ci-dessous utilise des coordonnées spécifiques de latitude et de longitude :

SELECT ST_Point(-158.54, 61.56) FROM earthquakes LIMIT 1

L'exemple suivant utilise des coordonnées spécifiques de latitude et de longitude :

SELECT ST_Point(-74.006801, 40.705220)

L'exemple suivant utilise la fonction ST_AsText pour obtenir la géométrie à partir de WKT :

SELECT ST_AsText(ST_Point(-74.006801, 40.705220)) AS WKT

ST_Polygon(varchar)

En utilisant la séquence des ordonnées fournies dans le sens horaire, de gauche à droite, on obtient un type de données de géométrie polygon. À partir de la version 2 du moteur Athena, seuls les polygones sont acceptés en entrée. Exemple :

SELECT ST_Polygon('polygon ((1 1, 1 4, 4 4, 4 1))')

to_geometry(sphericalGeography)

Renvoie un objet géométrique à partir de l'objet géographique sphérique spécifié. Exemple :

SELECT to_geometry(to_spherical_geography(ST_Point(-158.54, 61.56)))

to_spherical_geography(geometry)

Renvoie un objet géographique sphérique à partir de la géométrie spécifiée. Utilisez cette fonction pour convertir un objet géométrique en un objet géométrique sphérique sur la sphère du rayon de la Terre. La fonction ne peut être utilisée que sur les géométries POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON et MULTIPOLYGON définies dans un espace 2D ou une GEOMETRYCOLLECTION de ces géométries. Pour chaque point de la géométrie spécifiée, la fonction vérifie que point.x se trouve dans [-180.0, 180.0] et que point.y se trouve dans [-90.0, 90.0]. La fonction utilise ces points comme degrés de longitude et de latitude pour construire la forme du résultat sphericalGeography.

Exemple :

SELECT to_spherical_geography(ST_Point(-158.54, 61.56))

fonctions de relations géospatiales

Les fonctions suivantes expriment des relations entre deux géométries différentes que vous spécifiez en entrée et renvoient des résultats de type boolean. L'ordre dans lequel vous spécifiez la paire des géométries a de l'importance : la première valeur de géométrie est appelée géométrie de gauche et la deuxième, géométrie de droite.

Ces fonctions renvoient :

  • TRUE si et seulement si la relation décrite par la fonction est remplie.

  • FALSE si et seulement si la relation décrite par la fonction n'est pas remplie.

ST_Contains(geometry, geometry)

Renvoie TRUE si et seulement si la géométrie de gauche contient la géométrie de droite. Exemples :

SELECT ST_Contains('POLYGON((0 2,1 1,0 -1,0 2))', 'POLYGON((-1 3,2 1,0 -3,-1 3))')
SELECT ST_Contains('POLYGON((0 2,1 1,0 -1,0 2))', ST_Point(0, 0))
SELECT ST_Contains(ST_GeometryFromText('POLYGON((0 2,1 1,0 -1,0 2))'), ST_GeometryFromText('POLYGON((-1 3,2 1,0 -3,-1 3))'))

ST_Crosses(geometry, geometry)

Renvoie TRUE si et seulement si la géométrie de gauche croise la géométrie de droite. Exemple :

SELECT ST_Crosses(ST_Line('linestring(1 1, 2 2 )'), ST_Line('linestring(0 1, 2 2)'))

ST_Disjoint(geometry, geometry)

Renvoie TRUE si et seulement si l'intersection des géométries de gauche et de droite est vide. Exemple :

SELECT ST_Disjoint(ST_Line('linestring(0 0, 0 1)'), ST_Line('linestring(1 1, 1 0)'))

ST_Equals(geometry, geometry)

Renvoie TRUE si et seulement si la géométrie de gauche est égale à la géométrie de droite. Exemple :

SELECT ST_Equals(ST_Line('linestring( 0 0, 1 1)'), ST_Line('linestring(1 3, 2 2)'))

ST_Intersects(geometry, geometry)

Renvoie TRUE si et seulement si la géométrie de gauche coupe la géométrie de droite. Exemple :

SELECT ST_Intersects(ST_Line('linestring(8 7, 7 8)'), ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))'))

ST_Overlaps(geometry, geometry)

Renvoie TRUE si et seulement si la géométrie de gauche chevauche la géométrie de droite. Exemple :

SELECT ST_Overlaps(ST_Polygon('polygon((2 0, 2 1, 3 1))'), ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))

ST_Relate(geometry, geometry, varchar)

Renvoie TRUE si et seulement si la géométrie de gauche a la relation DE-9IM (Dimensionally Extended nine-Intersection Model) spécifiée avec la géométrie de droite. La troisième entrée (varchar) prend la relation. Exemple :

SELECT ST_Relate(ST_Line('linestring(0 0, 3 3)'), ST_Line('linestring(1 1, 4 4)'), 'T********')

ST_Touches(geometry, geometry)

Renvoie TRUE si et seulement si la géométrie de gauche touche la géométrie de droite.

Exemple :

SELECT ST_Touches(ST_Point(8, 8), ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))

ST_Within(geometry, geometry)

Renvoie TRUE si et seulement si la géométrie de gauche est à l'intérieur de la géométrie de droite.

Exemple :

SELECT ST_Within(ST_Point(8, 8), ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))

fonctions d'opérations

Utilisez des fonctions d'opérations pour exécuter des opérations sur des valeurs de type de données géométrique. Par exemple, vous pouvez obtenir les limites d'un type de données géométrique unique : intersections entre deux types de données géométriques ou différence entre les géométries de gauche et de droite, où chacune des géométries est du même type de données géométrique, ou un tampon ou anneau extérieur autour d'un type de données géométrique particulier.

geometry_union(array(geometry))

Renvoie une géométrie qui représente l'union de l'ensemble des points des géométries spécifiées. Exemple :

SELECT geometry_union(ARRAY[ST_Point(-158.54, 61.56), ST_Point(-158.55, 61.56)])

ST_Boundary(geometry)

Prend en entrée l'un des types de données géométriques et renvoie le type de données de géométrie boundary.

Exemples :

SELECT ST_Boundary(ST_Line('linestring(0 1, 1 0)')))
SELECT ST_Boundary(ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))

ST_Buffer(geometry, double)

Prend en entrée l'un des types de données géométriques, comme un point, une ligne, un polygone, une multiligne ou multipolygone, et une distance comme type double). Renvoie le type de données de géométrie mis en mémoire tampon par la distance (ou le rayon) spécifiée. Exemple :

SELECT ST_Buffer(ST_Point(1, 2), 2.0)

Dans l'exemple suivant, les coordonnées cartographiques sont spécifiées dans la longitude et la latitude, et la valeur .072284, qui est la distance tampon, est spécifiée dans les unités angulaires en degrés décimaux :

SELECT ST_Buffer(ST_Point(-74.006801, 40.705220), .072284)

ST_Difference(geometry, geometry)

Renvoie une géométrie de la différence entre la géométrie de gauche et la géométrie de droite. Exemple :

SELECT ST_AsText(ST_Difference(ST_Polygon('polygon((0 0, 0 10, 10 10, 10 0))'), ST_Polygon('polygon((0 0, 0 5, 5 5, 5 0))')))

ST_Envelope(geometry)

Accepte en tant qu'entrée les types de données géométriques line, polygon, multiline et multipolygon. Ne prend pas en charge le type de données géométrique point. Renvoie l'enveloppe sous forme de géométrie, l'enveloppe étant un rectangle autour du type spécifié de données de géométrie. Exemples :

SELECT ST_Envelope(ST_Line('linestring(0 1, 1 0)'))
SELECT ST_Envelope(ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))

ST_EnvelopeAsPts(geometry)

Renvoie un tableau de deux points qui représentent les coins inférieurs gauche et supérieur droit du polygone rectangulaire d'une géométrie. Renvoie un caractère nul si la géométrie spécifiée est vide. Exemple :

SELECT ST_EnvelopeAsPts(ST_Point(-158.54, 61.56))

ST_ExteriorRing(geometry)

Renvoie la géométrie de l'anneau extérieur du type d'entrée polygon. À partir de la version 2 du moteur Athena, les polygones sont les seules géométries acceptées en entrée. Exemples :

SELECT ST_ExteriorRing(ST_Polygon(1,1, 1,4, 4,1))
SELECT ST_ExteriorRing(ST_Polygon('polygon ((0 0, 8 0, 0 8, 0 0), (1 1, 1 5, 5 1, 1 1))'))

ST_Intersection(geometry, geometry)

Renvoie la géométrie de l'intersection de la géométrie gauche et de la géométrie droite. Exemples :

SELECT ST_Intersection(ST_Point(1,1), ST_Point(1,1))
SELECT ST_Intersection(ST_Line('linestring(0 1, 1 0)'), ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))
SELECT ST_AsText(ST_Intersection(ST_Polygon('polygon((2 0, 2 3, 3 0))'), ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))')))

ST_SymDifference(geometry, geometry)

Renvoie la géométrie de la différence géométriquement symétrique entre la géométrie de gauche et la géométrie de droite. Exemple :

SELECT ST_AsText(ST_SymDifference(ST_Line('linestring(0 2, 2 2)'), ST_Line('linestring(1 2, 3 2)')))

ST_Union(geometry, geometry)

Renvoie un type de données de géométrie qui représente l'union des ensembles de points des géométries spécifiées. Exemple :

SELECT ST_Union(ST_Point(-158.54, 61.56),ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))

Fonctions d'accesseur

Les fonctions d'accesseur s'avèrent utiles pour obtenir des valeurs dans des types varchar, bigint ou double de différents types de données geometry, où geometry est l'un des types de données de géométrie pris en charge dans Athena : point, line, polygon, multiline et multipolygon. Par exemple, vous pouvez obtenir une surface d'un type de données géométrique polygon, les valeurs X et Y maximum et minimum pour un type de données géométrique spécifié, la longueur d'un type de données line ou le nombre de points dans un type de données géométrique indiqué.

geometry_invalid_reason(geometry)

Renvoie, dans un type de données varchar, la raison pour laquelle la géométrie spécifiée n'est pas valide ou pas simple. Si la géométrie spécifiée n'est ni valide ni simple, renvoie la raison pour laquelle elle n'est pas valide. Si la géométrie spécifiée est valide et simple, renvoie un caractère nul. Exemple :

SELECT geometry_invalid_reason(ST_Point(-158.54, 61.56))

great_circle_distance(latitude1, longitude1, latitude2, longitude2)

Renvoie, en double, la distance orthodromique entre deux points de la surface de la Terre en kilomètres. Exemple :

SELECT great_circle_distance(36.12, -86.67, 33.94, -118.40)

line_locate_point(lineString, point)

Renvoie un double entre 0 et 1 qui représente l'emplacement du point le plus proche du point spécifié sur la chaîne de lignes spécifiée, en tant que fraction de la longueur totale de la ligne 2d.

Renvoie un caractère nul si la chaîne de lignes ou le point spécifié est vide ou nul. Exemple :

SELECT line_locate_point(ST_GeometryFromText('LINESTRING (0 0, 0 1)'), ST_Point(0, 0.2))

simplify_geometry(geometry, double)

Utilise l'amer-douglas-peucker algorithme R pour renvoyer un type de données de géométrie qui est une version simplifiée de la géométrie spécifiée. Évite de créer des géométries dérivées (en particulier des polygones) non valides. Exemple :

SELECT simplify_geometry(ST_GeometryFromText('POLYGON ((1 0, 2 1, 3 1, 3 1, 4 1, 1 0))'), 1.5)

ST_Area(geometry)

Accepte en tant qu'entrée un type de données géométrique et renvoie une surface dans un type double. Exemple :

SELECT ST_Area(ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))'))

ST_Centroid(geometry)

Accepte en tant qu'entrée un type géométrique de données polygon et renvoie un type de données de géométrie point qui est le centre de l'enveloppe du polygone. Exemples :

SELECT ST_Centroid(ST_GeometryFromText('polygon ((0 0, 3 6, 6 0, 0 0))'))
SELECT ST_AsText(ST_Centroid(ST_Envelope(ST_GeometryFromText('POINT (53 27)'))))

ST_ConvexHull(geometry)

Renvoie un type de données de géométrie qui est la plus petite géométrie convexe qui englobe toutes les géométries dans l'entrée spécifiée. Exemple :

SELECT ST_ConvexHull(ST_Point(-158.54, 61.56))

ST_CoordDim(geometry)

Prend en entrée l'un des type de données de géométrie pris en charge et renvoie le nombre de composants de coordonnées dans le type tinyint. Exemple :

SELECT ST_CoordDim(ST_Point(1.5,2.5))

ST_Dimension(geometry)

Accepte en tant qu'entrée l'un des types de données géométriques pris en charge et renvoie la dimension spatiale d'une géométrie en type tinyint. Exemple :

SELECT ST_Dimension(ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))'))

ST_Distance(geometry, geometry)

Renvoie, en fonction de la référence spatiale, un double contenant la distance cartésienne minimale bidimensionnelle entre deux géométries en unités projetées. À partir de la version 2 du moteur Athena, renvoie un caractère nul si l'une des entrées est une géométrie vide. Exemple :

SELECT ST_Distance(ST_Point(0.0,0.0), ST_Point(3.0,4.0))

ST_Distance(sphericalGeography, sphericalGeography)

Renvoie, sous forme de double, la distance orthodromique entre deux points géographiques sphériques en mètres. Exemple :

SELECT ST_Distance(to_spherical_geography(ST_Point(61.56, -86.67)),to_spherical_geography(ST_Point(61.56, -86.68)))

ST_EndPoint(geometry)

Renvoie le dernier point d'un type de données de géométrie line dans un type de données de géométrie point. Exemple :

SELECT ST_EndPoint(ST_Line('linestring(0 2, 2 2)'))

ST_Geometries(geometry)

Renvoie un tableau des géométries dans la collection spécifiée. Si la géométrie spécifiée n'est pas une géométrie multiple, elle renvoie un tableau à un élément. Si la géométrie spécifiée est vide, un caractère nul est renvoyé.

Par exemple, avec un objet MultiLineString, ST_Geometries crée un tableau d'objets LineString. Avec un objet GeometryCollection, ST_Geometries renvoie un tableau non aplati de ses constituants. Exemple :

SELECT ST_Geometries(GEOMETRYCOLLECTION(MULTIPOINT(0 0, 1 1), GEOMETRYCOLLECTION(MULTILINESTRING((2 2, 3 3)))))

Résultat:

array[MULTIPOINT(0 0, 1 1),GEOMETRYCOLLECTION(MULTILINESTRING((2 2, 3 3)))]

ST_GeometryN(geometry, index)

Renvoie, en tant que type de données de géométrie, l'élément géométrique à un index entier spécifié. Les indices commencent à 1. Si la géométrie spécifiée est une collection de géométries (par exemple, un objet GEOMETRYCOLLECTION ou MULTI*), renvoie la géométrie à l'index spécifié. Si l'index spécifié est inférieur à 1 ou supérieur au nombre total d'éléments de la collection, renvoie un caractère nul. Pour obtenir le nombre total d'éléments, utilisez ST_NumGeometries. Les géométries singulières (par exemple, POINT, LINESTRING, ou POLYGON), sont traitées comme des collections d'un élément. Les géométries vides sont traitées comme des collections vides. Exemple :

SELECT ST_GeometryN(ST_Point(-158.54, 61.56),1)

ST_GeometryType(geometry)

Renvoie, sous la forme d'un varchar, le type de la géométrie. Exemple :

SELECT ST_GeometryType(ST_Point(-158.54, 61.56))

ST_InteriorRingN(geometry, index)

Renvoie l'élément anneau intérieur à l'index spécifié (les indices commencent à 1). Si l'indice donné est inférieur à 1 ou supérieur au nombre total d'anneaux intérieurs dans la géométrie spécifiée, renvoie un caractère nul. Renvoie une erreur si la géométrie spécifiée n'est pas un polygone. Pour obtenir le nombre total d'éléments, utilisez ST_NumInteriorRing. Exemple :

SELECT ST_InteriorRingN(st_polygon('polygon ((0 0, 1 0, 1 1, 0 1, 0 0))'),1)

ST_InteriorRings(geometry)

Renvoie un tableau de géométrie de tous les anneaux intérieurs trouvés dans la géométrie spécifiée, ou un tableau vide si le polygone n'a pas d'anneaux intérieurs. Si la géométrie spécifiée est vide, un caractère nul est renvoyé. Si la géométrie spécifiée n'est pas un polygone, renvoie une erreur. Exemple :

SELECT ST_InteriorRings(st_polygon('polygon ((0 0, 1 0, 1 1, 0 1, 0 0))'))

ST_IsClosed(geometry)

Prend comme entrée uniquement et les types de données de géométrie line et multiline. Renvoie TRUE (type boolean) si et seulement si la ligne est fermée. Exemple :

SELECT ST_IsClosed(ST_Line('linestring(0 2, 2 2)'))

ST_IsEmpty(geometry)

Prend comme entrée uniquement et les types de données de géométrie line et multiline. Renvoie TRUE (type boolean) si et seulement si la géométrie spécifiée est vide, autrement dit, si les valeurs de début et de fin de line coïncident. Exemple :

SELECT ST_IsEmpty(ST_Point(1.5, 2.5))

ST_IsRing(geometry)

Renvoie TRUE (type boolean) si et seulement si le type line est fermé et simple. Exemple :

SELECT ST_IsRing(ST_Line('linestring(0 2, 2 2)'))

ST_IsSimple(geometry)

Renvoie VRAI si la géométrie spécifiée ne comporte pas de points géométriques anormaux (par exemple, une auto-intersection ou une auto-tangence). Pour déterminer pourquoi la géométrie n'est pas simple, utilisez geometry_invalid_reason(). Exemple :

SELECT ST_IsSimple(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))

ST_IsValid(geometry)

Renvoie VRAI si et seulement si la géométrie spécifiée est bien formée. Pour déterminer pourquoi la géométrie n'est pas bien formée, utilisez geometry_invalid_reason(). Exemple :

SELECT ST_IsValid(ST_Point(61.56, -86.68))

ST_Length(geometry)

Renvoie la longueur de line en type double. Exemple :

SELECT ST_Length(ST_Line('linestring(0 2, 2 2)'))

ST_NumGeometries(geometry)

Renvoie, sous la forme d'un entier, le nombre de géométries dans la collection. Si la géométrie est une collection de géométries (par exemple, un objet GEOMETRYCOLLECTION ou MULTI*), renvoie le nombre de géométries. Les géométries simples renvoient 1 ; les géométries vides renvoient 0. Une géométrie vide dans un objet GEOMETRYCOLLECTION compte comme une géométrie. Par exemple, l'exemple suivant donne la valeur 1 :

ST_NumGeometries(ST_GeometryFromText('GEOMETRYCOLLECTION(MULTIPOINT EMPTY)'))

ST_NumInteriorRing(geometry)

Renvoie le nombre d'anneaux intérieurs dans la géométrie polygon en type bigint. Exemple :

SELECT ST_NumInteriorRing(ST_Polygon('polygon ((0 0, 8 0, 0 8, 0 0), (1 1, 1 5, 5 1, 1 1))'))

ST_NumPoints(geometry)

Renvoie le nombre de points de la géométrie en type bigint. Exemple :

SELECT ST_NumPoints(ST_Point(1.5, 2.5))

ST_PointN(lineString, index)

Renvoie, en tant que données de géométrie de type point, le sommet de la chaîne de lignes spécifiée à l'index entier spécifié. Les indices commencent à 1. Si l'index donné est inférieur à 1 ou supérieur au nombre total d'éléments de la collection, renvoie un caractère nul. Pour obtenir le nombre total d'éléments, utilisez ST_NumPoints. Exemple :

SELECT ST_PointN(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]),1)

ST_Points(geometry)

Renvoie un tableau de points de l'objet géométrique de la chaîne de lignes spécifiée. Exemple :

SELECT ST_Points(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))

ST_StartPoint(geometry)

Renvoie le premier point d'un type de données de géométrie line dans un type de données de géométrie point. Exemple :

SELECT ST_StartPoint(ST_Line('linestring(0 2, 2 2)'))

ST_X(point)

Renvoie la coordonnée X d'un point en type double. Exemple :

SELECT ST_X(ST_Point(1.5, 2.5))

ST_XMax(geometry)

Renvoie la coordonnée X maximale d'une géométrie en type double. Exemple :

SELECT ST_XMax(ST_Line('linestring(0 2, 2 2)'))

ST_XMin(geometry)

Renvoie la coordonnée X minimale d'une géométrie en type double. Exemple :

SELECT ST_XMin(ST_Line('linestring(0 2, 2 2)'))

ST_Y(point)

Renvoie la coordonnée Y d'un point en type double. Exemple :

SELECT ST_Y(ST_Point(1.5, 2.5))

ST_YMax(geometry)

Renvoie la coordonnée Y maximale d'une géométrie en type double. Exemple :

SELECT ST_YMax(ST_Line('linestring(0 2, 2 2)'))

ST_YMin(geometry)

Renvoie la coordonnée Y minimale d'une géométrie en type double. Exemple :

SELECT ST_YMin(ST_Line('linestring(0 2, 2 2)'))

Fonctions d'agrégation

convex_hull_agg(geometry)

Renvoie la géométrie convexe minimale qui englobe toutes les géométries transmises en entrée.

geometry_union_agg(geometry)

Renvoie une géométrie qui représente l'union des ensembles de points de toutes les géométries transmises en entrée.

Fonctions Bing Tile

Les fonctions suivantes permettent de convertir entre les géométries et les tuiles dans le Système de tuiles Bing de Microsoft.

bing_tile(x, y, zoom_level)

Renvoie un objet tuile Bing à partir de coordonnées entières x et y et du niveau de zoom spécifié. Le niveau de zoom doit être un entier compris entre 1 et 23. Exemple :

SELECT bing_tile(10, 20, 12)

bing_tile(quadKey)

Renvoie un objet tuile Bing à partir d'une quadkey. Exemple :

SELECT bing_tile(bing_tile_quadkey(bing_tile(10, 20, 12)))

bing_tile_at(latitude, longitude, zoom_level)

Renvoie un objet tuile Bing à la latitude, la longitude et au niveau de zoom spécifiés. La latitude doit être comprise entre -85,05112878 et 85,05112878. La longitude doit être comprise entre -180 et 180. Les valeurs latitude et longitude doivent être un entier double et zoom_level. Exemple :

SELECT bing_tile_at(37.431944, -122.166111, 12)

bing_tiles_around(latitude, longitude, zoom_level)

Renvoie un tableau des tuiles Bing qui entourent le point de latitude et de longitude spécifié au niveau de zoom spécifié. Exemple :

SELECT bing_tiles_around(47.265511, -122.465691, 14)

bing_tiles_around(latitude, longitude, zoom_level, radius_in_km)

Renvoie, au niveau de zoom spécifié, un tableau de tuiles Bing. Le tableau contient l'ensemble minimal de tuiles Bing qui couvre un cercle du rayon spécifié en kilomètres autour de la latitude et de la longitude spécifiées. Les valeurs latitude, longitude et radius_in_km sont double ; le niveau de zoom est un integer. Exemple :

SELECT bing_tiles_around(37.8475, 112.596667, 10, .5)

bing_tile_coordinates(tile)

Renvoie les coordonnées x et y de la tuile Bing spécifiée. Exemple :

SELECT bing_tile_coordinates(bing_tile_at(37.431944, -122.166111, 12))

bing_tile_polygon(tile)

Renvoie la représentation polygonale de la tuile Bing spécifiée. Exemple :

SELECT bing_tile_polygon(bing_tile_at(47.265511, -122.465691, 4))

bing_tile_quadkey(tile)

Renvoie la quadkey de la tuile Bing spécifiée. Exemple :

SELECT bing_tile_quadkey(bing_tile(52, 143, 10))

bing_tile_zoom_level(tile)

Renvoie le niveau de zoom de la tuile Bing spécifiée sous la forme d'un entier. Exemple :

SELECT bing_tile_zoom_level(bing_tile(52, 143, 10))

geometry_to_bing_tiles(geometry, zoom_level)

Renvoie l'ensemble minimal de tuiles Bing qui couvre entièrement la géométrie spécifiée au niveau de zoom spécifié. Les niveaux de zoom de 1 à 23 sont pris en charge. Exemple :

SELECT geometry_to_bing_tiles(ST_Point(61.56, 58.54), 10)