Este tema describe la sintaxis básica y los ejemplos de las funciones geoespaciales.
Conceptos geoespaciales
Las funciones geoespaciales con el prefijo ST_ cumplen con el estándar SQL/MM y la especificación OpenGIS del Open Geospatial Consortium (OGC). Estas funciones utilizan el formato Well-Known Text (WKT) para describir geometrías, como puntos, cadenas de líneas y polígonos. La siguiente tabla enumera las geometrías compatibles y sus formatos WKT.
|
Geometría |
Formato WKT |
|
Punto |
POINT (0 0) |
|
Cadena de líneas |
LINESTRING (0 0, 1 1, 1 2) |
|
Polígono |
POLYGON((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) |
|
Multipunto |
MULTIPOINT(0 0, 1 2) |
|
Multicadena de líneas |
MULTILINESTRING((0 0, 1 1, 1 2), (2 3, 3 2, 5 4)) |
|
Multipolígono |
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))) |
|
Colección de geometrías |
GEOMETRYCOLLECTION(POINT(2 3), LINESTRING(2 3, 3 4)) |
Funciones
|
Tipo |
Función |
Sintaxis |
Descripción |
SQL |
SPL |
|
Constructores |
ST_AsText(x) |
Devuelve la representación Well-Known Text (WKT) de una geometría. |
√ |
× |
|
|
ST_GeometryFromText(x) |
Construye una geometría a partir de una representación WKT. |
√ |
× |
||
|
ST_LineFromText(x) |
Construye una cadena de líneas a partir de una representación WKT. |
√ |
× |
||
|
ST_Polygon(x) |
Construye un polígono a partir de una representación WKT. |
√ |
× |
||
|
ST_Point(x, y) |
Construye un punto a partir de las coordenadas X e Y. |
√ |
× |
||
|
Operadores |
ST_Boundary(x) |
Devuelve el límite de una geometría. |
√ |
× |
|
|
ST_Buffer(x, distance) |
Devuelve una geometría que incluye todos los puntos dentro de una distancia especificada respecto a la geometría de entrada. |
√ |
× |
||
|
ST_Difference(x, y) |
Devuelve la parte de la primera geometría que no interseca con la segunda geometría. |
√ |
× |
||
|
ST_Envelope(x) |
Devuelve el cuadro delimitador de una geometría. |
√ |
× |
||
|
ST_ExteriorRing(x) |
Devuelve una cadena de líneas que representa el anillo exterior de un polígono. |
√ |
× |
||
|
ST_Intersection(x, y) |
Devuelve una geometría que representa la intersección de dos geometrías. |
√ |
× |
||
|
ST_SymDifference(x, y) |
Devuelve una geometría que representa las partes de las geometrías de entrada que no se intersecan. |
√ |
× |
||
|
Pruebas de relación espacial |
ST_Contains(x, y) |
Devuelve |
√ |
× |
|
|
ST_Crosses(x, y) |
Devuelve |
√ |
× |
||
|
ST_Disjoint(x, y) |
Devuelve |
√ |
× |
||
|
ST_Equals(x, y) |
Devuelve |
√ |
× |
||
|
ST_Intersects(x, y) |
Devuelve |
√ |
× |
||
|
ST_Overlaps(x, y) |
Devuelve |
√ |
× |
||
|
ST_Relate(x, y, patternMatrix string) |
Devuelve |
√ |
× |
||
|
ST_Touches(x, y) |
Devuelve |
√ |
× |
||
|
ST_Within(x, y) |
Devuelve |
√ |
× |
||
|
Accesores |
ST_Area(x) |
Devuelve el área cartesiana 2D de una geometría. |
√ |
× |
|
|
ST_Centroid(x) |
Devuelve el centroide geométrico de una geometría. |
√ |
× |
||
|
ST_CoordDim(x) |
Devuelve la dimensión de coordenadas de una geometría. |
√ |
× |
||
|
ST_Dimension(x) |
Devuelve la dimensión inherente de una geometría, la cual debe ser menor o igual a la dimensión de coordenadas. |
√ |
× |
||
|
ST_Distance(x, y) |
Devuelve la distancia mínima entre dos geometrías. |
√ |
× |
||
|
ST_EndPoint(x) |
Devuelve el último punto de una cadena de líneas. |
√ |
× |
||
|
ST_IsClosed(x) |
Devuelve |
√ |
× |
||
|
ST_IsEmpty(x) |
Devuelve |
√ |
× |
||
|
ST_IsRing(x) |
Devuelve |
√ |
× |
||
|
ST_Length(x) |
Devuelve la longitud cartesiana 2D de una cadena de líneas. Si la entrada es una multicadena de líneas, devuelve la suma de las longitudes de sus elementos. |
√ |
× |
||
|
ST_NumPoints(x) |
Devuelve el número de puntos (vértices) en una geometría. |
√ |
× |
||
|
ST_NumInteriorRing(x) |
Devuelve el número de anillos interiores en un polígono. |
√ |
× |
||
|
ST_StartPoint(x) |
Devuelve el primer punto de una cadena de líneas. |
√ |
× |
||
|
ST_X(x) |
Devuelve la coordenada X de un punto. |
√ |
× |
||
|
ST_XMax(x) |
Devuelve la coordenada X máxima de una geometría. |
√ |
× |
||
|
ST_XMin(x) |
Devuelve la coordenada X mínima de una geometría. |
√ |
× |
||
|
ST_Y(x) |
Devuelve la coordenada Y de un punto. |
√ |
× |
||
|
ST_YMax(x) |
Devuelve la coordenada Y máxima de una geometría. |
√ |
× |
||
|
ST_YMin(x) |
Devuelve la coordenada Y mínima de una geometría. |
√ |
× |
||
|
Teselas de Bing |
bing_tile(x, y, zoom_level) |
Devuelve una tesela de Bing a partir de las coordenadas X e Y y el nivel de zoom especificados. |
√ |
× |
|
|
bing_tile(quadKey) |
Devuelve una tesela de Bing a partir de la clave de árbol cuaternario especificada. |
√ |
× |
||
|
bing_tile_at(x, y, zoom_level) |
Devuelve una tesela de Bing a partir de la latitud, longitud y nivel de zoom especificados. |
√ |
× |
||
|
bing_tile_coordinates(x) |
Devuelve las coordenadas X e Y de una tesela de Bing. |
√ |
× |
||
|
bing_tile_polygon(x) |
Devuelve la representación de polígono de una tesela de Bing. |
√ |
× |
||
|
bing_tile_quadkey(x) |
Devuelve la clave de árbol cuaternario de una tesela de Bing. |
√ |
× |
||
|
bing_tile_zoom_level(x) |
Devuelve el nivel de zoom de una tesela de Bing. |
√ |
× |
Función ST_AsText
Devuelve el WKT de una geometría.
Syntax
ST_AsText(x)
Parameters
|
Parámetro |
Descripción |
|
x |
La geometría de entrada. |
Return value type
El tipo de valor devuelto es varchar.
Examples
Este ejemplo devuelve el WKT de un punto.
-
Instrucción de consulta
* | SELECT ST_AsText(ST_Point(1,1)) El resultado de la consulta y el análisis es
POINT (1 1).
Función ST_GeometryFromText
Construye una geometría a partir de una representación Well-Known Text (WKT).
Syntax
ST_GeometryFromText(x)
Parameters
|
Parámetro |
Descripción |
|
x |
El parámetro debe ser de tipo varchar. |
Return value type
geometry
Examples
Construya un multipolígono.
-
Instrucción de consulta
* | 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 consulta devuelve
MULTIPOLYGON (((10 10, 10 20, 20 20, 20 15, 10 10)), ((50 40, 50 50, 60 50, 60 40, 50 40))).
Función ST_LineFromText
Crea una cadena de líneas a partir de texto WKT.
Syntax
ST_LineFromText(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de tipo varchar. |
Return value type
tipo linestring
Examples
Construya una cadena de líneas.
-
Instrucción de consulta
* | SELECT ST_LineFromText('linestring(10 10,20 20)') Resultados de la consulta:
LINESTRING (10 10, 20 20).
Función ST_Polygon
La función ST_Polygon crea un polígono a partir de una representación WKT.
Syntax
ST_Polygon(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Debe ser un valor varchar. |
Return value type
polygon
Examples
Crea un polígono.
-
Instrucción de consulta y análisis
* | SELECT ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))') El resultado es
POLYGON ((10 10, 20 15, 20 20, 10 20, 10 10)).
Función ST_Point
Construye un punto a partir de las coordenadas X e Y especificadas.
Syntax
ST_Point(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
La coordenada X del punto. El tipo de datos debe ser DOUBLE. |
|
y |
La coordenada Y del punto. El tipo de datos debe ser DOUBLE. |
Return value type
point
Examples
Construya un punto.
-
Instrucción de consulta
* | SELECT ST_Point(0,0) El resultado de la consulta está en formato WKT:
POINT (0 0)
Función ST_Boundary
La función ST_Boundary devuelve el límite de una geometría.
El límite de un punto está vacío. La función devuelve POINT EMPTY.
El límite de una cadena de líneas consiste en sus puntos finales.
El límite de un polígono consiste en las cadenas de líneas que forman su anillo exterior y todos sus anillos interiores.
Syntax
ST_Boundary(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de tipo geography. |
Return value type
Tipo geography
Examples
Utilice la función ST_Polygon para construir un polígono y luego obtenga su límite con la función ST_Boundary.
-
Instrucción de consulta
* | SELECT ST_Boundary(ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))')) La consulta devuelve
LINESTRING (10 10, 20 15, 20 20, 10 20, 10 10).
Función ST_Buffer
La función ST_Buffer devuelve una geometría que abarca todos los puntos dentro de una distancia especificada respecto a una geometría de entrada.
Syntax
ST_Buffer(x, distance)
Parameters
|
Parámetro |
Descripción |
|
x |
La geometría de entrada. |
|
distance |
La distancia del búfer. |
Return value type
geometry
Examples
Este ejemplo utiliza la función ST_Point para construir un punto y la función ST_Buffer para crear un polígono a una distancia especificada de dicho punto.
-
Instrucción de consulta
* | SELECT ST_Buffer(ST_Point(1,1),1) La consulta devuelve un valor POLYGON que aproxima un círculo. Este polígono consta de muchos puntos de coordenadas, comenzando con
(2 1, 1.9978589232386...).
Función ST_Difference
Devuelve una geometría que representa la diferencia de conjuntos de puntos entre dos geometrías.
Syntax
ST_Difference(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría. |
|
y |
Un valor de geometría. |
Return value type
Un valor de geometría.
Examples
Construya dos geometrías con la función ST_GeometryFromText y luego calcule su diferencia de conjuntos de puntos con la función ST_Difference.
-
Instrucción de consulta y análisis
* | 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 consulta devuelve el siguiente resultado:
MULTIPOLYGON (((0 10, 10 10, 10 17.5, 0 15, 0 10)), ((50 40, 60 40, 50 50, 50 40))).
Función ST_Envelope
Devuelve el cuadro delimitador de una geometría.
Syntax
ST_Envelope(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría. |
Return value type
geometry
Examples
Este ejemplo crea una geometría con la función ST_GeometryFromText y devuelve su cuadro delimitador mediante la función ST_Envelope.
-
Instrucción de consulta y análisis
* | 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 consulta devuelve
POLYGON ((10 10, 60 10, 60 50, 10 50, 10 10)).
Función ST_ExteriorRing
Devuelve el anillo exterior de una geometría como una cadena de líneas.
Syntax
ST_ExteriorRing(x)
Parameters
|
Parámetro |
Descripción |
|
x |
La geometría de entrada de tipo polígono o multipolígono. |
Return value type
geometry
Examples
Este ejemplo utiliza ST_GeometryFromText para construir una geometría y ST_ExteriorRing para devolver su anillo exterior.
-
Instrucción de consulta
* | 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 consulta devuelve
LINESTRING (10 10, 10 20, 20 20, 20 15, 10 10).
ST_Intersection
Devuelve la intersección de dos geometrías.
Syntax
ST_Intersection(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
La primera geometría. |
|
y |
La segunda geometría. |
Return value type
geometry
Examples
Este ejemplo utiliza la función ST_GeometryFromText para construir dos geometrías y la función ST_Intersection para calcular su intersección.
-
Instrucción de consulta
* | 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)))' ) ) Resultados de la consulta:
MULTIPOLYGON (((10 10, 10 20, 20 20, 20 15, 10 10)), ((50 40, 50 50, 60 50, 60 40, 50 40)))
Función ST_SymDifference
Devuelve una geometría que representa la diferencia simétrica de dos geometrías.
Syntax
ST_SymDifference(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
Una geometría. |
|
y |
Una geometría. |
Return value type
geometry
Examples
Este ejemplo utiliza la función ST_GeometryFromText para construir dos geometrías y la función ST_SymDifference para calcular su diferencia simétrica.
-
Instrucción de consulta
* | 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 consulta devuelve
GEOMETRYCOLLECTION EMPTY.
Función ST_Contains
ST_Contains devuelve true si la primera geometría contiene a la segunda. Ambas geometrías pueden intersectarse en sus límites.
Syntax
ST_Contains(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
La primera geometría de entrada. |
|
y |
La segunda geometría de entrada. |
Return value type
boolean
Examples
Este ejemplo comprueba si un polígono contiene un punto.
-
Instrucción de consulta
* | SELECT ST_Contains( ST_GeometryFromText( 'polygon((10 10,10 20,20 20,20 15,10 10))' ), ST_GeometryFromText( 'point(11 11)' ) ) La consulta devuelve
true.
Función ST_Crosses
La función ST_Crosses devuelve true si dos geometrías tienen puntos interiores en común.
Syntax
ST_Crosses(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría. |
|
y |
Un valor de geometría. |
Return value type
Un valor booleano.
Examples
Este ejemplo utiliza la función ST_GeometryFromText para construir dos geometrías y la función ST_Crosses para determinar si comparten puntos interiores.
-
Instrucción de consulta
* | 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 consulta devuelve
false.
ST_Disjoint
La función ST_Disjoint comprueba si dos geometrías son disjuntas. Devuelve true si las geometrías no se intersectan.
Syntax
ST_Disjoint(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría. |
|
y |
Un valor de geometría. |
Return value type
boolean
Examples
Este ejemplo construye dos geometrías con ST_GeometryFromText y luego utiliza ST_Disjoint para comprobar si se intersectan.
-
Instrucción de consulta
* | 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 consulta devuelve
false.
Función ST_Equals
La función ST_Equals determina si dos geometrías son idénticas y devuelve true en caso afirmativo.
Syntax
ST_Equals(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
La primera geometría. |
|
y |
La segunda geometría. |
Return value type
boolean
Examples
Este ejemplo utiliza la función ST_GeometryFromText para construir dos geometrías y la función ST_Equals para comprobar si son idénticas.
-
Instrucción de consulta
* | 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 consulta devuelve
false.
Función ST_Intersects
Devuelve true si las proyecciones planares de dos geometrías se intersectan.
Syntax
ST_Intersects(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de tipo geometry. |
|
y |
Un valor de tipo geometry. |
Return value type
boolean
Examples
Utilice la función ST_GeometryFromText para construir dos geometrías y luego use la función ST_Intersects para comprobar si se intersectan.
-
Consulta de ejemplo
* | 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)))' ) ) El resultado de la consulta y el análisis es
true.
Función ST_Overlaps
La función ST_Overlaps devuelve true si dos geometrías de la misma dimensión se superponen, pero ninguna contiene completamente a la otra.
Syntax
ST_Overlaps(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
La primera geometría de entrada. |
|
y |
La segunda geometría de entrada. |
Return value type
boolean
Examples
Este ejemplo construye dos geometrías mediante la función ST_GeometryFromText y luego comprueba si se superponen utilizando la función ST_Overlaps.
-
Instrucción de consulta y análisis
* | 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 consulta devuelve
false.
Función ST_Relate
La función ST_Relate determina si dos geometrías están relacionadas al comprobar si sus interiores o límites se intersectan. Devuelve true en caso afirmativo.
Syntax
ST_Relate(x, y, patternMatrix string)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría. |
|
y |
Un valor de geometría. |
|
patternMatrix string |
Una cadena de matriz de patrones DE-9IM. El valor es de tipo varchar. |
Return value type
boolean
Examples
Este ejemplo construye dos geometrías con la función ST_GeometryFromText y luego utiliza la función ST_Relate para comprobar si están relacionadas espacialmente.
-
Instrucción de consulta
* | 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 consulta devuelve
true.
Función ST_Touches
La función ST_Touches devuelve true si dos geometrías se tocan en sus límites, pero sus interiores no se intersectan.
Syntax
ST_Touches(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
La primera geometría. |
|
y |
La segunda geometría. |
Return value type
Devuelve un valor boolean.
Examples
A continuación, se muestra una consulta que utiliza la función ST_GeometryFromText para crear dos geometrías y la función ST_Touches para comprobar si se tocan.
-
Instrucción de consulta
* | 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 consulta devuelve
false.
Función ST_Within
La función ST_Within devuelve true si la primera geometría está completamente dentro de la segunda y sus límites no se intersectan.
Syntax
ST_Within(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
La primera geometría de entrada. |
|
y |
La segunda geometría de entrada. |
Return value type
boolean
Examples
Este ejemplo construye dos geometrías mediante la función ST_GeometryFromText y luego utiliza la función ST_Within para determinar si la primera geometría está completamente dentro de la segunda.
-
Instrucción de consulta y análisis
* | 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 consulta devuelve
false.
Función ST_Area
La función ST_Area calcula el área proyectada de una geometría sobre un plano bidimensional mediante la distancia euclidiana.
Syntax
ST_Area(x)
Parameters
|
Parámetro |
Descripción |
|
x |
La geometría de entrada. |
Return value type
double
Examples
Este ejemplo calcula el área de un multipolígono.
-
Instrucción de consulta
* | 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)))' ) ) Devuelve
-25.0.
Función ST_Centroid
La función ST_Centroid devuelve el centroide matemático de una geometría de entrada como un punto.
Syntax
ST_Centroid(x)
Parameters
|
Parámetro |
Descripción |
|
x |
La geometría de entrada. |
Return value type
geometry
Examples
Este ejemplo calcula el centroide de una geometría de tipo multipolígono.
-
Instrucción de consulta y análisis
* | 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)))' ) ) La instrucción devuelve
POINT (176.66666666666669 131.66666666666669).
Función ST_CoordDim
La función ST_CoordDim devuelve la dimensión de coordenadas de una geometría.
Syntax
ST_CoordDim(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría. |
Return value type
bigint
Examples
Utilice la función ST_GeometryFromText para construir una geometría y luego use la función ST_CoordDim para obtener su dimensión de coordenadas.
-
Instrucción de consulta
* | 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)))' ) ) La consulta devuelve
2.
Función ST_Dimension
Devuelve la dimensión intrínseca de una geometría, la cual no puede exceder la dimensión de coordenadas.
Syntax
ST_Dimension(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría.
|
Return value type
bigint
Examples
Este ejemplo utiliza ST_Dimension para encontrar la dimensión intrínseca de una geometría creada por ST_GeometryFromText.
-
Instrucción de consulta
* | 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)))' ) ) La consulta devuelve
2.
Función ST_Distance
Devuelve la distancia mínima entre dos geometrías.
Syntax
ST_Distance(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría. |
|
y |
Un valor de geometría. |
Return value type
double
Examples
Este ejemplo utiliza la función ST_GeometryFromText para crear dos geometrías y la función ST_Distance para calcular la distancia mínima entre ellas.
-
Instrucción de consulta
* | 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)))' ) ) El resultado de la consulta es
0.0.
Función ST_EndPoint
ST_EndPoint devuelve el último punto de una cadena de líneas.
Syntax
ST_EndPoint(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de tipo geometry. |
Return value type
Un valor de tipo point.
Examples
Construya una cadena de líneas con ST_LineFromText y luego utilice ST_EndPoint para devolver el último punto.
-
Instrucción de consulta y análisis
* | SELECT ST_EndPoint( ST_LineFromText( 'linestring (10 10,20 20)' ) ) Devuelve
POINT (20 20).
ST_IsClosed
La función ST_IsClosed devuelve true si una geometría está cerrada.
Syntax
ST_IsClosed(x)
Parameters
|
Parámetro |
Descripción |
|
x |
La geometría a comprobar. |
Return value type
Un valor booleano.
Examples
Este ejemplo utiliza ST_LineFromText para construir una cadena de líneas y ST_IsClosed para comprobar si dicha cadena está cerrada.
-
Instrucción de consulta
* | SELECT ST_IsClosed( ST_LineFromText( 'linestring (10.05 10.28 , 20.95 20.89 )' ) ) Resultado de la consulta:
false
Función ST_IsEmpty
La función ST_IsEmpty devuelve true si la geometría de entrada está vacía.
Syntax
ST_IsEmpty(x)
Parameters
|
Parámetro |
Descripción |
|
x |
La entrada debe ser un valor de tipo geometry. |
Return value type
Un valor booleano.
Examples
Utilice la función ST_Point para crear un punto y luego emplee la función ST_IsEmpty para comprobar si está vacío.
-
Instrucción de consulta
* | SELECT ST_IsEmpty(ST_Point(1,1)) Los resultados de la consulta y el análisis son
false.
Función ST_IsRing
La función ST_IsRing devuelve true si la geometría de entrada es un anillo (una cadena de líneas cerrada y simple).
Syntax
ST_IsRing(x)
Parameters
|
Parámetro |
Descripción |
|
x |
El parámetro debe ser de tipo |
Return value type
Boolean
Examples
En este ejemplo se construye una cadena de líneas con ST_LineFromText y después se verifica si es un anillo mediante ST_IsRing.
-
Instrucción de consulta
* | SELECT ST_IsRing( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89 )' ) ) La consulta devuelve
false.
Función ST_Length
La función ST_Length calcula la longitud proyectada en 2D de una cadena de líneas mediante distancia euclidiana. Para una multilínea, devuelve la suma de las longitudes de las cadenas de líneas que la componen.
Syntax
ST_Length(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría. |
Return value type
Un valor double.
Examples
Use ST_LineFromText para construir una cadena de líneas y ST_Length para calcular su longitud.
-
Instrucción de consulta
* | SELECT ST_Length( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89)' ) ) La consulta devuelve
15.211249126879752.
Función ST_NumPoints
Devuelve el número de puntos en una geometría.
Syntax
ST_NumPoints(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría. |
Return value type
bigint
Examples
En este ejemplo primero se construye una cadena de líneas con la función ST_LineFromText y luego se usa la función ST_NumPoints para obtener el número de puntos que contiene.
-
Instrucción de consulta
* | SELECT ST_NumPoints( ST_LineFromText('linestring (10 10,20 20)') ) Resultado de la consulta:
2
Función ST_NumInteriorRing
Devuelve el número de anillos interiores en una geometría.
Syntax
ST_NumInteriorRing(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un objeto de geometría. |
Return value type
Un valor bigint.
Examples
Este ejemplo utiliza ST_GeometryFromText para construir una geometría y ST_NumInteriorRing para calcular la cantidad de sus anillos interiores.
-
Instrucción de consulta
* | 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 consulta devuelve
1.
Función ST_StartPoint
Devuelve el primer punto de una cadena de líneas.
Syntax
ST_StartPoint(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Especifica la cadena de líneas de entrada. |
Return value type
point
Examples
En este ejemplo se crea una cadena de líneas con la función ST_LineFromText y luego se obtiene el primer punto mediante la función ST_StartPoint.
-
Instrucción de consulta
* | SELECT ST_StartPoint( ST_LineFromText( 'linestring (10 10,20 20 )' ) ) Resultados de la consulta y el análisis:
POINT (10 10).
Función ST_X
Devuelve la coordenada X de un punto de entrada.
Syntax
ST_X(x)
Parameters
|
Parámetro |
Descripción |
|
x |
El parámetro debe ser un punto. |
Return value type
El tipo de retorno es double.
Examples
Este ejemplo usa la función ST_Point para construir un punto y ST_X para obtener su coordenada X.
-
Instrucción de consulta
* | SELECT ST_X(ST_Point(1,3)) La consulta devuelve
1.0.
Función ST_XMax
ST_XMax devuelve la coordenada x máxima de una geometría.
Syntax
ST_XMax(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría. |
Return value type
Devuelve un valor double.
Examples
Utilice la función ST_GeometryFromText para construir una geometría y luego use la función ST_XMax para obtener su coordenada x máxima.
-
Instrucción de consulta
* | 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 consulta devuelve
60.0.
Función ST_XMin
La función ST_XMin devuelve la coordenada x mínima de una geometría.
Syntax
ST_XMin(x)
Parameters
|
Parámetro |
Descripción |
|
x |
La geometría de entrada. |
Return value type
double
Examples
En este ejemplo se construye una geometría con la función ST_GeometryFromText y luego se utiliza la función ST_XMin para obtener su coordenada x mínima.
-
Instrucción de consulta
* | 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)))' ) ) Resultados de la consulta:
10.0
Función ST_Y
Devuelve la coordenada y de un punto de entrada.
Syntax
ST_Y(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de tipo point. |
Return value type
Un valor de tipo double.
Examples
Este ejemplo utiliza la función ST_Point para crear un punto y la función ST_Y para obtener su coordenada y.
-
Instrucción de consulta y análisis
* | SELECT ST_Y(ST_Point(1,3)) Resultados de la consulta y el análisis:
3.0
Función ST_YMax
La función ST_YMax devuelve la coordenada y máxima de una geometría.
Syntax
ST_YMax(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de geometría. |
Return value type
double
Examples
En este ejemplo se construye una geometría con la función ST_GeometryFromText y se obtiene su coordenada y máxima mediante la función ST_YMax.
-
Instrucción de consulta y análisis
* | 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)))' ) ) El resultado de la consulta y el análisis es
50.0.
Función ST_YMin
Devuelve la coordenada Y mínima de una geometría.
Syntax
ST_YMin(x)
Parameters
|
Parámetro |
Descripción |
|
x |
La geometría de entrada. |
Return value type
double
Examples
Este ejemplo utiliza la función ST_GeometryFromText para construir una geometría y la función ST_YMin para obtener su coordenada Y mínima.
-
Instrucción de consulta y análisis
* | 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)))' ) ) El resultado es
10.0.
bing_tile
La función bing_tile crea un mosaico de Bing.
Syntax
-
Crea un mosaico de Bing a partir de una coordenada x, una coordenada y y un nivel de zoom.
bing_tile(x, y, zoom_level) -
Crea un mosaico de Bing a partir de una clave quadtree.
bing_tile(quadKey)
Parameters
|
Parámetro |
Descripción |
|
x |
La coordenada x. Debe ser un entero. |
|
y |
La coordenada y. Debe ser un entero. |
|
zoom_level |
El nivel de zoom. Debe ser un entero entre 1 y 23. |
|
quadKey |
La clave quadtree. |
Return value type
Devuelve un mosaico de Bing.
Examples
-
Ejemplo 1: Crear un mosaico de Bing a partir de una coordenada x, una coordenada y y un nivel de zoom.
-
Instrucción de consulta
* | SELECT bing_tile(10, 20, 20) Resultados de la consulta y el análisis:
{"x":10,"y":20,"zoom":20}
-
-
Ejemplo 2: Crear un mosaico de Bing a partir de una clave quadtree.
-
Instrucción de consulta
* | SELECT bing_tile(bing_tile_quadkey(bing_tile(10, 20, 20))) Resultados de la consulta y el análisis:
{"x":10,"y":20,"zoom":20}
-
Función Bing_tile_at
La función bing_tile_at crea un mosaico de Bing a partir de una latitud, una longitud y un nivel de zoom.
Syntax
bing_tile_at(x, y, zoom_level)
Parameters
|
Parámetro |
Descripción |
|
x |
La latitud, como un valor double en el rango |
|
y |
La longitud, como un valor double en el rango |
|
zoom_level |
El nivel de zoom, como un entero entre 1 y 23. |
Return value type
Un objeto BingTile.
Examples
En este ejemplo se crea un mosaico de Bing.
-
Consulta
* | SELECT bing_tile_at(47.265511, -122.465691, 12) La consulta devuelve
{"x":654,"y":1436,"zoom":12}.
Función bing_tile_coordinates
Devuelve las coordenadas X e Y de un mosaico de Bing especificado.
Syntax
bing_tile_coordinates(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor BingTile. |
Return value type
Devuelve un arreglo de dos enteros: [X, Y].
Examples
En este ejemplo se obtienen las coordenadas de un mosaico de Bing específico.
-
Instrucción de consulta
* | SELECT bing_tile_coordinates(bing_tile_at(47.265511, -122.465691, 12)) Resultado:
[654,1436].
bing_tile_polygon
Devuelve la representación de polígono de un mosaico de Bing.
Syntax
bing_tile_polygon(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor BingTile. |
Return value type
polygon
Examples
Devuelve la representación de polígono de un mosaico de Bing.
-
Instrucción de consulta
* | SELECT bing_tile_polygon(bing_tile_at(30.26, 120.19, 12)) Resultado de la consulta:
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 función bing_tile_quadkey devuelve la clave quadtree de un mosaico de Bing.
Syntax
bing_tile_quadkey(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor |
Return value type
varchar
Examples
En este ejemplo se convierte un mosaico en las coordenadas (10, 20) con nivel de zoom 20 a su clave quadtree correspondiente.
-
Instrucción de consulta
* | SELECT bing_tile_quadkey(bing_tile(10, 20, 20)) La consulta devuelve la clave quadtree
000000000000021210.
Función bing_tile_zoom_level
Devuelve el nivel de zoom de un mosaico de Bing.
Syntax
bing_tile_zoom_level(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un objeto BingTile. |
Return value type
double
Examples
A continuación se muestra un ejemplo que calcula el nivel de zoom de un mosaico de Bing específico.
-
Instrucción de consulta
* | SELECT bing_tile_zoom_level(bing_tile(10, 20, 20)) Resultado de la consulta:
20.