Todos os produtos
Search
Central de documentação

Simple Log Service:Funções geoespaciais

Última atualização: Jul 03, 2026

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

Função ST_AsText

ST_AsText(x)

Retorna a representação Well-Known Text (WKT) de uma geometria.

×

Função ST_GeometryFromText

ST_GeometryFromText(x)

Constrói uma geometria a partir de uma representação WKT.

×

Função ST_LineFromText

ST_LineFromText(x)

Constrói uma string de linha a partir de uma representação WKT.

×

Função ST_Polygon

ST_Polygon(x)

Constrói um polígono a partir de uma representação WKT.

×

Função ST_Point

ST_Point(x, y)

Constrói um ponto a partir das coordenadas X e Y.

×

Operadores

Função ST_Boundary

ST_Boundary(x)

Retorna o limite de uma geometria.

×

Função ST_Buffer

ST_Buffer(x, distance)

Retorna uma geometria que inclui todos os pontos dentro de uma distância especificada da geometria de entrada.

×

Função ST_Difference

ST_Difference(x, y)

Retorna a parte da primeira geometria que não intercepta a segunda geometria.

×

Função ST_Envelope

ST_Envelope(x)

Retorna a caixa delimitadora de uma geometria.

×

Função ST_ExteriorRing

ST_ExteriorRing(x)

Retorna uma string de linha que representa o anel externo de um polígono.

×

Função ST_Intersection

ST_Intersection(x, y)

Retorna uma geometria que representa a interseção de duas geometrias.

×

Função ST_SymDifference

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

Função ST_Contains

ST_Contains(x, y)

Retorna true se a primeira geometria contiver a segunda geometria. Os limites podem se interceptar.

×

Função ST_Crosses

ST_Crosses(x, y)

Retorna true se as geometrias se cruzarem.

×

Função ST_Disjoint

ST_Disjoint(x, y)

Retorna true se as duas geometrias não tiverem nenhum ponto em comum.

×

Função ST_Equals

ST_Equals(x, y)

Retorna true se as duas geometrias forem idênticas.

×

Função ST_Intersects

ST_Intersects(x, y)

Retorna true se as duas geometrias se interceptarem.

×

Função ST_Overlaps

ST_Overlaps(x, y)

Retorna true se duas geometrias se sobrepuserem. As geometrias se sobrepõem se tiverem a mesma dimensão e sua interseção resultar em uma geometria da mesma dimensão, mas não forem iguais.

×

Função ST_Relate

ST_Relate(x, y, patternMatrix string)

Retorna true se as duas geometrias satisfizerem o padrão de relação espacial especificado.

×

Função ST_Touches

ST_Touches(x, y)

Retorna true se as duas geometrias se tocarem em seus limites, mas seus interiores não se interceptarem.

×

Função ST_Within

ST_Within(x, y)

Retorna true se a primeira geometria estiver completamente dentro da segunda geometria.

×

Acessores

Função ST_Area

ST_Area(x)

Retorna a área cartesiana 2D de uma geometria.

×

Função ST_Centroid

ST_Centroid(x)

Retorna o centroide geométrico de uma geometria.

×

Função ST_CoordDim

ST_CoordDim(x)

Retorna a dimensão da coordenada de uma geometria.

×

Função ST_Dimension

ST_Dimension(x)

Retorna a dimensão inerente de uma geometria, que deve ser menor ou igual à dimensão da coordenada.

×

Função ST_Distance

ST_Distance(x, y)

Retorna a distância mínima entre duas geometrias.

×

Função ST_EndPoint

ST_EndPoint(x)

Retorna o último ponto de uma string de linha.

×

Função ST_IsClosed

ST_IsClosed(x)

Retorna true se os pontos inicial e final de uma string de linha forem iguais.

×

Função ST_IsEmpty

ST_IsEmpty(x)

Retorna true se a geometria especificada estiver vazia.

×

Função ST_IsRing

ST_IsRing(x)

Retorna true se uma string de linha for fechada e simples (um anel).

×

Função ST_Length

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.

×

Função ST_NumPoints

ST_NumPoints(x)

Retorna o número de pontos (vértices) em uma geometria.

×

Função ST_NumInteriorRing

ST_NumInteriorRing(x)

Retorna o número de anéis internos em um polígono.

×

Função ST_StartPoint

ST_StartPoint(x)

Retorna o primeiro ponto de uma string de linha.

×

Função ST_X

ST_X(x)

Retorna a coordenada X de um ponto.

×

Função ST_XMax

ST_XMax(x)

Retorna a coordenada X máxima de uma geometria.

×

Função ST_XMin

ST_XMin(x)

Retorna a coordenada X mínima de uma geometria.

×

Função ST_Y

ST_Y(x)

Retorna a coordenada Y de um ponto.

×

Função ST_YMax

ST_YMax(x)

Retorna a coordenada Y máxima de uma geometria.

×

Função ST_YMin

ST_YMin(x)

Retorna a coordenada Y mínima de uma geometria.

×

Tiles do Bing

Função bing_tile

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.

×

Função bing_tile_at

bing_tile_at(x, y, zoom_level)

Retorna um tile do Bing a partir da latitude, longitude e nível de zoom especificados.

×

Função bing_tile_coordinates

bing_tile_coordinates(x)

Retorna as coordenadas X e Y de um tile do Bing.

×

Função bing_tile_polygon

bing_tile_polygon(x)

Retorna a representação em polígono de um tile do Bing.

×

Função bing_tile_quadkey

bing_tile_quadkey(x)

Retorna a chave quadtree de um tile do Bing.

×

Função bing_tile_zoom_level

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.

  • Se x for um ponto ou uma geometria vazia, a função retorna 0.

  • Se x for uma string de linha, a função retorna 1.

  • Se x for um polígono, a função retorna 2.

  • Se x for uma coleção de geometrias, a função retorna a dimensão máxima das geometrias na coleção.

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 geometry.

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 [-85.05112878, 85.05112878].

y

A longitude, como um valor double no intervalo [-180, 180].

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 BingTile.

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.