Tous les produits
Search
Centre de documentation

ApsaraDB RDS:ST_AsGrid

Dernière mise à jour :Aug 31, 2026

Renvoie un tableau de codes de grille géographique qui intersectent une géométrie donnée.

Syntaxe

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

Paramètres

Paramètre Type Description
geom geometry Géométrie d'entrée.
precision integer Niveau de précision. Valeurs acceptées : 1 à 32. Plus la valeur est élevée, plus le résultat de la requête est précis.
degenerated boolean Indique s'il faut utiliser une grille dégénérée. Valeur par défaut : false. Consultez les Remarques sur l'utilisation pour connaître les différences de comportement.

Remarques sur l'utilisation

Système de coordonnées : la géométrie d'entrée doit utiliser le système de référence spatiale CGC2000 (SRID 4490). Si la géométrie utilise un autre système de référence spatiale, ST_Transform convertit automatiquement ses coordonnées vers le système CGC2000.

Grille standard et grille dégénérée : le paramètre degenerated détermine le type de grille utilisé :

  • false (par défaut) : utilise la grille standard.

  • true : utilise une grille dégénérée.

La figure suivante illustre la différence entre une grille dégénérée et une grille standard.

退化网格

La figure suivante montre l'intersection des grilles géographiques avec un point, une ligne et un polygone.

网格编码图

Exemples

Tous les exemples encapsulent ST_AsGrid dans ST_AsText pour afficher le résultat geomgrid[] sous forme de texte.

Point au niveau de précision 15

L'exemple suivant renvoie les codes de grille d'un point au niveau de précision 15.

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

Ligne au niveau de précision 18

L'exemple suivant renvoie les codes de grille d'un segment de ligne au niveau de précision 18. La ligne intersecte plusieurs cellules de grille.

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}

La ligne intersecte 8 cellules de grille au niveau de précision 18.

Polygone — grille standard (degenerated = false)

L'exemple suivant renvoie les codes de grille d'un polygone en utilisant la grille standard (degenerated = false). Le résultat inclut toutes les cellules qui intersectent la limite ou l'intérieur du polygone.

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}

La grille standard renvoie 28 codes de grille.

Polygone — grille dégénérée (degenerated = true)

L'exemple suivant renvoie les codes de grille du même polygone en utilisant la grille dégénérée (degenerated = true), ce qui produit moins de résultats.

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}

La grille dégénérée renvoie 13 codes de grille, soit moins que la grille standard pour le même polygone et la même précision.