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

ApsaraDB RDS:ST_AsMVTGeom3D

最終更新日:Mar 29, 2026

ST_AsMVT3D による Mapbox ベクタータイル(MVT)出力の生成に必要なタイル座標系へ、3D ジオメトリを変換します。この関数は、ST_AsMVTGeom を Z 軸対応に拡張したものであり、座標変換時に Z 座標値を保持します。

構文

geometry ST_AsMVTGeom3D(
  geometry geom,
  box2d bounds,
  integer extent = 4096,
  integer buffer = 256,
  boolean clip_geom = true
);

パラメーター

パラメーター説明デフォルト値有効な値
geomgeometry変換対象の 3D ジオメトリオブジェクトです。
boundsbox2dバッファーを除く、ターゲット座標参照系(CRS)におけるタイルの矩形境界です。ST_TileEnvelope を使用してこの値を生成します。
extentintegerMVT 仕様で定義される、タイル座標空間におけるタイルサイズです。4096256–8192
bufferintegerジオメトリクリッピング用の、タイル座標空間におけるバッファーサイズです。2561–4096
clip_geomboolean3D ジオメトリをタイル境界にクリップするかどうかを指定します。true

説明

ST_AsMVTGeom3D は、ST_AsMVT3D で使用可能な状態へ 3D ジオメトリを準備します。ジオメトリの座標をタイル空間へ変換し、clip_geomtrue の場合、ジオメトリをタイル境界にクリップします。

主な動作は以下のとおりです:

  • X 座標および Y 座標と同様に Z 軸データも変換し、タイル変換プロセス全体において完全な 3D ジオメトリを保持します。

  • 入力ジオメトリと同じ CRS でタイル境界を指定する必要があります。これにより、ジオメトリを正しく変換およびクリップできます。境界を生成するには、ST_TileEnvelope を使用します。

  • 内部リングを含む 3D ポリゴンオブジェクトには対応していません。

3D ラインストリングをタイル座標空間へ変換

以下の例では、SRID 4326 の 3D ラインストリングを Web メルカトル(SRID 3857)へ変換し、タイル (1, 0, 0) のタイル座標空間へ変換します。

SELECT ST_AsText(
  ST_AsMVTGeom3D(
    ST_Transform('SRID=4326; LINESTRING(-10 -10 30, -10 -20 30)'::geometry, 3857),
    ST_TileEnvelope(1, 0, 0)
  )
) AS geom;

期待される出力:

                                        geom
------------------------------------------------------------------------------------
 MULTILINESTRING Z ((3868.44444444444 4324.7197219642 30,3868.44444444444 4352 30))
(1 row)

ST_AsMVT3D を使用した 3D MVT タイルの生成

以下の例では、CTE を使用した完全なタイル生成クエリを示します。テーブルからジオメトリを取得し、タイル座標空間へ変換したうえで、タイル (12, 513, 412) 向けにバイナリ MVT 形式へ集約します。

WITH mvtgeom AS (
  SELECT ST_AsMVTGeom3D(
    ST_Transform(geom, 3857),
    ST_TileEnvelope(12, 513, 412),
    extent => 4096,
    buffer => 256
  ) AS geom
  FROM your_3d_table
  WHERE geom && ST_Transform(ST_TileEnvelope(12, 513, 412), 4326)
)
SELECT ST_AsMVT3D(mvtgeom.*)
FROM mvtgeom;

your_3d_table は、3D ジオメトリデータを格納するテーブル名に置き換えてください。

関連ドキュメント

  • ST_AsMVT3D — タイルジオメトリをバイナリ MVT 形式へ集約します

  • ST_AsMVTGeom — 本関数が拡張する PostGIS の 2D 関数

  • ST_TileEnvelope — タイル境界ボックスを生成します