PostGIS
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`
)`;
Description
An aggregate function which returns a binary Mapbox Vector Tile representation of a set of rows corresponding to a tile layer. The rows must contain a geometry column which will be encoded as a feature geometry. The geometry must be in tile coordinate space and valid as per the MVT specification. ST_AsMVTGeom can be used to transform geometry into tile coordinate space. Other row columns are encoded as feature attributes.
The Mapbox Vector Tile format can store features with varying sets of attributes. To use this capability supply a JSONB column in the row data containing Json objects one level deep. The keys and values in the JSONB values will be encoded as feature attributes.
Tiles with multiple layers can be created by concatenating multiple
calls to this function using ||
or STRING_AGG
.
|
row
row data with at least a geometry column.
name
is the name of the layer. Default is the string "default".
extent
is the tile extent in screen space as defined by the
specification. Default is 4096.
geom_name
is the name of the geometry column in the row data.
Default is the first geometry column. Note that PostgreSQL by default
automatically
folds
unquoted identifiers to lower case, which means that unless the
geometry column is quoted, e.g. "MyMVTGeom"
, this parameter must be
provided as lowercase.
feature_id_name
is the name of the Feature ID column in the row
data. If NULL or negative the Feature ID is not set. The first column
matching name and valid type (smallint, integer, bigint) will be used as
Feature ID, and any subsequent column will be added as a property. JSON
properties are not supported.
Enhanced: 3.0 - added support for Feature ID.
Enhanced: 2.5.0 - added support parallel query.
Availability: 2.4.0
Examples
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;