要求 ID の型
この型パラメータは、requestTile の戻り値と cancelRequest の パラメータの型が一致した定義になるようにするための便宜的なものである。
ID
がどのような型であっても ImageProvider<ID>
のインスタンスは、
ImageProvider = ImageProvider<unknown>
型の変数
(Viewer.Option.dem_provider) を通してフレームワークに渡される。
一般的にこのような場合、cancelRequest の id
パラメータ は
unknown
型または unknown
のスーパークラス (存在しない) でなけれ
ば置換可能性が満たさず危険性を伴うが、フレームワークは必ず this
の requestTile が返したオブジェクトを this
の cancelRequest
に与えることを保証しているので問題は起きない。
なお、TypeScript では --strictFunctionTypes
を指定していても、
ImageProvider<unknown>
型の変数に ImageProvider<ID>
型の
インスタンスを代入することが許されるのでコンパイルエラーは起きない。
詳細は TypeScript 2.6 の Strict function types を参照のこと。
地図タイル画像の要求を取り消す
requestTile メソッドによる要求を可能であれば取り消す。
要求 ID (requestTile から得たオブジェクト)
地図タイル画像の寸法を取得
サーバーが提供する地図タイル画像の寸法をする。 地図タイル画像は正方形を前提とし、水平方向の画素数を返す。
制限: this
が同じなら常に同じ値を返さなければならない。
地図タイル画像の画素数
地図画像ズームレベルの範囲を取得
サーバーが提供する地図タイル画像のズームレベルの範囲を取得する。
制限: this
が同じなら常に同じ範囲を返さなければならない。
地図タイル画像を要求
座標が (z
, x
, y
) の地図タイル画像を要求する。
指定したタイル画像の取得が成功または失敗したときに callback
が非同期に呼び出されなければならない。だたし cancelRequest
により要求が取り消されたとき、callback
は呼び出しても呼び出さ
なくてもよい。また非同期呼び出しである必要もない。
callback
が返す TileImage インスタンスの画像は不変が想定
されるので、違う呼び出しの間で同じ画像インスタンスを返すことも
可能である。
ズームレベル
X タイル座標
Y タイル座標
要求コールバック関数
要求 ID (cancelRequest に与えるオブジェクト)
状態の取得
状態変化コールバック関数
現在の ImageProvider インスタンスの状態
地図画像プロバイダ
レンダラーに地図画像を与えるための抽象クラスである。
このインスタンスには状態 (Status 型) があり、status メソッ ドにより状態を確認することができる。
初期状態は READY または NOT_READY でなければならず、状態の 変化は NOT_READY から READY または NOT_READY から FAILED しか存在しない。READY 以外の状態では status を除くメ ソッドを呼び出すことはできない。
初期状態が NOT_READY になる可能性があるプロバイダは、status メソッドをオーバーライドする必要がある。
以下の抽象メソッドは既定の動作がないので、利用者はこれらのメソッド をオーバーライドした具象クラスを使用しなければならない。
StandardImageProvider, Viewer.constructor