コンテンツにスキップ

Hook

画像プロバイダフック

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

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

Examples

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

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

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

// インスタンス化して実装
viewer.setImageProvider( new ProviderHook( "id", { token: "xxxxxx" } ) );

Methods

init()

init(options?): Promise<Info>

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

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

Parameters

Parameter Type
options? object
options.signal? AbortSignal

Returns

Promise<Info>

タイルプロバイダの情報


requestTile()

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

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

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

Parameters

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

Returns

Promise<SupportedImageTypes>

リクエスト結果