Converte um objeto de grade geográfica (GeomGrid ou H3Grid) em sua representação textual usando um padrão de codificação específico.
Para crie um objeto de grade a partir de uma geometria, use ST_AsGrid (2D), ST_As3DGrid (3D) ou ST_H3FromLatLng (H3).
Sintaxe
text ST_AsText(geomgrid grid
integer precision DEFAULT -1,
bool separated DEFAULT false,
text standard DEFAULT 'GGER')
text[] ST_AsText(geomgrid[] grid
integer precision DEFAULT -1,
bool separated DEFAULT false,
text standard DEFAULT 'GGER')
text ST_AsText(h3grid grid)
Parâmetros
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
|
GeomGrid ou H3Grid |
— |
Objeto de grade geográfica a ser convertido. |
|
|
integer |
-1 |
Nível de precisão da saída. Valores válidos: 1–32. O valor |
|
|
bool |
false |
Especifica se deve usar codificação separada. Aplicável a grades GGER (Regra de Codificação de Grade Geoespacial 3D). |
|
|
text |
|
Padrão de codificação a aplicar. Atualmente, oferece suporte a |
Funcionamento
A função ST_AsText codifica uma grade geográfica com base no nível de precisão e no padrão de codificação especificados.
Comportamento da precisão: Se a precisão especificada for maior que a precisão de armazenamento da grade de entrada, a saída não recebe preenchimento com zeros.
Codificação separada (GGER 3D): Quando separated é defina como true, a codificação de altura retorna o código textual binário do valor de índice da grade na dimensão de altura. O prefixo indica a posição da grade em relação à superfície:
+— a grade está acima da superfície-— a grade está abaixo da superfície
Exemplos
Codificação padrão
Codifique uma grade 2D usando a precisão padrão e o padrão GGER.
WITH g AS (
SELECT unnest(ST_AsGrid(
ST_geomfromtext('POINT(116.31522216796875 39.910277777777778)', 4490), 15)) AS grid
)
SELECT ST_AsText(grid) FROM g;
Saída:
st_astext
------------------
G001310322230230
Nível de precisão especificado
Codifique a mesma grade com um nível de precisão menor definindo precision como 8.
WITH g AS (
SELECT unnest(ST_AsGrid(
ST_geomfromtext('POINT(116.31522216796875 39.910277777777778)', 4490), 15)) AS grid
)
SELECT ST_AsText(grid, 8) FROM g;
Saída:
st_astext
-------------
G00131032
A saída é mais curta porque a precisão foi reduzida de 15 para 8. Os dígitos ausentes não são preenchidos com zeros.
Codificação 3D
Codifique uma grade 3D com elevação de 1001,8 metros no nível de precisão 20.
SELECT unnest(ST_AsText(ST_As3DGrid(
'srid=4490;POINT(116.31522216796875 39.910277777777778 1001.8)'::geometry,
20)));
Saída:
unnest
------------------------
GZ00262064446046072072
Codificação separada
Codifique uma grade 3D usando codificação separada (separated = true). Os componentes horizontal e de altura são retornados separadamente.
SELECT unnest(ST_AsText(ST_As3DGrid(
'srid=4490;POINT(116.31522216796875 39.910277777777778 1001.8)'::geometry,
20), -1, true));
Saída:
unnest
-------------------------------
G00131032223023031031, +10010
O prefixo + em 10010 indica que esta grade está acima da superfície.
Codificação H3
Codifique um objeto H3Grid em seu índice textual H3.
SELECT ST_AsText(ST_H3FromLatLng(20.5, 128.2, 8));
Saída:
st_astext
-----------------
884a126689fffff
Funções relacionadas
[ST_AsGrid]() — Converte uma geometria em um array GeomGrid
[ST_As3DGrid]() — Converte uma geometria 3D em um array GeomGrid
[ST_H3FromLatLng]() — Crie um H3Grid a partir de uma coordenada de latitude/longitude