コンテンツにスキップ
JP

FAQ

更新日

この FAQ では、個別のガイドを必要としない短い横断的な質問を扱います。目的別の手順は「ガイド」、プロパティやメソッドの詳細は「API リファレンス」を参照してください。

Q: プラグイン開発を始めるのに、何かインストールが必要ですか?

不要です。プラグインは 2 つの方法で作れます。1 つはブラウザだけで完結するプラグインプレイグラウンド、もう 1 つはローカル開発環境(自分のエディタ)を使う方法です。Playground は最も早く試せる方法で、ローカル環境はより大きく複雑なプラグインに向いています。

Q: プラグインにはどんなファイルが必要ですか?

最低限必要なのは、プラグインと拡張を記述する reearth.yml と、拡張ごとに 1 つの JavaScript ファイルです。これらをまとめて .zip としてパッケージ化します。

Q: ウィジェット / InfoboxBlock / StoryBlock の違いは?

ウィジェットは Widget Align System を使ってメインマップビューに配置します。InfoboxBlock は、レイヤ上のフィーチャを選択したときに開くインフォボックス内に表示されます。StoryBlock はストーリーページに埋め込まれます。詳細は拡張タイプの違いを参照してください。

Q:「Install Dev Plugins」と「Reload Dev Plugin Extensions」はいつ使い分けますか?

初回セットアップと reearth.yml を変更したときは Install Dev Plugins を使用します。拡張コードを変更した後は Reload Dev Plugin Extensions を使用します。reearth.yml の変更は、プラグイン構造の再登録が必要なため、完全インストールが必要です。

Q: プラグインの UI が表示されないのはなぜですか?

プラグイン UI は reearth.ui.show に HTML を渡すことで表示します。何も表示されない場合は、呼び出しが行われているか、また拡張 JavaScript のファイル名が reearth.yml 内の id と完全一致しているかを確認してください。UI は表示されているが真っ白に見える場合は、スタイルの問題の可能性があります。文字色が背景色と同じだと見えないため、UI 側で文字色と背景色を明示的に指定してください。

Q: TypeScript は使えますか?

はい。Visualizer が実行するのは JavaScript ですが、TypeScript で書いて JavaScript にコンパイルできます。推奨テンプレートは TypeScript に対応しています。

Q: 外部 API からデータを取得できないのはなぜですか?

外部サーバーへのリクエストは、拡張ロジック(WebAssembly 側)ではなく、プラグイン UI(iframe 側)から行う必要があります。また、外部サーバーはレスポンスヘッダーに Access-Control-Allow-Origin を含めて CORS を許可していなければなりません。そうでない場合、リクエストは失敗します。

Q: 特定の背景地図やタイルサーバーが読み込めないのはなぜですか?

一部の背景地図は Cesium Ion のアクセストークンを必要とします。それ以外でも、タイルサーバーが利用できない、または CORS によりブロックされる場合があります。背景地図が表示されない場合、原因はコードではなくタイルソース側にあることが多いです。

Q: プラグインのサイズ制限はありますか?

あります。プラグインは 10 MB 以下の .zip としてパッケージ化する必要があります。画像や CSS などの非 JavaScript ファイルは .zip に同梱できません。JavaScript の文字列として埋め込むか、公開サーバーにホストして URL で参照してください。

Q: プラグインで永続化できるデータを保存できますか?

ローカルストレージは利用できません(プラグイン UI がサンドボックス化された iframe 内で動作するため)。永続化には、プラグイン API が提供するストレージ API、または外部サーバーを利用してください。

Q: Playground で作ったプラグインはどう共有できますか?

Share ボタンで共有リンクをコピーするか、Export ボタンで .zip をダウンロードしてください。非常に大きいプラグインはリンク共有できず、エクスポートのみです。