VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra elektrotechniky a informatiky Obor Počítačové systémy – kombinovaná forma
We b o v á a p l i k a c e p ro v i z u a l i z a c i a s p r á v u p ro š l ý c h t r a s z G P S p ř í s t ro j ů bakalářská práce
Autor: David Martinek Vedoucí práce: PaedDr. František Smrčka, Ph.D. Jihlava 2014
Abstrakt Cílem této práce je vytvoření webové aplikace pro vizualizaci a správu prošlých tras z GPS přístrojů. V úvodní části jsou popsány dostupné řešení této problematiky a použité technologie. Další části jsou věnovány popisu, jak byla navržena připojená databáze, možnosti jednotlivých typů uživatelů, zpracování GPS dat a jak bylo řešeno zabezpečení. Výsledkem jsou funkční webové stránky, které zobrazí trasy prostřednictvím Google Maps API a umožní jejich správu. V závěru jsou také návrhy na další vylepšení.
Klíčová slova Webová aplikace, GPS vizualizace, Google Maps API, ASP .NET, trasa, trackpoint.
Abstract The goal of this thesis is to create a web application to visualize and manage tracks of GPS devices. In the begin part are described available solutions and used technologies. In the next parts are descriptions of proposing connected database, options for each type of user, processing GPS data and solving security. The result is a working website that displays routes via Google Map API and allows their managing. At the end there are proposals for further improvements.
Key words Web application, GPS visualization, Google Maps API, ASP .NET, track, trackpoint.
Prohlašuji, že předložená bakalářská práce je původní a zpracoval/a jsem ji samostatně. Prohlašuji, že citace použitých pramenů je úplná, že jsem v práci neporušil/a autorská práva (ve smyslu zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů, v platném znění, dále též „AZ“). Souhlasím s umístěním bakalářské práce v knihovně VŠPJ a s jejím užitím k výuce nebo k vlastní vnitřní potřebě VŠPJ. Byl/a jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje AZ, zejména § 60 (školní dílo). Beru na vědomí, že VŠPJ má právo na uzavření licenční smlouvy o užití mé bakalářské práce a prohlašuji, že s o u h l a s í m s případným užitím mé bakalářské práce (prodej, zapůjčení apod.). Jsem si vědom/a toho, že užít své bakalářské práce či poskytnout licenci k jejímu využití mohu jen se souhlasem VŠPJ, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených vysokou školou na vytvoření díla (až do jejich skutečné výše), z výdělku dosaženého v souvislosti s užitím díla či poskytnutí licence. V Jihlavě dne 24.8.2014
Poděkování Na tomto místě bych rád poděkoval svému vedoucímu práce PaedDr. Františku Smrčkovi, Ph.D. za poskytnutí tématu a možnost vytvářet ho pod jeho vedením.
Seznam použité literatury ............................................................................................... 41 Seznam použitých zkratek .............................................................................................. 42 Přílohy............................................................................................................................. 43 1
Obsah přiloženého CD ............................................................................................ 43
1 Úvod Vytvořit vlastní webovou aplikaci pro vizualizaci a správu prošlých tras z GPS přístrojů jsem si vybral z nabízených témat v informačním systému VŠPJ. Téma mě velmi zaujalo, jelikož kromě klasických navigací může být trasa zaznamenána většinou dnešních smartphonů a tabletů, které v sobě mají zabudovaný GPS přijímač, př. mohou použít externí. Díky tomu se spektrum použití vytvořené aplikace výrazně zvýší. Pořízení záznamu trasy může pak proběhnout na různých platformách mobilních operačních systémů. Nejrozšířenějšími jsou iOS, Android nebo Windows Phone. Tento druh zaznamenání trasy je především využíván pro sportovní aktivity jako běhání, cyklistika, turistika, atd. Další možnost využití je monitoring lidí, automobilů a zařízení. Jelikož ve své práci IT technika se setkávám výhradně s produkty společnosti Microsoft, rozhodl jsem se rozšířit své znalosti v oblasti programování, a proto bude webová aplikace vytvořena v jazyku ASP .NET a připojená databáze bude vytvořena v Microsoft SQL. S těmito produkty z hlediska vývoje jsem doposud nepracoval, ale myslím, že pro můj budoucí růst bude mít velký význam, protože tyto produkty jsou hojně rozšířeny.
1.1 Možnosti řešení Dle zadání projektu je pro vizualizaci trasy pevně dáno využití rozhraní Google API. Jedná se o rozhraní vyvinuté společností Google, jeho podrobnější popis bude uveden v kapitole 4.3. Ostatní možnosti řešení jsou na volbě programátora. Pro vývoj webové aplikace nepostačí použití jazyka HTML a kaskádových stylů CSS, a proto je nutné naprogramovat aplikaci za použití jazyka, který dynamicky stránky generuje. Můžeme použít např. nějaký skriptovací jazyk jako je PHP (HyperText Preprocessor), CGI (Common Gateway Interface) či ASP (Active Server pages). Další volbou mohou být flashové či javové aplety, které však pro své spuštění vyžadují instalaci doplňků pro prohlížeč, což může omezit uživatele, kteří tento doplněk ve svém prohlížeči nemají nainstalovaný a jejich nedostatečná práva jim instalaci znemožňují. Další součástí vytvářené webové aplikace je databázový systém, který zajistí uložení a manipulaci s potřebnými daty o uživatelích, trasách atd. Z nejčastěji používaných uvedu MySQL, PostgreSQL a Microsoft SQL. U výběru by měla hlavně rozhodovat 8
rychlost komunikace s databází. Druhý faktorem je cena, kde je výhodnější využití MySQL a PostgreSQL, které jsou nabízeny zdarma. GPS přístroje ukládají prošlé trasy do různých formátů, které určují zejména výrobci zařízení. Značka TomTom používá jako exportní soubor .itn, Garmin .gpx, Navigon .freshroute atd. Neomezují se pouze na vlastní typ souboru a v dodávaném softwaru umožnují export do více druhů formátů. [1]
1.2 Zvolený způsob řešení Jak jsem uvedl v úvodní kapitole, rozhodl jsem se vytvořit webovou aplikaci využívající produkty společnosti Microsoft. Jelikož poskytovatelé webhostingů, kteří své služby nabízejí zdarma, nemají v nabídce všechny požadované produkty, zřídil jsem si k doméně muffick.cz placený balíček služeb Webhosting KOMPLET od společnosti ACTIVE24, s r.o. Součástí balíčku je 1 GB webový prostor, možnost provozovat webové stránky v jazyku ASP .NET, jedna databáze Microsoft SQL na Microsoft SQL Server 2008. Po mé zkušenosti s freehostingovou databází MySQL, které měla velké odezvy při načítání, jsem pro zajištění uživatelského komfortu zvolil placenou variantu. Záznam prošlých tras bude v aplikaci pouze formáty .gpx. K vytvoření těchto souborů pro účely testování jsem použil program GPX Logger pro smartphony podporující systém Android od autora EAR TO EAK OAK. Tento program je volně stažitelný z Google Play a mám ho nainstalovaný na telefonu HTC Desire X s operačním systém Android verze 4.1.1.
9
2 Weby s obdobným zaměřením V této kapitole uvedu tři hlavní webové stránky, které zpracovávají GPS resp. GPX data. Převážně mají tyto weby zdatné nástroje na převod a vizualizaci tras a GPS dat. U všech chybí možno mapy ukládat trvale př. sdílet.
2.1 maplorer.com Tento web přednostně nabízí dvě aplikace pro platformy Windows a Windows Phone. Jedná se navigační software a instalační nástroj tohoto softwaru pro zařízení s GPS modulem. Dále jsou nástroje na plánování trasy, přepočet stupňů na číslo, výpočet vzdálenosti mezi dvěma body na mapě, stažení a převod Google mapy do navigačního softwaru. Součástí webu je také zobrazení trasy ve formátu .gpx. Zobrazená trasa má výškový profil a na mapě se barevně mění v závislosti na nadmořské výšce. Některé barvy ovšem splývají s prvky, např. žlutá, která označuje nižší polohy na mapě, není vidět, když trasa vede přes silnice vyšších tříd. V legendě jsou další informace o trase, délka v kilometrech a mílích, největší délka klesání nebo stoupání. Dále je zde maximální a průměrná rychlost. Údaje byly značně nepřesné, mnou testovaná trasa byla pořízena při cestě do zaměstnání a vím, že takové rychlosti na této trase nemohu dosáhnout, navíc můj automobil této rychlosti nedosahuje, maximální rychlost, zde byla 139,1 km/h. Jinak je zpracování trasy vydařené a ještě umožňuje navíc 3D zobrazení.
2.2 www.gpsvisualizer.com Tyto webové stránky jsou zaměřeny na úpravy map a zpracování dat pro mapy. Má kalkulátory pro převod stupňů na decimální číslo, pro výpočet vzdálenosti mezi body na mapě. Umožňuje také uložit GPS data, př. je tam přímo zakreslit. Jako výstupní formát nabízí Google Maps, Google Earth, PNG a JPG obrázek. Výškový profil je vytvářen zvlášť bez mapy. Má nástroj na konverzi různých formátů GPS souborů do .gpx. Trasa je do mapy jen zakreslena, bez dalších informací.
10
2.3 utrack.crempa.net Tato webová aplikace zpracovává pouze soubory typu gpx. V případě, že jsou dostupná data, vytvoří se report, kde je výškový profil v závislosti na času nebo uražené vzdálenosti, rychlostní profil a samozřejmě zobrazení trasy na mapě. Zpracování bývá kolem 5 vteřin, výsledná mapa není vycentrovaná, je vidět jen část trasy, na výběr je jako podkladová mapa AMapy CZ, ta ovšem nefunguje. Při opakovaném zpracování mi vyskočila chyba, že je soubor v nesprávném formátu nebo větší 1 MB. Soubor jsem později v pořádku zobrazil. Díky drobným chybám nemusí tento web působit uživatelům jako důvěryhodný.
11
3 Specifikace pojmů a použitých technologií V této kapitole je uveden popis a princip webové aplikace. Další části jsou věnovány formátu GPX, jeho elementům a rozhraní Google Maps API pro vizualizaci trasy. Nakonec je popsán jazyk ASP .NET, který bude použit pro vytvoření zadané aplikace a služba IIS zajišťující funkčnost webových stránek tohoto jazyka.
3.1 Webová aplikace Webová aplikace v softwarovém inženýrství je aplikace poskytovaná uživatelům z webového serveru přes počítačovou síť Internet, nebo její vnitropodnikovou obdobu (intranet). Webové aplikace jsou populární především pro všudypřítomnost webového prohlížeče jako klienta. Ten se pak nazývá tenkým klientem, neboť sám o sobě logiku aplikace nezná. Schopnost aktualizovat a spravovat webové aplikace bez nutnosti šířit a instalovat software na potenciálně tisíce uživatelských počítačů je hlavním důvodem jejich oblíbenosti. Webové aplikace jsou používány pro implementaci mnoha podnikových i jiných informačních systémů, ale i freemailů, internetových obchodů, online aukcí, diskusních fór, weblogů. [2]
3.1.1 Rozhraní Webové rozhraní v některých směrech omezuje funkčnost a možnosti klienta. Metody známé z desktopových aplikací, jako je například vykreslování na obrazovku či obecné techniky jako drag and drop, nejsou standardními technologiemi prohlížečů podporovány. Tvůrci webů pro přidání funkčnosti často používají skriptování na straně klienta, zvláště pro vytvoření dojmu interaktivity bez nutnosti znovunačtení stránky, které řada uživatelů shledává rušivým. V poslední době se začínají používat technologie, které umožňují spolupráci skriptů na klientské straně se serverovou částí aplikace. Jedním z příkladů je AJAX: technika vývoje webu využívající kombinaci HTML, JavaScriptu a rozhraní XMLHttpRequest, které umožňuje načítat klientským skriptům informace ze serveru, aniž by bylo třeba obnovovat celou stránku. [2]
12
3.1.2 Technické aspekty Podstatnou výhodou vývoje webových aplikací stavějících na standardních funkcích prohlížeče je jejich schopnost pracovat podle určení bez ohledu na operační systém či jeho verzi instalovanou na daném klientském počítači. Místo psaní variant aplikace pro Windows, Linux, Mac OS X a další operační systémy stačí teoreticky aplikaci napsat jednou a nabídnout téměř kdekoliv. V praxi ale nekonzistentní implementace HTML, CSS, DOM a další specifikace jednotlivých prohlížečů způsobují problémy. Navíc mají uživatelé možnost nastavit způsob zobrazení ve svém prohlížeči (např. zvolit jiný řez či velikost písma, barvy či vypnout podporu skriptování), což může rušit jednotný vzhled aplikace. Dalším způsobem, avšak méně častým, je použití Macromedia Flash nebo javových appletů pro část nebo celé uživatelské rozhraní. Poněvadž většina webových prohlížečů tyto technologie podporuje (obvykle formou zásuvných modulů), aplikace založené na Flashi či Javě mohou být v podstatě vyvíjeny a nasazovány všude stejně snadno. Přestože vývojářům poskytují větší kontrolu nad uživatelským rozhraním a obcházejí řadu problémů s nastavením prohlížečů, mohou rozdílnosti mezi jednotlivými implementacemi Flashe či Javy způsobit jiné komplikace. Pro podobnost jejich architektury s klasickými aplikacemi typu klient-server s jakýmsi tenkým klientem existují pochybnosti, zda systémy tohoto typu vůbec webovými aplikacemi nazývat a zda nepoužít termín rich internet application. Zřejmou nevýhodou tohoto přístupu je vysoká závislost na poskytovateli aplikace a dostatečně dimenzované kapacitě připojení k serveru poskytovatele. Pokud se poskytovatel rozhodne ukončit poskytování této služby nebo ji přeruší z jiného důvodu, nelze službu nadále používat, na rozdíl od lokálně provozovaného software. Stejně tak pokud dojde k přerušení spojení se serverem poskytovatele, může být služba dočasně nedostupná. Tyto nevýhody jsou však vyváženy výhodou, kterou je na straně zákazníka prakticky nulová údržba a minimální náklady – obvykle se pouze platí pevné měsíční nebo roční poplatky. [2]
3.1.3 Struktura Ačkoliv je mnoho možností, webové aplikace jsou obvykle strukturovány jako třívrstvé. V té nejběžnější formě je webový prohlížeč první vrstvou (prezentační), nástroje pro 13
dynamické generování stránek (např. CGI, PHP, javové servlety nebo ASP) je vrstvou střední (logickou) a databáze je vrstvou třetí (datovou). Webový prohlížeč posílá požadavky střední vrstvě, která je obsluhuje prostřednictvím dotazů do databáze (resp. její aktualizací) a generováním uživatelského rozhraní. [2]
Obr. č. 1 Struktura webové aplikace [3]
3.1.4 Užití Webové rozhraní je stále častěji používáno na místech, která byla považována za tradiční pro jednouživatelské programy. Například Microsoft HTML Help nahradil Windows Help na pozici hlavního systému nápovědy v Microsoft Windows. Jako jejich síťové obdoby generují tyto aplikace webové stránky jako vlastní uživatelské rozhraní a posílají je (někdy přes zabudovaný web server) do komponenty, která plní funkci webového prohlížeče – vykresluje stránku pro uživatele a naopak posílá aplikaci uživatelův vstup. Webové aplikace se zabudovaným web serverem se také staly naprosto běžné jako uživatelské rozhraní pro konfiguraci síťových komponent, jako jsou servery, směrovače či brány. [2]
3.1.5 Obchodní užití Jednou ze strategií pro softwarové firmy je poskytnout přístup přes web k aplikacím, které byly dříve nabízeny a šířeny jako lokální. V závislosti na typu aplikace může takový přechod vyžadovat vývoj zcela odlišného uživatelského rozhraní určeného 14
webovému prohlížeči nebo jen přizpůsobit stávající aplikaci pro použití jiné prezentační technologie. Tyto programy umožňují uživatelům platit měsíční či roční poplatek za používání aplikace, aniž by si jej museli nainstalovat na svůj pevný disk. Firmy podnikající s touto strategií jsou známé jako poskytovatelé aplikačních služeb (application service provider, ASP). [2]
3.1.6 Programování webových aplikací Ačkoli je mnoho webových aplikací psáno přímo v čistém programovacím jazyce jako je PHP či Perl, existuje pro jejich tvorbu řada systémů, tzv. frameworků, které díky automatizaci tohoto procesu nabízejí programátorům možnost popsat program na vyšších úrovních. Užití takových systémů může často snížit počet chyb v aplikaci, především díky větší jednoduchosti a přehlednosti kódu a také možností koncentrovat se na důležitější části kódu. [2]
3.2 Formát GPX GPX (GPS eXchange Format) je schéma XML navržený jako společný formát dat GPS softwarových aplikací. Může být použit k popisu waypointů, tracků a tras. Formát je otevřený a může být použit bez nutnosti platit licenční poplatky. Jeho tagy ukládají polohu, nadmořská výšku a čas a může být použit k výměně dat mezi GPS zařízeními a softwarovými balíčky. Tyto počítačové programy umožňují uživatelům např. procházení tracků, plánovaní na satelitních snímcích nebo jiných mapách, přidávání poznámek, atd. [4]
3.2.1 Typy dat GPX je považován za soubor individuálních waypointů (pojmenovaný bod se souřadnicemi, uložený v GPS zařízení nebo v počítači). Seřazený soubor bodů může být vyjádřen jako track (seřazený seznam bodů popisujících cestu) nebo jako trasa (angl. route, seřazený seznam waypointů, které popisují řadu významných bodů vedoucích k cíli). Koncepčně jsou tracky záznamy z míst, které jsme navštívili, a trasy jsou návrhy míst, které můžeme navštívit. Např. každý bod tracku může mít časové razítko (uložení záznamu o tom kde přesně a kdy jsme tam byli), ale u bodů trasy je nepravděpodobné,
15
že by měla časová razítka, protože autor naznačuje cestu, kterou nikdo nikdy zřejmě necestoval. Minimální parametry souboru GPX jsou zeměpisné šířky a délky pro každý samostatný waypoint. Všechny ostatní prvky jsou volitelné. Někteří výrobci jako např. Humminbird a Garmin, používají formát GPX pro nahrávání poštovní adresy, telefonní čísla, obchodní kategorie, teplota vzduchu, hloubka vody a další parametry. [4]
Obr. č. 2 Ukázka waypointu, tracku a trasy [4]
16
3.2.2 Popis jednotlivých elementů Každý GPX soubor obsahuje povinné a volitelné elementy. Jejich použití se liší dle výrobce GPS přístroje nebo programu, který záznam nebo návrh realizuje. popis GPX souboru Obsahuje: