Name

ST_AsMVT — 返回一组行的 MVT 表示形式的聚合函数。

Synopsis

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

[Important]

不要将 GEOMETRYCOLLECTION 作为行中的元素进行调用。 但是,您可以使用 ST_AsMVTGeom 准备要包含的几何集合。

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;