Shrnutí problému
Geoprocesní rámec je jednou z největších předností ArcGIS Pro a vývojáři třetích stran jsou správně k němu vedeni: nástroj vytvořený jako skriptový nástroj nebo Python toolbox získává historii geoprocesu, nastavení prostředí, hlášení průběhu a zpráv, režim dávkového zpracování, složitelnost v ModelBuilderu a arcpy skriptování — ekosystém, který žádný vlastní dialog nikdy nemůže znovu vytvořit.
Ale tento ekosystém je dodáván s přesně jedním uživatelským rozhraním: automaticky generovaným panelem geoprocesu. Neexistuje žádný podporovaný způsob, jak může nástroj třetí strany zobrazit jiné UI a přitom zůstat skutečným geoprocesním nástrojem. Pro jednoduché nástroje je generovaný panel dostačující. Pro interaktivní workflow bohaté na zpětnou vazbu je to však velmi omezující a vývojáři čelí zbytečné volbě:
- Zůstat GP nástrojem a přijmout omezení generovaného panelu (žádné vlastní widgety, žádné živé náhledy, omezená kontrola rozvržení a dlouhý seznam zvláštností validačního chování), nebo
- Vytvořit vlastní dockpane/okno s přesně vhodným UI — a úplně přijít o historii geoprocesu, prostředí, ModelBuilder, dávkový režim a skriptování.
Vlajkové interaktivní workflow Esri ukazují problém: Suitability Modeler, image Classification Wizard a Georeferencing jsou všechny vlastní panely, ne generované geoprocesní dialogy. Když záleží na bohaté interakci, Esri obchází GP panel. Vývojáři třetích stran nemají podporovaný způsob, jak udělat totéž bez opuštění geoprocesního rámce.
Požadované vylepšení
Oddělit UI nástroje od samotného nástroje. Dva stupně, z nichž každý by byl významným krokem:
Stupeň 1 — vlastní dialogy nástrojů (plná žádost). Nechat doplněk zaregistrovat WPF dialog/panel jako Pro UI pro konkrétní geoprocesní nástroj (skriptový nástroj, .pyt, nebo .atbx). Nástroj zůstává ve všech ostatních ohledech plnohodnotným GP nástrojem:
- Vlastní dialog shromažďuje a ověřuje parametry a pak předává standardní pole parametrů do běžného GP spouštěcího procesu — takže běh je zaznamenán v historii geoprocesu, respektuje nastavení prostředí, hlásí průběh/zprávy a přidává metadata přesně jako dnes.
- Kontexty, které nemohou hostit vlastní dialog — ModelBuilder, dávkový režim, plánované spuštění, publikování na serveru,
arcpy — automaticky přepnou na automaticky generovaný panel a existující objekty parametrů. Nic se nezhroutí. - Pokud není registrován žádný vlastní dialog, chování je přesně jako dnes (plná zpětná kompatibilita).
Stupeň 2 — vlastní ovládací prvky parametrů (menší ale stále transformační požadavek). Nechat vývojáře zaregistrovat vlastní WPF ovládací prvek pro jednotlivý parametr (nebo vlastní datový typ parametru), umístěný uvnitř generovaného panelu. I to by odstranilo většinu bolesti: tabulka hodnot by se mohla stát skutečnou mřížkou s živou zpětnou vazbou; remap parametr by mohl zobrazit histogram vstupního rastru; práh by mohl ukázat vybrané buňky.
Proč je to důležité
Vlastní Python toolboxy jsou plnohodnotnou cestou rozšiřitelnosti pro ArcGIS Pro a organizace i třetí strany na nich staví vážné komerční analytické sady. Kvalita toho, co uživatel vidí, není omezena úsilím vývojáře, ale generovaným panelem. Vývojáři dbající na uživatelskou zkušenost jsou tlačeni opustit geoprocesní rámec — přicházejí tak o původ dat, reprodukovatelnost a skriptovatelnost, tedy právě ty věci, které dělají nástroje Pro důvěryhodnými. Podporovaný bod rozšiřitelnosti UI by tento kompromis ukončil, zvýšil kvalitu celého ekosystému třetích stran a nezpůsobil žádné problémy se zpětnou kompatibilitou.