De Parcel Drafter-widget overgezet van Web AppBuilder naar Experience Builder
De WAB Parcel Drafter-widget heeft geen equivalent in Experience Builder. Ik heb deze overgezet als aangepaste widget voor ExB Developer Edition 1.21. Ik plaats dit bericht voor tests door de community.
GitHub: https://github.com/brianmcleer/parcel-drafter-widget (broncode en downloadbare releases). De installatie-zip is ook bij dit bericht gevoegd.
Achtergrond
Dit verzoek staat al jaren open:
- De thread over aangepaste widgets werd geopend in december 2023. Daarin werd Parcel Drafter beschreven als het enige dat organisaties nog aan WAB bond. De WAB/ExB-functionaliteitenmatrix vermeldt dat deze mogelijkheid gepland staat voor "een toekomstig, op bewerken gericht webproduct" — er is nog niets uitgebracht.
- De inzending bij ExB Ideas (april 2024) heeft 37 kudos en staat nog steeds op Open. Er zijn tot en met juli 2026 reacties geplaatst door provincies, steden en militaire/technische diensten, waarin workflows voor taxateurs, auditors, ruimtelijke ordening en onroerend goed worden beschreven die hiervan afhankelijk zijn. De genoemde vereisten: snappen op punten en hoekpunten, peilingen voor straal, raaklijn en koorde, boog- en koordelengte en sluitfoutparameters — hieronder zijn ze allemaal opgenomen.
- In de blog over de ExB-roadmap voor 2026, bevestigde de productmanager in juni 2026 dat er geen updates zijn over deze widget en dat er nog steeds verzoeken in de reacties worden geplaatst.
Een recente reactie op het idee vat de situatie goed samen: er is een tijdelijke aangepaste widget nodig om de kloof te overbruggen. Dit is die widget.
Functies
- Nieuwe traverse: startpunt kiezen via kaartklik of ingevoerde coördinaten; invoer van peiling/lengte/straal met live weergave
- Peilingnotaties: S20-25-25W, 20-25-25-3, dd.mmss, decimale graden; * kopieert de vorige lijn; *tb loopt tangentieel door vanaf de vorige lijn of boog
- Lijntypen voor grenzen en verbindingen, met configureerbaar standaardtype
- Peiling, afstand, verhouding en berekende oppervlakte van de sluitfout; kompasregel toegepast binnen de ingestelde snaptolerantie/-verhouding
- Roteren en schalen via tekstinvoer of slepen op de kaart rond een ankerpunt
- Traversebenen verslepen of verplaatsen met de pijltjestoetsen
- Startpunt en digitaliseerklikken snappen op ingestelde lagen binnen de tolerantie
- Traverse bewerken: gesloten percelen selecteren via de polygoonomtrek; open percelen via een connectiviteitszoektocht vanaf de aangeklikte lijn; lijnen worden van begin tot eind geordend
- Bij opslaan van bewerkingen wordt het bestaande polygoonobject bijgewerkt en worden de lijnen vervangen (verwijderen + toevoegen in één applyEdits); opslaan als nieuw maakt objecten aan
- Instellingen: kaartselectie, drie doellagen met gerelateerde lijn-/puntlagen die automatisch worden gedetecteerd via de service van de polygoonlaag, vervolgkeuzelijsten met COGO-velden op basis van het laagschema, attribuutinstellingen (vaste velden, pop-upvelden van de webkaart of een aangepaste lijst met aliassen), configuratie van sluitfout en snappen
Technische opmerkingen
- Landmeetkundige berekeningen (Vincenty-geodeten, bogen, sluitfout, kompasregel) rechtstreeks overgezet vanuit de WAB-broncode
- Geometrieservices worden tijdens runtime geladen via loadArcGISJSAPIModules: eerst moderne operatormodules (projectOperator, geodeticAreaOperator, enz.), met terugval op de klassieke projection/geometryEngine in oudere SDK's. De klassieke modules zijn verwijderd in de SDK-versies die momenteel met ExB worden geleverd
- Projectie werkt met elk ruimtelijk referentiesysteem van de organisatie; roteren/schalen door slepen is niet beperkt tot Web Mercator, zoals in WAB
- WCAG 2.1 AA: programmatische namen voor alle bedieningselementen, traverse-raster beschikbaar als tabel met labels per lijn, fouten via role=alert en aria-describedby, live-regio voor updates van de sluitfout, Escape sluit kaarttools, verplaatsen via toetsenbord, tooltips bij elk pictogram en elke instelling en maatstaf, Calcite-afgestemde jimu-thematokens
Bekende beperkingen
- Alleen Engelstalige teksten (WAB werd geleverd in meer dan 30 talen)
- Geen symboolkiezer per lijntype in de instellingen; symbolen worden ingesteld in config.json
- Bij opslaan van bewerkingen worden bestaande knooppunten niet gewijzigd (punten worden niet bijgehouden op object-ID); punten worden alleen bij de eerste keer opslaan aangemaakt
Gevraagde tests
- Beschrijving met veel bochten: grote bogen, negatieve koordelengtes, opeenvolgende *tb-bogen
- Ruimtelijke referentiesystemen anders dan Web Mercator
- Bewerken en opslaan op productielagen voor percelen: controleer of de object-ID van het polygoon ongewijzigd blijft en het aantal lijnen klopt
- Gedrag van de sluitfout dicht bij de ingestelde snapdrempels
Meld fouten bij het parsen, problemen met de plaatsing van geometrie of consolefouten in de reacties, of maak een GitHub-issue aan.
Wijzigingen
10/12/2026: De widget volgt nu de taal van de app (?locale=, de taalkiezer, het ArcGIS-profiel of de browser) en is beschikbaar in 39 talen; de hulpgids is inbegrepen.
Heb je zelf aangepaste widgets? Met dezelfde gratis tool, exb-i18n-kit, kun je ze met één opdracht vertalen: localize. Zo vult de tool elke tekst aan:
- Eerst Esri. De tool leest de vertalingen die al in je Experience Builder-installatie staan, zodat een tekst als “Zoom to” dezelfde formulering gebruikt als de eigen widgets van Esri.
- Standaardtermen. Eenheden zoals voet en acre komen uit Unicode CLDR, dezelfde gegevens die browsers gebruiken.
- Gedeeld vertaalgeheugen. Alles wat daarna nog overblijft, komt uit een gedeeld woordenboek dat is opgebouwd met LibreTranslate, een opensourcetranslator, en de Opus-MT-modellen van Helsinki-NLP voor het Bosnisch, Kroatisch en Servisch. De tool draait gratis op GitHub, dus je hebt geen API-sleutel of account nodig.
- Koppeling. De tool vindt ook Engelse tekst die buiten het vertaalbestand van de widget hardgecodeerd staat, zoals een standaardinstelling of hulpgids, en koppelt die aan zodat ook die wordt vertaald.
Handmatige aanpassingen gaan altijd vóór de automatische vertaling en worden nooit overschreven. Sommige vertalingen zijn automatisch gemaakt. Reageer hier met een betere formulering als je een vertaling tegenkomt die niet klopt.
9/16/26:
- Nieuw onder Lijnlabels in de instellingen: labelpositie (naast de lijn of erop) en afstand tot de lijn. Met een negatieve afstand wordt het label naar de andere kant verplaatst.
- Bij het bewerken van een perceel op een gehoste featurelaag werd een tweede polygoon over het origineel heen geplaatst in plaats van het origineel bij te werken. De widget zoekt het perceelpolygoon aan de hand van het punt waarop je klikt. Omdat je op een grenslijn klikt, ligt dat punt precies op de rand van het polygoon. Een gehoste laag beschouwt dat niet als een intersectie met het polygoon, dus werd er niets gevonden en voegde het opslaan een nieuw polygoon toe. Een kaartservice beschouwt dit wel als een intersectie. Daarom deed het probleem zich alleen voor bij gehoste lagen. De lijnen werden altijd correct vervangen; alleen het polygoon kwam erbovenop te liggen.
- De zoekactie maakt nu een buffer rond de klik met dezelfde tolerantie als bij de lijnselectie, en zoekt anders naar een punt binnen de begrenzing die door de geselecteerde lijnen wordt gevormd. Bij het laden van een traverse krijg je ook te zien wanneer er geen bestaand polygoon is gevonden, zodat je vóór het opslaan weet dat er een wordt toegevoegd.
- Het traverse-raster past zich nu aan smalle widgetpanelen aan. Straal en lijntype komen op een tweede regel onder peiling en lengte te staan, zodat de widget geen breed paneel meer nodig heeft.
9/11/26:
- Het perceelpolygoon wordt nu aangemaakt bij het opslaan. Nieuwe lijnen krijgen standaard het type Grenslijn, net als in Web AppBuilder Parcel Drafter.
- Je kunt nu kiezen tussen het tekenen van een Grenslijn en een Verbindingslijn: er staat een keuzelijst voor het lijntype in de werkbalk en in de invoerrij, en je kunt elke lijn in het raster wijzigen nadat deze is toegevoegd.
- Bij het opslaan wordt nu vermeld of het perceelpolygoon is aangemaakt of bijgewerkt. Je krijgt een waarschuwing als geen enkele lijn als Grenslijn is gemarkeerd.
- Nieuwe ingebouwde hulpgids: klik op het vraagteken voor een korte, doorzoekbare gids over lijnen invoeren, tekenen op de kaart, sluitfout, opslaan en exporteren.
Als je de widget al in een app hebt staan, open je de widgetinstellingen en stel je Standaardlijntype in op Grenslijn, of voeg je de widget opnieuw toe. In nieuwe apps wordt de nieuwe standaard automatisch gebruikt.
Samenwerking
Polk County, Oregon heeft een eigen Traverse-widget voor Experience Builder gebouwd (Nicholas Cramer @ncramer11 en Eric McAvoy @polkor_mcavoye ). Communitybericht:
https://community.esri.com/t5/experience-builder-custom-widgets/traverse-widget-1-0/m-p/1706412
en repository: https://github.com/ncramer11/traverse
Hun widget is een kladblok voor snel, nauwkeurig tekenen en exporteren. Deze widget is bedoeld voor het beheren van een bestaande perceeldatabron.
Overgenomen uit hun Traverse-widget:
- Achtervoegsels voor chains en rods (ch, rd) voor aktebeschrijvingen met gemengde eenheden
- Peiling- en afstandslabels op elke lijn, aan- en uit te zetten
- Snappen op alle zichtbare featurelagen via SketchViewModel, aan- en uit te zetten
- Pop-ups worden onderdrukt zolang een kaarttool actief is
- GeoJSON-export met verdichte bogen
- Kleur per sessie overschrijven
- Invoer via het numerieke toetsenblok. Met numpad + ga je van peiling naar lengte en wordt de lijn vastgelegd; met numpad / spring je naar de straal; de focus keert terug naar de peiling
Ondersteuning voor juridische perceelbeschrijvingen (Assessors' Handbook 215):
- Achtervoegsels voor links en varas (lk, va)
- Peilingen kunnen rechtstreeks uit akten worden geplakt. N45°30'00"E wordt hetzelfde verwerkt als N45-30-00E
- Export van een conceptuele juridische beschrijving van metes and bounds. Aanlooppeiling, Point of Beginning, opeenvolgende koersen, beschrijving van straal/boog/koorde, sluitende oppervlakte. Gemarkeerd als concept; controle vereist
Bugfix naar aanleiding van tests door Polk County: na het wissen van een traverse bleven de labels op de kaart staan. Opgelost.
Gevraagde tests
- Snappen op dichtbebouwde perceelstructuren
- Invoer via het numerieke toetsenblok bij grote hoeveelheden gegevens
- Uitvoer van juridische beschrijvingen vergelijken met echte akteformuleringen, vooral voor bogen
- Chains, links, rods en varas vergelijken met historische beschrijvingen
Meld problemen in de reacties of op GitHub.