All Products
Search
Document Center

ApsaraDB RDS:ST_As3DGrid

Last Updated:Mar 30, 2026

Mengembalikan array grid geografis yang berpotongan dengan geometri 3D.

Sintaksis

geomgrid[] ST_As3DGrid(geometry geom3d, integer precision, bool degenerated default false);
geomgrid[] ST_As3DGrid(meshgeom geom3d, integer precision, bool degenerated default false);
geomgrid[] ST_As3DGrid(sfmesh geom3d, integer precision, bool degenerated default false);
geomgrid[] ST_As3DGrid(vomesh geom3d, integer precision, bool degenerated default false);

Parameter

ParameterTypeDescription
geom3dgeometry, meshgeom, sfmesh, atau vomeshGeometri 3D yang akan dikonversi menjadi grid geografis.
precisionintegerTingkat presisi dari grid geografis. Nilai yang valid: 1 hingga 32.
degeneratedboolMenentukan apakah akan menggunakan grid degenerated. Nilai default: false.

Deskripsi

Fungsi ST_As3DGrid mengonversi geometri 3D menjadi grid geografis dan mengembalikan semua grid geografis yang berpotongan dengan geometri tersebut sebagai array geomgrid[].

Geometri harus menggunakan sistem referensi spasial CGC2000. Spatial Reference System Identifier (SRID) dari geometri harus bernilai 4490. Jika geometri menggunakan sistem referensi spasial lain, koordinatnya harus dapat dikonversi ke koordinat CGC2000.

Gambar berikut menunjukkan contoh output perpotongan grid.

image.pngimage.png

Contoh

Contoh 1: input geometry (LINESTRING Z)

SELECT ST_AsText(ST_As3DGrid(
'srid=4490;LINESTRING Z (116 39 2000,116.012 39.009 3000)'::geometry, 10));
                       st_astext
-------------------------------------------------------
 {GZ0026204626,GZ0026204662,GZ0026206404,GZ0026206440}

Contoh 2: input meshgeom

SELECT ST_AsText(ST_As3DGrid(st_meshgeomfromtext('srid=4490;SOLID=TRUE;MESHGEOM(PATCH(INDEXSURFACE Z (VERTEX(115.966 38.9757000000001 3000,
116 38.9757000000001 3000,116 38.9999999999999 3000,115.966 38.9999999999999 3000,116 38.9999999999999 0,
116 38.9757000000001 0,115.966 38.9757000000001 0,115.966 38.9999999999999 0),
INDEX((0,1,2),(2,3,0),(4,5,6),(6,7,4),(3,7,6),(6,0,3),(0,6,5),(5,1,0),(1,5,4),(4,2,1),(2,4,7),(7,3,2)))))'),10));
                       st_astext
-------------------------------------------------------
 {GZ0026204626,GZ0026206404,GZ4026204626,GZ4026206404}

Contoh 3: input sfmesh (format JSON, grid degenerated)

SELECT ST_AsText(ST_As3DGrid(st_meshfromtext(
 '{"version" : 1, "srid" : 4490, "root" : 0,
 "meshgeoms" : ["MESHGEOM(PATCH(POLYGON Z ((0 0 0,1 0 0,1 1 0,0 1 0,0 0 0))))"],
 "primitives" : [{"meshgeom" : 0}], "nodes" : [{"primitive" : 0,"matrix" : [0.012,0,0,116,0,0.009,0,39,0,0,1000,0,0,0,0,1]}]}'),8,true));
                   st_astext
-----------------------------------------------
 {GZ00262046,GZ00262064,GZ40262046,GZ40262064}

Contoh 4: input vomesh (grid degenerated)

SELECT ST_AsText(ST_As3DGrid(ST_VOMeshFromText(
'SRID=4490;LOD=2;VOMESH(VERTEX(COORDS(116.012 39 0,116 39.009 0,115.988 39 0,116 38.991 0,116 39 1000)),
FACE(INDEX((0,1,2,3),(1,0,4),(2,1,4),(3,2,4),(0,3,4))),
  CELL(INDEX((0,1,2,3,4)),DIRECTION((0,1,1,1,0))))'),15, true));
                                                                     st_astext

---------------------------------------------------------------------------------------
------------------------------------------------------------
 {GZ002620462666066,GZ002620466222022,GZ002620640444044,GZ002620644000000,GZ402620462666066,
 GZ402620466222022,GZ402620640444044,GZ402620644000000}