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 欄位,該 JSON 物件深度為一層。JSONB 值中的鍵和值將被編碼為特徵屬性。
具有多個圖層的瓦片可以通過使用 ||
或 STRING_AGG
連接對此函數的多個呼叫來建立。
![]() |
|
請勿使用 |
row
列資料,至少包含一個幾何欄位。
name
是圖層的名稱。預設值為字串 "default"。
extent
是規範定義的螢幕空間中的瓦片範圍。預設值為 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;