PlayerHandle
createPlayer 関数が返すオブジェクトのインターフェースで、プレイヤーの再生制御とイベント購読の機能を提供します。
メソッド
play(): void現在の位置から再生を開始または再開します。pause(): void現在の位置で再生を一時停止します。stop(): void再生を停止し、再生位置をルートの開始地点にリセットします。seek(ms: number): void指定されたタイムスタンプ(ミリ秒単位、ルートの開始時刻からの相対時間)に再生位置を移動します。setSpeed(multiplier: number): void再生速度の倍率を設定します。1が通常の速度、2が2倍速です。setDirection(dir: "forward" | "reverse"): void再生方向を設定します。(現在未実装)setCameraMode(mode: CameraMode, options?: CameraOptions): voidカメラの追従モードを設定します。詳細はCameraModeを参照してください。オプションでCameraOptionsを指定して、モードごとの詳細設定を更新することも可能です。on<E extends PlayerEvent>(ev: E, cb: PlayerEventMap[E]): voidプレイヤーイベントを購読します。イベントの種類とコールバック関数の詳細については、Eventsページを参照してください。destroy(): voidプレイヤーインスタンスを破棄します。マップから関連する要素(マーカー、ポリライン、WebGL オーバーレイ)を削除し、アニメーションを停止し、イベントリスナーを解除します。インスタンスが不要になった場合は、必ず呼び出してください。
例
typescript
const player: PlayerHandle = createPlayer(options);
document.getElementById('playButton').addEventListener('click', () => player.play());
document.getElementById('pauseButton').addEventListener('click', () => player.pause());
document.getElementById('speedSlider').addEventListener('input', (event) => {
const speed = parseFloat((event.target as HTMLInputElement).value);
player.setSpeed(speed);
});
player.on('frame', (payload) => {
console.log(`Frame at progress: ${payload.progress.toFixed(2)}`);
});
player.on('finish', () => {
console.log('Playback finished!');
});
window.addEventListener('beforeunload', () => {
player.destroy();
});Overlay Methods & Properties
GmRouteReplayOverlay クラスのインスタンスで使用できるメソッドとプロパティ。
メソッド
play(): void現在の位置から再生を開始または再開します。pause(): void現在の位置で再生を一時停止します。stop(): void再生を停止し、再生位置をルートの開始地点にリセットします。seek(timeMs: number): void指定されたタイムスタンプ(ミリ秒単位、ルートの開始時刻からの相対時間)に再生位置を移動します。setSpeed(speed: number): void再生速度の倍率を設定します。1が通常の速度、2が2倍速です。setCameraMode(mode: CameraMode, options?: CameraOptions): voidカメラの追従モードを設定します。詳細はCameraModeを参照してください。オプションでCameraOptionsを指定して、モードごとの詳細設定を更新することも可能です。setMap(map: google.maps.Map | null): voidオーバーレイを表示するマップを設定または解除します。OverlayViewから継承された標準メソッドです。コンストラクタでmapを指定しなかった場合に、これでマップに関連付けます。nullを渡すとマップから削除されます。addEventListener<K extends keyof PlayerEventMap>(type: K, listener: (ev: PlayerEventMap[K]) => any): voidプレイヤーイベントを購読します。イベントの種類とペイロードについてはEventsページを参照してください。removeEventListener<K extends keyof PlayerEventMap>(type: K, listener: (ev: PlayerEventMap[K]) => any): void登録したイベントリスナーを解除します。destroy(): voidオーバーレイインスタンスを破棄します。マップから関連する要素を削除し、アニメーションを停止し、イベントリスナーを解除します。インスタンスが不要になった場合は、setMap(null)を呼び出すか、このメソッドを呼び出すことを推奨します。
プロパティ (読み取り専用)
isReady: booleanプレイヤーが初期化され、操作可能な状態かどうか。durationMs: numberルート全体の総再生時間 (ミリ秒)。currentTimeMs: number現在の再生時間 (ミリ秒)。currentProgress: number現在の再生進捗 (0 から 1)。currentSpeed: number現在の再生速度。currentCameraMode: CameraMode現在のカメラモード。
例
typescript
import { GmRouteReplayOverlay } from 'route-replay-googlemaps-core';
const overlay = new GmRouteReplayOverlay(options);
overlay.setMap(map);
overlay.addEventListener('ready', () => {
document.getElementById('playButton').addEventListener('click', () => overlay.play());
document.getElementById('pauseButton').addEventListener('click', () => overlay.pause());
document.getElementById('speedSlider').addEventListener('input', (event) => {
const speed = parseFloat((event.target as HTMLInputElement).value);
overlay.setSpeed(speed);
});
overlay.addEventListener('frame', (payload) => {
console.log(`Frame at progress: ${overlay.currentProgress.toFixed(2)}`);
});
overlay.addEventListener('finish', () => {
console.log('Playback finished!');
});
});
window.addEventListener('beforeunload', () => {
overlay.setMap(null);
});