Todos os produtos
Search
Central de documentação

AnalyticDB:Construtores espaciais

Última atualização: Jun 27, 2026

As funções construtoras espaciais criam e convertem objetos de geometria no AnalyticDB for MySQL. Use-as para construir geometrias POINT, LINESTRING e POLYGON a partir de coordenadas ou texto, converter entre as representações Well-Known Text (WKT) e Well-Known Binary (WKB) e converter entre sistemas de coordenadas planares e esféricos.

A maioria das funções espaciais retorna um valor GEOMETRY binário. Consultar esses valores diretamente com SELECT gera uma saída ilegível. Envolva o resultado com ST_AsText() para obter uma string WKT legível.

Resumo das funções

Categoria

Função

Descrição

Construção a partir de coordenadas

ST_Point

Cria um ponto a partir das coordenadas x e y

Construção a partir de WKT

ST_GeometryFromText / ST_GeomFromText

Cria qualquer tipo de geometria a partir de uma string WKT

ST_LineFromText

Cria uma LineString a partir de uma string WKT

ST_PointFromText

Cria um ponto a partir de uma string WKT

ST_PolygonFromText

Cria um polígono a partir de uma string WKT

Construção a partir de arrays de pontos

ST_LineString

Cria uma LineString a partir de um array de pontos

ST_MultiPoint

Cria um MultiPoint a partir de um array de pontos

Conversão para texto

ST_AsText

Converte uma geometria para sua representação WKT

Conversão de/para binário

ST_AsBinary

Converte uma geometria para sua representação WKB

ST_GeomFromBinary

Cria uma geometria a partir de um valor WKB

Validação

ST_IsValidWKT

Verifica se uma string é um WKT válido

Sistema de coordenadas

To_spherical_geography

Converte uma geometria planar em um objeto de geografia esférica

To_geometry

Converte um objeto de geografia esférica de volta para uma geometria planar

Interoperabilidade com Hadoop

Geometry_from_hadoop_shape

Cria uma geometria a partir de um valor binário do Spatial Framework for Hadoop

Buffer

ST_Buffer

Retorna todos os pontos dentro da distância d de uma geometria

ST_Point

ST_Point(x double, y double) → GEOMETRY (subtype POINT)

Retorna uma geometria POINT a partir dos valores de coordenadas x e y especificados. O valor retornado é binário; envolva-o com ST_AsText() para obter um resultado legível.

Exemplo

SELECT ST_AsText(ST_Point(1, 1));

Resultado:

+--------------------------+
| ST_AsText(ST_Point(1,1)) |
+--------------------------+
| POINT (1 1)              |
+--------------------------+

ST_AsText

ST_AsText(geometry) → WKT

Retorna a representação Well-Known Text (WKT) de uma geometria. Use esta função para converter a saída binária de outras funções espaciais em texto legível.

Exemplo

SELECT ST_AsText(ST_Point(1, 1));

Resultado:

+--------------------------+
| ST_AsText(ST_Point(1,1)) |
+--------------------------+
| POINT (1 1)              |
+--------------------------+

ST_GeometryFromText / ST_GeomFromText

ST_GeometryFromText(wkt varchar) → GEOMETRY
ST_GeomFromText(wkt varchar) → GEOMETRY

Constrói um objeto de geometria a partir de uma string WKT. ST_GeometryFromText e ST_GeomFromText são equivalentes. O valor retornado é binário; envolva-o com ST_AsText() para obter um resultado legível.

Exemplo

SELECT ST_AsText(ST_GeometryFromText('Point(1 1)'));

Resultado:

+----------------------------------------------+
| ST_AsText(ST_GeometryFromText('Point(1 1)')) |
+----------------------------------------------+
| POINT (1 1)                                  |
+----------------------------------------------+

ST_IsValidWKT

ST_IsValidWKT(wkt varchar) → INT

Retorna 1 se a string de entrada for um WKT válido ou 0 caso contrário.

Exemplo

SELECT ST_IsValidWKT('MULTIPOINT (1 2, 2 4, 3 6, 4 8)');

Resultado:

+---------------------------------------------------+
| ST_IsValidWKT('MULTIPOINT (1 2, 2 4, 3 6, 4 8)') |
+---------------------------------------------------+
| 1                                                 |
+---------------------------------------------------+

ST_LineFromText

ST_LineFromText(wkt varchar) → GEOMETRY

Retorna uma geometria LineString a partir de uma string WKT. O valor retornado é binário; envolva-o com ST_AsText() para obter um resultado legível.

Exemplo

SELECT ST_AsText(ST_LineFromText('LINESTRING (1 1, 2 2, 1 3)'));

Resultado:

+----------------------------------------------------------+
| ST_AsText(ST_LineFromText('LINESTRING (1 1, 2 2, 1 3)')) |
+----------------------------------------------------------+
| LINESTRING (1 1, 2 2, 1 3)                               |
+----------------------------------------------------------+

ST_PointFromText

ST_PointFromText(wkt varchar) → GEOMETRY

Retorna um objeto PointString a partir de uma string WKT. O valor retornado é binário; envolva-o com ST_AsText() para obter um resultado legível.

Exemplo

SELECT ST_AsText(ST_PointFromText('POINT (1 2)'));

Resultado:

+-------------------------------------------+
| ST_AsText(ST_PointFromText('POINT (1 2)')) |
+-------------------------------------------+
| POINT (1 2)                               |
+-------------------------------------------+

ST_PolygonFromText

ST_PolygonFromText(wkt varchar) → GEOMETRY

Retorna um objeto PolygonString a partir de uma string WKT. O valor retornado é binário; envolva-o com ST_AsText() para obter um resultado legível.

Exemplo

SELECT ST_AsText(ST_PolygonFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'));

Resultado:

+----------------------------------------------------------------+
| ST_AsText(ST_PolygonFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))')) |
+----------------------------------------------------------------+
| POLYGON ((1 1, 1 4, 4 4, 4 1))                                 |
+----------------------------------------------------------------+

ST_LineString

ST_LineString(array(Point)) → GEOMETRY

Retorna uma geometria LineString construída a partir de um array de geometrias de ponto. O valor retornado é binário; envolva-o com ST_AsText() para obter um resultado legível.

Exemplo

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

Resultado:

+------------------------------------------------------------------+
| ST_AsText(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))    |
+------------------------------------------------------------------+
| LINESTRING (1 2, 3 4)                                            |
+------------------------------------------------------------------+

ST_MultiPoint

ST_MultiPoint(array(Point)) → GEOMETRY

Retorna uma geometria MultiPoint construída a partir de um array de geometrias de ponto. O valor retornado é binário; envolva-o com ST_AsText() para obter um resultado legível.

Exemplo

SELECT ST_AsText(
  ST_MultiPoint(array[
    ST_GeometryFromText('POINT(1 2)'),
    ST_GeometryFromText('POINT (3 4)')
  ])
);

Resultado:

+---------------------------+
| ST_AsText(...)            |
+---------------------------+
| MULTIPOINT ((1 2), (3 4)) |
+---------------------------+

ST_GeomFromBinary

ST_GeomFromBinary(wkb varbinary) → GEOMETRY

Retorna uma geometria a partir de um valor Well-Known Binary (WKB). O valor retornado é binário; envolva-o com ST_AsText() para obter um resultado legível.

Exemplo

O exemplo a seguir converte uma geometria para WKB com ST_AsBinary(), reconstrói e lê o resultado com ST_GeomFromBinary() e ST_AsText().

SELECT ST_AsText(
  ST_GeomFromBinary(
    ST_AsBinary(ST_GeometryFromText('MULTIPOINT ((1 2), (3 4))'))
  )
);

Resultado:

+---------------------------+
| ST_AsText(...)            |
+---------------------------+
| MULTIPOINT ((1 2), (3 4)) |
+---------------------------+

Geometry_from_hadoop_shape

Geometry_from_hadoop_shape(wkb varbinary) → GEOMETRY

Retorna uma geometria a partir de um valor binário do Spatial Framework for Hadoop. O valor retornado é binário; envolva-o com ST_AsText() para obter um resultado legível.

Exemplo

SELECT ST_AsText(
  Geometry_from_hadoop_shape(
    from_hex('000000000101000000000000000000F03F0000000000000040')
  )
);

Resultado:

+---------------------+
| ST_AsText(...)      |
+---------------------+
| POINT (1 2)         |
+---------------------+

To_spherical_geography

To_spherical_geography(geometry) → GEOMETRY

Converte uma geometria planar em um objeto de geografia esférica. Esta operação transforma um identificador definido no espaço 2D para o espaço 3D. O valor retornado é binário.

Exemplo

SELECT To_spherical_geography(ST_Point(-71.0882, 42.3607));

To_geometry

To_geometry(geography) → GEOMETRY

Converte um objeto de geografia esférica de volta para uma geometria planar. Todo objeto de geografia é também um objeto de geometria válido. O valor retornado é binário; envolva-o com ST_AsText() para obter um resultado legível.

Exemplo

SELECT ST_AsText(
  To_geometry(To_spherical_geography(ST_Point(61.56, -58.54)))
);

Resultado:

+----------------------+
| ST_AsText(...)       |
+----------------------+
| POINT (61.56 -58.54) |
+----------------------+

ST_AsBinary

ST_AsBinary(geometry) → VARBINARY

Retorna a representação WKB de uma geometria como um valor VARBINARY. Use esta função para armazenar ou transmitir dados de geometria em formato binário e, posteriormente, reconstruí-los com ST_GeomFromBinary().

Exemplo

SELECT ST_AsText(
  ST_GeomFromBinary(
    ST_AsBinary(ST_GeometryFromText('MULTIPOINT ((1 2), (3 4))'))
  )
);

Resultado:

+---------------------------+
| ST_AsText(...)            |
+---------------------------+
| MULTIPOINT ((1 2), (3 4)) |
+---------------------------+

ST_Buffer

ST_Buffer(geometry, d double) → GEOMETRY

Retorna uma geometria contendo todos os pontos cuja distância da geometria de entrada seja menor ou igual a d. Para uma entrada de ponto, o resultado é um polígono que aproxima um círculo de raio d centrado nesse ponto. O valor retornado é binário; envolva-o com ST_AsText() para obter um resultado legível.

Exemplo

SELECT ST_AsText(ST_Buffer(ST_Point(0, 0), 0.5));

Resultado (abreviado):

+--------------------------------------------------------------------+
| ST_AsText(ST_Buffer(ST_Point(0, 0), 0.5))                         |
+--------------------------------------------------------------------+
| POLYGON ((0.5 0, 0.4989294616193014 0.03270156461507146, ...))     |
+--------------------------------------------------------------------+

O resultado completo é um polígono que aproxima um círculo de raio 0,5 centrado na origem. Esse polígono é definido por 96 vértices.