将一个地理网格对象转换为指定规范的文本编码。

语法

text ST_AsText(geomgrid    grid
integer precision default -1,
bool separated default false,
text standard default 'GGER')

text[] ST_AsText(geomgrid[]    grid
integer precision default -1,
bool separated default false,
text standard default 'GGER')

text ST_AsText(h3grid  grid)

参数

参数名称

描述

grid

需要输出的地理网格对象,数据类型为GeomGrid或者H3Grid。

precision

精度级别,取值:1~32,-1表示使用grid自身级别。

separated

是否采用拆分编码(适用于3维GGER)。

standard

规范标准:GGER。自然资源部地球空间网格编码规则(GeoSpatial Grid Encoding Rule)。默认使用GGER。

描述

将一个地理网格对象按照指定的层级、精度以及编码规范输出。当指定的精度高于地理网格存储的精度时,不进行补零输出。拆分编码中的高度编码是网格在高度维的索引值的二进制文本码,地上以“+”开头,地下以“-”开头。

示例

-- 使用默认层级
WITH g AS (
  select unnest(ST_AsGrid(
    ST_geomfromtext('POINT(116.31522216796875 39.910277777777778)',4490), 15)) as grid) 
select ST_AsText(grid) from g;

    st_astext     
------------------
 G001310322230230

-- 指定输出的层级
WITH g AS (
  SELECT unnest(ST_AsGrid(
    ST_geomfromtext('POINT(116.31522216796875 39.910277777777778)',4490), 15)) as grid) 
SELECT ST_AsText(grid, 8) from g;

  st_astext  
-------------
 G00131032

-- 三维编码
SELECT unnest(ST_AsText(ST_As3DGrid('srid=4490;POINT(116.31522216796875 39.910277777777778 1001.8)'::geometry, 
                                    20)));
         unnest         
------------------------
 GZ00262064446046072072

-- 采用拆分编码
SELECT unnest(ST_AsText(ST_As3DGrid('srid=4490;POINT(116.31522216796875 39.910277777777778 1001.8)'::geometry, 
                                    20), -1, true));
            unnest             
-------------------------------
 G00131032223023031031, +10010

-- H3编码
SELECT ST_AsText(ST_H3FromLatLng(20.5,128.2,8));
  st_astext    
-----------------
 884a126689fffff