将一个地理网格对象转换为指定规范的文本编码。
语法
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