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

PolarDB:ST_As3dTiles

最終更新日:Jul 02, 2024

このトピックでは、ST_As3dTiles関数について説明します。 この関数は、sfmeshオブジェクトを3Dタイル形式に変換し、変換したオブジェクトをデータベースに保存します。

構文

ブールST_As3dTiles(sfmesh sfmesh_object、cstring table_name、cstringオプションデフォルト '{}');

戻り値

戻り値

説明

true

データが期待どおりにエクスポートされることを示します。

false

データがエクスポートされないことを示します。

Parameters

パラメーター

説明

sfmesh_object

変換するsfmeshオブジェクト。

table_name

<td class="en-UStry align-left colsep-1 rowsep-1">テーブル名。</td>

options

設定できるJSON文字列のオプション。

使用上の注意

この関数は、sfmeshオブジェクトを3Dタイル形式に変換し、変換したオブジェクトをデータベースに保存します。 ST_As3dTiles関数を使用してオブジェクトを変換する前に、ST_ImportIFC関数を使用してオブジェクトをインポートする必要があります。 ST_ImportIFC関数の詳細については、「ST_ImportIFC」をご参照ください。

次の表に、設定できるオプションを示します。

オプション

データ型

説明

デフォルト値

schema

String

必要なテーブルのスキーマ。

パブリック

ガノス

project

String

プロジェクト名。 この名前は、各レコードのproject_nameフィールド値として使用されます。

-

project_1

parallel

Integer

並列処理度 (DOP) 。 DOPを増やすと、データのインポートは高速化されますが、大量のメモリを消費する可能性があります。 実際のデータまたはデータベースの実行状態に基づいて適切な値を指定できます。 このオプションの最大値は16です。

1

16

size_threshold

Integer

分割しきい値。 (単位:KB) サイズがこの閾値より大きい幾何学的オブジェクトは、各タイルがサイズがこの閾値より小さくなるまで分割される。

2048

4096

srid

Integer

宛先sfmeshオブジェクトの空間参照識別子 (SRID) 。 ソースsfmeshオブジェクトのSRIDがターゲットsfmeshオブジェクトのSRIDと一致しない場合、エラーが報告されます。 このオプションを指定しない場合、ターゲットsfmeshオブジェクトにはSRIDがありません。

-

2326

method

String

分割方法。 このオプションは、ビジネス要件に基づいて指定できます。

有効な値:

  • oct: octree

  • クワッド: quadtree

  • bsp: BSPツリー

oct

bsp

filter_percent

浮く

フィルタリング比。 有効値: 0〜1 フィルタリング比が10% である場合 (0.1) 、体積がタイル体積の10% 未満であるオブジェクトは、各非リーフノードタイルについて除外される。

0.1

0.01

tileset_prefix

String

3Dタイルセットエンドポイントのプレフィックス。

-

http:// your_server/foo/bar

enable_tile_option

Boolean

sfmeshオブジェクトの組み込みタイル属性を有効にするかどうかを指定します。

false

true

merge_material

Boolean

ジオメトリを同じマテリアルとマージするかどうかを指定します。 このオプションがtrueに設定されている場合、ファイルボリュームが減少する可能性があります。

true

false

with_extension

Boolean

生成されるTilesetファイルのB3DM /tilesetのURIにサフィックスを追加するかどうかを指定します。 このオプションをtrueに設定すると、URLにサフィックスが追加されます。

false

true

vertex_threshold

浮く

頂点マージしきい値。 このオプションを0に設定すると、頂点マージ操作は実行されません。 そうでなければ、各タイル内の頂点間隔が閾値未満である点がマージされる。

0.0001

0.01

update_normal

Boolean

通常データを再計算するかどうかを指定します。

false

true

divide_factor

浮く

geometricErrorの計算係数。

5

10

  • しきい値ベースの頂点マージを有効にすると、元の通常データが削除されます。 頂点のマージ後、新しくマージされたジオメトリが正確なシェーディング属性とライティング属性を維持するようにするには、update_normalオプションを有効にして、正常なデータを再計算できます。

  • しきい値ベースの頂点マージを有効にし、システムが通常のデータを再計算すると、頂点マージしきい値によって表示効果が異なる場合があります。

  • システムがそのようなデータを持たないオブジェクトの正常データを再計算すると、生成されるボリューム値は増加する。

  • 非リーフノードに対して生成されたgeometricErrorが大きすぎる場合は、divid_factorオプションを変更できます。 たとえば、divid_factorオプションの値を2倍にすることができます。 この場合、geometricErrorは半分に減少します。

プロジェクトがデータベースにインポートされると、データベースに次のテーブルが生成されます。

  • [table_name]: タイルメタデータを格納するプライマリテーブル。

  • [table_name]_tile: プロジェクトのすべてのタイルデータを格納するタイルテーブル。

  • [table_name]_tileset: プロジェクトに対応するtileset.jsonに関する詳細を格納するテーブル。

[table_name] テーブルの構造:

フィールド

データ型

説明

補足

project_id

uuid

プロジェクトID。

プロジェクトIDが自動的に生成されます

project_name

text

プロジェクト名。

このフィールドを指定しない場合、プロジェクト名列にはデータが含まれません。 ほとんどの場合、テーブルは複数のサブプロジェクトのテーブルを格納するために使用されます。

srid

integer

このフィールドは空のままです。

-

アンカー

geometry

プロジェクトがアンカーされる3Dポイント。

sfmeshプロジェクトの中心点投影は、WGS84座標系に変換される。

extent

geometry

このフィールドは空のままです。

-

aux

text

このフィールドは空のままです。

-

tiletable

varchar (64)

このフィールドは空のままです。

-

[table_name]_tileテーブルの構造:

フィールド

データ型

説明

補足

project_id

uuid

プロジェクトID。

プロジェクトIDは [table_name] テーブルと同じです。

project_name

text

プロジェクト名。

プロジェクト名は [table_name] テーブルと同じです。

uid

uuid

タイルID。

タイルIDは自動的に生成されます。

lod

integer

このフィールドは空のままです。

-

uuid

このフィールドは空のままです。

-

children

uuid[]

このフィールドは空のままです。

-

aux

jsonb

このフィールドは空のままです。

-

タイル

シーン

タイルのエンティティ。

-

[table_name]_tilesetテーブルの構造:

フィールド

データ型

説明

補足

project_id

uuid

プロジェクトID。

プロジェクトIDは [table_name] テーブルと同じです。

project_name

text

プロジェクト名。

プロジェクト名は [table_name] テーブルと同じです。

uid

uuid

tileset.jsonのID。

ノードがプロジェクトのルートノードである場合、フィールド値はproject_idフィールドの値と同じです。

tileset

jsonb

tileset.jsonのエンティティ。

-

SELECT ST_As3dTiles(sfmesh_obj、'test_table')
FROM t_sfmesh
WHERE id = 1;

---------
t

パラレル

SELECT ST_As3dTiles(sfmesh_obj, 'test_table', '{"parallel": 2}')
FROM t_sfmesh
WHERE id = 1;

---------
t

その他のオプション

SELECT ST_As3dTiles(sfmesh_obj, 'test_table', '{"project":"test_proj", "method":"oct", "size_threshold":20}')
FROM t_sfmesh
WHERE id = 1;

---------
t