为一个空间几何数据表创建矢量金字塔,加速数据显示。
语法
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两个值。 |
buildRules |
array[object] |
null |
构建规则,每个object中包含level和value两个值。
|
└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"]
}
}
]
}
示例
select ST_BuildPyramid('roads', 'geom', 'id', '');
st_buildpyramid
t