Este tópico descreve a sintaxe básica e exemplos de funções geoespaciais.
Conceitos geoespaciais
As funções geoespaciais com o prefixo ST_ estão em conformidade com o padrão SQL/MM e a especificação OpenGIS do Open Geospatial Consortium (OGC). Essas funções utilizam o formato Well-Known Text (WKT) para descrever geometrias, como pontos, strings de linha e polígonos. A tabela a seguir lista as geometrias suportadas e seus formatos WKT.
|
Geometria |
Formato WKT |
|
Ponto |
POINT (0 0) |
|
String de linha |
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)) |
|
Multiponto |
MULTIPOINT(0 0, 1 2) |
|
Multistring de linha |
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))) |
|
Coleção de geometrias |
GEOMETRYCOLLECTION(POINT(2 3), LINESTRING(2 3, 3 4)) |
Funções
|
Tipo |
Função |
Sintaxe |
Descrição |
SQL |
SPL |
|
Construtores |
ST_AsText(x) |
Retorna a representação Well-Known Text (WKT) de uma geometria. |
√ |
× |
|
|
ST_GeometryFromText(x) |
Constrói uma geometria a partir de uma representação WKT. |
√ |
× |
||
|
ST_LineFromText(x) |
Constrói uma string de linha a partir de uma representação WKT. |
√ |
× |
||
|
ST_Polygon(x) |
Constrói um polígono a partir de uma representação WKT. |
√ |
× |
||
|
ST_Point(x, y) |
Constrói um ponto a partir das coordenadas X e Y. |
√ |
× |
||
|
Operadores |
ST_Boundary(x) |
Retorna o limite de uma geometria. |
√ |
× |
|
|
ST_Buffer(x, distance) |
Retorna uma geometria que inclui todos os pontos dentro de uma distância especificada da geometria de entrada. |
√ |
× |
||
|
ST_Difference(x, y) |
Retorna a parte da primeira geometria que não intercepta a segunda geometria. |
√ |
× |
||
|
ST_Envelope(x) |
Retorna a caixa delimitadora de uma geometria. |
√ |
× |
||
|
ST_ExteriorRing(x) |
Retorna uma string de linha que representa o anel externo de um polígono. |
√ |
× |
||
|
ST_Intersection(x, y) |
Retorna uma geometria que representa a interseção de duas geometrias. |
√ |
× |
||
|
ST_SymDifference(x, y) |
Retorna uma geometria que representa as partes das geometrias de entrada que não se interceptam. |
√ |
× |
||
|
Testes de relação espacial |
ST_Contains(x, y) |
Retorna |
√ |
× |
|
|
ST_Crosses(x, y) |
Retorna |
√ |
× |
||
|
ST_Disjoint(x, y) |
Retorna |
√ |
× |
||
|
ST_Equals(x, y) |
Retorna |
√ |
× |
||
|
ST_Intersects(x, y) |
Retorna |
√ |
× |
||
|
ST_Overlaps(x, y) |
Retorna |
√ |
× |
||
|
ST_Relate(x, y, patternMatrix string) |
Retorna |
√ |
× |
||
|
ST_Touches(x, y) |
Retorna |
√ |
× |
||
|
ST_Within(x, y) |
Retorna |
√ |
× |
||
|
Acessores |
ST_Area(x) |
Retorna a área cartesiana 2D de uma geometria. |
√ |
× |
|
|
ST_Centroid(x) |
Retorna o centroide geométrico de uma geometria. |
√ |
× |
||
|
ST_CoordDim(x) |
Retorna a dimensão da coordenada de uma geometria. |
√ |
× |
||
|
ST_Dimension(x) |
Retorna a dimensão inerente de uma geometria, que deve ser menor ou igual à dimensão da coordenada. |
√ |
× |
||
|
ST_Distance(x, y) |
Retorna a distância mínima entre duas geometrias. |
√ |
× |
||
|
ST_EndPoint(x) |
Retorna o último ponto de uma string de linha. |
√ |
× |
||
|
ST_IsClosed(x) |
Retorna |
√ |
× |
||
|
ST_IsEmpty(x) |
Retorna |
√ |
× |
||
|
ST_IsRing(x) |
Retorna |
√ |
× |
||
|
ST_Length(x) |
Retorna o comprimento cartesiano 2D de uma string de linha. Se a entrada for uma multistring de linha, retorna a soma dos comprimentos de seus elementos. |
√ |
× |
||
|
ST_NumPoints(x) |
Retorna o número de pontos (vértices) em uma geometria. |
√ |
× |
||
|
ST_NumInteriorRing(x) |
Retorna o número de anéis internos em um polígono. |
√ |
× |
||
|
ST_StartPoint(x) |
Retorna o primeiro ponto de uma string de linha. |
√ |
× |
||
|
ST_X(x) |
Retorna a coordenada X de um ponto. |
√ |
× |
||
|
ST_XMax(x) |
Retorna a coordenada X máxima de uma geometria. |
√ |
× |
||
|
ST_XMin(x) |
Retorna a coordenada X mínima de uma geometria. |
√ |
× |
||
|
ST_Y(x) |
Retorna a coordenada Y de um ponto. |
√ |
× |
||
|
ST_YMax(x) |
Retorna a coordenada Y máxima de uma geometria. |
√ |
× |
||
|
ST_YMin(x) |
Retorna a coordenada Y mínima de uma geometria. |
√ |
× |
||
|
Tiles do Bing |
bing_tile(x, y, zoom_level) |
Retorna um tile do Bing a partir das coordenadas X e Y e do nível de zoom especificados. |
√ |
× |
|
|
bing_tile(quadKey) |
Retorna um tile do Bing a partir da chave quadtree especificada. |
√ |
× |
||
|
bing_tile_at(x, y, zoom_level) |
Retorna um tile do Bing a partir da latitude, longitude e nível de zoom especificados. |
√ |
× |
||
|
bing_tile_coordinates(x) |
Retorna as coordenadas X e Y de um tile do Bing. |
√ |
× |
||
|
bing_tile_polygon(x) |
Retorna a representação em polígono de um tile do Bing. |
√ |
× |
||
|
bing_tile_quadkey(x) |
Retorna a chave quadtree de um tile do Bing. |
√ |
× |
||
|
bing_tile_zoom_level(x) |
Retorna o nível de zoom de um tile do Bing. |
√ |
× |
Função ST_AsText
Retorna o WKT de uma geometria.
Syntax
ST_AsText(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
A geometria de entrada. |
Return value type
O tipo de retorno é varchar.
Examples
Este exemplo retorna o WKT de um ponto.
-
Instrução de consulta
* | SELECT ST_AsText(ST_Point(1,1)) O resultado da consulta e análise é
POINT (1 1).
Função ST_GeometryFromText
Constrói uma geometria a partir de uma representação Well-Known Text (WKT).
Syntax
ST_GeometryFromText(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
O parâmetro deve ser do tipo varchar. |
Return value type
geometry
Examples
Construa um multipolígono.
-
Instrução 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)))') A consulta retorna
MULTIPOLYGON (((10 10, 10 20, 20 20, 20 15, 10 10)), ((50 40, 50 50, 60 50, 60 40, 50 40))).
Função ST_LineFromText
Crie uma string de linha a partir de texto WKT.
Syntax
ST_LineFromText(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor do tipo varchar. |
Return value type
tipo linestring
Examples
Construa uma string de linha.
-
Instrução de consulta
* | SELECT ST_LineFromText('linestring(10 10,20 20)') Resultados da consulta:
LINESTRING (10 10, 20 20).
Função ST_Polygon
A função ST_Polygon cria um polígono a partir de uma representação WKT.
Syntax
ST_Polygon(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Deve ser um valor varchar. |
Return value type
polygon
Examples
Crie um polígono.
-
Instrução de consulta e análise
* | SELECT ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))') O resultado é
POLYGON ((10 10, 20 15, 20 20, 10 20, 10 10)).
Função ST_Point
Constrói um ponto a partir das coordenadas X e Y especificadas.
Syntax
ST_Point(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
A coordenada X do ponto. O tipo de dados deve ser DOUBLE. |
|
y |
A coordenada Y do ponto. O tipo de dados deve ser DOUBLE. |
Return value type
point
Examples
Construa um ponto.
-
Instrução de consulta
* | SELECT ST_Point(0,0) O resultado da consulta está no formato WKT:
POINT (0 0)
Função ST_Boundary
A função ST_Boundary retorna o limite de uma geometria.
O limite de um ponto é vazio. A função retorna POINT EMPTY.
O limite de uma string de linha consiste em seus pontos finais.
O limite de um polígono consiste nas strings de linha que formam seu anel externo e todos os seus anéis internos.
Syntax
ST_Boundary(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor do tipo geography. |
Return value type
Tipo geography
Examples
Use a função ST_Polygon para construir um polígono e, em seguida, retorne seu limite com a função ST_Boundary.
-
Instrução de consulta
* | SELECT ST_Boundary(ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))')) A consulta retorna
LINESTRING (10 10, 20 15, 20 20, 10 20, 10 10).
Função ST_Buffer
A função ST_Buffer retorna uma geometria que abrange todos os pontos dentro de uma distância especificada de uma geometria de entrada.
Syntax
ST_Buffer(x, distance)
Parameters
|
Parâmetro |
Descrição |
|
x |
A geometria de entrada. |
|
distance |
A distância do buffer. |
Return value type
geometry
Examples
Este exemplo utiliza a função ST_Point para construir um ponto e a função ST_Buffer para criar um polígono a uma distância especificada desse ponto.
-
Instrução de consulta
* | SELECT ST_Buffer(ST_Point(1,1),1) A consulta retorna um valor POLYGON que aproxima um círculo. Esse polígono consiste em vários pontos de coordenadas, começando com
(2 1, 1.9978589232386...).
Função ST_Difference
Retorna uma geometria que representa a diferença de conjuntos de pontos entre duas geometrias.
Syntax
ST_Difference(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria. |
|
y |
Um valor de geometria. |
Return value type
Um valor de geometria.
Examples
Construa duas geometrias com a função ST_GeometryFromText e calcule a diferença de conjuntos de pontos entre elas usando a função ST_Difference.
-
Instrução de consulta e análise
* | 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" A consulta retorna o seguinte resultado:
MULTIPOLYGON (((0 10, 10 10, 10 17.5, 0 15, 0 10)), ((50 40, 60 40, 50 50, 50 40))).
Função ST_Envelope
Retorna a caixa delimitadora de uma geometria.
Syntax
ST_Envelope(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria. |
Return value type
geometry
Examples
Neste exemplo, cria-se uma geometria com a função ST_GeometryFromText e retorna-se sua caixa delimitadora com a função ST_Envelope.
-
Instrução de consulta e análise
* | 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)))' ) ) A consulta retorna
POLYGON ((10 10, 60 10, 60 50, 10 50, 10 10)).
Função ST_ExteriorRing
Retorna o anel externo de uma geometria como uma string de linha.
Syntax
ST_ExteriorRing(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
A geometria de entrada do tipo polygon ou multipolygon. |
Return value type
geometry
Examples
Este exemplo usa ST_GeometryFromText para construir uma geometria e ST_ExteriorRing para retornar seu anel externo.
-
Instrução 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)))' ) ) A consulta retorna
LINESTRING (10 10, 10 20, 20 20, 20 15, 10 10).
ST_Intersection
Retorna a interseção de duas geometrias.
Syntax
ST_Intersection(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
A primeira geometria. |
|
y |
A segunda geometria. |
Return value type
geometry
Examples
Utilize a função ST_GeometryFromText para construir duas geometrias e a função ST_Intersection para calcular a interseção entre elas.
-
Instrução 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 da consulta:
MULTIPOLYGON (((10 10, 10 20, 20 20, 20 15, 10 10)), ((50 40, 50 50, 60 50, 60 40, 50 40)))
Função ST_SymDifference
Retorna uma geometria que representa a diferença simétrica entre duas geometrias.
Syntax
ST_SymDifference(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
Uma geometria. |
|
y |
Uma geometria. |
Return value type
geometry
Examples
Para este exemplo, construa duas geometrias com a função ST_GeometryFromText e use a função ST_SymDifference para calcular a diferença simétrica entre elas.
-
Instrução 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)))' ) ) A consulta retorna
GEOMETRYCOLLECTION EMPTY.
Função ST_Contains
A função ST_Contains retorna true se a primeira geometria contiver a segunda. As duas geometrias podem se cruzar em seus limites.
Syntax
ST_Contains(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
A primeira geometria de entrada. |
|
y |
A segunda geometria de entrada. |
Return value type
boolean
Examples
Verifique se um polígono contém um ponto neste exemplo.
-
Instrução de consulta
* | SELECT ST_Contains( ST_GeometryFromText( 'polygon((10 10,10 20,20 20,20 15,10 10))' ), ST_GeometryFromText( 'point(11 11)' ) ) A consulta retorna
true.
Função ST_Crosses
A função ST_Crosses retorna true se duas geometrias tiverem pontos interiores em comum.
Syntax
ST_Crosses(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria. |
|
y |
Um valor de geometria. |
Return value type
Um valor booleano.
Examples
Use a função ST_GeometryFromText para construir duas geometrias e a função ST_Crosses para determinar se elas compartilham pontos interiores.
-
Instrução 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)))' ) ) A consulta retorna
false.
ST_Disjoint
A função ST_Disjoint verifica se duas geometrias são disjuntas. Ela retorna true se as geometrias não se cruzarem.
Syntax
ST_Disjoint(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria. |
|
y |
Um valor de geometria. |
Return value type
boolean
Examples
Construa duas geometrias com ST_GeometryFromText e use ST_Disjoint para verificar se elas se cruzam.
-
Instrução 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)))' ) ) A consulta retorna
false.
Função ST_Equals
A função ST_Equals determina se duas geometrias são idênticas, retornando true caso sejam.
Syntax
ST_Equals(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
A primeira geometria. |
|
y |
A segunda geometria. |
Return value type
boolean
Examples
Utilize a função ST_GeometryFromText para construir duas geometrias e a função ST_Equals para verificar se elas são idênticas.
-
Instrução 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)))' ) ) A consulta retorna
false.
Função ST_Intersects
Retorna true se as projeções planares de duas geometrias se cruzarem.
Syntax
ST_Intersects(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor do tipo geometry. |
|
y |
Um valor do tipo geometry. |
Return value type
boolean
Examples
Use a função ST_GeometryFromText para construir duas geometrias e, em seguida, utilize a função ST_Intersects para verificar se elas se cruzam.
-
Consulta de exemplo
* | 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)))' ) ) O resultado da consulta e análise é
true.
Função ST_Overlaps
A função ST_Overlaps retorna true se duas geometrias da mesma dimensão se sobrepuserem, mas nenhuma contiver completamente a outra.
Syntax
ST_Overlaps(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
A primeira geometria de entrada. |
|
y |
A segunda geometria de entrada. |
Return value type
boolean
Examples
Construa duas geometrias usando a função ST_GeometryFromText e verifique se elas se sobrepõem utilizando a função ST_Overlaps.
-
Instrução de consulta e análise
* | 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)))' ) ) A consulta retorna
false.
Função ST_Relate
A função ST_Relate determina se duas geometrias estão relacionadas verificando se seus interiores ou limites se cruzam. Retorna true caso estejam relacionadas.
Syntax
ST_Relate(x, y, patternMatrix string)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria. |
|
y |
Um valor de geometria. |
|
patternMatrix string |
Uma string de matriz de padrão DE-9IM. O valor é do tipo varchar. |
Return value type
boolean
Examples
Construa duas geometrias com a função ST_GeometryFromText e use a função ST_Relate para verificar se elas possuem relação espacial.
-
Instrução 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****' ) A consulta retorna
true.
Função ST_Touches
A função ST_Touches retorna true se duas geometrias se tocarem em seus limites, mas seus interiores não se cruzarem.
Syntax
ST_Touches(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
A primeira geometria. |
|
y |
A segunda geometria. |
Return value type
Retorna um valor boolean.
Examples
A consulta a seguir usa a função ST_GeometryFromText para criar duas geometrias e a função ST_Touches para verificar se elas se tocam.
-
Instrução 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)))' ) ) A consulta retorna
false.
Função ST_Within
A função ST_Within retorna true se a primeira geometria estiver completamente dentro da segunda geometria e seus limites não se cruzarem.
Syntax
ST_Within(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
A primeira geometria de entrada. |
|
y |
A segunda geometria de entrada. |
Return value type
boolean
Examples
Construa duas geometrias usando a função ST_GeometryFromText e utilize a função ST_Within para determinar se a primeira geometria está completamente contida na segunda.
-
Instrução de consulta e análise
* | 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)))' ) ) A consulta retorna
false.
Função ST_Area
A função ST_Area calcula a área projetada de uma geometria em um plano bidimensional usando distância euclidiana.
Syntax
ST_Area(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
A geometria de entrada. |
Return value type
double
Examples
Calcule a área de um multipolígono neste exemplo.
-
Instrução 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)))' ) ) Retorna
-25.0.
Função ST_Centroid
A função ST_Centroid retorna o centroide matemático de uma geometria de entrada como um ponto.
Syntax
ST_Centroid(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
A geometria de entrada. |
Return value type
geometry
Examples
Calcule o centroide de uma geometria multipolígono neste exemplo.
-
Instrução de consulta e análise
* | 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)))' ) ) A instrução retorna
POINT (176.66666666666669 131.66666666666669).
Função ST_CoordDim
A função ST_CoordDim retorna a dimensão das coordenadas de uma geometria.
Syntax
ST_CoordDim(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria. |
Return value type
bigint
Examples
Use a função ST_GeometryFromText para construir uma geometria e, em seguida, utilize a função ST_CoordDim para retornar a dimensão de suas coordenadas.
-
Instrução 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)))' ) ) A consulta retorna
2.
Função ST_Dimension
Retorna a dimensão intrínseca de uma geometria, que não pode exceder a dimensão das coordenadas.
Syntax
ST_Dimension(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria.
|
Return value type
bigint
Examples
Use ST_Dimension para encontrar a dimensão intrínseca de uma geometria criada por ST_GeometryFromText.
-
Instrução 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)))' ) ) A consulta retorna
2.
Função ST_Distance
Retorna a distância mínima entre duas geometrias.
Syntax
ST_Distance(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria. |
|
y |
Um valor de geometria. |
Return value type
double
Examples
Crie duas geometrias com a função ST_GeometryFromText e use a função ST_Distance para calcular a distância mínima entre elas.
-
Instrução 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)))' ) ) O resultado da consulta é
0.0.
Função ST_EndPoint
A função ST_EndPoint retorna o último ponto de uma string de linha.
Syntax
ST_EndPoint(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor do tipo geometry. |
Return value type
Um valor do tipo point.
Examples
Construa uma string de linha com ST_LineFromText e use ST_EndPoint para retornar o último ponto.
-
Instrução de consulta e análise
* | SELECT ST_EndPoint( ST_LineFromText( 'linestring (10 10,20 20)' ) ) Retorna
POINT (20 20).
ST_IsClosed
A função ST_IsClosed retorna true se uma geometria for fechada.
Syntax
ST_IsClosed(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
A geometria a ser verificada. |
Return value type
Um valor booleano.
Examples
Use ST_LineFromText para construir uma string de linha e ST_IsClosed para verificar se a string de linha é fechada.
-
Instrução de consulta
* | SELECT ST_IsClosed( ST_LineFromText( 'linestring (10.05 10.28 , 20.95 20.89 )' ) ) Resultado da consulta:
false
Função ST_IsEmpty
A função ST_IsEmpty retorna true se a geometria de entrada estiver vazia.
Syntax
ST_IsEmpty(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
A entrada deve ser um valor do tipo geometry. |
Return value type
Um valor booleano.
Examples
Utilize a função ST_Point para criar um ponto e, em seguida, use a função ST_IsEmpty para verificar se ele está vazio.
-
Instrução de consulta
* | SELECT ST_IsEmpty(ST_Point(1,1)) Os resultados da consulta e análise são
false.
Função ST_IsRing
A função ST_IsRing retorna true se a geometria de entrada for um anel (uma string de linha fechada e simples).
Syntax
ST_IsRing(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
O parâmetro deve ser do tipo |
Return value type
Boolean
Examples
Este exemplo constrói uma string de linha com ST_LineFromText e verifica se ela é um anel usando ST_IsRing.
-
Instrução de consulta
* | SELECT ST_IsRing( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89 )' ) ) A consulta retorna
false.
Função ST_Length
A função ST_Length calcula o comprimento projetado em 2D de uma string de linha usando a distância euclidiana. Para uma multilinestring, ela retorna a soma dos comprimentos das strings de linha componentes.
Syntax
ST_Length(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria. |
Return value type
Um valor double.
Examples
Use ST_LineFromText para construir uma string de linha e ST_Length para calcular seu comprimento.
-
Instrução de consulta
* | SELECT ST_Length( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89)' ) ) A consulta retorna
15.211249126879752.
Função ST_NumPoints
Retorna o número de pontos em uma geometria.
Syntax
ST_NumPoints(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria. |
Return value type
bigint
Examples
Neste exemplo, a função ST_LineFromText constrói uma string de linha e a função ST_NumPoints retorna a quantidade de pontos contidos nela.
-
Instrução de consulta
* | SELECT ST_NumPoints( ST_LineFromText('linestring (10 10,20 20)') ) Resultado da consulta:
2
Função ST_NumInteriorRing
Retorna o número de anéis internos em uma geometria.
Syntax
ST_NumInteriorRing(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um objeto de geometria. |
Return value type
Um valor bigint.
Examples
O exemplo abaixo utiliza ST_GeometryFromText para construir uma geometria e ST_NumInteriorRing para calcular a quantidade de seus anéis internos.
-
Instrução 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)))' ) ) A consulta retorna
1.
Função ST_StartPoint
Retorna o primeiro ponto de uma string de linha.
Syntax
ST_StartPoint(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Especifica a string de linha de entrada. |
Return value type
point
Examples
Este exemplo cria uma string de linha com a função ST_LineFromText e retorna o primeiro ponto por meio da função ST_StartPoint.
-
Instrução de consulta
* | SELECT ST_StartPoint( ST_LineFromText( 'linestring (10 10,20 20 )' ) ) Resultados da consulta e análise:
POINT (10 10).
Função ST_X
Retorna a coordenada X de um ponto de entrada.
Syntax
ST_X(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
O parâmetro deve ser um ponto. |
Return value type
O tipo de retorno é double.
Examples
Este exemplo usa a função ST_Point para construir um ponto e ST_X para retornar sua coordenada X.
-
Instrução de consulta
* | SELECT ST_X(ST_Point(1,3)) A consulta retorna
1.0.
Função ST_XMax
ST_XMax retorna a coordenada x máxima de uma geometria.
Syntax
ST_XMax(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria. |
Return value type
Retorna um double.
Examples
Utilize a função ST_GeometryFromText para construir uma geometria e, depois, a função ST_XMax para retornar sua coordenada x máxima.
-
Instrução 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)))' ) ) A consulta retorna
60.0.
Função ST_XMin
A função ST_XMin retorna a coordenada x mínima de uma geometria.
Syntax
ST_XMin(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
A geometria de entrada. |
Return value type
double
Examples
Este exemplo constrói uma geometria com a função ST_GeometryFromText e usa a função ST_XMin para retornar sua coordenada x mínima.
-
Instrução 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 da consulta:
10.0
Função ST_Y
Retorna a coordenada y de um ponto de entrada.
Syntax
ST_Y(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor do tipo point. |
Return value type
Um valor do tipo double.
Examples
Este exemplo utiliza a função ST_Point para criar um ponto e a função ST_Y para obter sua coordenada y.
-
Instrução de consulta e análise
* | SELECT ST_Y(ST_Point(1,3)) Resultados da consulta e análise:
3.0
Função ST_YMax
A função ST_YMax retorna a coordenada y máxima de uma geometria.
Syntax
ST_YMax(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de geometria. |
Return value type
double
Examples
Este exemplo constrói uma geometria com a função ST_GeometryFromText e retorna sua coordenada y máxima com a função ST_YMax.
-
Instrução de consulta e análise
* | 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)))' ) ) O resultado da consulta e análise é
50.0.
Função ST_YMin
Retorna a coordenada Y mínima de uma geometria.
Syntax
ST_YMin(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
A geometria de entrada. |
Return value type
double
Examples
Este exemplo usa a função ST_GeometryFromText para construir uma geometria e a função ST_YMin para retornar sua coordenada Y mínima.
-
Instrução de consulta e análise
* | 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)))' ) ) O resultado é
10.0.
bing_tile
A função bing_tile cria um tile do Bing.
Syntax
-
Crie um tile do Bing a partir de uma coordenada x, uma coordenada y e um nível de zoom.
bing_tile(x, y, zoom_level) -
Crie um tile do Bing a partir de uma chave quadtree.
bing_tile(quadKey)
Parameters
|
Parâmetro |
Descrição |
|
x |
A coordenada x. Deve ser um número inteiro. |
|
y |
A coordenada y. Deve ser um número inteiro. |
|
zoom_level |
O nível de zoom. Deve ser um número inteiro de 1 a 23. |
|
quadKey |
A chave quadtree. |
Return value type
Retorna um tile do Bing.
Examples
-
Exemplo 1: Criar um tile do Bing a partir de uma coordenada x, uma coordenada y e um nível de zoom.
-
Instrução de consulta
* | SELECT bing_tile(10, 20, 20) Resultados da consulta e análise:
{"x":10,"y":20,"zoom":20}
-
-
Exemplo 2: Criar um tile do Bing a partir de uma chave quadtree.
-
Instrução de consulta
* | SELECT bing_tile(bing_tile_quadkey(bing_tile(10, 20, 20))) Resultados da consulta e análise:
{"x":10,"y":20,"zoom":20}
-
Função Bing_tile_at
A função bing_tile_at cria um tile do Bing a partir de latitude, longitude e nível de zoom.
Syntax
bing_tile_at(x, y, zoom_level)
Parameters
|
Parâmetro |
Descrição |
|
x |
A latitude, como um valor double no intervalo |
|
y |
A longitude, como um valor double no intervalo |
|
zoom_level |
O nível de zoom, como um número inteiro de 1 a 23. |
Return value type
Um objeto BingTile.
Examples
Este exemplo cria um tile do Bing.
-
Consulta
* | SELECT bing_tile_at(47.265511, -122.465691, 12) A consulta retorna
{"x":654,"y":1436,"zoom":12}.
Função bing_tile_coordinates
Retorna as coordenadas X e Y de um tile do Bing especificado.
Syntax
bing_tile_coordinates(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor BingTile. |
Return value type
Retorna um array de dois inteiros: [X, Y].
Examples
Este exemplo obtém as coordenadas de um tile do Bing específico.
-
Instrução de consulta
* | SELECT bing_tile_coordinates(bing_tile_at(47.265511, -122.465691, 12)) Resultado:
[654,1436].
bing_tile_polygon
Retorna a representação em polígono de um tile do Bing.
Syntax
bing_tile_polygon(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor BingTile. |
Return value type
polygon
Examples
Retorna a representação em polígono de um tile do Bing.
-
Instrução de consulta
* | SELECT bing_tile_polygon(bing_tile_at(30.26, 120.19, 12)) Resultado da 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
A função bing_tile_quadkey retorna a chave quadtree de um tile do Bing.
Syntax
bing_tile_quadkey(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor |
Return value type
varchar
Examples
Este exemplo converte um tile nas coordenadas (10, 20) e nível de zoom 20 em sua chave quadtree correspondente.
-
Instrução de consulta
* | SELECT bing_tile_quadkey(bing_tile(10, 20, 20)) A consulta retorna a chave quadtree
000000000000021210.
Função bing_tile_zoom_level
Retorna o nível de zoom de um tile do Bing.
Syntax
bing_tile_zoom_level(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um objeto BingTile. |
Return value type
double
Examples
O exemplo a seguir calcula o nível de zoom para um tile do Bing específico.
-
Instrução de consulta
* | SELECT bing_tile_zoom_level(bing_tile(10, 20, 20)) Resultado da consulta:
20.