Optimalizace hostovaných služeb na ArcGIS Online

21. 5. 2020
  • Webový GIS

Práce s prvky ve webovém a cloudovém prostředí má svoje specifika a jedním z nich je místo uložení našich dat. Na rozdíl od práce s daty lokálně uloženými na našem disku jsou data na ArcGIS Online ukládána v geodatabázi na serverech ArcGIS Online a ke koncovému uživateli se musejí odesílat. Z tohoto důvodu je vhodné myslet na optimalizaci dat ještě před jejich publikací a optimalizovat přímo i vrstvu na ArcGIS Online.

Samotná optimalizace záleží na požadavcích uživatele na publikovanou vrstvu. Jinak budeme přistupovat k datům, která mají být na ArcGIS Online pravidelně editována, a jinak k vrstvě sloužící pouze k prohlížení dat v naší webové aplikaci (například v mapě s příběhem).

Pro výběr způsobu optimalizace našich dat a vrstvy samotné je třeba odpovědět si na několik otázek:

  • Jak jsou data podrobná? Je třeba mít data podrobná?
  • Bude potřeba data editovat?
  • Jak často k datům budou uživatelé přistupovat?

V závislosti na plánovaném použití našich dat můžeme provést některé z následujících kroků k jejich optimalizaci a zrychlení jejích vykreslování:

  • Ověřit a případně zmenšit počet vertexů u polygonů a linií (generalizace dat).
  • Optimalizovat vykreslování vrstev na ArcGIS Online.
  • Obnovit prostorové indexy u vrstvy, která se v minulosti výrazně změnila.
  • Upravit nastavení tvorby cache na straně serveru, který bude data poskytovat.

Způsoby optimalizace dat

Různé způsoby optimalizace dat si vyzkoušíme v následující ukázce. Každá data však mají svá specifika, a proto je vhodné vždy postupovat s ohledem na konkrétní datovou sadu. V našem případě bude jako ukázková vrstva sloužit polygonová vrstva krajů ČR z volně dostupných dat ArcČR. Tato vrstva obsahuje 14 polygonů krajů. Po publikaci těchto dat na ArcGIS Online nás může zaskočit poměrně dlouhá doba, než se vrstva zobrazí například ve webové mapě. Tato vrstva je totiž velice podrobná, obsahuje celkem 383 688 vertexů (bodů), které definují tvar polygonů. Počet vertexů můžeme ověřit výpočtem nového numerického pole s výrazem: !shape!.pointcount. Doba vykreslování takového množství vertexů se na neoptimalizované vrstvě krajů pohybuje kolem 14 vteřin.

Generalizace dat

Pokud takto podrobná data nepotřebujeme, můžeme provést generalizaci dat pomocí nástroje Generalize (míru generalizace je možné definovat parametrem Tolerance). Po jeho použití se počet vertexů na vrstvě krajů snížil na 76 000 a doba vykreslení vrstvy na ArcGIS Online na cca 4 vteřiny. Využití generalizace lze doporučit všude tam, kde není kladen důraz na podrobnost dat při velkém přiblížení mapy.

Vypnutí editace

Pokud však daná data potřebujeme nezměněná a je nežádoucí provést generalizaci (zjednodušení) dat, je možné přistoupit k dalším možnostem optimalizace publikované služby. První z nich je vypnutí editace. Tento úkon může obzvlášť u vrstev s vysokým počtem prvků zvýšit rychlost vykreslování. Samotné vypnutí editace můžeme provést v podrobnostech hostované služby v jejím nastavení.

Optimalizace vykreslování

Další možností, kterou v nastavení naší hostované služby nalezneme, je Optimalizovat vykreslování vrstev. Samotnou optimalizaci provede ArcGIS Online automaticky během několika minut, tento úkon však může zvýšit objem hostované služby. V našem případě však zůstala velikost vrstvy krajů ČR prakticky nezměněna, tedy 6 MB.

Obnova prostorových indexů

Pokud se data ve vrstvě v minulosti měnila, je vhodné obnovit prostorové indexy. Tuto možnost také nalezneme v nastavení hostované služby v části Spravovat prostorové indexy.

Nastavení obnovy cache

Na závěr můžeme upravit, jak dlouhou dobu si bude server ArcGIS Online pamatovat jednu „verzi“ dat. Standardně je čas cache nastaven na 30 vteřin. Tedy pokud si uživatel zobrazí data, bude si server ArcGIS Online příštích třicet vteřin pamatovat, jak data vypadala, a takto je bude odesílat dalším uživatelům, a to mnohem rychleji, než kdyby se musela data znovu načítat. Pokud nastavíme toto „zapamatování“ na maximum (jedna hodina), bude si server zobrazená data pamatovat hodinu a nezměněná je bude odesílat dalším uživatelům. Pokud však během této hodiny dojde k editaci dat, změny se u dalších uživatelů do uplynutí příslušné doby neprojeví. Nastavení vyšší doby cache lze tedy doporučit pouze pro data, které se měnit nebudou, případně jejich změna nebude nikterak častá.

Shrnutí

Pokud zhodnotíme naši testovací vrstvu krajů ČR, negeneralizovaná data se původně načítala 14 vteřin. Po aktivaci optimalizace vykreslování vrstvy a nastavení tvorby cache na delší časový úsek (v tomto případě 5 minut) se doba vykreslení zkrátila na příjemných 5 vteřin, a to bez snížení detailu dat, tedy při vykreslování všech 383 688 vertexů. Pokud byla data nejprve generalizována a následně optimalizována výše popsanými kroky, doba vykreslení dat se snížila na pouhou jednu vteřinu.

Optimalizace dat může zásadně zlepšit odezvu našich webových map a aplikací, a tím zpříjemnit zážitek všem koncovým uživatelům.

Autor: David Novák