}w !"#$%&'()+,-./012345
M ASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Editor souboru˚ GPX ˇ B AKALÁ RSKÁ PRÁCE
Michal Šnajdr
Brno, podzim 2011
Prohlášení Prohlašuji, že tato bakaláˇrská práce je mým puvodním ˚ autorským dílem, které jsem vypracoval samostatnˇe. Všechny zdroje, prameny a literaturu, které jsem pˇri vypracování používal nebo z nich cˇ erpal, v práci rˇ ádnˇe cituji s uvedením úplného odkazu na pˇríslušný zdroj.
Vedoucí práce: RNDr. Jaroslav Pelikán, Ph.D. ii
Podˇekování Chtˇel bych podˇekovat všem, kteˇrí mi pˇri tvorbˇe práce jakýmkoliv zpusobem ˚ pomohli at’ už radou, nebo testování aplikace. Obzvláštˇe bych chtˇel podˇekovat vedoucímu práce, RNDr. Jaroslavu Pelikánovi, Ph.D., za rady, cˇ as a trpˇelivost pˇri konzultacích a kamarádce Michaele Gajošové za rady k formálnímu zpracování textu.
iii
Shrnutí Práce se vˇenuje historii, principu fungování a použití satelitního navigaˇcního systému GPS. Dále krátce pˇredstavuje formát GPX, používaný k výmˇenˇe informací mezi navigaˇcními zaˇrízeními. Praktickou cˇ ástí práce bylo vytvoˇrení aplikace pro editování souboru˚ GPX na základˇe jejich vizualizace na mapových podkladech. Text popisuje zpusob, ˚ jakým aplikace pˇristupuje k získávání a zobrazení mapových podkladu, ˚ vizualizaci trasy a její úpravˇe.
iv
Klíˇcová slova GPS, navigace, aplikace, GPX, Java, satelitní
v
Obsah 1 2
Úvod . . . . . . . . . . . . . . . . . . . Navigaˇcní systém GPS . . . . . . . . . 2.1 Historie . . . . . . . . . . . . . . . 2.2 Princip cˇ innosti systému . . . . . 2.2.1 Druhy signálu˚ . . . . . . . 2.2.2 Výpoˇcet polohy pˇrijímaˇce 2.3 A-GPS . . . . . . . . . . . . . . . 2.4 DGPS . . . . . . . . . . . . . . . . 2.5 Použití . . . . . . . . . . . . . . . 2.5.1 Automobilové navigace . ˇ 2.5.2 Cerné skˇrínky ˇ . . . . . . . 2.5.3 Turistické navigace . . . . 2.5.4 Navigace integrované . . 2.5.5 Lokaˇcní hry . . . . . . . . 3 Formát GPX . . . . . . . . . . . . . . . 4 Aplikace TrackOnMapEditor . . . . . 4.1 Dostupné alternativy . . . . . . . 4.2 Implementace . . . . . . . . . . . 4.2.1 Uživatelské rozhraní . . . 4.2.2 Zdroje mapy . . . . . . . . 4.2.3 Vykreslení mapy . . . . . 4.2.4 Manipulace s mapou . . . 4.2.5 Vykreslení bodu/trasy ˚ . . 4.2.6 Výpoˇcet polohy uzlu . . . 4.2.7 Úprava trasy . . . . . . . 4.2.8 Vstup a výstup . . . . . . 5 Závˇer . . . . . . . . . . . . . . . . . . . A Licence . . . . . . . . . . . . . . . . . . B Ovládání aplikace . . . . . . . . . . . C CD médium . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 3 3 4 6 7 7 8 9 9 10 11 12 13 14 16 16 17 17 18 18 21 24 26 26 27 29 32 34 35 1
Kapitola 1
Úvod Výpoˇcetní technika se stala bˇežnou souˇcástí každodenního života a pomáhá nám ruznými ˚ zpusoby. ˚ Jednou z oblastí, které v posledních letech procházely velkým vývojem, je satelitní navigace. Možnost zjistit pˇresnou polohu kdekoliv na Zemi je užiteˇcnou v mnoha odvˇetvích. Teoretická cˇ ást práce shrnuje historii, princip fungování a použití navigaˇcního systému GPS. Dále práce pˇredstavuje formát GPX, který slouží pro výmˇenu informací mezi navigaˇcními aplikacemi. Praktickou cˇ ástí práce je vytvoˇrení aplikace pro uživatelsky pˇrívˇetivou editaci tras ukládaných v souborech formátu GPX. Aplikace nazvaná TrackOnMapEditor vizualizuje editované prvky v mapˇe a umožnuje ˇ s nimi pohybovat pouhým tažením. Mapové podklady aplikace získává bud’ ze sítˇe Internet, nebo naˇctením ve vhodném formátu z disku. Zpusob ˚ jakým aplikace rˇ eší jednotlivé úlohy je popsán v kapitole 4.
2
Kapitola 2
Navigaˇcní systém GPS Informace v kapitolách 2.1–2.4 vycházejí z [1, 2, 3, 4, 5].
2.1
Historie
Stejnˇe jako celosvˇetová poˇcítaˇcová sít’ Internet i navigaˇcní systém GPS vznikl jako vojenský projekt. Puvodnˇ ˚ e byl pˇredstaven pod názvem Navstar (Navigation System with Timing and Ranging), pozdˇeji se zaˇcalo používat jméno GPS (Global Position System). Vývoj projektu Navstar zapoˇcal v roce 1973 slouˇcením dvou puvodnˇ ˚ e samostatných vojenských projektu. ˚ Jednalo se o System 621B, sloužící k pˇresnému urˇcování polohy, který vyvíjelo od šedesátých let letectvo USA, a projekt Timotion pro pˇresné urˇcování cˇ asu,vyvíjený americkým vojenským námoˇrnictvem. Od roku 1973 je systém vyvíjen pod hlaviˇckou tzv. Spoleˇcné programové skupiny (anglicky Join Program Office), která se skládá ze zástupcu˚ letectva, námoˇrnictva, armády, námoˇrní pˇechoty, Pobˇrežní stráže, Obranné mapovací služby, zástupcu˚ NATO a Austrálie. Postup realizace až do souˇcasné podoby je možno rozdˇelit do cˇ tyˇr fází. První fáze probíhala v letech 1973–1979 a jejím cílem bylo ovˇerˇ it funkˇcnost navrhovaných principu˚ budoucího systému. Jako první byly provedeny pozemní testy. Poté byly na obˇežnou dráhu Zemˇe vypuštˇeny dvˇe družice1 pro ovˇerˇ ení navigaˇcní technologie. V prubˇ ˚ ehu roku 1978 byly vypuštˇeny 4 vývojové navigaˇcní družice nazývané Blok I. Pozdˇeji byly doplnˇeny o další a celkem bylo umístˇeno 11 družic. Tyto družice umožnovaly ˇ doˇcasnou plnohodnotnou tˇrírozmˇernou navigaci. Signály tˇechto družic nebyly žádným zpusobem ˚ omezené a byly v plné míˇre dostupné každému. Omezení nebylo nutné, protože nebyly bˇežnˇe k dispozici pˇrijímaˇce. Druhá fáze v letech 1979–1985 byla pˇrípravou na zprovoznˇení celého sys1. Také nazývány satelity
3
ˇ 2. N AVIGA CNÍ SYSTÉM GPS
tému. Byla vybudována pozemní rˇ ídící stˇrediska a zahájen vývoj družic Blok II a hlavnˇe pozemních pˇrijímaˇcu. ˚ Tˇretí fáze probíhala od roku 1985 a byla ukonˇcena 17. cˇ ervence 1995 vyhlášením plného operaˇcního stavu. Bˇehem tˇretí fáze bylo vyrobeno celkem 29 družic Bloku II. Družice Bloku II nejprve doplnovaly, ˇ a poté nahrazovaly družice Bloku I. Od poˇcátku roku 1993 bylo možné provádˇet trojrozmˇernou navigaci kdekoliv na Zemi po celých 24 hodin. ˇ Ctvrtá fáze trvá od 17. cˇ ervence 1995 dodnes a jedná se období bˇežného provozu. Od 25. 4. 1990 byla do civilního kódu C/A umˇele zanášena chyba. Toto opatˇrení, nazývané Selective Availability (SA), mˇelo zabránit možnému zneužití systému, napˇr. k navádˇení balistických raket. Pˇresnost civilních (neautorizovaných) navigaˇcních pˇrístroju˚ se pohybovala do 50 m. SA není od 1. 5. 2000 používáno a pˇresnost se zvýšila na nˇekolik metru. ˚ Chyba už nemusí být nadále zanášena do signálu, protože Ministerstvo obrany USA, provozovatel systému, získalo zpusob, ˚ jak v pˇrípadˇe ohrožení signál GPS lokálnˇe rušit.
2.2
Princip cˇ innosti systému
Celý systém je možné rozdˇelit na tˇri segmenty: ∙
kosmický
∙
pozemní
∙
uživatelský
Kosmický segment je tvoˇren 32 družicemi, které obíhají 20 200 km nad Zemí po šesti kruhových drahách (efemeridách), jež se vzájemnˇe od sebe odklánˇejí o 60∘ . Na každé dráze je nepravidelnˇe rozmístˇeno 5–6 pozic pro družice. Ty se na obˇežné dráze pohybují rychlostí 3,8 𝑘𝑚 /𝑠 a jejich obˇežná doba je 11 h 58 min. Hlavními cˇ ástmi družic jsou: ∙
4 velmi pˇresné (10−13 s) atomové hodiny s rubidiovým a cesiovým oscilátorem
∙
12 antén pro vysílání navigaˇcních signálu˚
∙
antény pro komunikaci s pozemním segmentem
∙
antény pro vzájemnou komunikaci družic 4
ˇ 2. N AVIGA CNÍ SYSTÉM GPS
∙
solární panely a baterie
Družice pracují nepˇretržitˇe s výjimkou plánovaných servisních pˇrestávek. Bˇehem nich je dvakrát roˇcnˇe provádˇeno dopumpování plynové trubice cesiových hodin a jednou roˇcnˇe korekce obˇežné dráhy družice. Bˇehem údržby je družice mimo provoz pˇribližnˇe 18 hodin a korekce dráhy trvá v prumˇ ˚ eru 12 hodin. Pozemní segment je zodpovˇedný za rˇ ízení celého systému. Monitoruje kosmický segment a získané informace zveˇrejnuje ˇ v navigaˇcní správˇe každé družice. Segment se skládá z následujících cˇ ástí: ∙
Velitelství na letecké základnˇe v Los Angeles, USA.
∙
Povelové stanice, které jsou umístˇeny na základnách amerického letectva na Havaji, v Kwajaleingu, v Diego Garcia a na Ascension Island. V pˇrípadˇe poruchy nˇekteré stanice je možné použít i stˇredisko Cape Caneveral na Floridˇe. Povelové stanice slouží pro komunikaci s družicemi.
∙
Monitorovací stanice, které jsou po celém svˇetˇe. Stanice jsou bezobslužné. Prakticky se jedná o velmi pˇresné GPS pˇrijímaˇce s vlastními atomovými hodinami. Tyto stanice monitorují signály všech aktuálnˇe viditelných družic a vypoˇcítávají svou vzdálenost k tˇemto družicím. Tyto informace spolu s pˇrijatými navigaˇcními zprávami (viz kapitola 2.2.1) pˇrenáší do rˇ ídicího centra.
∙
ˇ Rídicí centrum podle dat pˇrijatých z monitorovacích stanic vypoˇcítá pˇresné obˇežné dráhy družic (tzv. efemeridy) a potˇrebné korekce atomových hodin pro každou družici. Tyto údaje jsou pomocí povelových stanic pˇreneseny na jednotlivé družice a následnˇe vysílány v navigaˇcních zprávách. Každá družice muže ˚ obdržet aktualizaci tˇechto údaju˚ i nˇekolikrát dennˇe.
V pˇrípadˇe zniˇcení pozemního segmentu pˇrejdou družice do režimu AUTONAV (Autonomous Navigation Mode). V tomto režimu jsou schopny pracovat až 6 mˇesícu. ˚ Uživatelský segment tvoˇrí uživatelé, kteˇrí používají navigaˇcní pˇrístroje k zachycení signálu˚ z jednotlivých družic. Pˇrijímaˇce poté na základˇe pˇrijatých signálu˚ z družic provedou výpoˇcty polohy rychlosti a cˇ asu. Tyto informace jsou prezentovány uživateli. Komunikace probíhá pouze smˇerem od družice k pˇrijímaˇci a není možné pomocí systému GPS pˇrímo sledovat polohu uživatelu. ˚ 5
ˇ 2. N AVIGA CNÍ SYSTÉM GPS
2.2.1 Druhy signálu˚ Systém GPS používá nˇekolik druhu˚ signálu˚ vysílaných na nˇekolika frekvencích, z nichž nejvýznamnˇejší jsou: ∙
L1 (1 575,42 MHz), kde je vysílán civilní C/A kód a vojenský P(Y) kód, který je šifrován a je dostupný pouze pro autorizované použití. Družice vypuštˇené po roce 2005 jsou vybaveny pro vysílání nového vojenského signálu M kód.
∙
L2 (1 227,62 MHz), kde je vysílán vojenský P(Y) kód a družice vypuštˇené po roce 2005 vysílají i vojenský M kód a civilní C kód.
Frekvence vysílání jsou zvoleny tak, aby byly pˇrenosy signálu˚ co nejménˇe ovlivnˇeny meteorologickými vlivy. Jednotlivé družice periodicky vysílají navigaˇcní zprávy. Každá zpráva obsahuje: ∙
efemeridy
∙
cˇ as zaˇcátku vysílání zprávy
∙
údaje pro pˇresnou korekci cˇ asu družice
∙
stav družice
∙
informace o stavu atmosféry
∙
almanach2
2. Almanach je databáze obsahující ménˇe pˇresné údaje o efemeridách dalších družic. Na základˇe informací z almanachu dokáže pˇrijímaˇc sám zaˇcít aktivnˇe vyhledávat družice, které by mˇely být aktuálnˇe viditelné. Pokud pˇrijímaˇc zaˇcne pˇrijímat navigaˇcní zprávy z družice, jejíž efemeridy znal doposud pouze z almanachu, jsou v jeho lokální kopii nahrazeny pˇresnˇejšími údaji z navigaˇcních zpráv této družice. Informace o efemeridách a almanach mají vˇetší datovou velikost, než je možné odeslat v jedné zprávˇe. Proto jsou rozdˇeleny na jednotlivé rámce. Kompletní informaci o efemeridˇe družice odešle každých 30 sekund. Zaˇcátek vysílání efemeridy je vždy na poˇcátku a v polovinˇe minuty. Almanach je databáze vˇetší velikosti a jeho kompletní pˇrijetí trvá pˇrijímaˇci 12,5 minuty. To vše platí za pˇredpokladu, že pˇríjem není nijak pˇrerušen a pˇrijímaˇc pˇrijal všechny vysílané rámce. Almanach je možné získat i jinou cestou (viz kapitola 2.3).
6
ˇ 2. N AVIGA CNÍ SYSTÉM GPS
2.2.2 Výpoˇcet polohy pˇrijímaˇce K výpoˇctu polohy pˇrijímaˇce se používá metoda zvaná trilaterace. Postup výpoˇctu je zjednodušenˇe následující: ∙
Po pˇríjmu zprávy porovná pˇrijímaˇc cˇ as pˇríjmu signálu s cˇ asem odvysílání, který je souˇcástí pˇrijaté zprávy. Z této doby pˇrenosu a známé rychlosti šíˇrení signálu v atmosféˇre, s pˇrihlédnutím k informacím o aktuálním stavu atmosféry, obsažených v navigaˇcních zprávách, pˇrijímaˇc vypoˇcítá svou vzdálenost od družice.
∙
Na základˇe vypoˇcítané vzdálenosti od známé polohy družice pˇrijímaˇc pˇredpokládá, že se nachází na kulové ploše s polomˇerem rovným této vzdálenosti.
∙
Prunikem ˚ dvou takových kulových ploch pˇrijímaˇc omezí možnou polohu na jejich pruseˇ ˚ cík.
∙
Po pruniku ˚ se tˇretí kulovou plochou pˇrijímaˇc omezí množinu možných poloh na dva body, z nichž jeden leží bud’ hluboko v zemi, nebo vysoko nad ní a mužeme ˚ jej prohlásit za neplatný.
∙
Zbývající bod je výslednou polohou.
V praxi vždy pˇri mˇerˇ ení a výpoˇctu vzdálenosti dochází k nepˇresnostem. Ty mohou vzniknout: ∙
jiným než oˇcekávaným šíˇrením signálu
∙
nepˇresností vnitˇrních hodin samotného pˇrijímaˇce
∙
vadou družice
Proto se výpoˇcet bˇežnˇe realizuje s využitím signálu minimálnˇe ze cˇ tyˇr družic.
2.3
A-GPS
A-GPS je zkratka pro Assisted GPS. Jedná se o funkci, která pˇridává další možnosti získání a vyhodnocení dat. Do služeb A-GPS mužeme ˚ zahrnout: ∙
alternativní získání almanachu 7
ˇ 2. N AVIGA CNÍ SYSTÉM GPS
∙
offline urˇcení polohy
∙
hybridní lokalizaˇcní systémy
Protože se poloha družic neustále mˇení, pˇrijímaˇc signálu GPS musí po zapnutí zjistit jejich aktuální postavení. K tomu využívá informace, které vysílají samy družice v podobˇe tzv. almanachu. Pˇrijímaˇc dokáže urˇcit polohu i bez kompletního almanachu, ale pˇresnost je výraznˇe nižší. Platnost almanachu je pouhé 4 hodiny. Pokud uživatel navigaci opˇetovnˇe zapne bˇehem této doby, použijí se pro prvotní urˇcení polohy stará data a start bude výraznˇe rychlejší. Pˇrijímaˇc almanach nemusí získat pouze odposlechem z družic. Další možností je jejich stažení z Internetu. Takto získané almanachy má pˇrijímaˇc k dispozici mnohem rychleji (podle druhu mobilního pˇripojení) a mohou obsahovat více dat s delší platností (typicky 7 dní). Další funkcí zahrnovanou do A-GPS je možnost výpoˇctu polohy externím zarˇ ízením místo vlastního procesoru pˇrijímaˇce. To je využíváno pˇri offline urˇcování polohy u zaˇrízení zamˇerˇ ených na nízkou spotˇrebu. Pˇríkladem takového zaˇrízení je digitální fotoaparát, který k fotografii ukládá informaci o místˇe poˇrízení. Pˇred poˇrízením fotografie není tˇreba cˇ ekat nˇekolik minut na prvotní zamˇerˇ ení pˇrijímaˇce. Pˇri záznamu polohy pˇrijímaˇc uloží jen surová data pˇrijatá z družic za velmi krátkou dobu (staˇcí i 200 ms). Tato data se vyhodnotí až po pˇripojení k poˇcítaˇci pomocí speciálního softwaru. Jako hybridní lokalizaci oznaˇcujeme stav, kdy pˇrijímaˇc urˇcí svou polohu s nižší pˇresností použitím jiné technologie a poté tuto informaci využije k efektivnˇejšímu vyhledávání viditelných družic podle almanachu. K urˇcení polohy pˇrijímaˇc použije muže ˚ použít triangulaci pomocí základových stanic mobilních sítí. V soucˇ asné dobˇe je pozornost zamˇerˇ ena na triangulace3 prostˇrednictvím signálu˚ wi-fi pˇrístupových bodu. ˚ Toto rˇ ešení používá napˇr. spoleˇcnost Google [6]. Pˇresnost je závislá na kvalitˇe použité databáze souˇradnic a ve mˇestech s hustou penetrací zamˇerˇ ených bezdrátových pˇrístupových bodu˚ muže ˚ dosahovat až nˇekolika metru. ˚
2.4
DGPS
DGPS (Differential GPS) je jedním ze zpusob ˚ u˚ zvýšení pˇresnosti. Systémy DGPS jsou tvoˇreny alesponˇ jedním pˇrijímaˇcem GPS o známé pˇresné poloze (tzv. referenˇcní stanicí). Na základˇe porovnání polohy vypoˇcítané z pˇrijatých signálu˚ GPS a své pˇresné polohy stanice vypoˇcítá následující korekce: 3. Obdobná metoda jako trilaterace. Urˇcuje pouze polohu na povrchu.
8
ˇ 2. N AVIGA CNÍ SYSTÉM GPS
∙
Korekce polohy vznikne porovnáním známé polohy stanice s vypoˇcítanou polohou podle pˇrijatých signálu. ˚ Nevýhodou tˇechto korekcí je, že korekce i poloha mobilního pˇrijímaˇce, který ji používá by mˇely být vypoˇcteny v totožném cˇ ase a za použité stejné kombinace družic. Toto je v praxi obtížnˇe splnitelné a vyžadovalo by to, aby stanice poˇcítala korekce pro všechny kombinace družic, ze kterých pˇrijímá signál.
∙
Pro výpoˇcet korekce zdánlivých vzdáleností vypoˇcítává stanice svou skuteˇcnou vzdálenost od družice a porovnává ji se zdánlivou vzdáleností vypoˇcítanou z pˇrijatých signálu. ˚ Toto rˇ ešení je nároˇcnˇejší na realizaci, ale je pˇresnˇejší.
Platnost korekcí je desítky až stovky kilometru˚ od referenˇcní stanice podle druhu mˇerˇ ení. Korekce jsou typicky šíˇreny protokolem RTCM a pˇrenášeny pomocí sítˇe Internet, dlouhovlnného vysílání nebo signálu RDP.
2.5
Použití
Jednotlivé druhy navigaˇcních zaˇrízení se od sebe liší hlavnˇe provedením samotného pˇrístroje podle podmínek zamýšleného použití a použitými mapami a funkcemi. 2.5.1 Automobilové navigace Dˇelí se na integrované a samostatné. Bˇežným se v tomto segmentu stalo ovládání pomocí dotykového displeje. Ten mívá bˇežnˇe úhlopˇríˇcku od 3, 5′′ do 5′′ . Obvyklou funkcí je hlasová navigace, kdy navigace pˇrehrává pokyny podobnˇe, jako by rˇ idiˇce instruoval spolujezdec. Kvalitní hlasová navigace je i urˇcitým prvkem aktivní bezpeˇcnosti, protože se rˇ idiˇc nemusí dívat na samotný navigaˇcní pˇrístroj a muže ˚ celou svou pozornost vˇenovat dopravní situaci. Samozˇrejmou funkcí se stal také pohled z ptaˇcí perspektivy. Toto zobrazení je pro cˇ lovˇeka pˇrirozenˇejší a rychleji se zorientuje, pokud se potˇrebuje podívat napˇr. na tvar složitˇejší kˇrižovatky. Bˇežná je také funkce otáˇcení mapy podle smˇeru jízdy. Samostatné navigaˇcní pˇrístroje jsou mnohem cˇ astˇejší než varianty integrované. V interiéru vozidla se umist’ují pomocí dodávaného držáku s pˇrísavkou, nejˇcastˇeji na cˇ elní sklo automobilu. Držáky samostatných navigací rozdˇelujeme na: ∙
pasivní 9
ˇ 2. N AVIGA CNÍ SYSTÉM GPS
∙
aktivní
Pasivní držák je pouze plastový výlisek sloužící k uchycení pˇrístroje v interiéru vozidla. Po umístˇení navigace do držáku musí uživatel pˇripojit samostatnˇe i napájecí kabel a pˇrípadnˇe i kabely dalšího pˇríslušenství (napˇr. pˇrijímaˇc zpráv RDSTMC, vˇetší a kvalitnˇejší reproduktor pro hlasovou navigaci). Aktivní držák plní funkci dokovací stanice. Napájení a pˇríslušenství je pˇripojeno nebo integrováno do tohoto držáku a ten je spojen s navigací pomocí k tomu urˇceného konektoru. Vše, co uživatel v tomto pˇrípadˇe musí udˇelat, je vložit pˇrístroj do držáku a zaˇcít jej používat. Protože baterie osazované v automobilových navigacích nemají velkou kapacitu a vystaˇcí k provozu pˇrístroje jen nˇekolik málo hodin, je bˇežné je napájet z palubní sítˇe vozidla. K tomu se používá dodávaný adaptér do zásuvky zapalovaˇce.
Obrázek 2.1: Navigace TomTom Via 120. Zdroj: http://www.tomtom.com Integrované navigace jsou souˇcástí palubního systému. Pomocí jejich displeje se bˇežnˇe ovládá i audio systém vozidla. Displej navigace je umístˇen na stˇredové konzole v její stˇrední nebo vrchní cˇ ásti. Velkou nevýhodou tˇechto pˇrístroju˚ bývá vyšší cena, která zaˇcíná na cˇ ástkách v rˇ ádu desítek tisíc korun. ˇ 2.5.2 Cerné skˇrínky ˇ Slouží k zaznamenávání údaju˚ o pohybu vozidla pro pˇrípad nehody. Bývá umístˇena za cˇ elním sklem vozidla a pomocí kamery zaznamenává dˇení pˇred vozidlem. Vybavenˇejší modely mají dvˇe kamery. Druhá kamera snímá pˇres zadní sklo 10
ˇ 2. N AVIGA CNÍ SYSTÉM GPS
Obrázek 2.2: Navigace Columbus ve voze Škoda Superb. Zdroj: http://www.skoda-auto.cz vozidla dˇení za vozem. Zaˇrízení muže ˚ být vybaveno i pˇrijímaˇcem GPS pro sledování polohy a rychlosti vozidla, pˇrípadnˇe i akcelerometrem pro pˇresné mˇerˇ ení zrychlení. Výhodou použití systému GPS pro snímání rychlosti vozidla je, že není nutné zasahovat do interiéru a elektroinstalace vozidla pro získání tˇechto údaju˚ z palubních pˇrístroju. ˚ Zaˇrízení bˇežnˇe používají dva režimy záznamu: ∙
kontinuální záznam ve smyˇcce, kdy se nejstarší záznamy postupnˇe pˇrepisují novˇejšími,
∙
fixace události, kdy pˇrístroj uchovává pouze posledních nˇekolik minut záznamu a stisknutím tlaˇcítka nebo automaticky (napˇr. pˇri prudkém zpomalení) se záznam uloží.
Funkce cˇ erné skˇrínky ˇ má velký potenciál a oˇcekává se její integrace do automobilových navigací [15]. 2.5.3 Turistické navigace Vyznaˇcují se hlavnˇe odolným provedením tˇela pˇrístroje a dlouhou výdrží na baterie. Podle typu jsou napájeny bud’ tužkovými bateriemi nebo lithiovými cˇ lánky. Tužkové baterie mají výhodu v nižší cenˇe, použitelnosti i v jiných zaˇrízeních a možnosti mít s sebou více páru˚ (zaˇrízení typicky vyžadují pro napájení 2 kusy) pro prodloužení celkové doby výdrže. Bˇežnou funkcí turistických pˇrístroju˚ je na11
ˇ 2. N AVIGA CNÍ SYSTÉM GPS
vigace na souˇradnice. V tomto pˇrípadˇe navigace zobrazuje smˇer a vzdálenost k cíli a je na uživateli, aby volil trasu pohybu. Nejvýznamnˇejším výrobcem turistických navigací je americká firma Garmin. Nabízí desítky modelu˚ rozdílného zamˇerˇ ení, napˇr. turistickou navigaci, cyklistickou navigaci, cyklistický tachometr s GPS nebo sportovní hodinky s GPS. První modely turistických navigací byly ovládány tlaˇcítky, pˇrípadnˇe v kombinaci s joystickem. V roce 2008 pˇredstavila spoleˇcnost Garmin novou modelovou rˇ adu jménem Oregon, která byla jako první turistická navigace vybavena dotykovým displejem [7]. Jako podkategorii turistických navigací lze chápat navigace cykloturistické. Ty pˇrístroje kombinující funkce turistické navigace a sport testeru. Pro funkci tachometru potˇrebují jen dostupný signál GPS, ale je možné pro vˇetší pˇresnost pˇripojit (obvykle bezdrátovˇe) i snímaˇc otáˇcek kola, který bývá cˇ asto kombinován se snímaˇcem kadence (frekvence) šlapání. Pˇrístroje cˇ asto bývají vybaveny barometrickým výškomˇerem. K vˇetšinˇe modelu˚ je možné jako volitelné pˇríslušenství poˇrídit snímaˇc tepové frekvence.
2.5.4 Navigace integrované V poˇcátcích satelitní navigace bylo nutné vlastnit k tomuto úˇcelu samostatné zarˇ ízení. Toto rˇ ešení zvyšovalo cenu a bylo ménˇe variabilní. Pokud uživatel chtˇel turistickou i automobilovou navigaci, musel si poˇrídit dva samostatné produkty. Prvním rˇ ešením této situace byly samostatné pˇrijímaˇce pˇripojené pomocí technologie Bluetooth. Ty je možné pˇripojit k PDA nebo MDA a využít samostatné navigaˇcní aplikace. Uživatel muže ˚ použít více aplikací nebo volitelných map a snadno tak využít jeden pˇrístroj k více úˇcelum. ˚ Samostatné pˇrijímaˇce mají také výhodu ve vˇetší velikosti použité antény, která je citlivˇejší hlavnˇe pˇri slabém signálu, a nˇekteré modely jsou vybaveny konektorem pro externí anténu. Po uvedení GPS cˇ ipu SiRFstarIII od americké firmy SiRF Technology zaˇcali výrobci mobilních telefonu˚ a komunikátoru˚ integrovat pˇrijímaˇc do vˇetšiny pˇrístroju˚ vyšší tˇrídy. Tento cˇ ip se vyznaˇcuje proti svým pˇredchudc ˚ um ˚ vynikajícími vlastnostmi (A-GPS, dvacetikanálový pˇríjem) pˇri nízké spotˇrebˇe elektrické energie a malé ploše cˇ ipu za nízkou cenu [14]. V dnešní dobˇe je integrovaný pˇrijímaˇc GPS bˇežnou výbavou mobilních zaˇrízení stˇrední a vyšší tˇrídy. 12
ˇ 2. N AVIGA CNÍ SYSTÉM GPS
2.5.5 Lokaˇcní hry Nejznámˇejší lokaˇcní hrou je bezesporu geocaching. Za jeho zakladatele je pokládán Dave Ulmer, který 3. kvˇetna 2000 umístil do lesa v americkém Oregonu schránku a zveˇrejnil její souˇradnice na Internetu. Nálezce schránky si mohl ponechat nˇeco z jejího obsahu a na oplátku vložit nˇeco svého. Název geocaching poprvé použil Matt Stum 30. kvˇetna 2000 v mailing listu „GPS Stash Hunt“. V té dobˇe byla hra rozšíˇrena pouze mezi technickými nadšenci. Duvodem ˚ byla nutnost netriviálních znalostí o práci se zemˇepisnými souˇradnicemi, kterou museli hráˇci disponovat. O nˇekolik mˇesícu˚ pozdˇeji založil Jeremy Irish web Geocaching.com, který pomáhal hráˇcum ˚ k snadnˇejší orientaci. Web byl poprvé pˇredstaven 2. rˇ íjna 2000 a pˇri spuštˇení obsahoval 75 skrýší z celého svˇeta. Ještˇe téhož se stal web tak úspˇešným, že provoz na doma hostovaném serveru dosahoval maxima jeho internetového pˇripojení. Proto zakládá spoleˇcnost, která se stará o provoz služby. Jeho spoleˇcníky se staly Elias Alvord a Bryan Roth. Dnes (16. kvˇetna ˇ 2011) je jen v Ceské republice 23 349 skrýší [8]. Centrem celé hry je web na adrese http://www.geocaching.com, který slouží jako katalog skrýší a eviduje výsledky hráˇcu. ˚ Pro pˇrístup k informacím o skrýších je potˇreba se na tomto webu bezplatnˇe registrovat. Bˇehem registrace hráˇc potvrzuje souhlas s pravidly, která od hráˇcu˚ vyžadují respektování osobního vlastnictví pˇri zakládání skrýší, šetrnost k pˇrírodˇe a zakazuje sdˇelovat informace o poloze skrýší mimo hráˇcskou komunitu. Pokud hráˇc skrýš nalezne, zapíše se do urˇceného zápisníku a zaprotokoluje to i na webu.
13
Kapitola 3
Formát GPX GPX je otevˇrený formát pro výmˇenu informací mezi navigaˇcními aplikacemi. Jedná se o textové soubory jejichž obsah je strukturován v metajazyku XML. Struktura uložených informací je definována pomocí techniky XML Schema. Formát pˇredepisuje velké množství možných položek, které jsou pro pˇredpokládaného uživatele aplikace TrackOnMapEditor (viz kapitola 4) nezajímavé a zbyteˇcnˇe podrobné. Proto aplikace TrackOnMapEditor pracuje pouze s podmnožinou tohoto formátu. Formát GPX rozlišuje: ∙
uzly (samostatné, nebo tvoˇrící trasy/cesty)
∙
trasy (anglicky routes)
∙
cesty (anglicky tracks)
Trasy jsou naplánované posloupnosti bodu˚ urˇcené k budoucí navigaci. Cesty jsou záznamy provedeného pohybu. Vˇetšina navigaˇcních zaˇrízení/aplikací umožnuje ˇ i navigaci podle zaznamenané cesty. Cesty se skládají z jedné nebo více sekvencí bodu. ˚ K rozdˇelení záznamu do více sekvencí dochází typicky pˇri výpadku navigaˇcního signálu. V jednom souboru muže ˚ být uloženo více tras i cest. Pro trasy a cesty aplikace TrackOnMapEditor zpracovává informace o jménˇe, popisu a komentáˇri. Jednotlivé trasy a cesty se skládají z uzlu. ˚ Pro uzly program pracuje s položkami: ∙
kartografické souˇradnice
∙
jméno
∙
nadmoˇrská výška
∙
cˇ as 14
3. F ORMÁT GPX ∙
poˇcet družic použitých k výpoˇctu polohy
∙
pˇresnost
∙
komentáˇr
∙
popis
Detailní popis jednotlivých položek je dostupný ve specifikaci formátu na webu http://www.topografix.com/gpx.asp.
15
Kapitola 4
Aplikace TrackOnMapEditor Souˇcástí práce bylo vytvoˇrení aplikace TrackOnMapEditor, sloužící pro interaktivní práci se soubory formátu GPX. Aplikace je implementována v programovacím jazyce Java a je urˇcena pro použití na osobním poˇcítaˇci. Pˇredpokládaným užitím programu je plánování (cyklo)turistických výletu˚ a úprava uživatelem zaznamenaných tras.
4.1
Dostupné alternativy
Už dˇríve existovaly aplikace, umožnující ˇ interaktivní editaci souboru˚ GPX. Tyto aplikace mají nˇekterá omezení, které byly duvodem ˚ pro vznik aplikace TrackOnMapEditor. Aplikace TrekView, dostupná online na adrese http://www.trekview.cz, je vytvoˇrena v jazyce PHP s použitím API služby Mapy.cz (http://www.mapy. cz). Hlavním omezením aplikace je použití bezplatného hostingu. To výraznˇe omezuje výkon aplikace, negativnˇe ovlivnuje ˇ rychlost uživatelské odezvy a cˇ asto zpusobuje ˚ její nedostupnost. Licenˇcní podmínky použití API služby Mapy.cz nedovolují autorovi aplikace umístit na webovou stránku napˇr. reklamu, která by hradila náklady na provoz kvalitnˇejšího hostingu. Dále tato aplikace neumožnuje ˇ editaci bodu˚ zaznamenané trasy a ergonomie ovládání kvuli ˚ nutnosti pˇrepínání nˇekolika režimu˚ nízká. Poslední nevýhodou aplikace je podoba výsledného souboru GPX, který není nijak strukturován a je obtížné jej cˇ íst. Aplikace Cykloatlas on-line, dostupná na webových stránkách http://www. cykloserver.cz, nabízí pˇríjemné uživatelské rozhraní i rychlou odezvu. Omezením je možnost pˇridávat nový bod pouze na konec trasy. Dále aplikace neumí importovat soubory obsahující více tras, více cest nebo jejich kombinací. Pˇri pokusu o import takového souboru aplikace reaguje, jako by v souboru nebyly uloženy žádné informace nebo importuje pouze jejich cˇ ást. V pˇrípadˇe pokusu o import nevalidního souboru se aplikace chová, jako by soubor byl prázdný a nijak 16
4. A PLIKACE T RACK O N M AP E DITOR neinformuje uživatele o chybˇe.
4.2
Implementace
4.2.1 Uživatelské rozhraní K vytvoˇrení uživatelského rozhraní byla použita knihovna Swing, která je soucˇ ástí jazyka Java od verze 1.2 [9]. Jak je patrné z obrázku 4.1, grafické uživatelské rozhraní je opticky rozdˇeleno na tˇri cˇ ásti: ∙
zobrazení mapy
∙
ovládací panel
∙
stavový rˇ ádek
Obrázek 4.1: Uživatelské rozhraní aplikace TrackOnMapEditor Ovládací panel a pod ním umístˇená oblast stavového rˇ ádku se nachází v levé cˇ ásti okna aplikace. Zbylý prostor okna je vyhrazen zobrazení mapy. Toto usporˇ ádání umožnuje ˇ využít maximálního možného vertikálního rozlišení monitoru 17
4. A PLIKACE T RACK O N M AP E DITOR a tím kompenzovat vzrustající ˚ pomˇer stran (16:9) u novˇe prodávaných monitoru. ˚ V pˇrípadˇe, že vertikální rozlišení oblasti ovládacího panelu je nižší než prostor potˇrebný pro zobrazení všech jeho prvku, ˚ je panel vykreslen jako posuvný. Všechny texty zobrazené v rozhraní jsou pˇreloženy do cˇ eštiny a angliˇctiny. Použitý jazyk se volí podle nastavení hostujícího operaˇcního systému. Pokud je jazyk systému odlišný od výše jmenovaných, je použita anglická jazyková varianta. Výjimkou z tohoto pravidla je bˇeh na operaˇcním systému ve slovenském jazyce, pro který aplikace použije cˇ eskou jazykovou variantu. 4.2.2 Zdroje mapy Aplikace používá bitmapové mapy, které mohou být tvoˇreny jedním nebo více na sebe navazujícími obrázky (ˇrezy). Mapové podklady jsou získávány více zpu˚ soby. Každý zdroj mapy je reprezentován samostatnou tˇrídou implementující rozhraní MapSource. Prezentovaná verze aplikace TrackOnMapEditor podporuje pˇrímé získávání podkladu˚ ze služby Mapy.cz a naˇcítání map z disku ve formátu používaném aplikací TrekBuddy (http://www.trekbuddy.cz). Jednotlivé mapové zdroje jsou reprezentovány samostatnými tˇrídami. API pro komunikaci aplikace se zdrojem mapy je definováno rozhraním MapSource. Implementované zdroje mapy jsou potomky abstraktní tˇrídy AbstractMapSource, která implementuje cˇ ást rozhraní MapSource. Pˇrípadné zdroje mapy od dalších autoru˚ by mˇely také rozšiˇrovat tˇrídu AbstractMapSource pro zachování kompatibility nových verzí rozhraní. V pˇrípadˇe, že do aplikace bude pˇridána nová funkce, která bude požadovat rozšíˇrení API, bude vhodnˇe rozšíˇrena i tˇrída AbstractMapSource, aby informovala, že požadovaná funkce není dostupná. 4.2.3 Vykreslení mapy Mapa je vykreslována v objektu tˇrídy MapJPanel, která je potomkem tˇrídy JPanel. Instanci tˇrídy MapJPanel je pomocí novˇe pˇridaných metod pˇredána množina rˇ ezu˚ k vykreslení. Pro vykreslení tˇechto rˇ ezu˚ je nutné pˇrekrýt metodu paintComponent(Graphics g) z rodiˇcovské tˇrídy tak, aby inicializovala vykreslení zobrazovaných rˇ ezu. ˚ Obrázky jsou tˇrídˇe pˇredávány spolu se souˇradnicemi, na kterých se má rˇ ez vykreslit, a jsou zapouzdˇreny v instanci tˇrídy MapSlice. Dále je tˇrída oproti rodiˇcovské tˇrídˇe JPanel rozšíˇrena o metody ovlivnujících ˇ zpusob ˚ vykreslení (viz kapitola 4.2.4). Mapy ze služby Mapy.cz jsou stahovány po jednotlivých rˇ ezech. Adresy rˇ ezu˚ mají formát http://mserver.mapserver.mapy.cz/druh/zoom_PPx_PPy. Zvýraznˇe18
4. A PLIKACE T RACK O N M AP E DITOR né cˇ ásti jsou promˇenné. Server je cˇ íslo 1–4, které urˇcuje fyzický stroj, ze kterého bude obrázek naˇcítán. Druh urˇcuje mapový podklad. Zoom je cˇ íslo 1–17 urˇcující pˇriblížení mapy. PPx a PPy jsou souˇradnice promítnuté v levého dolního rohu rˇ ezu v souˇradném systému PP. Možnými druhy mapového podkladu jsou: ∙
base-n (základní podklad)
∙
turist (turistický podklad)
∙
ophoto (letecký fotografický pohled)
∙
hybrid (vrstva popisku˚ pro fotografický pohled)
∙
ttur (vrstva turistických tras)
∙
tcyklo (vrstva cykloturistických tras)
Souˇradnice v souˇradném systému PP jsou získány posunutím a vynásobením souˇradnic systému UTM. Tato úprava je provedena pro získání celoˇcíselné reprezentace souˇradnic pro potˇreby webové aplikace Mapy.cz [10, str. 24] a v aplikaci TrackOnMapEditor jsou souˇradnice v systému PP používány pouze pro získání adresy požadovaného rˇ ezu. Aplikace si udržuje ve zdroji zpˇrístupnujícím ˇ mapy ze služby Mapy.cz informaci o zemˇepisné souˇradnici, která bude vykreslena v levém horním rohu mapové oblasti. Pˇri požadavku na vykreslení mapy vypoˇcítá oznaˇcení (adresu) rˇ ezu a pixel v tomto rˇ ezu, na kterém bude referenˇcní bod promítnut. Z tˇechto informací vypoˇcte umístˇení tohoto rohového rˇ ezu vuˇ ˚ ci zobrazovací oblasti. Poté postupuje po rˇ ádcích a postupnou inkrementací umístˇení zobrazení a adresy rˇ ezu generuje množinu rˇ ezu˚ použitých k vykreslení požadovaného pohledu. Tyto rˇ ezy pˇredá tˇrídˇe MapJPanel k vykreslení. Protože jsou rˇ ezy naˇcítány ze sítˇe Internet, což muže ˚ být cˇ asovˇe nároˇcné, jsou naˇctené rˇ ezy uchovávány pro další použití v cache implementované pomocí datové struktury LRUMap [11]. Druhým zpusobem ˚ získání mapových podkladu, ˚ který je v aplikaci implementován, je naˇcítání kalibrovaných rˇ ezu˚ z nekomprimovaného archivu formátu tar. Struktura souboru, ˚ kterou aplikace v archivu oˇcekává, je shodná s formátem používaným aplikací TrekBuddy. Uživatel si muže ˚ zvolit naˇctení pouze jedné mapy, nebo tzv. atlasu, který umožnuje ˇ sdružovat podobné mapy. 19
4. A PLIKACE T RACK O N M AP E DITOR
Obrázek 4.2: Vykreslení mapy ze služby Mapy.cz
O zobrazení mapy se stará tˇrída Map z balíku cz.muni.fi.xsnajdr.trackonmapeditor.offlineMaps.tbAtlas. Na disku je naˇcítaný mapový podklad uložen v archivu tar jako množina menších, na sebe navazujících rˇ ezu, ˚ tvoˇrících celý obraz. Jednotlivé rˇ ezy jsou pojmenovány podle vzoru jmeno_x_y.pripona kde, jmeno je název mapy, X je horizontální souˇradnice pixelu v levém horním rohu rˇ ezu zobrazená v celém obrazu mapy, Y je vertikální souˇradnice pixelu v levém horním rohu rˇ ezu zobrazená v celém obrazu mapy. Jednotlivé rˇ ezy mají stejné rozmˇery. Výjimkou jsou pouze okrajové rˇ ezy, které mohou být menší. Rozmˇery rˇ ezu˚ aplikace rozpozná podle názvu˚ souboru. ˚ V archivu se dále nachází textový soubor s kalibraˇcními informacemi. Pro zobrazení mapy je nutné z tohoto souboru naˇcíst celkové rozmˇery zobrazované mapy. Další informace uložené v souboru nejsou pro zobrazení mapy významné a jejich úˇcel je popsán v kapitole 4.2.6. Tˇrída Map si jako referenˇcní bod pro zobrazování uchovává souˇradnice ve virtuálním (složeném) obrazu, které jsou aplikací zobrazeny v levém horním rohu mapové oblasti. Pˇri požadavku na vykreslení mapy tˇrída provede obdobný výpoˇcet jako v pˇrípadˇe naˇcítání rˇ ezu˚ ze služby Mapy.cz. Urˇcí názvy zobrazených 20
4. A PLIKACE T RACK O N M AP E DITOR rˇ ezu˚ a polohu v mapové oblasti aplikace, na kterou budou vykresleny a poté je v samostatném vláknˇe naˇcte z disku a pˇredá k zobrazení. 4.2.4 Manipulace s mapou Všechny manipulace s mapou jsou uživatelským rozhraním pˇreloženy na volání pˇríslušných metod rozhraní MapSource a pˇredány uživatelem zvolenému zdroji mapy. Posun mapy je vyvolán použitím metody moveMap(Move move) na aktivním zdroji mapy, kde parametrem move je vyjádˇren poˇcet pixelu, ˚ o který se posune pohled mapy. Hodnota je vyjádˇrena dvˇema celoˇcíselnými hodnotami (pro horizontální a vertikální posun) zapouzdˇrenými ve tˇrídˇe Move. Kladné hodnoty jsou reprezentací posunu pohledu po mapˇe nahoru/doleva a záporné dolu/doprava. ˚ V pˇrípadˇe implementovaných zdroju˚ mapy (kapitola 4.2.2) je zkontrolována a omezena velikost posunu (viz dále) a zmˇenˇena poloha referenˇcního bodu mapy (kapitola 4.2.3) a inicializováno nové vykreslení mapy. Pˇri pˇresouvání pohledu myší není bˇehem pohybu voláno posunutí ve zdroji mapy. V okamžiku stisknutí pravého tlaˇcítka myši nad oblastí mapy si aplikace zapamatuje toto umístˇení. Za stálého držení tlaˇcítka uživatelské rozhraní pˇri posouvání myši generuje události mouseDragged. Pˇri zpracování události je vypocˇ ítán posun od pˇredchozí pozice (kliknutí nebo události tažení) a tento posun je pˇridán k poˇcítanému celkovému posunu. Hodnota celkového posunu je pˇrípadnˇe omezena (viz dále) a oznámena instanci tˇrídy MapJPanel vykreslující mapu pomocí metody paintDragged(Move move). Tˇrída MapJPanel poté vykreslí aktuálnˇe zobrazované rˇ ezy s posunutím oproti jejich puvodním ˚ pozicím. Po uvolnˇení tlacˇ ítka myši je v aktivnímu zdroji mapy metodou moveMap(Move move) pˇredána hodnota celkového posuvu. Na obrázku 4.3 je uveden názorný pˇríklad. Jednotlivé kroky pˇredstavují následující posloupnost akcí: 1.
Stisknutí pravého tlaˇcítka myši na souˇradnicích [100, 50].
2.
Událost tažení. Vypoˇctený posun [0, 30], limitovaný posun [0, 20]. Limitovaný posun pˇredán k zobrazení.
3.
Událost tažení. Vypoˇctený posun [0, 20], vypoˇctený plus pˇredchozí limitovaný posun [0, 40], limitovaný posun [0, 20]. Limitovaný posun pˇredán k zobrazení.
4.
Událost tažení. Vypoˇctený posun [−10, −35], vypoˇctený plus pˇredchozí limitovaný posun [−10, −15], limitovaný posun [−10, −15]. Limitovaný po21
4. A PLIKACE T RACK O N M AP E DITOR sun pˇredán k zobrazení. Pravé tlaˇcítko myši uvolnˇeno. Na aktivním zdroji mapy zavolána metoda moveMap([−10,−15]).
Obrázek 4.3: Pˇríklad posun pohledu mapy pomocí myši. Zobrazovaná mapa je koneˇcná a je nutné zajistit, aby se uživatel nemohl zobrazovaným pohledem dostat za její hranice. V pˇrípadˇe rˇ ezu˚ naˇcítaných z disku, je omezení dané hranicemi obrazu. Pro podklady naˇcítané ze služby Mapy.cz je hranice zvolena umˇele s ohledem na pˇresnost dalších výpoˇctu˚ a pˇribližnˇe odpovídá rozsahu turistické mapy. Implementované zdroje mapy toto rˇ eší výpoˇctem povolených rozsahu˚ posunu v okamžiku generování zobrazení mapy. Pˇri posunech mapy je poté velikost požadovaného posuvu porovnávána s touto hodnotou. K porovnání slouží v API zdroje mapy metoda limitMove(Move move), která v pˇrípadˇe pˇrekroˇcení maximálního možného posunu sníží upraví hodnotu zpracovávaného pohybu pohledu. Limit posuvu je reprezentován jako cˇ tyˇri celoˇcíselné hodnoty, jedna pro každý smˇer (obr. 4.4). Princip fungování omezení je naznaˇcen v pˇríkladu výše. Pro mapy získané ze služby Mapy.cz je implementována uživatelsky pohodlná zmˇena pˇriblížení otáˇcením koleˇcka myši nebo posuvníkem v menu. Každý stupenˇ pˇriblížení má vždy dvakrát vˇetší mˇerˇ ítko, než ten pˇredchozí. Pˇri zmˇenˇe pˇriblížení mapy pomocí posuvníku by mˇel bod vykreslený uprostˇred zobrazované oblasti zustat ˚ na stejném místˇe. Aby toho bylo docíleno, musí se po pˇriblížení pohled pˇresunout. Pˇri zmˇenˇe pˇriblížení o jeden stupenˇ je velikost posunu rovna polovinˇe jeho velikosti v novém pˇriblížení doprava a dolu˚ pˇri pˇriblížení a o cˇ tvrtinu velikosti nového pohledu (vzdálenˇejšího) nahoru a doleva pˇri oddálení 22
4. A PLIKACE T RACK O N M AP E DITOR
Obrázek 4.4: Omezení posuvu mapy. (obr 4.5). V pˇrípadˇe zmˇeny pˇriblížení o nˇekolik stupnˇ u˚ najednou, je nutné provést jednotlivé posuny rˇ etˇezovˇe.
Obrázek 4.5: Korekce polohy pˇri pˇriblížení ˇ eji budou uživatelé využívat zmˇenu pˇriblížení pomocí otáˇcení koleˇcka Castˇ myši. Otáˇcení koleˇcka smˇerem od uživatele znamená pˇriblížení pohledu a pohyb k uživateli oddálení, což je konzistentní s bˇežným chováním jiných aplikací. Aby 23
4. A PLIKACE T RACK O N M AP E DITOR pˇriblížení pusobilo ˚ pro uživatele pˇrirozenˇe, je vhodné, aby zemˇepisné souˇradnice pixelu mapy vykresleného pod kursorem myši v okamžiku pohybu koleˇcka myši byly stejné i po pˇriblížení. Vzniká tím pˇrirozený dojem pˇribližování se k objektu. Pro dosáhnutí tohoto efektu je nutné kromˇe posunutí související se zmˇenou mˇerˇ ítka, uvedeným výše, provést ještˇe další korekci polohy pohledu. Velikost této korekce pro pˇriblížení je vzdálenost kursoru myši (bodu pˇriblížení) od stˇredu pohledu (obr. 4.6) a polovina této vzdálenosti v opaˇcném smˇeru pro oddálení pohledu.
Obrázek 4.6: Korekce polohy pˇri pˇriblížení myší
4.2.5 Vykreslení bodu/trasy ˚ Pro zobrazení bodu/tras ˚ jsou ve tˇrídˇe MapJPanel pˇridány podobné metody sloužící k pˇredání a nastavení množiny zobrazovaných bodu/tras ˚ jako v pˇrípadˇe zobrazení mapy. Podobnˇe jako pro zobrazení rˇ ezu˚ mapy je i pro zobrazení bodu/tras ˚ rozšíˇrena metoda paintComponent(Graphics g) této tˇrídy. Pˇri rozhodování, na jaké místo vykreslit požadovaný bod, je nutno znát, jaká transformace je u aktivního zdroje mapy použita. Proto je tato úloha rˇ ešena každým zdrojem mapy samostatnˇe (viz kapitola 4.2.6). Pˇri vykreslení trasy musí aplikace zjistit, který druh bodu˚ je požadován k zobrazení. To zjistí dotazem na komponentu JTabbedPane, která vrátí informaci, která ze záložek je zvolena. Podle záložky dále zvolí, zda použije metodu pro zobrazení samostatných bodu˚ nebo tras. V obou pˇrípadech aplikace prochází všechny položky ze seznamu zobrazeného na zvolené záložce. Pro každou položku se zdroje mapy zeptá, jaká je její poloha v aktuálnˇe vykreslované oblasti mapy. Pokud je poloha ve viditelné oblasti, je bod zaˇrazen do kolekce, která je po zpracování všech bodu˚ pˇredána k vykreslení tˇrídˇe MapJPanel. 24
4. A PLIKACE T RACK O N M AP E DITOR Pˇri zobrazování tras jsou aplikací generovány viditelné sekvence bodu. ˚ Pˇri generování sekvence jsou do ní zaˇrazeny i body pˇred viditelnou cˇ ástí a po ní, což zajistí vykreslení spojovací linky vedoucí mimo oblast vykreslení. Jednotlivé viditelné sekvence jsou pˇredány k vykreslení tˇrídˇe MapJPanel. Filtrovaní bodu˚ na viditelné a skryté dovoluje zpracování velkého množství bodu˚ s malými nároky na systémové prostˇredky. V pˇrípadˇe, kdy by byly tˇrídou MapJPanel vykreslovány i neviditelné body, byl by nárust ˚ s tím spojené režie výraznˇe vyšší, než rozhodnutí o viditelnosti zobrazení bodu.
Obrázek 4.7: Zobrazení trasy Pˇred tím, než je zpracovávaný bod pˇredán k vykreslení, aplikace pro potˇreby odlišení pˇri vykreslování zjistí, jestli je bod oznaˇcen a jeho pozici ve vykreslované trase. Zobrazovaný bod je pˇredáván jako instance tˇrídy PointInMap. Tˇrída PointInMap zapouzdˇruje do jednoho objektu: ∙
polohu bodu ve vykreslované oblasti
∙
odkaz na jeho instanci ve struktuˇre souboru GPX 25
4. A PLIKACE T RACK O N M AP E DITOR ∙
informaci, zda je bod oznaˇcen a cˇ i je první nebo poslední v zpracovávané množinˇe bodu˚ (pro vizuální odlišení)
4.2.6 Výpoˇcet polohy uzlu Mapa získaná ze služby Mapy.cz je složena z dlaždic, jejichž hrana odpovídá konstantní zemˇepisné vzdálenosti. Toto umožnuje ˇ vypoˇcítat pomˇer poˇctu pixelu˚ mapy k zemˇepisné vzdálenosti. Tento pomˇer je rozdílný pro každý stupenˇ pˇriblížení a je pevnˇe zadán ve zdrojovém kódu. Pˇri požadavku na výpoˇcet odpovídajících zemˇepisných souˇradnic oznaˇceného pixelu zdroj mapy vypoˇcítá vzdálenost zobrazeného pixelu od levého horní rohu mapové oblasti. Tuto zobrazenou vzdálenost vynásobí podle aktuálního stupnˇe pˇriblížení pˇríslušnou konstantou a výslednou hodnotu pˇriˇcte k souˇradnicím levého horního rohu pohledu, které si zdroj mapy udržuje jako referenˇcní. Výsledkem jsou zemˇepisné souˇradnice odpovídající oznaˇcenému pixelu. Výpoˇcet bodu v pohledu, na který bude vykreslen bod o známých zemˇepisných souˇradnicích, je inverzním postupem výše uvedeného. Zdroj mapy vypoˇcítá geografickou vzdálenost bodu od referenˇcního levého horního bodu pohledu, vydˇelí hodnotu pˇríslušnou konstantou a výsledkem je pozice v pohledu, která odpovídá zadaným souˇradnicím. Pro podklady získané naˇctením kalibrovaných rˇ ezu˚ z disku je pˇrepoˇcet sourˇ adnic bodu v obrázku mapy na jeho odpovídající zemˇepisné souˇradnice a naopak proveden pomocí bilineární transformace. Vstupem pro tuto transformaci je seznam nejménˇe tˇrí dvojic bodu. ˚ K výpoˇctu transformace aplikace využívá služeb knihovny Geotools (http://geotools.org/). Negativem této jednoduché transformace je, že poskytuje kvalitní výsledky pouze pro mapy, jejichž hrany jsou rovnobˇežné s rovnobˇežkami a poledníky a tvoˇrí obdélník. Cílem dalšího vývoje aplikace by mˇelo být zkvalitnˇení výpoˇctu kalibrace. 4.2.7 Úprava trasy Úprava trasy v aplikaci je možná dvˇema zpusoby. ˚ Pˇrímou editací hodnot v pravé cˇ ásti okna nebo manipulací s body nad mapou. Editace hodnot je ekvivalentní pˇrímé úpravˇe editovaného souboru a slouží spíše k zobrazení a doplnˇení doprovodných informací (jméno bodu, nadmoˇrská výška, popis, . . . ). Zmˇena umístˇení bodu nad mapou vyžaduje jako první krok identifikaci, který uzel byl myší vybrán. V okamžiku, kdy uživatel v oblasti mapy stiskne tlaˇcítko myši, je uživatelským prostˇredím generována pˇríslušná událost. Pokud uživa26
4. A PLIKACE T RACK O N M AP E DITOR tel stiskl levé tlaˇcítko myši, aplikace prochází seznam vykreslených bodu, ˚ jehož sestavení bylo popsáno v kapitole 4.2.5. Rozhodnutí, zda byl oznaˇcen konkrétní bod, je provedeno na základˇe porovnání vzdálenosti bodu vzniku události stisknutí tlaˇcítka a umístˇení porovnávaného uzlu v mapˇe. Pokud je tato vzdálenost menší nebo rovna polomˇeru kružnice, používané jako grafické reprezentace umístˇení, je uzel považován za oznaˇcený. Zobrazení jednotlivých bodu˚ v mapˇe se mohou pˇrekrývat a pˇri praktickém použití tento jev nastává bˇežnˇe. Bˇehem vykreslování uzlu˚ je postupováno podle poˇradí jejich umístˇení v souboru a proto pˇrirozenˇe pozdˇeji se vyskytující prvky pˇrekrývají dˇríve zobrazené. Z tohoto du˚ vodu je výhodné hledat oznaˇcený bod od konce seznamu vykreslených uzlu˚ a toto hledání ukonˇcit pˇri nalezení prvního vhodného výskytu (obr 4.8).
Obrázek 4.8: Výbˇer uzlu Pˇri reakci na událost stisknutí tlaˇcítka myši si aplikace zapamatuje místo jejího vzniku a bere jej v potaz pˇri dalším rozhodování. Pokud byl pˇri stisknutí tlaˇcítka oznaˇcen uzel, je pˇri následném tažení myší mˇenˇena pouze hodnota jeho polohy ve vykreslované oblasti uložená v instanci tˇrídy PointInMap. Tímto vzniká efekt jeho pˇresouvání v mapˇe. Pˇri události uvolnˇení tlaˇcítka myši obslužná metoda zkontroluje, jestli byl dˇríve zvolen nˇejaký uzel a pokud ano, ovˇerˇ í, zda se místo uvolnˇení tlaˇcítka neshoduje s polohou stisknutí. Pokud jsou body stisknutí a uvolnˇení tlaˇcítka rozdílné, dotáže se aktivního zdroje mapy na zemˇepisné souˇradnice v místˇe uvolnˇení uzlu (viz kapitola 4.2.6) a ty jsou nastaveny jeho reprezentaci ve struktuˇre souboru GPX. Odkaz na tento objekt je získán z oznaˇcené instance tˇrídy PointInMap. 4.2.8 Vstup a výstup Upravovaný soubor muže ˚ být kompletnˇe vytvoˇren uživatelem, nebo je naˇcten ze souboru ve formátu GPX (kapitola 3). Naˇcítání probíhá ve vlastním vláknˇe implementovaném dˇedˇením tˇrídy SwingWorker. Aplikace nejdˇríve ovˇerˇ í, že za27
4. A PLIKACE T RACK O N M AP E DITOR daný vstupní soubor je validní za pomoci prostˇredku˚ poskytovaných Java Core Library v balíku javax.xml. V pˇrípadnˇe nevalidního vstupu je naˇcítání pˇrerušeno a uživateli je dotázán, zda si pˇreje pokraˇcovat. Naˇcítání nevalidního vstupního souboru muže ˚ vést k neoˇcekávaným chybám, zpusobujícím ˚ nestandardní chování aplikace až její pád a uživatel je na to upozornˇen. Pokud je vstup validní, je naˇcten do pamˇeti pomocí SAX parseru a tˇrídˇe MainWindow je pˇredána novˇe vzniklá instance tˇrídy GPXFile reprezentující naˇctený soubor. Výstup do souboru je také realizován ve vlastním vláknˇe pomocí dˇedˇení tˇrídy SwingWorker. Poté, kdy je pomocí prostˇredku˚ poskytovaných tˇrídou JFileChooser získána instance tˇrídy File, která reprezentuje soubor pro zápis, je v novém vláknˇe spuštˇena metoda toGpx tˇrídy GPXFile. Tato metoda vypíše hlaviˇcku souboru na výstup a postupnˇe vyvolá stejnˇe pojmenovanou metodu v objektech reprezentujících jednotlivé prvky formátu GPX. Ty kaskádovˇe vypisují na výstup jimi reprezentovanou informaci a spouští metodu toGPX na jimi podˇrízených objektech. Výstup je formátován (nový rˇ ádek pro každý tag, odsazení), aby byl snadno cˇ itelný i pro pozdˇejší pˇrímé cˇ tení/editaci. V pˇrípadˇe, že nebylo možno soubor uložit, je uživatel informován modálním dialogovým oknem.
28
Kapitola 5
Závˇer Práce popsala satelitní navigaˇcní systém GPS a jeho použití. Uvedený popis je dostateˇcnˇe podrobný, aby cˇ tenáˇr získal komplexní o dané problematice, který mu umožní plnohodnotné využití technologie. Hlavním cílem práce bylo vytvoˇrení funkˇcní aplikace. Tento cíl byl naplnˇen. Aplikace podporuje všechny plánované funkce a je plnˇe použitelná k zamýšlenému úˇcelu. V porovnání s uvedenými alternativami aplikace neztrácí a netrpí jejich problémy. Bˇehem vývoje aplikace byla veˇrejnˇe uvolnˇena jedna testovací verze. Nˇekteré reakce uživatelu˚ byly zapracovány do aplikace, nˇekolik bylo zaˇrazeno mezi plánované rozšíˇrení. Pro zlepšení uživatelského komfortu a rozšíˇrení schopností aplikace plánuji pˇri dalším rozvoji aplikace implementovat následující funkce: ∙
Import souboru˚ a tím umožnit jejich spojování.
∙
Mˇerˇ ení vzdálenosti
∙
Implementace práce se schránkou nad body trasy.
∙
Možnost mˇenit poˇradí bodu. ˚
∙
Uživatelské nastavení (napˇr. barev vykreslovaných bodu) ˚ a pamatování stavu pˇri ukonˇcení.
∙
Zobrazení jména bodu v mapˇe.
∙
Zobrazení výškového profilu.
∙
Více možných formátu˚ vložení souˇradnic.
∙
Oddˇelit zdroje mapy jako samostatné pluginy a pˇridat další zdroje mapy.
29
Literatura [1] RAPANT, Petr. Družicové polohové systémy. 1. vydání. Ostrava : Vysoká škola bánská ˇ – Technická univerzita, 2002. 197 s. 80-248-0124-8. [2] SNÁŠEL, Jaroslav. Už vím, jak pracuje navigaˇcní systém GPS. In navigovat.cz. [online]. Brno : CPress Media, a. s., 21. 10. 2005 [citováno 22. 4. 2010]. Dostupný z WWW:
. [3] KOCERA, Ivo. Poˇrádek ve zkratkách: co znamená A-GPS? In navigovat.cz. [online]. Brno : CPress Media, a. s., 1. 4. 2010 [citováno 22. 4. 2010]. Dostupný z WWW: . [4] Wikipedie: Otevˇrená encyklopedie: Diferenciální GPS [online]. c2010 [citováno 22. 4. 2010]. Dostupný z WWW: . [5] Wikipedie: Otevˇrená encyklopedie: Global Positioning System [online]. c2011 [citováno 20. 6. 2011]. Dostupný z WWW: . ˇ [6] CÍŽEK, Jakub. Hackujeme Google: vím, kde je tvuj ˚ Wi-Fi router. In zive.cz. [online]. Brno : Mladá fronta, a. s., 16. 12. 2010 [citováno 20. 6. 2011]. Dostupný z WWW: . [7] IGRINI, Tomáš. Nový Garmin Oregon - fotky. In Svet GPS. [online]. NAVIGATOR.SK, s.r.o., 11. 7. 2008 [citováno 18. 12. 2011]. Dostupný z WWW: . 30
ˇ 5. Z ÁV ER
[8] The History of Geocaching. [online] [citováno 15. 12. 2011]. Dostupný z WWW: . ˇ [9] HEROUT, Pavel. Java - grafické uživatelské prostˇredí a cˇ eština. 2. vydání. Ceské Budˇejovice : Kopp, 2001. 316 s. 978-80-7232-328-9. ˇ [10] JELÍNEK, Lukáš. 3D mapy. Diplomová práce. Praha: Ceské vysoké uˇcení technické. Fakulta elektrotechnická. 2010. Vedoucí práce RNDr. Marko Genyk-Berezovskyj. [11] Tˇrída LRUMap. Commons Collections. [Online; citováno 24. 10. 2011] Dostupný z WWW: . [12] Oracle: The JavaTM Tutorials. [online] [citováno 15. 12. 2011]. Dostupný z WWW: . [13] Oracle: JavaTM Platform, Standard Edition 6 API Specification. [online] [citováno 15. 12. 2011]. Dostupný z WWW: . [14] CSR: SiRFstarIII GSC3e/LPx and GSC3f/LPx. [online]. CSR, [citováno 20. 6. 2011]. Dostupný z WWW: . [15] Kuruc, J.: Nový Garmin bude zárovenˇ cˇ ernou skˇrínkou. ˇ 2011, [Online; citováno 20. 6. 2011]. URL http://navigovat.mobilmania.cz/bleskovky/ novy-garmin-bude-zaroven-cernou-skrinkou/ sc-266-a-1315916
31
Pˇríloha A
Licence Aplikace TrackOnMapEditor je dostupná pod licencí GNU GPLv3. Byla zvolena pro dodržení požadavku˚ licence GNU GPL, kterou je podmínˇeno použití jazyku Java. Nˇekteré použité souˇcásti jsou dílem, nebo jsou založeny na dílech jiných autoru˚ a jsou dostupné pod licencemi, které umožnují ˇ jejich použití v aplikaci. Jedná se o tyto prvky: ∙
Knihovna jtar - Apache License 2.0 (http://code.google.com/p/jtar/ citováno 24. 10. 2011)
∙
Soubory arrowdown.png, arrowup.png, arrowleft.png a arrowright.png - Creative Commons.
∙
Soubory document-new.png, edit-add.png a edit-remove.png - LGPL-2.1.
∙
Soubory document-save.png a draving.png - Creative Commons BY-SA 3.0 a LGPL.
∙
Soubory drive-harddisk.png a document-open.png - GPLv2.
∙
Soubor gpx.xsd - Public Domain (http://www.topografix.com/gpx.asp citováno 15. 12. 2011).
∙
Knihovna Joda-Time - Apache License 2.0 (http://joda-time.sourceforge.net/ citováno 19. 10. 2011)
∙
Knihovna Geotools - LGPL (http://geotools.org/)
∙
Knihovna Commons Collections - Apache License 2.0 (http://commons.apache.org/collections) 32
A. L ICENCE Jednotlivá díla byla získána z uvedených stránek nebo ze služby Open Icon Libraly (http://openiconlibrary.sourceforge.net/). Informace o licencích jsou uvedeny v souborech README.txt a licence.txt, které jsou distribuovány spolu s aplikací.
33
Pˇríloha B
Ovládání aplikace Aplikace je urˇcena pro ovládání myší. Posun mapy je realizován tažením myši pˇri stisknutém pravém tlaˇcítku v oblasti mapy. Vykreslené body trasy lze pˇresouvat chycením a pˇresunem pomocí levého tlaˇcítka myši. Pˇri souˇcasném držení kláves ALT a SHIFT a kliknutí levým tlaˇcítkem myši do mapy bude na oznaˇcené místo pˇresunut oznaˇcený bod (pˇri více oznaˇcených bodech, první v poˇradí). Kliknutí levým tlaˇcítkem myší za souˇcasného držení kláves ALT a CTRL vytvoˇrí nový bod, který bude zaˇrazen za aktuální oznaˇcený. Výbˇer více bodu˚ za souˇcasného držení CTRL a SHIFT je možný dle obvyklých zvyklostí. Fungují obvyklé klávesové zkratky pro otevírání/ukládání souboru. Pokud je aplikace spuštˇena s argumenty a prvním z nich je soubor, pokusí se jej otevˇrít. To umožnuje ˇ nastavit v operaˇcním systému asociaci aplikace se soubory GPX (kapitola 3).
34
Pˇríloha C
CD médium Jako pˇríloha je k práci pˇriloženo CD médium jehož obsah je následující: ∙
tento text ve formátu PDF
∙
zdrojové kódy aplikace TrackOnMapEditor jako projekt aplikace NetBeans
∙
spustitelnou podobu aplikace TrackOnMapEditor
35