ST_BuildPyramid

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

语法

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),仅支持3857和4326两个值。

updateExtentSRS

int

4326

更新金字塔函数的更新范围使用的EPSG格式,详情见ST_UpdatePyramid函数的说明。

updateBoxScale

int

10

影响更新金字塔操作的精度,详情见ST_UpdatePyramid函数的说明。

buildRules

array[object]

null

构建规则,每个object中包含levelvalue两个值。

level

array[int]

null

规则适用的层级数组。

value

object

null

构建规则值。

filter

string

""

过滤表达式,PostgreSQL的查询语法。

attrFields

array[string]

null

mvt中的属性字段名称。

merge

array[string]

null

对数据进行分组合并的过滤条件。

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