Parcel Drafter Widget

250
6
2 weeks ago
Brian_McLeer
MVP Regular Contributor
8 6 250

Parcel Drafter widget ported from Web AppBuilder to Experience Builder

The WAB Parcel Drafter widget has no Experience Builder equivalent. I ported it as a custom widget for ExB Developer Edition 1.21. Posting for community testing.

GitHub: https://github.com/brianmcleer/parcel-drafter-widget (source and downloadable releases). The install zip is also attached to this post.

Background

This has been an open request for years:

  • The custom widgets thread opened in December 2023 with Parcel Drafter described as the only thing keeping organizations in WAB. The WAB/ExB functionality matrix lists the capability as planned for "a future focused editing web product" - nothing shipped.
  • The ExB Ideas submission (April 2024) has 37 kudos and remains Open, with comments through July 2026 from counties, cities, and military/civil engineering describing assessor, auditor, planning, and real-property workflows that depend on it. Requirements called out there: snapping to points and vertices, radius/tangent/chord bearings, arc and chord length, and misclose parameters - all covered below.
  • On the ExB 2026 roadmap blog, the product manager confirmed in June 2026 there are no updates on this widget, and requests are still being posted in the comments.

One recent comment on the idea sums up the situation: a temporary custom widget is needed to bridge the gap. This is that widget.

Features

  • New traverse: start point by map click or typed coordinates; bearing / length / radius entry with live drawing
  • Bearing formats: S20-25-25W, 20-25-25-3, dd.mmss, decimal degrees; * copies previous line; *tb continues tangent to previous line or curve
  • Boundary and connection line types with configurable default
  • Misclose bearing, distance, ratio, and calculated area; compass rule applied within configured snap distance/ratio
  • Rotation and scale by text entry or map drag around an anchor point
  • Drag or arrow-key reordering of traverse legs
  • Start point and digitize clicks snap to configured layers within tolerance
  • Edit traverse: closed parcels selected via polygon footprint; unclosed via connectivity walk from clicked line; lines ordered end-to-start
  • Edit save updates the existing polygon feature and replaces its lines (delete + add in one applyEdits); new save creates features
  • Settings: map selection, three target layers with related line/point layers auto-detected from the polygon layer's service, COGO field dropdowns from the layer schema, attribute settings (fixed fields, webmap popup fields, or custom list with aliases), misclose and snapping config

Technical notes

  • Surveying math (Vincenty geodesics, arcs, misclose, compass rule) ported directly from the WAB source
  • Geometry services load at runtime via loadArcGISJSAPIModules: modern operator modules (projectOperator, geodeticAreaOperator, etc.) first, classic projection/geometryEngine fallback on older SDKs. The classic modules are removed in the SDK versions current ExB ships with
  • Projection works in any organization spatial reference; drag-rotate/scale is not limited to Web Mercator as in WAB
  • WCAG 2.1 AA: programmatic names on all controls, traverse grid exposed as a table with per-line labels, errors via role=alert and aria-describedby, live region for misclose updates, Escape exits map tools, keyboard reordering, info-icon tooltips on every setting and metric, Calcite-aligned jimu theme tokens

Known gaps

  • English strings only (WAB shipped 30+ locales)
  • No per-line-type symbol picker in settings; symbols configured in config.json
  • On edit save, existing node points are not modified (points are not tracked by object ID); points are created on first save only

Requested testing

  • Curve-heavy descriptions: major arcs, negative chord lengths, back-to-back *tb curves
  • Non-Web-Mercator spatial references
  • Edit-then-save against production parcel layers: confirm polygon object ID is unchanged and line count is correct
  • Misclose behavior near configured snap thresholds

Report parsing errors, geometry placement issues, or console errors in the comments, or open a GitHub issue.

(view in My Videos)

6 Comments
gghope5
Occasional Explorer

Hi Brian! This is great, thank you! I'm new to Experience Builder Dev Ed, so I apologize if this is a stupid question, but I'm trying to create an Experience using your parcel drafter widget, and I noticed in the readme under requirements you state

"Editable point, line, and polygon feature layers for saving traverses. The default field names match the Esri Parcel Drafter solution schema (Direction, Distance, Radius, ArcLength, LineType, and so on) and are configurable in the settings panel"

I never used the Parcel Drafter solution, so I'm not familiar with the required default field names, and I am unable to find the Parcel Drafter solution or deploy it for use. Could you elaborate on the default field names for each type of feature layer, or show me where I can find that information?

Thank you!

JoeGuziStarkCountyOH
Frequent Contributor

Greetings,

Thank you for developing this. I'm curious if you have considered developing it as a hosted experience builder widget for ArcGIS Enterprise. It would reduce the overhead that comes with the Dev Edition. Thank you for everything and have a delightful day.

Sincerely,

Joe Guzi

StuartGrey1
Regular Contributor

Updated Web AppBuilder and Experience Builder functionality matrix:

Parcel Drafter

Brian McLeer saves the day.

Brian_McLeer
MVP Regular Contributor

@gghope5, thank you. Sorry for the delay, was out last week. To answer your question:

The Parcel Drafter solution was retired so the schema is hard to find now. These are the default field names, but you don't have to match them. Once you pick your layers in the widget settings the field inputs become dropdowns of your layer's actual fields, and any unmapped fields are skipped on save.

Line layer - Direction, Distance, Radius, ArcLength (all Double), LineType (Short Integer, 1 = boundary, 0 = connection)

Polygon layer - Name, Description, StatedArea, MiscloseRatio (Text), MiscloseDistance, Rotation, Scale (Double)

Point layer - no fields required, geometry only

Distances are stored in meters regardless of display units. The minimum setup is just a line layer with Direction and Distance, everything else is optional.

Brian_McLeer
MVP Regular Contributor

Hello @JoeGuziStarkCountyOH, apologies for delay was out last week. I am not aware of a way to package up a custom widget and deploy it on someone else's Enterprise. You can deploy a custom widget to your Enterprise from Developer Edition. While it still requires developer edition, it only requires one person in your Enterprise to use Developer Edition and they can provide the widget to other users in your organization vs having everyone use DE. 

https://doc.arcgis.com/en/experience-builder/12.1/configure-widgets/add-custom-widgets.htm

 

BrianWilson3
Regular Contributor

Hello Brian,

Thank you for building this for us.  Not sure why ESRI didnt built this out of the box for us. Im anxious to give it a try.  Ive been working on my own but finding time is always difficult.  I will give it a try and let you know if I have any suggestions.  

Thanks again,

Brian

Contributors
About the Author
GIS Administrator/Developer at City of Grand Junction, CO.