概要
https://github.com/brianmcleer/mapswitcher-widget
マップ切り替えウィジェットでは、現在のマップ範囲とズームレベルを維持したまま、異なるExperience Builderアプリ間を移動できるドロップダウンを利用できます。ウィジェットは元のアプリのURLハッシュフラグメントを取得し、移動先のURLに追加します。
注: このウィジェットの以前のバージョンでは、コードにURLがハードコードされていたため、Esri Communityで共有できませんでした。Experience Builder 1.19で互換性を破る変更が導入され、ウィジェットの再開発が必要になりました。このバージョンでは、管理者がウィジェット設定パネルからURLを設定できるため、より広く配布できます。
設定
ウィジェット設定パネルには、サイトの設定項目があります。
サイトの設定:
- ラベル:ドロップダウンに表示される名前
- URL:移動先のExperience Builderアプリの完全なURL
「サイトを追加」ボタンを使って、複数のサイトを追加できます。各項目の「削除」ボタンでサイトを削除できます。このウィジェットには、マップウィジェットとの接続は必要ありません。
ウィジェットの機能
ウィジェットには、設定済みのサイトを選択できるドロップダウンメニューが表示されます。プレースホルダーのテキストは「表示するマップを選択」です。
機能:
ユーザーがドロップダウンから移動先を選択すると、次の処理が行われます。
- 現在のURLハッシュフラグメント(#記号以降のすべて)を取得
- このハッシュには、中心座標、ズームレベル、縮尺、回転、空間参照などのマップ状態パラメーターが含まれます
- このハッシュを選択した移動先URLに追加
- ブラウザーが新しいアプリに移動
機能:
- 任意の座標系(Webメルカトル、State Plane、WGS84など)で動作
- 中心点、ズームレベル、回転を維持
- 設定パネルでURLを設定
変更履歴:
2026年10月12日: ウィジェットが、次の方法で39言語に対応し、アプリの言語に従うようになりました(?locale=、言語切り替え、ArcGISプロフィール、またはブラウザー)。ヘルプガイドも含まれます。
独自のカスタムウィジェットをお持ちですか? 同じ無料ツールのexb-i18n-kitを使えば、コマンドひとつで翻訳できます:localize。各フレーズへの処理方法は次のとおりです。
- まずEsriの翻訳を使用。 Experience Builderのインストール済み翻訳を読み込むため、「Zoom to」のようなフレーズにはEsriのウィジェットと同じ表現が使われます。
- 標準用語。フィートやエーカーなどの単位名には、ブラウザーでも使用されているUnicode CLDRの同じデータを使用します。
- 共有翻訳メモリ。 残りの翻訳には、オープンソース翻訳ツールのLibreTranslateと、ボスニア語、クロアチア語、セルビア語向けのHelsinki-NLPのOpus-MTモデルを使って作成された共有辞書を使用します。GitHub上で無料で実行できるため、APIキーやアカウントは不要です。
- 連携。 ウィジェットの翻訳ファイル外にハードコードされた英語(既定の設定やヘルプガイドなど)も検出し、翻訳されるように連携します。
手作業による修正が常に機械翻訳より優先され、上書きされることはありません。機械翻訳の箇所もあるため、不自然な表現を見つけた場合は、より適切な訳をこちらに返信してください。
2026年10月2日:Basemap Gallery Customウィジェットを使用している場合、マップ切り替え時に、Map Switcherがベースマップを記憶します。
2026年7月23日:Experience Builder 1.21向けにMap Switcherウィジェットを更新し、Reactコンポーネントの型指定や変更不可の設定インポートなど、TypeScriptエディターのエラーを解決しました。ウィジェットのバージョンも更新され、最新リリースがGitHubで公開されています。
2026年6月4日:ウィジェットにpackage.jsonとpackage-lock.jsonを追加しました。このウィジェットにはサードパーティ製の依存関係がないため、追加のインストールは不要です。すでに実行しているとおり、クライアントフォルダーで標準のnpm installを行うだけで設定できます。提案とパッケージ化の手順を一緒に確認してくださった@SunshineLuke90さん、ありがとうございました。