3 次元 MVT ジオメトリの行を Mapbox Vector Tile(MVT)バイナリタイルにシリアル化する集計関数です。標準の MVT フォーマットを Z 軸(標高)対応で拡張し、PostgreSQL 内で直接 3D ベクタータイルを生成可能にします。
構文
-- 構文 1:最小構文
bytea ST_AsMVT3D(anyelement set row)
-- 構文 2:レイヤー名を指定
bytea ST_AsMVT3D(anyelement row, text name)
-- 構文 3:レイヤー名とタイル範囲を指定
bytea ST_AsMVT3D(anyelement row, text name, integer extent)
-- 構文 4:レイヤー名、タイル範囲、ジオメトリ列名を指定
bytea ST_AsMVT3D(anyelement row, text name, integer extent, text geom_name)
-- 構文 5:完全構文(Feature ID を含む)
bytea ST_AsMVT3D(anyelement row, text name, integer extent, text geom_name, text feature_id_name)パラメーター
| パラメーター | 型 | デフォルト値 | 有効値 | 説明 |
|---|---|---|---|---|
row | anyelement | — | — | 少なくとも 1 つの 3 次元ジオメトリ列を含む行です。 |
name | text | Default | — | 出力タイル内のレイヤー名です。 |
extent | integer | 4096 | 256–8192 | 画面空間におけるタイル数です。 |
geom_name | text | 最初のジオメトリ列 | — | 行内のジオメトリ列の名前です。 |
feature_id_name | text | — | NULL または負の値 → 無視されます | 行内の Feature ID 列の名前です。NULL または負の値を指定すると、Feature ID は出力されません。 |
注意事項
ST_AsMVT3Dは集計関数です。派生テーブルに対してSELECT ... FROMを使用して呼び出してください。タイル座標系で 3 次元ジオメトリを表現し、その他の列を非ジオメトリ属性の空間特徴量としてエンコードするには、
ST_AsMVTGeom3Dを呼び出してください。複数のレイヤーを結合するには、
||またはSTRING_AGGを使用します。SELECT ST_AsMVT3D(layer1.*) || ST_AsMVT3D(layer2.*) AS tile;
Z 軸のエンコーディング
ST_AsMVT3D は、標高をエンコードするために MVT コマンドセットを拡張しています。
CommandID のエンコーディング:XYZ 座標シーケンスをエンコードするために
MoveTo3D(5)およびLineTo3D(6)を使用します。Z 軸の量子化:
数値 = 7 × (z + 450)であり、有効な標高範囲は −450 ~ 8848 です。
仕様の詳細については、「vector-tile-spec」をご参照ください。
以下の画像は、3D MVT タイル技術を用いてレンダリングされた大規模な 3D シナリオを示しています。

例
以下のクエリは 3D MVT タイルを生成します。ST_AsMVTGeom3D が 3D ジオメトリをタイル座標系に変換し、ST_AsMVT3D がその結果をバイナリタイルにシリアル化します。
WITH mvtgeom AS (
SELECT
ST_AsMVTGeom3D(
ST_Transform('SRID=4326; MULTIPOLYGON(((100 50 0, -100 50 1, -100 -50 2, 100 -50 3, 100 50 0)), ((0 0 0, 1 0 1, 2 2 2, 0 0 0)))'::geometry, 3857),
ST_TileEnvelope(1, 0, 0)
) AS geom,
'test' AS name
)
SELECT ST_AsMVT3D(mvtgeom.*) FROM mvtgeom;期待される出力(16進数表記のバイナリ MVT):
st_asmvt3d
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
\x1a760a0764656661756c74125812020000180322500d8044a842b83116ff23d80105802400080f0d810481041d162e000e2e590e0f0dd920dc0405168024d70106c727f3160d0f0dc827f4160e1600f31615c72700080f0d0000001600cc1808c80300000f1a046e616d6522060a04746573742880207802
(1 行)関連トピック
ST_AsMVTGeom3D —
ST_AsMVT3Dとの連携に向けた 3D ジオメトリの準備