すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ST_AsMVT3D

最終更新日:Mar 29, 2026

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)

パラメーター

パラメーターデフォルト値有効値説明
rowanyelement少なくとも 1 つの 3 次元ジオメトリ列を含む行です。
nametextDefault出力タイル内のレイヤー名です。
extentinteger40962568192画面空間におけるタイル数です。
geom_nametext最初のジオメトリ列行内のジオメトリ列の名前です。
feature_id_nametextNULL または負の値 → 無視されます行内の 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 シナリオを示しています。

image..png

以下のクエリは 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_AsMVTGeom3DST_AsMVT3D との連携に向けた 3D ジオメトリの準備