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
-
Les types d'entrée et de sortie de certaines fonctions ont changé. En particulier, le type
VARBINARY
n'est plus directement pris en charge pour l'entrée. Pour plus d’informations, consultez Modifications apportées aux fonctions géospatiales. -
Les noms de certaines fonctions géospatiales ont changé. Pour plus d’informations, consultez Modifications des noms des fonctions géospatiales dans la version 2 du moteur Athena.
-
De nouvelles fonctions ont été ajoutées. Pour plus d’informations, consultez Nouvelles fonctions géospatiales de 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-9IMvarchar
) 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
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
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)