Todos os produtos
Search
Central de documentação

ApsaraDB RDS:ST_3DContains

Última atualização: Jul 05, 2026

Retorna true se uma grade geográfica (geomgrid) contiver totalmente uma geometria 3D ou se uma grade contiver totalmente outra grade.

Sintaxe

bool ST_3DContains(geometry geom3d, geomgrid gridcode);
bool ST_3DContains(geomgrid gridcode, geometry geom3d);
bool ST_3DContains(meshgeom geom3d, geomgrid gridcode);
bool ST_3DContains(geomgrid gridcode, meshgeom geom3d);
bool ST_3DContains(sfmesh geom3d, geomgrid gridcode);
bool ST_3DContains(geomgrid gridcode, sfmesh geom3d);
bool ST_3DContains(vomesh geom3d, geomgrid gridcode);
bool ST_3DContains(geomgrid gridcode, vomesh geom3d);
bool ST_3DContains(geomgrid gridcode1, geomgrid gridcode2);

Parâmetros

Parâmetro

Descrição

gridcode / gridcode1 / gridcode2

Objeto de grade geográfica.

geom3d

Geometria 3D.

Descrição

A função ST_3DContains retorna a relação espacial entre uma grade e uma geometria.

A geometria 3D deve utilizar o sistema de referência espacial CGC2000 (China Geodetic Coordinate System 2000) com um Identificador de Sistema de Referência Espacial (SRID) igual a 4490.

Exemplos

Os exemplos a seguir abrangem todas as combinações de tipos de argumentos suportados.

Geomgrid contém um ponto de geometria

A grade GZ00262064446046072072 contém totalmente o ponto 3D especificado; portanto, a função retorna t.

SELECT ST_3DContains(
  ST_GridFromText('GZ00262064446046072072'),
  'srid=4490;POINT(116.31522216796875 39.910277777777778 1001.8)'::geometry
);
 st_3dcontains
---------------
 t

Geomgrid contém um meshgeom

Como o sólido meshgeom se estende além dos limites da grade GZ0026, a função retorna f.

SELECT ST_3DContains(
  ST_GridFromText('GZ0026'),
  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)))))'))
);
 st_3dcontains
---------------
 f

Geomgrid contém um sfmesh

O sfmesh (formato JSON) não está totalmente contido na grade GZ00262064, resultando no retorno f pela função.

SELECT ST_3DContains(
  ST_GridFromText('GZ00262064'),
  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]}]}'
  )
);
 st_3dcontains
---------------
 f

Geomgrid contém um vomesh

Neste caso, o vomesh não cabe inteiramente dentro da grade GZ00262064, então a função retorna f.

SELECT ST_3DContains(
  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))))'
  ),
  ST_gridfromtext('GZ00262064')
);
 st_3dcontains
---------------
 f

Geomgrid contém outro geomgrid

A grade GZ00262064 possui um nível mais grosseiro e contém totalmente a grade de nível mais fino GZ002620643, fazendo com que a função retorne t.

SELECT ST_3DContains(
  ST_GridFromText('GZ00262064'),
  ST_GridFromText('GZ002620643')
);
 st_3dcontains
---------------
 t

Próximos passos

  • ST_GridFromText — constrói um geomgrid a partir de uma string de código de grade

  • ST_MeshGeomFromText — constrói um meshgeom a partir de WKT

  • ST_VOMeshFromText — constrói um vomesh a partir de WKT

  • ST_3DIntersects — verifica se duas geometrias 3D ou grades se interceptam