ST_AsMVTGeomEx

功能同ST_AsMVTGeom,但是新增参数res_prec,允许用户使用该参数更大程度地过滤对显示效果影响小的矢量要素,从而减小前后端处理的负担以及网络开销,提高可视化效率。

语法

GEOMETRY ST_AsMVTGeomEx(
	GEOMETRY geom,
	BOX2D bounds, 
	INTEGER res_prec=1, 
	INTEGER extent=4096, 
	INTEGER buffer=256, 
	BOOLEAN clip_geom=true
);

参数

参数名称

描述

geom

目标Geometry对象。

bounds

瓦片的矩形边界,不包含缓冲区。

res_prec

控制过滤程度的参数。可简单理解为,在瓦片中,若一个Geometry对象在x轴和y轴最多所显示的像素数小于该参数,则该Geometry对象会被过滤掉。

extent

瓦片坐标系中的瓦片大小,默认4096。

buffer

瓦片坐标系中的缓冲区大小,默认256。

clip_geom

geom是否被瓦片边界裁剪,默认true。

描述

  • 功能同ST_AsMVTGeom,但是通过参数res_prec能提供更高的可视化效率。

  • 对小比例尺瓦片,使用较大的res_prec可能会出现较多矢量要素看不见的现象。

  • 对点数据无效。

  • 适用于可视化包含很多大小差异大的矢量数据。

示例

--只可视化在当前瓦片中x轴或y轴最多显示像素数不小于2的矢量要素
WITH mvtgeom AS(SELECT ST_AsMVTGeomEx(geom, ST_Transform(ST_TileEnvelope(0,0,0),4326),2)AS geom
FROM geom_table
WHERE geom && ST_Transform(ST_TileEnvelope(0,0,0),4326))
SELECT ST_AsMVT(mvtgeom.*);