全部產品
Search
文件中心

ApsaraDB RDS:ST_AsMVT3D

更新時間:Jun 19, 2024

將MVTGeom資料編碼成MVT(Mapbox Vector Tile)標準的二進位格式。

文法

  • 文法一

    bytea ST_AsMVT3D(anyelement set row);
  • 文法二

    bytea ST_AsMVT3D(anyelement row, text name);
  • 文法三

    bytea ST_AsMVT3D(anyelement row, text name, integer extent);
  • 文法四

    bytea ST_AsMVT3D(anyelement row, text name, integer extent, text geom_name);
  • 文法五

    bytea ST_AsMVT3D(anyelement row, text name, integer extent, text geom_name, text feature_id_name);

參數

參數名稱

描述

row

至少包含一個Geometry3D列的行資料。

name

圖層的名稱,預設值Default

extent

螢幕空間中的平鋪範圍。

取值範圍:256~8192,預設值是4096。

geom_name

行資料中幾何列的名稱,預設是第一個幾何列。

feature_id_name

行資料中Feature ID列的名稱。

如果為NULL或為負值,則不設定Feature ID

描述

  • 該函數是一個彙總函式,將MVTGeom資料編碼成MVT(Mapbox Vector Tile)標準的二進位格式。

  • 行資料必須包含一個幾何列,該列將被編碼為空白間要素的幾何屬性。

  • ST_AsMVTGeom3D可用於將3D資料處理成瓦片座標空間,其他行列被編碼為空白間要素的非幾何屬性。

  • 可以通過使用||STRING_AGG來建立多個圖層的VectorTile,例如SELECT ST_AsMVT3D() || ST_AsMVT3D() AS tile;

Z座標的編碼方式:

  1. CommandID編碼:新增3D圖形編碼指令MoveTo3D(5)\LineTo3D(6) XYZXYZ...

  2. Z座標的數值計算方式:value = 7 * (z + 450),表達範圍是(-450, 8848)

說明

更多資訊,請參見vector tile spec

使用MVT3D瓦片技術展示大規模三維情境:

image..png

樣本

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;
                                                                                                                     st_asmvt3d                                                                                                                     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 \x1a760a0764656661756c74125812020000180322500d8044a842b83116ff23d80105802400080f0d810481041d162e000e2e590e0f0dd920dc0405168024d70106c727f3160d0f0dc827f4160e1600f31615c72700080f0d0000001600cc1808c80300000f1a046e616d6522060a04746573742880207802
(1 row)