すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ST_As3DGrid

最終更新日:Mar 29, 2026

3D ジオメトリと交差する地理グリッドの配列を返します。

構文

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);

パラメーター

パラメーター説明
geom3dgeometrymeshgeomsfmesh、または vomesh地理グリッドに変換する 3D ジオメトリです。
precisioninteger地理グリッドの精度レベルです。有効な値は 1~32 です。
degeneratedbool縮退グリッド(degenerated grid)を使用するかどうかを指定します。デフォルト値は false です。

説明

ST_As3DGrid は、3D ジオメトリを地理グリッドに変換し、そのジオメトリと交差するすべての地理グリッドを geomgrid[] 型の配列として返します。

ジオメトリには CGC2000 空間参照系を使用する必要があります。ジオメトリの空間参照系識別子(SRID)は 4490 でなければなりません。異なる空間参照系が使用されている場合は、その座標を CGC2000 座標に変換可能である必要があります。

以下の図は、グリッド交差出力の例を示しています。

image.pngimage.png

例 1: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}

例 2: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}

例 3:sfmesh 入力(JSON 形式、縮退グリッド)

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}

例 4:vomesh 入力(縮退グリッド)

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}