「ビジュアライザープラグイン」とは、Visualizerの機能を拡張したり、独自のUIや動作を追加したりできる、小さなWebアプリケーションです。
地図表示だけでは表現しきれない体験や、プロジェクト固有の機能を実装するために活用できます。プラグインはVisualizerの本体コードを変更せずにカスタマイズ性や柔軟性を向上させる仕組みです。
具体的な開発方法は、「独自プラグインを開発する(執筆中)」ページをご覧ください。
例えば以下のようなニーズがあるとき、プラグインを導入することで、より高度な表現や操作を実現できます。
プラグインは「Extension(拡張)」単位で構成され、Extensionは表示位置とその動作を定義し、3種類のExtensionの違いを比較できます。各Extensionは reearth.yml に記述され、対応する .js ファイルで動作を記述します。
| Extension種別 | 表示場所 | 主な用途例 |
|---|---|---|
widget |
Visualizerの画面端 | 地図上にツールやボタンを配置(例:切替スイッチ) |
infoboxBlock |
地物を選択した際の情報パネル(インフォボックス) | 属性情報の可視化、画像・グラフなどの追加表示 |
storyBlock |
ストーリーページ内 | ページごとの補足情報、チャートやナビゲーションの追加 |
ビジュアライザープラグインは、WebAssembly(WASM)と iframe の2つの実行環境を組み合わせたハイブリッド方式で動作します。両者は、postMessage による送受信で連携します。
| 領域 | 説明 |
|---|---|
| WebAssembly(WASM)側 | プラグインのエントリーポイント。Visualizer本体と同じスレッド内で同期的に実行され、シーン情報などにアクセス可能。 |
| iframe側 | 実際のHTML UIを表示する部分。Web API(DOM、Canvas、AJAX等)や外部通信が可能。Visualizer本体のデータには直接アクセスできない。 |
| 機能項目 | WebAssembly側 | iframe側 |
|---|---|---|
| プラグインの起動(エントリーポイント) | ✅ | ❌ |
| Re:Earth VisualizerのAPI利用 | ✅ | ❌ |
| HTML UIの描画 | ❌ | ✅ |
| Web APIの使用(DOM操作、fetchなど) | ❌ | ✅ |
| 外部サーバー通信(CORSあり) | ❌ | ✅ |
| postMessageによる通信 | ✅ | ✅ |