Výsledky vývoje aplikace
Hlavní částí této bakalářské práce bylo vytvoření funkčního prototypu webové aplikace. Cílem této aplikace bylo jednoduchou formou umožnit uživatel zaregistrovat si vlastní uživatelský profil, přihlásit se, nahrát data o poloze, editovat je, uložit do databáze a seskupovat do kolekcí. Následně si tato místa v mapě zobrazit, moci je vizualizovat a připojit záznamy od jiných uživatelů.
Zdárným dokončením aplikace, která dostala název Maplay, se podařilo tyto cíle naplnit. Autor se vypořádal s mnoha problémy při vývoji a k tomu si dokázal osvojit nové dovednosti potřebné k tvorbě webové aplikace. Také je snahou autora poskytnout programový kód volně ostatním volně k použití, aplikace je dostupná v repozitáři na stránce github.com/dominik-vit/maplay. Kromě tohoto zdroje je možné aplikaci používat na webovém serveru Katedry Geoinformatiky Univerzity Palackého v Olomouci dostupné na http://gis.upol.cz/maplay/.
Návrh pro produkční řešení
Tuto kapitolu autor věnuje subjektivnímu návrhu programových, mapových a databázových řešení, které by bylo vhodné použít v produkčním prostředí k vývoji mapové aplikace pro vizualizaci navštívených míst. Vzhledem k charakteru práce, který byl úzce zaměřen vybrané technologie vybrané na začátku, autor porovnává své širší zkušenosti s návrhy v kontextu vyvinuté aplikace. Součástí práce nebylo pokusit se vyvinout aplikace podobného stylu na více platformách.
Mapové produkty
Pravděpodobně nejzajímavější poznatky vyplývají ze zkušenosti použití mapové knihovny OpenLayers.js. Tu si autor vybral ze dvou důvodů. Prvním je jejich podstata ve smyslu opensource řešení. Šlo o to pokusit se prozkoumat její stávající možnosti pro vývoj
46
takové aplikace. A také trochu snaha zkusit něco jiného, než převažující knihovnu Leaflet.js. Druhým důvodem byla možnost animací, kterou chtěl autor využít a nenalezl ji v takové podobně u žádného jiného řešení.
Jak se však během tvorby ukázalo, knihovna OpenLayers byla tím, co způsobovalo mnohokrát spíše komplikace než usnadnění tvorby. Knihovna je sice velmi rozsáhlá, existuje již mnoho let a byla jednou z prvních takových řešeních své doby. Na internetových zdrojích sice existuje nespočet řešení na mnoho problému, ty ale například naráží na nekompatibilitu mezi staršími a novějšími verzemi OpenLayers. Další komplikací především pro začátečníky může být na pochopení složitější dokumentace z pohledu názorných ukázek či vysvětlení návaznosti mezi jednotlivými kroky. Programátor je pak často odkázán hledat pomoc na zdrojích třetí strany, typicky stackoverflow.com. Po zavítání na stránky OpenLayers.com uživatel z nabízených příkladů užití nabude dojmu mnoha předpřipravených funkcí, které lze pro vlastní projekt jednoduše využít. Jak se právě autor sám s funkcemi animace přesvědčil, stálo ve výsledku více úsilí jejich úprava do funkční podoby než zvolit nejrozšířenější knihovnu Leaflet a použit jinou, byť široce v praxi ověřenou funkcionalitu z ní. Největší překážkou bylo používání dynamických dat z databází a uživatelských účtů. Pokud je čtenář znalý problematiky, určitě potvrdí, že drtivá většina projektů podobného rázu jsou buď proprietárními produkty jako například Google Maps Timeline, anebo otevřenými produkty, používající převážně knihovny Leaflet nebo velmi perspektivní knihovnu Mapbox.
Autor má za to, že reálný vývoj knihovny OpenLayers již prakticky v současnosti neprobíhá natolik, myšleno v kontextu velikosti uživatelské základny a progresivity nových funkcí, aby dokázal programátory zaujmout. The OpenLayers Dev Team je samozřejmě stálé funkční entitou, nicméně s porovnáním s knihovnami Leaflet či Mapbox je na poli webových mapových řešení spíše okrajovým hráčem.
Pro pokračování ve vývoji aplikace Maplay v produkčním prostředí či pro vývoj zcela nové aplikace autor doporučuje pro začínající programátory využít knihovnu Leaflet. Jejími přednosti je jednak neustále se rozšiřující progresivní uživatelská základna nebo jednoduchost a přívětivost programového kódu. Pro složitější projekty či pokročilé programátory se nabízí knihovna Mapbox GL JS.
Databáze
Z pohledu databázových řešení je situace ohledně návrhu pro produkční řešení o něco jednodušší. Především z důvodu několikanásobně širšího trhu ve smyslu poptávky a nabídky. Autor pro vývoj prototypu aplikace použil databázový produkt MySQL, který používal skrze program phpMyAdmin. Vzhledem k dominanci MySQL na trhu, a tudíž obrovské uživatelské základně nenastal žádný problém v průběhu tvorby aplikace a autor ji doporučuje pro využití v produkčním prostředí. Ukládání všech dat probíhá do sloupců a řádků v tabulkách, a to jak pro prostorová data (navštívená místa) tak i pro data o
47
uživatelích. Právě jednoduchost a možnost mít všechna data v jedné databázi jsou přednostmi MySQL. Další z nich je například jednoduchá správa a komunikace serveru prostřednictvím skriptovací jazyk PHP. To je výhoda především pro začínající programátory.
V případě, že by vývoj aplikace zašel trochu dál v rámci rozšíření uživatelského zážitku, je nasnadě zvážit databázová řešení více adaptovaná na práci s prostorovými daty. Jsou jimi například PostGIS nebo SpatialLite. PostGIS je externí rozšíření databázového systému PostgreSQL, které podporuje geografické prvky, datové typy s funkcemi usnadňující práci s nimi. PostGIS má skvělou uživatelskou podporu. Je vyhledáván pro schopnost zpracovávat a analyzovat geografická data (Nétek, 2018).
Rozšířením uživatelského zážitku má autor na mysli doplnění vizualizace o funkce, které nejsou vhodné pro zpracování v prohlížeči (třeba na mobilních telefonech). Takovými funkcemi mohou být například různé prostorové analýzy dostupnosti, výpočet vhodné trasy mezi jednotlivými body podle zadaných požadavků (chůze vs. jízda autem) nebo převod dat do jiných formátů či jejich sdílení.
Programová řešení
Výběr programovacích jazyků je navázán na vybrané mapové řešení. Autor doporučuje použití JavaScriptu, jehož vybrané knihovny jsou základními kameny v aplikaci Maplay. Dále se osvědčilo použití PHP, které v aplikaci zajišťuje především dynamické získávání obsahu a autor ho doporučuje i pro produkční prostředí. Autor využil předstylované šablony, stojí nicméně za zvážení vzhled aplikace vyrobit zcela od základů, tak, aby vyhovoval moderním postupům webového designu a reflektoval potřeby aplikace.