为一个空间几何数据表创建矢量金字塔,加速数据显示。

语法

boolean ST_BuildPyramid(cstring table, cstring geom, cstring fid, cstring config)

参数

参数名称描述
参数名称 描述
table 空间几何表名。
geom 几何字段名。
fid 要素标识字段名。
config 创建金字塔的参数,JSON格式的字符串。

config参数说明如下。

参数名称类型默认值说明
参数名称 类型 默认值 说明
name string table名称相同 金字塔的名称。
parallel int 0 并行构建任务数,需要设置max_prepared_transactions参数,0表示并行最大化。
tileSize int 1024 瓦片大小,取值需大于0且小于4096。
tileExtend int 8 瓦片的外扩大小,取值需大于0。
userExtent array[double] null 自定义地理轮廓,设置 [], 分别为:minx、miny、maxx、maxy。
splitSize int 10000 决定索引节点分裂的最大要素数量。数值越大,金字塔越稀疏。
maxLevel int 16 金字塔的最大层级,取值为0~20。
sourceSRS int -1 源数据的坐标系。如果不设置,则读取元数据的 SRID。
destSRS int 3857 输出瓦片坐标系参考编码(EPSG),仅支持38574326两个值。
buildRules array[object] null 构建规则,每个object中包含levelvalue两个值。
level array[int] 规则适用的层级数组。
value object 构建规则值。
filter string 过滤表达式,PostgreSQL的查询语法。
attrFields array[string] mvt中的属性字段名称。
merge array[string] 对数据进行分组合并的过滤条件。

config示例:

{
   "name" : "hello",           
   "parallel": 4,         
   "tileSize": 512,           
   "tileExtend": 8,
   "userExtent": [-180,-90,180,90],
   "splitSize": 5000,
   "maxLevel": 16,  
   "destSRS": 3857,
   "buildRules": [             
     {
       "level": [0,1,2],  
       "value": {
         "filter": "code!=0",
         "attrFields": ["name","color"],    
         "merge":["code=1"]
       }
     }
   ]
}

示例

--为空间几何表roads创建矢量金字塔。
select ST_BuildPyramid('roads', 'geom', 'id', '');
st_buildpyramid
----------
t