Todos os produtos
Search
Central de documentação

ApsaraDB RDS:ST_AsGrid

Última atualização: Aug 31, 2026

Retorna um array de códigos de grade geográfica que interceptam uma geometria especificada.

Sintaxe

geomgrid[] ST_AsGrid(geometry geom, integer precision, bool degenerated default false);

Parâmetros

Parâmetro

Tipo

Descrição

geom

geometry

Geometria de entrada.

precision

integer

Nível de precisão. Valores válidos: 1 a 32. Valores maiores indicam resultados de consulta mais precisos.

degenerated

boolean

Especifica se deve usar uma grade degenerada. Padrão: false. Consulte as Notas de uso para ver as diferenças de comportamento.

Notas de uso

Requisito do sistema de coordenadas: A geometria de entrada deve usar o sistema de referência espacial CGC2000 (SRID 4490). Se a geometria utilizar outro sistema de referência espacial, a função ST_Transform converterá automaticamente as coordenadas para CGC2000.

Grade padrão versus grade degenerada: O parâmetro degenerated controla o uso da grade degenerada:

  • false (padrão): Usa a grade padrão.

  • true: Usa uma grade degenerada.

A figura a seguir ilustra a diferença entre uma grade degenerada e uma grade padrão.

退化网格

A imagem abaixo mostra como as grades geográficas interceptam um ponto, uma linha e um polígono.

网格编码图

Exemplos

Todos os exemplos envolvem ST_AsGrid em ST_AsText para exibir o resultado geomgrid[] como texto.

Ponto no nível de precisão 15

O exemplo a seguir retorna os códigos de grade para um ponto no nível de precisão 15.

SELECT ST_AsText(ST_AsGrid(
    ST_GeomFromText('POINT(116.31522216796875 39.910277777777778)', 4490), 15));
     st_astext
--------------------
 {G001310322230230}

Linha no nível de precisão 18

Este exemplo retorna os códigos de grade para um segmento de linha no nível de precisão 18. A linha intercepta várias células da grade.

SELECT ST_AsText(ST_AsGrid(
    ST_GeomFromText('LINESTRING(122.48077 51.72814,122.47416 51.73714)', 4490), 18));
                  st_astext
--------------------------------------------------------------------------------
 {G001331032213300011,G001331032213300013,G001331032213122320,G001331032213122322,
G001331032213300100,G001331032213122303,G001331032213122321,G001331032213122312}

A linha intercepta 8 células da grade no nível de precisão 18.

Polígono — grade padrão (degenerated = false)

O exemplo abaixo retorna os códigos de grade para um polígono usando a grade padrão (degenerated = false), que inclui todas as células que interceptam o limite ou o interior do polígono.

SELECT ST_AsText(ST_AsGrid(
    ST_GeomFromText('POLYGON((-0.08077 -0.02814, 0.0482 -0.03, 0.07426 0.03724, -0.08077 -0.02814))', 4490), 15));
                          st_astext
--------------------------------------------------------------------------------
 {G000000000000000,G000000000000001,G000000000000003,G000000000000010,G000000000
000011,G000000000000012,G000000000000013,G000000000000031,G000000000000102,G0000
00000000120,G100000000000000,G200000000000000,G200000000000001,G200000000000002,
G200000000000003,G200000000000010,G200000000000011,G200000000000012,G20000000000
0013,G300000000000000,G300000000000001,G300000000000002,G300000000000003,G300000
000000010,G300000000000011,G300000000000012,G300000000000013,G300000000000102}

A grade padrão retorna 28 códigos de grade.

Polígono — grade degenerada (degenerated = true)

Este exemplo retorna os códigos de grade para o mesmo polígono usando a grade degenerada (degenerated = true), que produz menos resultados.

SELECT ST_AsText(ST_AsGrid(
    ST_GeomFromText('POLYGON((-0.08077 -0.02814, 0.0482 -0.03, 0.07426 0.03724, -0.08077 -0.02814))', 4490), 15, true));
                         st_astext
--------------------------------------------------------------------------------
 {G000000000000000,G000000000000001,G000000000000003,G00000000000001,G0000000000
00031,G000000000000102,G000000000000120,G100000000000000,G20000000000000,G200000
00000001,G30000000000000,G30000000000001,G300000000000102}

A grade degenerada retorna 13 códigos de grade — menos do que a grade padrão para o mesmo polígono e precisão.