このトピックでは、ST_AsMVT3D関数について説明します。 この関数は、mvtgeomデータのバイナリ表現をMapbox Vector Tile (MVT) 形式で返します。
構文
構文1
bytea ST_AsMVT3D(anyelementセット行);
構文2
bytea ST_AsMVT3D(anyelement行、テキスト名);
構文3
bytea ST_AsMVT3D(anyelement行、テキスト名、整数範囲);
構文4
bytea ST_AsMVT3D(anyelement行、テキスト名、整数範囲、テキストgeom_name);
構文5
bytea ST_AsMVT3D(anyelement行、テキスト名、整数範囲、テキストgeom_name、テキストfeature_id_name);
Parameters
パラメーター | 説明 |
行 | 少なくとも1つの3Dジオメトリ列を含む行。 |
name | レイヤーの名前。 デフォルト値:デフォルト |
範囲 | 画面スペース内のタイルの数。 有効な値: 256〜8192。 デフォルト値: 4096 |
geom_name | 行のジオメトリ列の名前。 デフォルトでは、最初のジオメトリ列の名前が使用されます。 |
feature_id_name | 行の [機能ID] 列の名前。 このパラメーターがNULLまたは負の値に設定されている場合は、[機能ID] 列を無視します。 |
説明
この関数は、MVT形式のバイナリ表現を返す集計関数です。
行には、geometric属性の空間フィーチャとしてエンコードする必要があるジオメトリ列が含まれている必要があります。
ST_AsMVTGeom3D関数を呼び出して、タイトル座標系で3Dジオメトリを表現し、他の行と列を非幾何学的属性の空間的特徴としてエンコードできます。
| |
またはSTRING_AGG
を使用して、複数のレイヤーを持つベクトルタイルを作成できます。 例:SELECT ST_AsMVT3D() | | ST_AsMVT3D() ASタイル;
次のリストは、z軸のエンコード方法を示しています。
CommandID encoding: 3Dグラフィックスをエンコードするための
MoveTo3D(5)\LineTo3D(6) XYZXYZ...
がサポートされています。z軸上の数値計算:
数値=7 × (z + 450)
。 有効な値の範囲は-450から8848です。
詳細については、「vector-tile-spec」をご参照ください。
次の図は、3D MVTタイルテクノロジーを使用した大規模な3Dシナリオを示しています。
例
mvtgeomととして
(
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 0、1 1、2 2 2、0 0 0)))'::geometry、3857) 、
ST_TileEnvelope(1、0、0) AS geom、'test 'AS name
)
SELECT ST_AsMVT3D(mvtgeom.*) からmvtgeom;
st_asmvt3d
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
\x1a760a0764656661756c74125812020000180322500d8044a842b83116ff23d80105802400080f0d810481041d162e000e2e590e0f0dd920dc0405168024d70106c727f3160d0f0dc827f4160e1600f31615c72700080f0d0000001600cc1808c80300000f1a046e616d6522060a04746573742880207802
(1行)