ST_AsMVT — 返回一组行的 MVT 表示形式的聚合函数。
bytea ST_AsMVT(
anyelement set row)
;
bytea ST_AsMVT(
anyelement row, text name)
;
bytea ST_AsMVT(
anyelement row, text name, integer extent)
;
bytea ST_AsMVT(
anyelement row, text name, integer extent, text geom_name)
;
bytea ST_AsMVT(
anyelement row, text name, integer extent, text geom_name, text feature_id_name)
;
一个聚合函数,返回与图块图层对应的一组行的二进制 Mapbox 矢量瓦片表示。 这些行必须包含一个几何列,该几何列将被编码为要素几何。 几何图形必须位于图块坐标空间中,并且根据 MVT 规范有效。 ST_AsMVTGeom 可用于将几何图形转换为图块坐标空间。 其他行列被编码为特征属性。
Mapbox 矢量切片格式可以存储具有不同属性集的要素。 要使用此功能,请在包含一层深度的 Json 对象的行数据中提供一个 JSONB 列。 JSONB 值中的键和值将被编码为功能属性。
可以通过使用 ||
连接对此函数的多个调用来创建具有多层的切片。 或 使用STRING_AGG
。
不要将 |
row
至少包含一个几何列的行数据。
name
是图层名称。 默认值为字符串“default”。
extent
是规范定义的屏幕空间中的切片范围。 如果为 NULL,则默认值为 4096。
geom_name
是行数据中几何列的名称。 默认为第一个几何列。 请注意,PostgreSQL 默认情况下会自动将未加引号的标识符折叠为小写,这意味着除非几何列被加引号,例如 “MyMVTGeom”
,此参数必须以小写形式提供。
feature_id_name
是行数据中功能 ID 列的名称。 如果为 NULL 或负数,则不设置功能 ID。 匹配名称和有效类型(smallint、integer、bigint)的第一列将用作功能 ID,任何后续列将添加为属性。 不支持 JSON 属性。
增强:3.0 - 添加了对要素 ID 的支持。
增强:2.5.0 - 添加了对并行查询的支持。
可用性:2.4.0
WITH mvtgeom AS ( SELECT ST_AsMVTGeom(geom, ST_TileEnvelope(12, 513, 412), extent = > 4096, buffer = > 64) AS geom, name, description FROM points_of_interest WHERE geom && ST_TileEnvelope(12, 513, 412, margin = > (64.0 / 4096)) ) SELECT ST_AsMVT(mvtgeom.*) FROM mvtgeom;