Nástroj Parcel Drafter přenesený z Web AppBuilderu do Experience Builderu
Nástroj WAB Parcel Drafter nemá v Experience Builderu žádnou obdobu. Přenesl jsem ho jako vlastní widget pro ExB Developer Edition 1.21. Zveřejňuji ho zde k testování komunitou.
GitHub: https://github.com/brianmcleer/parcel-drafter-widget (zdrojový kód a verze ke stažení). ZIP s instalací je přiložen také k tomuto příspěvku.
Pozadí
O tuto funkci se žádá už léta:
- Vlákno o vlastních widgetech bylo založeno v prosinci 2023 a Parcel Drafter v něm byl označen za jedinou věc, kvůli které organizace zůstávají u WAB. Matice funkcí WAB/ExB uvádí, že tato funkce je plánována pro „budoucí webový produkt zaměřený na editaci“ – zatím však nic nebylo vydáno.
- Příspěvek s návrhem pro ExB (duben 2024) má 37 hlasů podpory a stále je otevřený. Komentáře přibývají až do července 2026 od okresů, měst i vojenských a stavebních inženýrů, kteří popisují pracovní postupy odhadců, auditorů, plánovačů a správců nemovitostí, jež na této funkci závisejí. Požadavky uvedené v příspěvku: přichytávání k bodům a vrcholům, azimuty poloměru/tečny/tětivy, délka oblouku a tětivy a parametry uzávěru – to vše je popsáno níže.
- V blogovém příspěvku o plánu vývoje ExB na rok 2026 produktový manažer v červnu 2026 potvrdil, že k tomuto widgetu nejsou žádné novinky a že požadavky se stále objevují v komentářích.
Situaci vystihuje jeden nedávný komentář k návrhu: k překlenutí mezery je potřeba dočasný vlastní widget. Tady je.
Funkce
- Nový polygon: počáteční bod zadáte kliknutím do mapy nebo zadáním souřadnic; azimut / délku / poloměr zadáváte při průběžném vykreslování
- Formáty azimutu: S20-25-25W, 20-25-25-3, dd.mmss, desetinné stupně; * zkopíruje předchozí segment; *tb pokračuje tečně k předchozímu segmentu nebo oblouku
- Typy hraniční a spojovací linie s nastavitelným výchozím typem
- Azimut, vzdálenost, poměr a vypočtená plocha uzávěru; v rámci nastavené tolerance/poměru přichycení se použije kompasové vyrovnání
- Otáčení a změna měřítka zadáním hodnot nebo tažením v mapě kolem kotevního bodu
- Pořadí úseků polygonu lze měnit přetažením nebo šipkami na klávesnici
- Počáteční bod i kliknutí při digitalizaci se v rámci tolerance přichytávají k nastaveným vrstvám
- Úprava polygonu: uzavřené parcely se vybírají podle obrysu polygonu; u neuzavřených se postupuje po propojených liniích od kliknuté linie; linie se seřadí od začátku ke konci
- Uložením úprav se aktualizuje existující polygonový prvek a nahradí se jeho linie (smazání a přidání v rámci jednoho volání applyEdits); při novém uložení se vytvoří prvky
- Nastavení: výběr mapy, tři cílové vrstvy s automatickým rozpoznáním souvisejících liniových a bodových vrstev ze služby polygonové vrstvy, rozbalovací nabídky polí COGO podle schématu vrstvy, nastavení atributů (pevná pole, pole vyskakovacího okna webové mapy nebo vlastní seznam s aliasy), nastavení uzávěru a přichytávání
Technické poznámky
- Geodetické výpočty (Vincentyho geodetiky, oblouky, uzávěr, kompasové vyrovnání) byly převzaty přímo ze zdrojového kódu WAB
- Geometrické služby se načítají za běhu pomocí loadArcGISJSAPIModules: nejprve moderní moduly operátorů (projectOperator, geodeticAreaOperator atd.), na starších SDK se jako záložní možnost použije klasická projekce/geometryEngine. Klasické moduly byly odstraněny ve verzích SDK, se kterými se aktuálně dodává ExB
- Projekce funguje v jakémkoli souřadnicovém systému organizace; otáčení a změna měřítka tažením nejsou omezeny na Web Mercator jako ve WAB
- WCAG 2.1 AA: programové názvy všech ovládacích prvků, tabulka úseků polygonu přístupná jako tabulka s popisky jednotlivých linií, chyby přes role=alert a aria-describedby, živá oblast pro aktualizace uzávěru, klávesa Escape ukončí mapové nástroje, změna pořadí pomocí klávesnice, popisy nastavení a měření po najetí na ikonu informací, motivové tokeny jimu sladěné s Calcite
Známá omezení
- Pouze anglické řetězce (WAB se dodával ve více než 30 jazycích)
- V nastavení není možné vybírat symboly pro jednotlivé typy linií; symboly se nastavují v config.json
- Při uložení úprav se existující uzlové body neupravují (body se nesledují podle ID objektu); body se vytvoří pouze při prvním uložení
Požadované testování
- Popisy s mnoha oblouky: hlavní oblouky, záporné délky tětiv, oblouky *tb navazující jeden na druhý
- Souřadnicové systémy jiné než Web Mercator
- Úprava a následné uložení v produkčních vrstvách parcel: ověřte, že ID objektu polygonu zůstane stejné a počet linií bude správný
- Chování uzávěru v blízkosti nastavených prahových hodnot přichytávání
Chyby při analýze, problémy s umístěním geometrie nebo chyby v konzoli nahlaste v komentářích nebo vytvořte issue na GitHubu.
Seznam změn
10/12/2026: Widget nyní používá jazyk aplikace (?locale=, přepínač jazyka, profil ArcGIS nebo nastavení prohlížeče) v 39 jazycích; součástí je i průvodce nápovědou.
Máte vlastní widgety? Stejný bezplatný nástroj, exb-i18n-kit, je dokáže přeložit jediným příkazem: localize. Takto překládá jednotlivé fráze:
- Nejprve Esri. Načte překlady, které už jsou ve vaší instalaci Experience Builderu, takže fráze jako „Zoom to“ použije stejné znění jako widgety od Esri.
- Běžné termíny. Názvy jednotek, například stopy a akry, pocházejí z Unicode CLDR, tedy ze stejných dat, která používají prohlížeče.
- Sdílená překladová paměť. Zbývající text přeloží sdílený slovník vytvořený pomocí open-source překladače LibreTranslate a modelů Opus-MT od Helsinki-NLP pro bosenštinu, chorvatštinu a srbštinu. Běží zdarma na GitHubu, takže nepotřebujete klíč API ani účet.
- Propojení. Vyhledá také anglický text pevně zadaný mimo překladový soubor widgetu, například výchozí nastavení nebo průvodce nápovědou, a propojí ho tak, aby se také překládal.
Ruční opravy mají vždy přednost před strojovým překladem a nikdy se nepřepisují. Některé překlady vytvořil stroj, takže pokud narazíte na nepřesný překlad, navrhněte v odpovědi lepší znění.
9/16/26:
- V nastavení přibyly v části Popisky úseků nové možnosti: umístění popisku (vedle linie nebo na ní) a vzdálenost od linie. Záporná vzdálenost změní stranu.
- Při úpravě parcely v hostované feature vrstvě se místo aktualizace původního polygonu přidával druhý polygon navrch. Widget hledá polygon parcely podle bodu, na který kliknete. Protože klikáte na hraniční linii, bod leží přímo na hraně polygonu. Hostovaná vrstva to nepovažuje za průnik s polygonem, takže se nic nenašlo a při uložení se přidal nový polygon. Mapová služba to za průnik považuje, a proto se problém projevoval pouze u hostovaných vrstev. Linie se vždy nahrazovaly správně, překrýval se pouze polygon.
- Vyhledávání nyní rozšíří oblast kolem kliknutí o stejnou toleranci, jakou používá výběr linií, a pokud nic nenajde, zkusí bod uvnitř hranice tvořené vybranými liniemi. Při načtení polygonu také oznámí, pokud nebyl nalezen žádný existující polygon, takže ještě před uložením víte, že se přidá nový.
- Tabulka úseků polygonu se nyní přizpůsobí úzkým panelům widgetu. Poloměr a typ linie se přesunou na druhý řádek pod azimut a délku, takže widget už nepotřebuje široký panel.
9/11/26:
- Polygon parcely se nyní vytvoří při uložení. Nové linie mají jako výchozí typ Hraniční linie, stejně jako v Parcel Drafteru pro Web AppBuilder.
- Nyní si můžete vybrat mezi kreslením hraniční a spojovací linie: v panelu nástrojů i v řádku pro zadávání je rozbalovací nabídka Typ linie a typ kterékoli linie v tabulce lze po přidání změnit.
- Zprávy při ukládání nyní oznamují, zda byl polygon parcely vytvořen nebo aktualizován, a upozorní, pokud žádné linie nejsou označeny jako hraniční.
- Nový integrovaný průvodce nápovědou: kliknutím na tlačítko s otazníkem otevřete stručného průvodce s vyhledáváním, který vysvětluje zadávání linií, kreslení v mapě, uzávěr, ukládání a export.
Pokud už máte widget v aplikaci, otevřete jeho nastavení a nastavte Výchozí typ linie na Hraniční linie, nebo widget přidejte znovu. V nových aplikacích se nové výchozí nastavení použije automaticky.
Spolupráce
Okres Polk v Oregonu vytvořil vlastní widget Traverse pro Experience Builder (Nicholas Cramer @ncramer11 a Eric McAvoy @polkor_mcavoye) . Příspěvek v komunitě:
https://community.esri.com/t5/experience-builder-custom-widgets/traverse-widget-1-0/m-p/1706412
a repozitář: https://github.com/ncramer11/traverse
Jejich widget slouží jako pracovní plocha pro rychlé a přesné kreslení a export. Tento widget je určen k údržbě existujícího zdroje parcelních dat.
Z jejich widgetu Traverse byly převzaty:
- Přípony řetězců a tyčí (ch, rd) pro zápisy v jednotkách smíšené soustavy
- Popisky azimutu a vzdálenosti u každé linie s možností zapnutí a vypnutí
- Přichytávání ke všem viditelným prvkovým vrstvám pomocí SketchViewModel, s možností zapnutí a vypnutí
- Vyskakovací okna jsou potlačena, když je aktivní mapový nástroj
- Export GeoJSON se zahuštěnými oblouky
- Přepsání barvy pro aktuální relaci
- Zadávání pomocí numerické klávesnice. Klávesa + přejde od azimutu k délce a potvrdí linii, klávesa / přejde k poloměru a fokus se vrátí k azimutu
Podpora právních popisů (příručka odhadců 215):
- Přípony řetězců a varas (lk, va)
- Azimuty lze vložit přímo z evidenčních dokumentů. N45°30'00"E se načte stejně jako N45-30-00E
- Export konceptu právního popisu metes and bounds. Vazba na počáteční bod, Počáteční bod, následující úseky, popis poloměru/oblouku/tětivy, výměra při uzavření. Označeno jako koncept, vyžaduje kontrolu
Oprava chyby z testování okresu Polk: po vymazání polygonu zůstaly popisky v mapě. Opraveno.
Požadované testování
- Přichytávání v husté parcelní síti
- Zadávání numerickou klávesnicí při velkoobjemovém vkládání
- Výstup právního popisu podle skutečného znění listin, zejména u oblouků
- Řetězce, články, tyče a varas ve starých popisech
Problémy hlaste v komentářích nebo na GitHubu.