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 comSELECTgera uma saída ilegível. Envolva o resultado comST_AsText()para obter uma string WKT legível.
Resumo das funções
|
Categoria |
Função |
Descrição |
|
Construção a partir de coordenadas |
|
Cria um ponto a partir das coordenadas x e y |
|
Construção a partir de WKT |
|
Cria qualquer tipo de geometria a partir de uma string WKT |
|
|
Cria uma LineString a partir de uma string WKT |
|
|
|
Cria um ponto a partir de uma string WKT |
|
|
|
Cria um polígono a partir de uma string WKT |
|
|
Construção a partir de arrays de pontos |
|
Cria uma LineString a partir de um array de pontos |
|
|
Cria um MultiPoint a partir de um array de pontos |
|
|
Conversão para texto |
|
Converte uma geometria para sua representação WKT |
|
Conversão de/para binário |
|
Converte uma geometria para sua representação WKB |
|
|
Cria uma geometria a partir de um valor WKB |
|
|
Validação |
|
Verifica se uma string é um WKT válido |
|
Sistema de coordenadas |
|
Converte uma geometria planar em um objeto de geografia esférica |
|
|
Converte um objeto de geografia esférica de volta para uma geometria planar |
|
|
Interoperabilidade com Hadoop |
|
Cria uma geometria a partir de um valor binário do Spatial Framework for Hadoop |
|
Buffer |
|
Retorna todos os pontos dentro da distância |
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.