Web AppBuilderからExperience Builderに移植した区画作図ウィジェット
WABの区画作図ウィジェットには、Experience Builderに相当する機能がありません。ExB Developer Edition 1.21向けのカスタムウィジェットとして移植しました。コミュニティでのテストをお願いします。
GitHub:https://github.com/brianmcleer/parcel-drafter-widget(ソースとダウンロード可能なリリース)。インストール用ZIPファイルもこの投稿に添付しています。
背景
これは何年も前から寄せられている未解決の要望です。
- カスタムウィジェットのスレッドは2023年12月に始まり、組織がWABを使い続ける唯一の理由として区画作図が挙げられていました。WAB/ExB機能比較表では、この機能は「将来の編集に特化したWeb製品で対応予定」とされていますが、まだ提供されていません。
- ExB Ideasへの投稿(2024年4月)は37件の賛同を集めており、Openのままです。2026年7月まで、郡や市、軍・土木関係者から、評価、監査、計画、不動産の業務でこの機能が必要だというコメントが寄せられています。挙げられている要件は、ポイントと頂点へのスナップ、半径・接線・弦の方位、弧長と弦長、閉合誤差のパラメーターです。以下の機能でこれらすべてに対応しています。
- ExBの2026年ロードマップブログでは、プロダクトマネージャーが2026年6月に、このウィジェットについて進展はないと確認しており、コメント欄には今も要望が投稿されています。
最近のアイデアへのコメントが状況を端的に表しています。空白を埋めるために一時的なカスタムウィジェットが必要です。それがこのウィジェットです。
機能
- 新規測線:マップのクリックまたは座標入力で始点を指定。方位/距離/半径を入力すると、描画に即時反映
- 方位形式:S20-25-25W、20-25-25-3、dd.mmss、十進角度;*で前の線をコピー;*tbで前の線または曲線の接線方向に続ける
- 境界線と接続線の種類。既定値を設定可能
- 閉合誤差の方位、距離、比率、面積を計算。設定したスナップ距離/比率以内ではコンパスルールを適用
- 基準点を中心に、数値入力またはマップ上のドラッグで回転・拡大縮小
- 測線区間をドラッグまたは矢印キーで並べ替え
- 始点とデジタイズ時のクリック位置を、許容範囲内で設定済みレイヤーにスナップ
- 測線の編集:閉じた区画はポリゴンの範囲から選択、未閉合の区画はクリックした線から接続関係をたどって選択。線は端点から端点の順に並べる
- 編集内容を保存すると既存のポリゴン地物を更新し、線を置き換える(1回のapplyEditsで削除+追加)。新規保存では地物を作成
- 設定:マップ選択、3つの対象レイヤーとポリゴンレイヤーのサービスから自動検出される関連線/ポイントレイヤー、レイヤースキーマから取得するCOGOフィールドのドロップダウン、属性設定(固定フィールド、Webマップのポップアップフィールド、またはエイリアス付きのカスタムリスト)、閉合誤差とスナップの設定
技術情報
- 測量計算(Vincenty測地線、円弧、閉合誤差、コンパスルール)はWABのソースから直接移植
- ジオメトリーサービスはloadArcGISJSAPIModulesを使って実行時に読み込みます。まず最新のオペレーターモジュール(projectOperator、geodeticAreaOperatorなど)を使い、古いSDKでは従来のprojection/geometryEngineにフォールバックします。従来のモジュールは、現在のExBに同梱されるSDKバージョンでは削除されています
- あらゆる組織の空間参照系で投影に対応。ドラッグによる回転/縮尺変更は、WABのようにWeb Mercatorに限定されません
- WCAG 2.1 AAに準拠:すべてのコントロールにプログラムで認識可能な名前を設定、測線グリッドを行ごとのラベル付きテーブルとして公開、role=alertとaria-describedbyでエラーを通知、閉合誤差の更新をライブリージョンで通知、Escapeキーでマップツールを終了、キーボードで並べ替え可能、各設定と測定値に情報アイコンのツールチップを表示、Calciteに合わせたjimuテーマトークンを使用
既知の制限
- 英語の文字列のみ(WABは30以上のロケールに対応)
- 設定に線種ごとのシンボル選択機能はありません。シンボルはconfig.jsonで設定します
- 編集内容の保存時に既存のノードポイントは変更されません(ポイントのオブジェクトIDを追跡していないため)。ポイントが作成されるのは初回保存時のみです
テストのお願い
- 曲線を多く含む記述:大円弧、負の弦長、連続する*tb曲線
- Web Mercator以外の空間参照系
- 本番環境の区画レイヤーで編集後に保存し、ポリゴンのオブジェクトIDが変わらず、線の数が正しいことを確認
- 設定したスナップしきい値付近での閉合誤差の挙動
解析エラー、ジオメトリーの配置問題、コンソールエラーをコメント欄で報告するか、GitHubでIssueを作成してください。
変更履歴
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/16:
- 設定の「区間ラベル」に、ラベルの位置(線の横または線上)と線からの距離を追加しました。負の距離を指定すると反対側に表示されます。
- ホストフィーチャレイヤーの区画を編集すると、既存のポリゴンが更新されず、その上にポリゴンが重ねて追加されていました。ウィジェットはクリック位置から区画ポリゴンを検索しますが、境界線をクリックするため、その位置はポリゴンの縁にあります。ホストレイヤーではその位置をポリゴンと交差していると判定しないため、ポリゴンが見つからず、保存時に新しいポリゴンが追加されていました。マップサービスでは交差していると判定されるため、ホストレイヤーでのみ問題が発生していました。線は常に正しく置き換えられており、重複していたのはポリゴンだけでした。
- クリック位置を線の選択に使う許容範囲と同じ距離でバッファー処理し、選択した線で囲まれた領域内のポイントを使うようにしました。測線を読み込む際に既存のポリゴンが見つからない場合も通知されるため、保存時にポリゴンが新規作成されることを事前に確認できます。
- 測線グリッドが、幅の狭いウィジェットパネルでも折り返して表示されるようになりました。半径と線種は方位と距離の下の行に移るため、表示に広いパネルは不要です。
2026/9/11:
- 区画ポリゴンは保存時に作成されるようになりました。新しい線の既定値は境界線で、Web AppBuilderの区画作図ウィジェットと同じです。
- 境界線と接続線を選べるようになりました。ツールバーと入力行に線種のドロップダウンがあり、グリッドに追加した線も後から変更できます。
- 保存時のメッセージに区画ポリゴンを作成または更新したことが表示されるようになり、境界線に指定された線がない場合は警告されます。
- 組み込みの新しいヘルプガイド:疑問符ボタンをクリックすると、線の入力、マップ上での作図、閉合誤差、保存、エクスポートを扱う、検索可能な簡潔なガイドが開きます。
すでにアプリにウィジェットを追加している場合は、ウィジェットの設定を開いて「既定の線種」を境界線に設定するか、ウィジェットを追加し直してください。新しいアプリでは新しい既定値が自動的に適用されます。
コラボレーション
オレゴン州ポーク郡は、Experience Builder向けに独自の測線ウィジェットを作成しました(Nicholas Cramer @ncramer11 およびEric McAvoy @polkor_mcavoye )。コミュニティへの投稿:
https://community.esri.com/t5/experience-builder-custom-widgets/traverse-widget-1-0/m-p/1706412
リポジトリ:https://github.com/ncramer11/traverse
先方のウィジェットは、素早く正確に作図してエクスポートするための簡易ツールです。こちらは既存の区画データソースを維持管理するためのものです。
先方の測線ウィジェットから移植した機能:
- 異なる単位が混在する権利証書の記載に対応する、チェーンとロッドの接尾辞(ch、rd)
- 各線の方位と距離のラベル(表示/非表示を切り替え可能)
- SketchViewModelを使った、表示中の全フィーチャレイヤーへのスナップ(切り替え可能)
- マップツールの使用中はポップアップを表示しない
- 曲線を密化してGeoJSONにエクスポート
- セッションごとの色の上書き
- テンキーでの入力操作。テンキーの+で方位から距離に移動して線を確定、/で半径に移動し、フォーカスは方位に戻ります
法的な土地記述に対応(Assessors' Handbook 215):
- リンクとバラの接尾辞(lk、va)
- 登記記録から方位をそのまま貼り付け可能。N45°30'00"EはN45-30-00Eと同じように解析されます
- 境界・測量線の法的記述の下書きをエクスポート。起点への接続線、測量開始点、続く各線、曲線の半径/弧/弦の記述、閉合面積を含みます。下書きとして明示され、確認が必要です
ポーク郡のテストで見つかったバグを修正:測線を消去してもマップ上にラベルが残っていました。修正済みです。
テストのお願い
- 区画が密集した場所でのスナップ
- 大量入力時のテンキー操作
- 実際の権利証書の記載、特に曲線に照らした法的記述の出力
- 過去の記述におけるチェーン、リンク、ロッド、バラの扱い
問題はコメント欄またはGitHubでお知らせください。