カスタムマップレイヤーウィジェット
Experience Builder の「マップレイヤー」ウィジェットを改良したバージョンです。標準ウィジェットのすべての機能に加え、以下の機能を追加しています。元のバージョンを投稿した「カスタムウィジェットに関する質問」から移行しました。
GitHub:https://github.com/brianmcleer/map-layers-custom-widget
標準の「マップレイヤー」ウィジェットに追加された機能
- 新しいサブレイヤーを自動追加:指定したグループに新しく追加されたサブレイヤーは、設定の編集や再デプロイをしなくても、デプロイ済みアプリに表示されます。
- レイヤーにフォーカス:単一のレイヤーまたはマップサービスのサブレイヤーだけを表示し、それ以外を非表示にできます。明示的に解除できます。
- 表示中のレイヤー数バッジ。
- 折りたたみ可能なレイヤーリスト。起動時に折りたたんだ状態にすることもできます。
- データを追加:URL(ArcGIS サービス、ベクタータイル、WMS、WMTS、GeoJSON、CSV、KML)またはローカルファイル(GeoJSON、CSV、KML、ZIP 形式のシェープファイル)からレイヤーを追加します。
- 全レイヤーの不透明度:1つのスライダーですべてのレイヤーの不透明度を設定できます。
- 組織のベースマップを使ったベースマップ切り替え。
- 凡例パネル。
- 保存済みビュー:レイヤーの表示状態を保存し、JSON としてエクスポートまたはインポートできます。
- マップサービスのサブレイヤーを含む検索結果数と、表示中のレイヤーのみを対象にするフィルター。
- 一括操作:すべてオン/オフ、表示状態のリセット、表示中の範囲にズーム、マップ画像のエクスポート、すべて展開/折りたたみ。
- レイヤーごとの操作:点滅、URL のコピー、更新、レイヤーの詳細、最上部/最下部への移動、グループ外への移動。
各機能はウィジェットの設定でオン/オフを切り替えられます。
必要条件
Experience Builder Developer Edition 1.19 または 1.20(React 19)。EB 1.18 以前はサポートされていません。
インストール
- リリース ZIP をダウンロードして展開します。
- manifest.json が client/your-extensions/widgets/map-layers-custom/ の直下に配置されるように、map-layers-custom フォルダーを置きます。
- client フォルダーで npm install を実行します。
- client を再起動し、ビルダーを強制再読み込みします。
詳しいインストール手順とトラブルシューティングについては、GitHub の README をご覧ください。
変更履歴:
2026年10月12日: ウィジェットがアプリの言語(?locale=、言語切り替え、ArcGIS プロファイル、またはブラウザーの設定)に従うようになりました。ヘルプガイドを含む39言語に対応しています。
独自のカスタムウィジェットをお持ちですか? 同じ無料ツールのexb-i18n-kitを使えば、1つのコマンドで翻訳できます:localize。各フレーズの翻訳方法は次のとおりです:
- まず Esri の翻訳。 Experience Builder のインストール先にある既存の翻訳を読み込むので、「Zoom to」のようなフレーズには、Esri のウィジェットと同じ表現が使われます。
- 標準用語。フィートやエーカーなどの単位名には、ブラウザーでも使われている Unicode CLDR の同じデータを使用します。
- 共有翻訳メモリ。 それでも訳されない語句には、オープンソース翻訳ツール LibreTranslate を使って作成した共有辞書と、ボスニア語、クロアチア語、セルビア語向けの Helsinki-NLP の Opus-MT モデルを使用します。GitHub 上で無料で動作するため、API キーもアカウントも必要ありません。
- 連携。 ウィジェットの翻訳ファイル以外にハードコードされた英語(既定の設定やヘルプガイドなど)も検出し、翻訳されるように連携します。
手作業で修正した翻訳は機械翻訳より優先され、上書きされることはありません。機械翻訳の箇所もあるため、不自然な表現を見つけたら、より良い訳をこちらに返信してください。
2026年9月30日:
- グループごとに1つのレイヤーを選択:一度にオンにできるレイヤーを1つだけに設定できます(ラジオボタン)。
- これらのレイヤーへのリンクをコピー:同じレイヤーがオンの状態でアプリを開くリンクを共有できます。
- レイヤーリストをエクスポート:すべてのレイヤー、グループ、サブレイヤーについて、オン/オフ状態と URL を CSV に保存します。
- レイヤーの稼働状況を確認:一定間隔でサービスを確認し、応答しなくなったサービスをリストに表示します。
- レイヤーのエラー報告:読み込みまたは描画に失敗したレイヤーを、グループの深い階層にある場合も含めて報告します。
- プリセットビュー:アプリの作成者が、すべてのユーザーに表示されるレイヤービューを保存できます。
- 周辺の画像:現在の表示範囲をカバーする航空写真や衛星画像を追加します。
- お気に入り:レイヤーに星を付け、お気に入りだけにリストを絞り込めます。
- レイヤー名を整える:アンダースコアを空白にするなど、名前を見やすく整える設定を追加しました。
- 表示可能な縮尺までズーム:現在の縮尺ではグレー表示されているレイヤーに、ワンクリックでズームします。
- 利用状況のテレメトリ:レイヤーのクリック情報に、レイヤーのグループ階層が含まれるようになりました。
2026年9月11日:
ヘッダーにヘルプボタンを追加しました。アプリで有効になっている機能だけを説明する、検索可能な簡易ガイドと、初回のみ表示される「初めてですか?」というヒントが開きます。
2026年7月23日:Experience Builder 1.21 との互換性を確保するため、「カスタムマップレイヤー」ウィジェットを更新し、TypeScript エディターのエラーを修正しました。これはメンテナンスのみの更新で、ウィジェットの機能に変更はありません。