コンテンツにスキップ

Hook

点群プロバイダフック

独自の点群プロバイダを作成する際に利用します。

オブジェクトによる実装 単純な動作の場合は下記のように簡易的に実装することができます。

Examples

viewer.point_cloud_collection.add(new PointCloudProvider({
    init: () => {
        // 必要に応じて初期化します。
    },
    requestTile: ( level, x, y, z ) => {
        // タイルを取得します。
    },
}));

クラスによる実装 下記のように実装することで、複雑なプロバイダを記述することができます。

// クラスとして定義
class ProviderHook implements mapray.PointCloudProvider.Hook {
    constructor( id, option ) {
        // タイルへのアクセスに必要な情報などを受け取る
    }
    async init() {
        // 認証やログインなどを行い、アクセスできるようにする
    }
    async requestTile( level, x, y, z ) {
        // 実際にデータにアクセスする
    }
}

// インスタンス化して利用します。
viewer.point_cloud_collection.add( new ProviderHook( "id", { token: "xxxxxx" } ) );

Implements

Constructors

new Hook()

new Hook(resource, option): Hook

resource 点群定義(json)リソース

Parameters

Parameter Type Description
resource Resource | ResourceInfo リソース
option Option -

Returns

Hook

Methods

init()

init(): Promise<Info>

タイルプロバイダを初期化しリクエストできる状態にします。

  • リクエストできる状態に遷移できなかった場合は必ず例外をスローします
  • この関数は2回以上呼ばれることはありません

Returns

Promise<Info>

タイルプロバイダの情報

Implementation of

Hook.init


requestTile()

requestTile(level, x, y, z, options?): Promise<Data>

タイルをリクエストします。

座標が (level, x, y, z) のタイルデータを要求します。 Hook.init の呼び出しに成功した場合に、レンダラが必要なタイミングで何度も呼び出します。

Parameters

Parameter Type Description
level number レベル
x number X タイル座標
y number Y タイル座標
z number Z タイル座標
options? object -
options.signal? AbortSignal -

Returns

Promise<Data>

リクエスト結果

Implementation of

Hook.requestTile


selectVariant()

protected selectVariant(info): object

Parameters

Parameter Type
info VariantsInfo

Returns

object

info

info: Info

variant_name

variant_name: string


toString()

toString(): string

Returns

string