概要
GitHub:https://github.com/brianmcleer/add-edit-etl-widget
「データの追加・マッピング・編集」は、Esri 標準の「データの追加」と「編集」ウィジェットを組み合わせ、その間にフィールドのマッピング手順を加えたカスタムウィジェットです。これは、何度も直面していた悩みから生まれました。既存の編集可能なレイヤーに取り込みたいスプレッドシートやレイヤーがあるのに、取り込む側のフィールド名が対象レイヤーと一致せず、誰かが編集を始める前に Experience Builder の外でデータを加工しなければならない、という問題です。アプリを離れることなく、追加、マッピング、読み込み、編集までの一連の作業を、ひとつのウィジェット内で完結させたいと考えました。
ユーザーは、標準の「データの追加」ウィジェットと同じ方法で、ファイル、URL、または ArcGIS コンテンツからデータを追加します。次に、取り込むデータのフィールドを対象レイヤーのフィールドにマッピングします。1対1、複数対1、1対複数、複数対複数のマッピングに対応しているため、複数のフィールドをひとつに連結したり、ひとつのフィールドを複数に分割したり、値を統合したり、定数を入力したり、必要に応じて簡単な式を記述したりできます。簡単な検証とプレビューの後、レコードをバッチ単位で対象レイヤーに読み込み、通常の「編集」ツールを使って、読み込んだデータをマップ上で編集できます。
ほかのウィジェットと同様、対象レイヤーや各種オプションはすべて設定パネルにあるため、コードを編集することなく、自分のレイヤーを指定できます。マッピングは XML 形式でエクスポートおよびインポートできるので、繰り返し行う読み込み用に一度作成したマッピングを保存して再利用でき、毎回作り直す必要はありません。
データの追加
追加の手順は標準の「データの追加」と同じで、データソースは次の3種類から選べます。
- コンピューター上のファイル。アップロードできる形式は、シェープファイル、ファイル ジオデータベース、CSV、GeoJSON、KML、GPX です。シェープファイルとファイル ジオデータベースは ZIP 形式にする必要があります。Esri の制限が適用されます。CSV は最大1,000レコード、その他の形式は最大4,000レコードです。サイズ上限はシェープファイルが2 MB、その他は10 MBで、一度に最大30ファイルまでアップロードできます。
- Web サービスの URL。フィーチャ サービス、マップ サービス、ベクター タイル サービス、イメージ サービス、シーン サービス、WFS、WMS、WMTS、KML、GeoJSON、CSV を指定できます。
- ArcGIS コンテンツ。自分のコンテンツ、グループ、組織、および ArcGIS Living Atlas of the World を含む公開コンテンツを検索できます。
データソースにかかわらず、取り込み後のマッピング手順で各フィールドを対象レイヤーに対応付けるため、レコードを書き込む段階では、元のデータ形式は関係ありません。
機能
これは、Experience Builder 内で動作する軽量な ETL ツールです。「データの追加」が抽出、マッピングが変換、対象レイヤーへの書き込みがロードにあたります。通常ならデスクトップツールや別の ETL 処理で行うデータの加工を、アプリ内でそのまま実行できます。
- アプリ内で完結する軽量な ETL ワークフロー。「データの追加」で抽出し、フィールドマッピングで変換して、対象レイヤーに読み込みます。別のデスクトップツールや ETL 処理は不要です。
- データの追加、フィールドマッピング、読み込み、編集を、ひとつのガイド付きウィジェットで実行。
- 1対1、複数対1、1対複数、複数対複数のフィールドマッピングに対応。データを書き込む前に型変換と検証を実行。
- 検証とプレビューの後、進捗を表示しながらバッチ単位で読み込み。
- マッピングを XML 形式でエクスポート・インポートし、繰り返し利用できる読み込みを実現。
- 対象レイヤーをマップに追加するオプション。読み込んだフィーチャへのズームや、編集中に選択したフィーチャへのズームにも対応。
- ズーム縮尺を設定できるため、ズーム時に画面を移動するだけでなく、縮尺も変更できます。
- 編集権限、スナップ オプション、高度な編集ツールを設定パネルで利用可能。
- すべての操作にキーボードでアクセスでき、スクリーン リーダー用のラベルも用意されています。
要件
ArcGIS Experience Builder Developer Edition 1.19 または 1.20 が必要です。これらは React 19 を使用します。React 18 を使用する EB 1.18 以前はサポートされていません。
インストール
添付の ZIP ファイルをダウンロードして展開します。add-edit-etl フォルダーを client\your-extensions\widgets に配置してください。manifest.json が client\your-extensions\widgets\add-edit-etl の直下に置かれるようにし、フォルダーを二重に入れ子にしないでください。client フォルダーで npm install を実行してから、再起動します。重複名の修正を含む詳しい手順は、GitHub の README をご覧ください。
フィードバック
初回リリースのため、多少不完全なところがあるかもしれません。不具合が見つかった場合や追加してほしい機能がある場合は、この投稿のコメントにお寄せください。確認します。
クレジットとライセンス
この派生作品は、Esri の R&D Center Beijing が開発し、Apache License, Version 2.0 の下で公開している Esri の「データの追加」および「編集」ウィジェットをベースにしています。コロラド州グランドジャンクション市がこれらを統合、改変、拡張しました。Apache-2.0 ライセンスの下で公開されています。原著作物の著作権は Esri に、変更部分の著作権はコロラド州グランドジャンクション市に帰属します。
変更履歴
2026年10月12日: ウィジェットがアプリの言語(?locale=、言語切り替え、ArcGIS プロフィール、またはブラウザーの設定)に従うようになりました。ヘルプガイドを含む39言語に対応しています。
独自のカスタムウィジェットをお持ちですか? 同じ無料ツールのexb-i18n-kitを使えば、コマンドひとつで翻訳できます。実行するコマンドはlocalizeです。各フレーズの翻訳方法は次のとおりです。
- まず Esri の翻訳を使用。Experience Builder のインストール環境にある既存の翻訳を読み込みます。そのため、「Zoom to」のようなフレーズには Esri のウィジェットで使われている訳語が適用されます。
- 標準用語。フィートやエーカーなどの単位名には、ブラウザーでも使われているものと同じ Unicode CLDR のデータを使用します。
- 共有翻訳メモリ。残りの語句は、オープンソース翻訳ツール LibreTranslate と、ボスニア語、クロアチア語、セルビア語向けの Helsinki-NLP の Opus-MT モデルを使って作成した共有辞書から補います。GitHub 上で無料で動作するため、API キーやアカウントは不要です。
- 連携。ウィジェットの翻訳ファイル外にハードコードされた英語も検出します。たとえば、既定の設定やヘルプガイドの文言を翻訳対象にするための連携を行います。
手作業で修正した訳は機械翻訳より優先され、上書きされることはありません。機械翻訳の箇所もあるため、不自然な訳を見つけたら、より良い表現をこちらに返信してください。
2026年7月23日:
- v1.2.1 では、Experience Builder 1.21 との互換性に対応しました。マニフェストとパッケージのバージョンを 1.21 に更新し、エディターでの型解決を改善するため、ウィジェット用の tsconfig を追加しました。
2026年7月7日:
- 挿入、更新、またはアップサートに対応。キー フィールドを指定して再読み込みすると、レコードを重複させずに既存のレコードを更新できます。
- 読み込み前にデータをチェック。データを書き込まずに、NULL 値、不正な値、ドメイン違反、重複キーを報告します。
- 新しい変換機能:形式を指定した日付解析、値の再コード化に使う値マップ、単位変換、{field} テンプレート。
- 読み込みに失敗した行は、エラー内容とともに CSV でダウンロードできます。
- XML エクスポートに読み込みモードやキーを含むすべての設定が保存されるようになりました。
2026年6月23日:対象レイヤーの複数追加とマップ上でのシンボル編集に対応。シンボル設定パネルを移動し、スタイルを変更。
2026年6月22日:初回リリース。GitHub で公開しました。