Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Klemen Kodrič
UPORABA GPS IN GOOGLE MAPS NA
PRIMERU ANDROID APLIKACIJE
REKREACIJSKI ASISTENT
Diplomsko delo
Maribor, marec 2013
I
Diplomsko delo visokošolskega strokovnega študijskega programa
UPORABA GPS IN GOOGLE MAPS NA
PRIMERU ANDROID APLIKACIJE
REKREACIJSKI ASISTENT
Študent: Klemen Kodrič
Študijski program: Visokošolski študijski program
Računalništvo in informacijske tehnologije
Mentor: doc. dr. Matej Črepinšek
II
III
IV
V
ZAHVALA
Zahvaljujem se svojemu mentorju doc. dr.
Mateju Črepinšku za usmerjanje in pomoč
pri nastajanju diplomske naloge.
Zahvaljujem se tudi staršem, da so mi
omogočili študij in punci Klementini za
potrpežljivost v času nastajanja diplome.
VI
Uporaba GPS in Google maps na primeru android aplikacije
Rekreacijski asistent
Ključne besede: GPS, Google maps, android, java, rekreacija
UDK: 004.42:004.777(043.2)
Povzetek:
V diplomske delu se bomo seznanili z izdelovanjem android aplikacij ter z uporabo GPS in
Google maps na mobilnih aplikacijah. Cilj diplomske naloge je preučiti potrebne
tehnologije in izdelati prototipno mobilno aplikacijo. Aplikacija omogoča, da s pomočjo
GPS-a in Google maps knjižnic izrisuje pot na zaslon, ter shranjuje podatke o rekreacijah
uporabnika. Za podporo mobilni aplikaciji bomo izdelali spletno storitev, katera bo
skrbela za vodenje in skladiščenje podatkov o rekreacijskih dogodkih.
V prvem delu diplomske naloge predstavimo android OS in tehnologije, potrebne za
izdelavo aplikacije. Pri drugem delu se osredotočimo na razvoj aplikacije od grobega
načrta do implementacije, ter opis uporabniškega vmesnika. Na koncu diplomskega dela
analiziramo aplikacijo in poudarimo njene prednosti ter slabosti.
VII
The use of GPS and Google maps in case of android application:
Recreation Assistant
Key words: GPS, Google maps, android, java, recreation
UDK: 004.42:004.777(043.2)
Abstract:
In this diploma work, we'll learn about developing Android applications and the use of
GPS and Google maps in mobile applications. The aim of this diploma work is to study the
necessary technologies and develop a prototype mobile application. The application
allows the use of GPS and Google maps libraries to draw the users path to the screen and
to save data about the recreation. Besides the mobile application we'll develop a web
service, which will provide the application with data on recreational events.
In the first part of the diploma work we present the Android OS and technologies
necessary to develop the application. In the second part we focus on the development of the
application from a rough plan to the implementation and the description of the user
interface. At the end of the diploma work we analyze the application and point out its
advantages and disadvantages.
VIII
Kazalo vsebine
1 UVOD .............................................................................................................................. 1
2. ANDROID ........................................................................................................................ 2
2.1. RAZVOJ APLIKACIJ IN POTREBNA ORODJA.............................................................. 3
2.2. OSNOVNI APLIKACIJSKI VMESNIK ........................................................................... 5
3 IZBRANE TEHNOLOGIJE .................................................................................................. 7
3.1 GPS .......................................................................................................................... 7
3.1.1 Vesoljski segment: ........................................................................................... 7
3.1.2 Nadzorni segment: .......................................................................................... 7
3.1.3 Uporabniški segment: ...................................................................................... 8
3.2 GOOGLE MAPS ........................................................................................................ 8
3.3 JAVA ........................................................................................................................ 8
3.4 KML ......................................................................................................................... 9
3.5 JSOUP ...................................................................................................................... 9
3.6 SQL LITE ................................................................................................................. 10
4 RAZVOJ APLIKACIJE REKREACIJSKI ASISTENT ............................................................... 11
4.1 IZDELAVA APLIKACIJE REKREACIJSKI ASISTENT ..................................................... 12
4.1.1 PROSTA REKREACIJA ...................................................................................... 13
4.1.2 IZBIRA POTI .................................................................................................... 15
4.1.3 SEZNAM ......................................................................................................... 16
4.1.4 BRANJE IN PRIKAZ POTI ................................................................................. 16
4.1.5 PODATKOVNA BAZA ...................................................................................... 17
4.1.6 UPORABNIŠKI VMESNIK ................................................................................. 18
4.1.7 WIDGET .......................................................................................................... 21
5 PREIZKUŠANJE APLIKACIJE ........................................................................................... 24
6 PREDNOSTI IN SLABOSTI APLIKACIJE REKREACIJSKI ASISTENT .................................... 26
7 ZAKLJUČEK .................................................................................................................... 28
8 VIRI ............................................................................................................................... 29
9 PRILOGE ........................................................................................................................ 31
9.1 NASLOV ŠTUDENTA ............................................................................................... 31
IX
9.2 KRATEK ŽIVLJENJEPIS ............................................................................................ 31
9.3 IZJAVA O USTREZNOSTI DIPLOMSKEGA DELA ...................................................... 32
9.4 IZJAVA O ISTOVETNOSTI ....................................................................................... 33
9.5 IZJAVA O AVTORSTVU DIPLOMSKEGA DELA ......................................................... 34
X
KAZALO SLIK IN TABEL
Slika 1: android 1.0 in android 4.2 ......................................................................................... 3
Slika 2: Primerki tabličnih računalnikov z android OS ........................................................... 3
Slika 3: Eclipse ........................................................................................................................ 5
Slika 4: Primer XML datoteke dialoga .................................................................................... 6
Slika 5: Konstelacija GPS satelitov ......................................................................................... 7
Slika 6: Grobi načrt aplikacije .............................................................................................. 12
Slika 7: Primer povezave gumba in nastavitve OnClickListener-ja ...................................... 13
Slika 8: Primer vrstice z API ključem .................................................................................... 13
Slika 9: URL za pridobivanje KML datoteke ......................................................................... 16
Slika 10: Pridobivanje podatkov iz podoatkovne baze ........................................................ 17
Slika 11: Meni ...................................................................................................................... 18
Slika 12: Prosta rekreacija .................................................................................................... 19
Slika 13: levo izbrana pot, desno prikaz prenešene poti na prosto rekreacijo ................... 20
Slika 14: Seznam .................................................................................................................. 21
Slika 15: levo widget, desno podrobni podatki dogodka .................................................... 22
Slika 16: Delovanje pridobivanja podatkov ......................................................................... 23
Slika 17: Pridobivanje izvorne kode strani ........................................................................... 23
Slika 18: Pridobivanje datuma ............................................................................................. 24
Tabela 1: Hoja ...................................................................................................................... 24
Tabela 2: Tek ........................................................................................................................ 24
Tabela 3: Kolesarjenje.......................................................................................................... 24
Tabela 4: Prednosti in slabosti aplikacije Rekreacijski asistent ........................................... 26
file:///C:/Users/Klemen/Desktop/diploma/Diploma%20Klemen%20Kodrič%20E1029033.docx%23_Toc350042005file:///C:/Users/Klemen/Desktop/diploma/Diploma%20Klemen%20Kodrič%20E1029033.docx%23_Toc350042008file:///C:/Users/Klemen/Desktop/diploma/Diploma%20Klemen%20Kodrič%20E1029033.docx%23_Toc350042009file:///C:/Users/Klemen/Desktop/diploma/Diploma%20Klemen%20Kodrič%20E1029033.docx%23_Toc350042010file:///C:/Users/Klemen/Desktop/diploma/Diploma%20Klemen%20Kodrič%20E1029033.docx%23_Toc350042011file:///C:/Users/Klemen/Desktop/diploma/Diploma%20Klemen%20Kodrič%20E1029033.docx%23_Toc350042013file:///C:/Users/Klemen/Desktop/diploma/Diploma%20Klemen%20Kodrič%20E1029033.docx%23_Toc350042015file:///C:/Users/Klemen/Desktop/diploma/Diploma%20Klemen%20Kodrič%20E1029033.docx%23_Toc350042018file:///C:/Users/Klemen/Desktop/diploma/Diploma%20Klemen%20Kodrič%20E1029033.docx%23_Toc350042019
XI
UPORABLJENI SIMBOLI IN KRATICE
GPS - global positioning system
SDK - software development kit
JDK - java development kit
API - application programming interface
KML - keyhole markup language
ADT - android development tools
DOM - document object model
XML - extensible markup language
CSS - cascade style sheets
XSS - cross-site scripting
WHATWG - Web Hypertext Application Technology Working Group
URL - uniform resource locator
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 1
1 UVOD
Debelost v zadnjem času vse hitreje narašča, po vsem svetu in zato predstavlja pereče
probleme, v vsakdanjem življenju posameznikov.
Po podatkih Svetovne zdravstvene organizacije ima približno 1,6 milijarde odraslih
ljudi prekomerno telesno težo, več kot 400 milijonov pa je debelih.
Debelost vse resneje ogroža zdravje v Evropi. Podatki kažejo, da bolezni, povezane z
debelostjo, danes predstavljajo glavni razlog za približno 7 % vseh smrtnih primerov v
Evropi. Z enakimi težavami se srečujemo tudi v Sloveniji.
Problem prekomerne teže in vseh njenih posledic je danes v svetu večji od problema
podhranjenosti. Zdravstveni strokovnjaki pravijo, da bi naraščanje števila predebelih
otrok lahko povzročilo, da bo današnja generacija umrla pred svojimi starši.
V Evropi ima 50% moških in 35 % žensk težavo s prekomerno telesno težo [1].
Eden izmed načinov, kako se spopasti z odvečnimi kilogrami, je tudi redno ukvarjanje
s športom. Na trgu je mogoče najti veliko različnih pripomočkov, ki lahko usmerjajo in
nadzorujejo sam postopek izgube kilogramov med gibanjem, oziroma pomagajo voditi
evidenco.
Na podlagi teh informacij smo se odločili narediti aplikacijo za olajšano vodenje
evidence pri sami rekreaciji v naravi. Aplikacija omogoča, da smo seznanjeni s podatki
kot so lokacija, kjer se nahajamo, čas ter kalorije, ki jih porabimo in drugimi podatki,
ki nam omogočijo vpogled v dogodke povezane s športnimi dejavnostmi, kar je v
nadaljevanju podrobnejše pojasnjeno.
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 2
2. ANDROID
Android OS bazira na linux jedru in je odprtokodni programski paket za mobilne
naprave in tudi odprtokodni projekt katerega vodi Google. Android operacijski sistem
se je v javnosti prvič pojavil oktobra 2008, ko je prišel na trg HTC G1 oz. HTC Dream,
kot prvi android telefon. Z razvojem operacijskega sistema android je začelo podjetje
Android Inc., katerega je leta 2005 kupilo podjetje Google, ki v nadaljnje vodi razvoj.
Od prvotne različice operacijskega sistema, katera je bila na začetku samo za mobilne
telefone, se je do dandanes krog uporabe zelo razširil tudi na druge naprave. Prvotna
različica je imela oznako android 1.0 in je v primerjavi s sodobnimi različicami
ponujala veliko manj funkcij, katere so v napravah sodobne družbe nepogrešljive.
Operacijskih sistemov za mobilne naprave je več. Med njimi seveda obstajajo razlike,
vsak OS pa ima svoje prednosti in slabosti. Največja razlika in hkrati tudi prednost,
med android operacijskimi sistemi in ostalimi je ta, da je prilagodljiv, kar omogoča
uporabnikom prilagoditev po meri ter proizvajalcem vključevanje njihovih lastnih
aplikacij in spreminjanja uporabniškega vmesnika glede na njihov koncept.
Danes obstajajo različne verzije, ki podpirajo različne aplikacijske vmesnike t.i. API-je.
Starejše verzije novih ne podpirajo, novejše pa starejše podpirajo. API-ji prinašajo
novosti za uporabnike in razvijalce aplikacij ter s tem omogoča preprostejši razvoj in
kvalitetnejše aplikacije.
Posodobitve potekajo tako, da si jih lahko prenesemo preko mobilnega omrežja ali
namestimo preko računalnika. Zaradi velikega števila proizvajalcev naprav in njihovih
lastnih različic, lahko pride pri posodobitvah do zakasnitve ali pa, da posodobitev za
določeno napravo sploh ni na voljo, saj morajo proizvajalci prilagoditi posodobitev za
svoje različice. Posodobitve so torej odvisne od več faktorjev, med drugim tudi od
strojne opreme.
Kot pri drugih OS za mobilne naprave, je tudi pri androidu poskrbljeno za preprosto
pridobivanje aplikacij. To nam omogoča Google play, oziroma »trgovina za
aplikacije«, ki ima od samega začetka, pa vse do danes, nabor več tisočih aplikacij.
Google play je storitev, ki omogoča razvijalcem, da svoje aplikacije ponudijo
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 3
uporabnikom zastonj ali pa proti plačilu, uporabnikom pa enostaven nakup oziroma
prenos zastonj aplikacij [2].
Zaradi svoje priljubljenosti se uporaba android OS vedno bolj širi na najrazličnejše
naprave. Od svojega začetka na mobilnih telefonih (Slika 1) se je ta OS začel pojavljati
tudi na tabličnih računalnikih (Slika 2), dlančnikih, pa tudi na nekaterih primerkih
mobilnih netbookov in drugih napravah.
Slika 1: android 1.0 in android 4.2
Slika 2: Primerki tabličnih računalnikov z android OS
2.1. RAZVOJ APLIKACIJ IN POTREBNA ORODJA
Za razvoj aplikacij za Android naprave potrebujemo razvijalno okolje Eclipse
(Slika 3) ter Android SDK in JDK (java development kit). Ker se za razvoj
Android aplikacij večinoma uporablja programski jezik Java, je potrebno
predhodno znanje in razumevanje le-tega in ker Android uporablja tudi veliko
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 4
XML datotek za definiranje različnih virov v samih aplikacijah, je potrebno
poznavanje XML-ja. Aplikacije lahko razvijamo tudi v programskem jeziku C.
Za prevajanje in poganjanje poskusov aplikacij lahko uporabimo emulator ali
fizično napravo katera je boljša od emulatorja zato, ker lahko preizkušamo
aplikacije tako kot navadni uporabniki [3].
Preden poganjamo aplikacijo za razhroščevanje, moramo preveriti v datoteki
AndroidManifest ali smo dodali vse aktivnosti (activity) in pravice za
dostopanje do zaščitenih področij API-ja (npr. pravica za uporabo mobilnega
interneta) ter interakcij z drugimi aplikacijami. Vsaka aplikacija mora vsebovati
to datoteko, saj so v njej zapisane bistvene informacije o sami aplikaciji, katere
potrebuje sistem, preden lahko zažene kodo same aplikacije [4].
V AndroidManifest datoteki so med drugim zapisane naslednje stvari:
ime paketa aplikacije, kateri služi kot unikaten identifikator za
aplikacijo,
opis komponent aplikacije, kot so aktivnosti, servisi, itd...
določila, kateri procesi pripadajo h katerim komponentam aplikacije,
seznam »Instrumentation« razredov za profiliranje in druge informacije,
kadar je aplikacija zagnana. Služi samo za razvoj in testiranje aplikacije
in se pred izdajo aplikacije odstrani in AndroidManifesta,
deklaracije pravic, katere potrebuje aplikacija za dostop do določenih
komponent,
deklaracija minimalne stopnje API-ja (API level),
seznam knjižnic, s katerimi mora biti aplikacija povezana.
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 5
Slika 3: Eclipse
2.2. OSNOVNI APLIKACIJSKI VMESNIK
Vmesniki za android aplikacije so definirani v XML datotekah, katere najdemo v
mapi res/layout, v katero nam ADT ustvari XML datoteko z imenom, katerega smo
podali ob ustvarjanju projekta oz. privzeto ime je main.xml. Vsi elementi, kateri se
prikažejo na zaslonu, kadar je aplikacija zagnana, imajo vse svoje lastnosti zapisane
v XML datoteki, katera pripada trenutnemu oknu aplikacije. Elementi so v datoteki
zapisani po vrstnem redu, tako kot se prikažejo na zaslonu in so podelementi od
»layoutov« (postavitev). Z »layouti« si pomagamo razporediti elemente po zaslonu.
Posamezne elemente lahko dodajamo na zaslon tako, da z miško primemo in
prestavimo element iz nabora elementov na »layout« od zaslona ali pa posamezen
element vpišemo ročno v datoteko v XML pogledu »layouta« [3]. Podobno kot za
dodajanje elementov na zaslon, lahko določamo tudi lastnosti posameznih
elementov tako, da stisnemo desni miškin gumb na posameznem
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 6
elementu in pod properties izberemo lastnost in nastavimo vrednost ali pa gremo v
XML pogled in pri posameznem elementu ročno vpišemo lastnosti in vrednosti
(Slika 4).
Slika 4: Primer XML datoteke dialoga
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 7
3 IZBRANE TEHNOLOGIJE
3.1 GPS
GPS je satelitski navigacijski sistem, katerega primarna naloga je navigiranje.
Sateliti preko enosmernih radijskih signalov pošiljajo svoj trenutni položaj in
čas. Te podatke uporabljamo zato, da izvemo svojo lokacijo ali lokacijo česar,
kar ima gps napravo za sledenje.
Sistem sestavljajo trije segmenti:
3.1.1 Vesoljski segment:
Vesoljski segment sestavljajo sateliti (Slika 5), kateri krožijo okoli Zemlje v
srednji zemeljski orbiti in so razporejeni tako, da so vsaj štirje od vsaj
štiriindvajsetih GPS satelitov na voljo na vsaki točki na planetu. Načeloma
so v uporabi še dodatni sateliti, kateri se uporabljajo za ohranitev pokritosti,
kadar se primarni sateliti servisirajo ali pride do okvar satelitov.
Slika 5: Konstelacija GPS satelitov
3.1.2 Nadzorni segment:
Je sestavljen iz globalnega omrežja zemeljskih ustanov, katere sledijo
satelitom, nadzorujejo povezavo, izvajajo analize in pošiljajo ukaze in
podatke konstelaciji satelitov. Trenutni nadzorni segment sestavljajo glavna
kontrolna postaja, namestna glavna kontrolna postaja, dvanajst ukaznih in
kontrolnih anten in šestnajst merilnih postaj.
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 8
3.1.3 Uporabniški segment:
GPS je ključnega pomena v našem vsakdanjem življenju, saj se uporablja na
več področjih kot so agrikultura, letalstvo, pomorstvo, rekreacija, itd. V
uporabniški segment spadajo vse naprave opremljene z gps sprejemnikom,
katerih razvoj je omejen le s človeško domišljijo [5].
3.2 GOOGLE MAPS
Google maps je servisna aplikacija, katero lahko vključujemo v spletne strani in
druge aplikacije z uporabo API-ja. Omogoča nam prikaz lokacij na različnih
tipih map, približevanje in oddaljevanje pogleda, označevanje lokacij in ulični
pogled. Na mobilnih aplikacijah nam v kombinaciji z GPS senzorjem omogoča
prikazovanje premikanja naprave ali zgolj prikaz lokacij, oziroma poti. Google
maps nam olajša načrtovanje poti s svojimi spletnimi storitvami, tako na njihovi
spletni strani, kot pri programiranju aplikacij z vključenimi mapami od Google
maps, po principu podajanja točk A in B ter nam vrne predlagane poti, glede na
podane parametre, med katerimi zberemo najugodnejšo, poda pa nam tudi
natančnejša navodila. Omogoča nam tudi iskanje predlaganih poti glede na
način potovanja in sicer na vožnjo z avtomobilom, s kolesom, z javnim
prevozom ali hojo. Iskanje poti za vožnjo s kolesom ali z javnim prevozom je
možno samo za določene kraje, kjer so kolesarske steze oz. je na voljo javni
prevoz [7][8].
3.3 JAVA
Programski jezik Java se je prvotno imenoval Oak, ustvaril ga je James Gosling
v Sun Microsystems (kasneje se je združilo v Oracle Corporation). Izdan je bil
leta 1995, kot temeljni sestavni del Sun Microsystems Java platforme in sicer za
vgrajevanje potrošniško-elektronskih aplikacij. Po nekaj letih izkušenj in
pomembnih prispevkov ostalih sodelujočih pri razvijanju tega programskega
jezika, je bil preusmerjen na internet, preimenovan in posebej pregledan, da
ustreza zahtevanim specifikacijam.
Večina jezika izvira iz sintakse C in C++, vendar ima slabšo stopnjo
zmogljivosti od njiju. Java aplikacije so običajno sestavljene iz bitnih kod
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 9
(razredna datoteka), ki lahko delujejo na katerikoli Java virtual machine (JVM),
ne glede na arhitekturo računalnika.
Java je namenjena za splošno uporabo in hkrati temelji na razredih, je objektno-
orientiran jezik, ki je posebej ustvarjen, da ima čim manjšo odvisnost od
implementacij. Kode, ki deluje na eni platformi, ni potrebno prevajati, za
delovanje na drugi. Java je od leta 2012, eden izmed najbolj priljubljenih
programskih jezikov v uporabi, zlasti pri spletnih aplikacijah odjemalec-
strežnik [9].
3.4 KML
KML oziroma »keyhole markup language« je datotečni format, ki se uporablja
za prikazovanje geografskih podatkov, v tako imenovanih »Earth browser-jih«
kot so Google Maps, Google Maps za mobilne naprave, NASA WorldWind,
AutoCad, itd... KML uporablja »tag-based« (značkovno) strukturo z
gnezdenjem elementov in atributov ter bazira na XML standardu [10].
Uporabimo ga lahko za prikazovanje:
položajev,
ikon,
map,
opisnih HTML-jev,
poligonov in linij,
stile za poligone in linije vključno z barvo in prosojnostjo,
itd.
3.5 JSOUP
JSOUP je odprto kodna javanska knjižnica za delo s html-jem, katera nam nudi
priročen API za izločanje in manipulacijo podatkov z uporabo metod, kot jih
poznamo pri DOM, CSS in jquery. Implementira tudi WHATWG HTML5
specifikacijo in razčlenja HTML na enak DOM, kot moderni brskalniki.
Funkcije, katere podpira JSOUP:
razčlenitev HTML iz url povezave, datoteke ali stringa,
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 10
iskanje in izbira podatkov z uporabo DOM traversal (prehodov) ali CSS
selektorjev,
manipulacija HTML elementov, atributov in teksta,
čiščenje uporabniško vpisane vsebine, za preprečitev XSS napadov [11].
3.6 SQL LITE
Android ponuja več načinov za shranjevanje uporabniških podatkov in
podatkov od aplikacij. SQLite je eden od načinov za shranjevanje uporabniških
podatkov. SQLite je preprosta podatkovna baza, ki je vključena v Android OS.
Je knjižnica, ki vsebuje večino potrebnih stvari za delovanje, zato zahteva
minimalno podporo od zunanjih knjižnic operacijskega sistema. Ni je potrebno
predhodno nameščati, nima ločenega strežniškega procesa, oziroma ni kot
ostale SQL podatkovne baze, ki so nameščene na strežnikih, zato se ne
potrebuje administratorja za kreiranje podatkovne baze, ustvarjanja
uporabnikov in dodeljevanja pravic. SQLite bere in piše podatke neposredno v
datoteke na disku.
SQLite je zelo popularna knjižnica za uporabo v napravah z malo pomnilnika,
kot so mobilni telefoni, tablični računalniki, MP3 predvajalniki, itd. zaradi
velikosti knjižnice, ki je lahko manjša od 350 KiB z vsemi lastnostmi, odvisno
od ciljne platforme in optimizacijskih lastnosti prevajalnika (64-bitna koda je
večja in nekatere funkcije prevajalnika lahko še dodatno povečajo velikost).
Koda za SQLite je v javni domeni, kar pomeni, da je brezplačna za privatne in
tudi komercialne namene [12].
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 11
4 RAZVOJ APLIKACIJE REKREACIJSKI ASISTENT
Osrednji del diplomske naloge je izdelava aplikacije, ki deluje na android pametnih
telefonih z vgrajenim GPS sprejemnikom in internetnim dostopom. Za izdelavo
aplikacije za operacijski sistem android smo se odločili zato, ker vse več ljudi
uporablja naprave, ki imajo android OS, saj na trgu obstajajo cenovno ugodne
naprave.
Osnovna ideja je bila, da bi aplikacija zajemala podatke o lokaciji ter tako sledila
opravljeni poti rekreacije uporabnika.
Po opravljeni rekreaciji se podatki najprej izračunajo in nato zabeležijo v
podatkovno bazo.
Za uporabniško prijaznejši vmesnik se pot izrisuje na zemljevidu od Google maps.
Rekreacijski asistent je aplikacija, ki temelji na pridobivanju podatkov o nahajajoči
se lokaciji uporabnika s pomočjo GPS satelitov in na zaslon mobilne naprave
prikazuje lokacijo naprave s pomočjo Google maps API-ja. S pridobljenimi podatki
nam omogoča vodenje evidence gibanja naprave. Omogoča nam tudi pridobivanje
poti z Googlovo spletno storitvijo, tako da podamo začetno in končno točko ter
parameter v kakšni obliki naj nam storitev vrne pot.
Del aplikacije je tudi widget, preko katerega kličemo spletno storitev za
pridobivanje rekreacijskih dogodkov iz spletne strani www.sportnikoledar.si.
Aplikacija je namenjena predvsem za olajšano vodenje evidence pri sami rekreaciji
v naravi. Omogoča, da smo seznanjeni s podatki kot so lokacija, na kateri se
nahajamo, čas ter kalorije, ki jih porabimo in drugimi podatki, ki nam omogočijo
vpogled v dogodke, povezane s športnimi dejavnostmi, kar je v nadaljevanju
podrobneje pojasnjeno.
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 12
4.1 IZDELAVA APLIKACIJE REKREACIJSKI ASISTENT
Ko smo imeli pripravljeno prej omenjeno programsko opremo za izdelavo
android aplikacij, smo najprej naredili grobi načrt aplikacije (Slika 6) in njenih
funkcionalnosti.
Slika 6: Grobi načrt aplikacije
Nato smo ustvarili projekt v programskem okolju Eclipse. Osnovni projekt se
generira z že v najprej vsebujočimi osnovnimi datotekami. Med njimi so za nas
pomembne: manifest (podrobnejši opis str. 3), osnovna postavitev (layout) in tej
pripadajoč razred. Tekom izdelave aplikacije smo manifest dopolnjevali.
Osnovno postavitev (layout) smo spremenili v meni, v razredu smo deklarirali
štiri gumbe s sliko (ImageButton), ti gumbi se od navadnih razlikujejo po tem,
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 13
da imamo na njih namesto besedila, sliko. Za delovanje gumbov smo morali le
te povezati z id-ji (identifikatorji) gradnikov na zaslonu, ter implementirati
interface OnClickListener in za vsak gumb nastaviti metode, za zaznavanje
dotika gumbov (Slika 7).
Nato implementiramo vmesnik OnClickListener, metodo onClick in prekrijemo
metodo, razreda Activity, onActivityResult. V metodi onClick smo dodali kodo,
katera se izvrši glede na to kateri gumb pritisnemo.
4.1.1 PROSTA REKREACIJA
Za menijem smo naredili glavni del aplikacije, kateri je »prosta rekreacija« in je
za uporabnika tisti del, preko katerega vidi, kje se nahaja in lahko preveri
aktualne podatke svoje rekreacije.
Prosta rekreacija ima v ozadju razred glavniasist, kateri deduje razred
MapActivity, ki ga potrebujemo za delo z google maps gradnikom, MapView.
Za delovanje MapView-a smo morali v datoteko AndroidManifest.xml dodati
uporabo google maps knjižnice in dodati dovoljenje za uporabo interneta, ker
pa so mape v lasti podjetja Google, ki ne dovoli vsakemu uporabo le teh, smo
morali še pridobiti tako imenovan Google Maps Android API key, ki je ključ
katerega dopišemo med lastnosti MapView-a v layout-u (Slika 8).
Slika 8: Primer vrstice z API ključem
seznam=(ImageButton) findViewById(R.id.btnSeznam);
seznam.setOnClickListener(this);
Slika 7: Primer povezave gumba in nastavitve OnClickListener-ja
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 14
Kadar smo imeli dodane vse pravice in pripisan API ključ, se nam je pri zagonu
aplikacije na zaslonu prikazal zemljevid sveta, ker pa aplikacija še ni znala
razbrati lokacijo naprave, smo morali dodati uporabo GPS vmesnika. Podobno
kot pri google maps, smo morali tudi za GPS dodati dovoljenje za uporabo
strojne opreme mobilne naprave, za pridobivanje lokacije. Zaradi slabosti GPS-
a, katere se lahko pojavijo v mestih in drugod, kjer je možnost izgube GPS
signala, smo aplikaciji dodelili dve dovoljenji za pridobivanje lokacije. Prvo
dovoljenje je acces_coarse_location, katero nam omogoča pridobivanje
približne lokacije, s pomočjo mobilnega interneta ali Wi-Fi povezave, drugo
dovoljenje pa je acces_fine_location, katero nam omogoča pridobivanje
natančne lokacije s pomočjo GPS-a, mobilnega interneta in Wi-Fi povezave
[13][14].
Za tem, ko smo dodali vsa dovoljenja v manifest datoteko, smo v razredu proste
rekreacije ustvarili objekt razreda LocationManager, ter implementirali
interface LocationListener. To dvoje nam je omogočilo, da smo dobivali
lokacije, kje se naprava nahaja. Za izbiro provider-ja smo dodatno specificirali
kriterije, s katerimi locationManager preko metode getBestProvider pridobi
najustreznejšega aktivnega provider-ja. Za tem pa smo nakazali, da želimo
pridobivati posodobitve lokacije od LocationManager-ja s tem, da smo klicali
metodo requestLocationUpdates(), v katero smo kot parametre podali provider-
ja, na koliko časa se naj prejemajo posodobitve in na kakšno spremembo
razdalje se naj prejme posodobitev, ter LocationListener, ki mora
implementirati več metod, katere uporablja LocationManager ob posodobitvah
glede na podane kriterije.
Lokacije smo dobili tako, da smo v metodi OnLocationChanged iz parametra
metode z uporabo metod getLatitude in getLongitude pridobili geografsko
širino in geografsko dolžino ter ju pomnožili z 1E6 (kar predstavlja milijon), da
smo iz stopinj dobili mikro stopinje. Pretvorba v mikro stopinje je potrebna za
nadaljnjo uporabo lokacij, saj MapControler, s katerim krmilimo zemljevid,
uporablja za določanje pozicije na zemljevidu objekte razreda GeoPoint. Za
nastavitev vrednosti zemljepisne širine in dolžine v objektu razreda GeoPoint,
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 15
je potrebno podati mikro stopinje kot cela števila, saj je računanje s števili s
plavajočo vejico časovno zahtevno.
Za izris poti na zemljevidu smo uporabili Overlay. Ta nam je omogočil, da smo
»prepisali« (Override) metodo draw in v njo dodali svojo kodo za izris poti, saj
privzeti ne izrisuje ničesar. Pot smo izrisovali tako, da smo pridobljene lokacije
dodajali v polje lokacij, katero nam je metoda draw izrisovala na zemljevid.
S pomočjo GPS-a smo pridobivali tudi ostale podatke o rekreaciji. Opravljeno
pot in hitrost smo pridobili z metodama distanceTo, katera nam je vrnila pot
med dvema lokacijama in smo te poti seštevali, ter getSpeed, katera nam je
vrnila s kakšno hitrostjo se premikamo v metrih na sekundo. Vse ostale podatke
smo izračunali iz pridobljenih podatkov.
Po tem, ko je uporabnik končal svojo rekreacijo in pritisnil na gumb »stop«, so
se vsi pridobljeni in izračunani podatki shranili v podatkovno bazo.
4.1.2 IZBIRA POTI
Za lažjo načrtovanje rekreacij, smo implementirali izbiro poti, v kateri lahko
uporabnik izbere traso pred začetkom rekreacije. Pri implementaciji izbire poti
smo uporabili zemljevid google maps in GPS tako kot pri prosti rekreaciji. GPS
je pri tem namenjen pridobitvi trenutne lokacije uporabnika, nakar uporabnik
izbere končno lokacijo. Pri izbiri končne lokacije iz zemljevida smo uporabili
obratni postopek kot pri prikazovanju lokacije na zemljevidu. Končno lokacijo
smo dobilo tako, da smo s pomočjo MapView-a in metode getProjection iz
koordinat pikslov, kjer smo se dodatknili zaslona, dobili preračunane vrednosti
geografske širine in višine, kot bi jih dobili od GPS sprejemnika. Za pridobitev
poti smo uporabili servis od google maps za pridobivanje KML datotek, v
katerih so shranjene poti. KML datoteko smo pridobili tako, da smo najprej
sestavili URL v katerega smo morali vključiti začetno in končno točko. Točki
podamo tako, da za začetno in končno točko vključimo v URL latitude in
longitude oziroma zemljepisno širino in zemljepisno dolžino posamezne točke,
kot je prikazano na Slika 9 le, da namesto lat1, lon1, lat2 in lon2, vstavimo
dejanske vrednosti prve lokacije in druge lokacije (Slika 9). Kadar imamo
začetno in končno lokacijo vstavljeno v URL, še moramo na koncu URL-ja
dodati v kakšni obliki nam strežnik naj vrne podatke in to naredimo tako, da
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 16
določimo za »output« oziroma izhod kml ali pa lahko tudi kmz, vendar nam v
primeru kmz strežnik posreduje stisnjeno (zipped) kml datoteko. Potem, ko
imamo URL sestavljen, vzpostavimo povezavo s strežnikom preko URL-ja in ta
nam vrne kml datoteko, v kateri imamo zapisane točke za pot med podanima
točkama in še druge podatke o poti, kot so dolžina poti in nadmorska višina
med začetno in končno točko.
Izbrano pot smo iz kml datoteke pridobili tako, da smo se po XML strukturi
sprehodili do elementa, ki hrani našo pot in si jo shranili v string. Po tem smo ta
string ločili glede na presledke in dobili polje string-ov, katere smo nato ločili
glede na vejice, da smo dobili posamezne točke in jih izrisali na zaslon.
4.1.3 SEZNAM
Za prikaz podatkov smo implementirali seznam, na katerem si lahko uporabnik
pogleda podatke od vseh svojih rekreacijah. Pri seznamu smo namesto
navadnega Activity uporabili ListActivity, na katerem smo prikazali seznam
podatkov, katere smo prebirali iz podatkovne baze ob zagonu aplikacije. Na
seznamu smo dodali tudi funkcije za izbris posameznih aktivnosti in za prikaz
opravljenih poti.
4.1.4 BRANJE IN PRIKAZ POTI
Prikaz poti iz podatkovne baze je razširitev seznama in nam omogoča pogled na
opravljeno pot izbrane rekreacije na seznamu. Implementirali smo ga tako, da
se ob pritisku na gumb za prikaz poti izvede poizvedovanje v podatkovno bazo,
katero nam vrne seznam lokacij, glede na podan identifikator, kateri povezuje
podatke o rekreaciji s podatki iz druge tabele, v kateri so lokacije. Pridobljene
lokacije izrišemo na zemljevidu kot opravljeno pot, katero je uporabnik opravil.
Za lažji pregled poti smo implementirali še gumbe za povečanje in pomanjšanje
zemljevida.
http://maps.google.com/maps?f=d&hl=en&saddr=lat1,lon1&daddr=lat2,lon2&ie=UTF8&0&om=0&output=kml
Slika 9: URL za pridobivanje KML datoteke
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 17
4.1.5 PODATKOVNA BAZA
Za hranjenje podatkov smo uporabili SQLite knjižnico, saj nam omogoča
kreiranje brez-strežniške podatkovne baze in je že vključena v Android OS.
V podatkovni bazi smo naredili dve tabeli. Ena tabela je bila ustvarjena za
podatke o rekreacijah, druga tabela pa za lokacije. V obeh tabelah smo dodali
skupen identifikator, za pridobivanje pravih lokacij za posamezno rekreacijo.
public void fillFromDB() { db.open(); Cursor c = db.getAll(); podatkiZaBazo tmp; for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) { tmp = new podatkiZaBazo(); tmp.pot= c.getDouble(DBAdapterBaza.POS__POT); tmp.povPrecnaHitrost=c.getDouble(DBAdapterBaza.POS__POVPRECNA_HITROST); tmp.stKrogov=c.getInt(DBAdapterBaza.POS__ST_KROGOV); tmp.maxSpeed=c.getDouble(DBAdapterBaza.POS__MAX_SPEED); tmp.cas=c.getString(DBAdapterBaza.POS__CAS); tmp.datum= c.getString(DBAdapterBaza.POS__DATUM); tmp.kalorije=c.getInt(DBAdapterBaza.POS__KALORIJE); tmp.idPovezava=c.getLong(DBAdapterBaza.POS_ID_POVEZAVA); lista.add(tmp); } c.close(); db.close(); }
Slika 10: Pridobivanje podatkov iz podoatkovne baze
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 18
4.1.6 UPORABNIŠKI VMESNIK
Največji vpliv na splošen vtis o produktu ima za večino uporabnikov
programskih orodij uporabniški vmesnik (UI) [15].
Na potreben napor uporabnika pri vnosu in interpretaciji podatkov vpliva oblika
samega uporabniškega vmesnika in njegova preprosta zasnova.
4.1.6.1 MENI
Razvoj grafičnega dela aplikacije je temeljil na principu izdelave čim bolj
jasnega in preprostega izgleda. Meni smo zasnovali tako, da smo aplikacijo
ločili na tri glavne dele in gumb za izhod iz aplikacije. Ti trije deli so prosta
rekreacija, izbira poti in seznam ter ima vsak izmed teh delov svoj značilen
gumb, kot je razvidno na Slika 11.
Slika 11: Meni
PROSTA REKREACIJA
SEZNAM
IZHOD
IZBIRA POTI
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 19
4.1.6.2 PROSTA REKREACIJA
Ta del aplikacije je zasnovan tako, da smo s čim manj elementi prikazali
čim več uporabnih podatkov in z minimalnim številom gumbov omogočili
uporabo bistvenih funkcij. Gumbi so sprogramirani tako, da z gumbom
Start/Stop in gumbom počitek na Slika 12, nadziramo merjenje časa in
zajemanje lokacijskih točk. Na razpolago pa je tudi gumb, s katerim si lahko
štejemo kroge, na primer, da večkrat opravimo isto sklenjeno relacijo.
Nov krog Start/Stop
Počitek
Slika 12: Prosta rekreacija
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 20
4.1.6.3 IZBIRA POTI
Izbiro poti smo zasnovali tako, da uporabnik lahko izbere poljubno
destinacijo na zemljevidu tako, da z dotikom na zemljevid določi končno
točko in naprava mu izriše pot od njegove trenutne lokacije do izbrane
končne lokacije. Izbrano pot lahko potem »zažene«, ter jo s tem prenese na
okno proste rekreacije, v kateri lahko začne svojo rekreacijo tako, da sledi
izbrani poti.
Slika 13: levo izbrana pot, desno prikaz prenešene poti na prosto rekreacijo
4.1.6.4 SEZNAM
Na seznamu imamo prikazane podatke za posamezne rekreacije, za katere je
uporabnik uporabljal aplikacijo (Slika 14). Vsi podatki so shranjeni v
podatkovni bazi in se iz nje tudi naložijo na seznam. Na seznamu imamo
prikazane tudi podatke, katerih med samim merjenjem ne vidimo in se
izračunajo na koncu same rekreacije in dodajo v podatkovno bazo. Sam
prikaz podatkov je narejen tako, da so rekreacije jasno ločene in da je jasno
ločiti podatke glede na to h kateri rekreaciji spadajo.
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 21
4.1.7 WIDGET
Widget oziroma pripomoček uporabljamo v tej aplikaciji, da prikažemo
dogodke, kateri se bodo odvijali v prihodnosti. Na Slika 15 levo je prikazan
izgled na ozadju zaslona, na katerem nam widget prikaže osnovne podatke o
enem dogodku. Med dogodki lahko preklapljamo z gumbom na dnu widgeta. S
tem gumbom tudi osvežimo dogodke. Na desni strani je prikazan prikaz
podrobnih podatkov o posameznem dogodku, kateri omogoča tudi to, da si
lahko ogledamo napoved dogodka tudi na internetu. Do podrobnosti o dogodku
dostopamo z dotikom na widget.
Slika 14: Seznam
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 22
Slika 15: levo widget, desno podrobni podatki dogodka
4.1.7.1 SPLETNA STRAN »ŠPORTNI KOLEDAR«
Spletna stran www.sportnikoledar.si je informativna stran za športnike in
tiste, kateri se radi rekreirajo. Na strani najdemo bodoče športne dogodke
različnih panog po Sloveniji in izven meja.
4.1.7.2 SPLETNA STORITEV
Spletno storitev uporabljamo za pridobivanje podatkov iz spletne strani
www.sportnikoledar.si, kateri se kasneje prikazujejo na widget-u (Slika 16).
Za izdelavo spletne storitve smo uporabili razvijalno okolje Eclipse in
programski jezik Java ter za poganjanje in testiranje spletne storitve smo
uporabili J2EE strežnik TOMCAT.
Spletna storitev je narejena tako, da nam razbere podatke o bodočih športnih
dogodkih in nam jih združi v celoto tekstovne oblike, katero vrne preko
SOAP protokola. Podatke pridobivamo s pomočjo knjižnice Jsoup, s katero
preberemo izvorno kodo (Slika 17) spletne strani in jo tudi očistimo, da je
pripravljena na iskanje kot v XML strukturi (Slika 18). Podatke, katere
imamo združene, so med seboj ločeni s posebnimi znaki (za ločevanje
dogodkov: »;::;« in za ločevanje lastnosti: »;;« ), kar nam omogoča kasneje,
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 23
ko pridobimo podatke na napravo, le te ločiti na posamezne dogodke in
njihove lastnosti.
Za hitrejšo odzivnost spletne storitve smo vključili preverjanje starosti
podatkov, katero deluje tako, da preverja ali so podatki starejši od 24 ur, če
so starejši razpozna nove podatke iz spletne strani, v nasprotnem primeru,
da podatki niso starejši od 24 ur pa pošlje že razbrane podatke.
Slika 16: Delovanje pridobivanja podatkov
public boolean preberi(String ur){
String html;
try {
html= Jsoup.connect(ur).get().html();
htmlfile=html;
FileWriter fstream = new
FileWriter("prebranHtml12.html");
BufferedWriter out = new
BufferedWriter(fstream);
out.write(html);
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
Slika 17: Pridobivanje izvorne kode strani
Aplikacija
Spletna storitev(razbiranje podatkov)
Widget(prikaz) Spletna stran
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 24
5 PREIZKUŠANJE APLIKACIJE
Preizkušanje aplikacije na fizični napravi, smo opravljali tako, da smo izbrali relacijo
določene dolžine. Za relacijo smo izbrali pot med obcestnimi znaki za stacionažo odseka
ceste, kateri so postavljeni na vsakih 500m. Preizkus smo opravili pri treh rekreacijah, za
katere smo si izbrali različne dolžine. Preizkušali smo na napravi HTC Desire, za območje
dovoljenega odstopanja smo imeli +-10m.
Tabela 1: Hoja
Rekreacija Razdalja Izmerjena
razdalja
Povprečna
hitrost
Čas Odstopanje
(m)
Hoja 1000m 1005,53m 6,2km/h 9:52 min 5,53m
Hoja 1000m 998,69m 5,8km/h 11:02 min 1,31m
Hoja 1000m 1004,26m 7,1km/h 8:37 min 4,26m
Hoja 1000m 1002,41m 6,4km/h 9:29 min 2,41m
Tabela 2: Tek
Rekreacija Razdalja Izmerjena
razdalja
Povprečna
hitrost
Čas Odstopanje
(m)
Tek 500m 501,10m 10,8km/h 2:58 min 1,10m
Tek 500m 502,62m 13,6km/h 2:07 min 2,62m
Tek 500m 499,48m 12,3km/h 2:26 min 0,52m
Tek 500m 498,86m 12,4km/h 2:26 min 1,14m
Tabela 3: Kolesarjenje
Rekreacija Razdalja Izmerjena
razdalja
Povprečna
hitrost
Čas Odstopanje
(m)
Kolesarjenje 2500m 2508,52m 25,3km/h 5:57 min 8,52m
Kolesarjenje 2500m 2504,73m 23,5km/h 6:41 min 4,73m
Kolesarjenje 2500m 2498,82m 23,9km/h 6:35 min 1,18m
Kolesarjenje 2500m 2501,27m 24,4km/h 6:19 min 1,27m
linki = doc.select("div[class=cal_cell_when]").get(i); pov=linki.ownText(); aktivnost.datum=pov;//datum
Slika 18: Pridobivanje datuma
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 25
S preizkušanjem aplikacije na fizični napravi smo preverjali ali aplikacija deluje enako,
kot na emulatorju na računalniku. Povdarek preizkušanja je bil na natančnosti prejemanja
podatkov preko GPS signala, saj na emulatorju prožimo ročno vsak prenos GPS podatkov
medtem ko na fizični napravi to poteka avtomatsko in se po določenem število lokacij ne
ustavi, kot na emulatorju, kadar je preizkusne poti konec.
Območje odstopanja smo določili glede na nastavitve aplikacije, kako pogosto pridobiva
GPS podatke. Aplikacija nam pridobiva podatke vsako sekundo in kadar smo se
premaknili za vsaj 2m.
Na podlagi pridobljenih rezultatov preizkušanja aplikacije na fizični napravi navedenih v
tabelah Tabela 1, Tabela 2 in Tabela 3, lahko vidimo, da so vsi preizkusi uspešni in znotraj
območja odstopanja. Opazili smo tudi, da se pri večanju razdalje pojavljajo večja
odstopanja, katera so posledica nastavitev aplikacije za varčevanje baterije.
Večanje odstopanja pri meritvah razdalje bi lahko zmanjšali s tem, da bi zmanjšali časovni
interval in razdaljo pridobivanja posodobitev lokacij, kar pa bi pomenilo, da bi bila poraba
energije večja in s tem posledično krajše delovanje naprave.
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 26
6 PREDNOSTI IN SLABOSTI APLIKACIJE REKREACIJSKI
ASISTENT
Tabela 4: Prednosti in slabosti aplikacije Rekreacijski asistent
Prednosti a) Preprosta
b) Priročna
c) Neomejena na infrastrukturo poti
d) Sproten prikaz podatkov
e) Novice o športnih dogodkih
f) Primerna za vse generacije uporabnikov
g) Delno delovanje brez internetne povezave
Slabosti h) Uporaba interneta
i) Poraba energije
j) Razbiranje podatkov iz spletne strani
k) Samo za android mobilne telefone
l) Izguba GPS signala v mestih
Vse aplikacije imajo svoje prednosti in slabosti in tudi ta ni izjema. Za nastanek aplikacij
smo uporabili različne tehnologije, katere imajo prednosti, vendar nam prinašajo tudi
nekatere slabosti.
Najpomembnejši prednosti aplikacije sta, da je primerna za uporabnike vseh starosti in je
preprosta za uporabo, saj ima preprost grafični vmesnik in dovolj velike gumbe, ki so
opazni ter jih tako lažje pritisnemo. Aplikacija je priročna, kajti dandanes si večina
populacije življenja ne more več predstavljati brez vsakodnevne uporabe mobilnih naprav,
imamo jih torej vedno pri sebi. Podatke nam prikazuje sproti: lokacijo, kjer se nahajamo,
hitrost gibanja, maksimalno hitrost in pretekli čas dejavnosti. Lahko deluje tudi brez
internetne povezave, ampak delno, tako da ne prikazuje zemljevida, prikaže pa vse ostalo.
Aplikacija ni omejena na infrastrukturo cest ali poti, tako kot navigacija, saj nam
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 27
evidentira, kje se gibljemo, oziroma nahajamo. Omogoča nam tudi možnost vpogleda v
seznam novic o bližnjih športnih dogodkih, razbranih s spletno aplikacijo iz spletne strani
www.sportnikoledar.si in je nato prikazan na pripomočku (widget).
Kljub težnji po izdelavi aplikacije z minimalnim pojavom slabosti, je popolno aplikacijo
skorajda nemogoče izdelati. Bistvena slabost, oziroma omejitev pri sami aplikaciji je, da
deluje samo na operacijskem sistemu android. Pri sami aplikaciji pa smo predvideli tudi
pojav nekaterih slabosti, ki jih prinaša uporaba nekaterih izbranih tehnologij. Da aplikacija
deluje popolnoma je potrebna internetna povezava, ki ni na vseh lokacijah omogočena,
slabosti potrebe po internetni povezavi sta tudi to, da se nam z uporabo internetne
povezave poveča strošek prenosa podatkov in poveča se tudi poraba energije baterije.
Obstaja možnost, da ne moremo pridobiti seznama športnih dogodkov, zaradi
onemogočenega dostopa do interneta, zrušitve strežnika ali da nam spremenijo strukturo
spletne strani, oziroma, da se spletna stran ukine in zato dobimo nepopolne oziroma
popačene podatke ali pa podatkov sploh ne dobimo ter je potreben razvoj nove spletne
storitve oziroma popravek trenutne spletne storitve.
Ena izmed nevšečnosti je tudi izguba GPS signala, ki se pogosto pojavlja v mestih. Do tega
prihaja zaradi visokih zgradb, ki so ovira za potovanje signala. Enak problem predstavljajo
tudi drevesa v gosto poraščenih gozdovih. Te težave se pojavljajo, ker se moč GPS
signalov na poti do Zemlje zmanjša. Do izgube moči lahko prihaja, kadar morajo signali
potovati čez veliko barier, kot so: oblaki, dež, sneg ali megla [16].
Včasih se lahko temu izognemo s tem, da stopimo vstran od stavbe, oziroma v gozdu
poiščemo manj poraščen predel.
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 28
7 ZAKLJUČEK
Debelost v zadnjem času vse hitreje narašča po vsem svetu in zato predstavlja pereče
probleme, v vsakdanjem življenju posameznikov. Prav tako narašča uporaba mobilnih
naprav, katere so postale nepogrešljiv del našega življenja. Zato smo se odločili, da
razvijemo aplikacijo, katera bo v pomoč ljudem pri ukvarjanju z rekreacijami na prostem.
Najprej smo si morali izbrati, za kateri operacijski sistem bomo razvijali aplikacijo, nato pa
še katere tehnologije bomo potrebovali pri samem razvoju. Zaradi dostopnosti smo izbrali
android operacijski sistem, za razvijalno okolje pa smo izbrali Eclipse z dodatki za
programiranje android aplikacij.
V prvem delu smo se osredotočili na razvoj aplikacije in potrebne tehnologije. Prvi korak
je bil, da smo si ustvarili načrt aplikacije in določili funkcionalnosti, katere mora aplikacija
vsebovati. Potem ko smo določili funkcionalnosti smo določili in preučili potrebne
tehnologije za implementacijo vseh funkcionalnosti. Glavno funkcionalnost aplikacije
predstavlja izris poti na zaslon naprave, saj ta daje uporabniku prikaz napredka, katerega je
opravil. Za prikaz poti smo potrebovali GPS tehnologijo, preko katere smo pridobivali
lokacijo, kje se uporabnik trenutno nahaja, ter potrebovali smo še Google maps zemljevid,
na katerega smo lahko izrisovali povezave med lokacijami. Implementirali smo tudi
funkcionalnost izbire poti, po kateri se lahko uporabnik rekreira, seznam na katerega se
zapisujejo podatki posameznih rekreacij, ter možnost prikaza poti že končanih rekreacij iz
podatkovne baze.
Kot zadnji korak smo se lotili preizkušanja aplikacije na fizični napravi, kar nam je
prineslo pozitivne rezultate. Po koncu preizkušanja, smo aplikacijo podrobneje pregledali
in določili prednosti in slabosti, katere ima. Na koncu smo še opazili, da bi lahko dodali
kot izboljšavo, zvočno vodenje uporabnika po prej izbrani poti.
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 29
8 VIRI
1. Prekomerna telesna teža in debelost
.Dostopno:http://biokemija.typepad.com/blog/2012/02/prekomerna-telesna-teža-
debelost-hujsanje.html (3.12.2012)
2. BURNETTE, Ed. 2011. Hello, Android: Introducing Google's Mobile
Development Platform. US: Pragmatic Bookshelf. ISBN 978-19343565562
3. FELKER, Donn. 2011. Android Application Development for dummies. Hoboken:
Wiley Publishing, Inc.ISBN 978-0-470-77018-4
4. The AndroidManifest.xml File
.Dostopno:http://developer.android.com/guide/topics/manifest/manifest-intro.html
(5.12.2012)
5. What is GPS? .Dostopno:http://www.gps.gov/systems/gps/ (5.12.2012)
6. GPS konstelacija .Dostpno:http://www.punaridge.org/doc/factoids/GPS/gpsfig1.jpg
(5.12.2012)
7. PIMPLER, Eric. 2009. Mashup Mania with Google Maps. Boearne:Geospatial
Training Services
8. SVENNERBERG, Gabriel. 2010. Beginning Google Maps API 3. New York:
Apress. ISBN 978-1-4302-2803-5
9. GOSLING, James, JOY, Bill, STEELE, Guy, BRACHA, Gilad, in BUCKLEY,
Alex. 2012. The Java™ Language Specification Java SE 7 Edition. Kalifornija:
Oracle America, Inc.
10. Keyhole Markup Language .Dostopno:https://developers.google.com/kml/
(3.1.2013)
11. Jsoup: Java HTML Parser .Dostopno:http://jsoup.org/ (3.1.2013)
12. About SQLite .Dostopno:http://www.sqlite.org/about.html (5.1.2013)
13. Manifest.permission:ACCES_COARSE_LOCATION
.Dostopno:http://developer.android.com/reference/android/Manifest.permission.ht
ml (6.1.2013)
14. Manifest.permission:ACCES_FINE_LOCATION
.Dostopno:http://developer.android.com/reference/android/Manifest.permission.ht
ml (6.1.2013)
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 30
15. Uporabniški vmesnik.Dostopno:http://www.m2m-is.si/sl/tehnologija/uporabniski-
vmesnik.html (15.1.2013)
16. GPS reception in trees
.Dostopno:http://members.shaw.ca/davepatton/gpsintrees.html (16.1.2013)
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 31
9 PRILOGE
9.1 NASLOV ŠTUDENTA
Klemen Kodrič
Kozminci 6 a
2286 Podlehnik
Telefon: 031 444 723
E- mail: [email protected]
9.2 KRATEK ŽIVLJENJEPIS
Rojen: 5.9.1990 na Ptuju
Šolanje:
Osnovna šola Podlehnik (1996-2004)
Srednja elektro-računalniška šola Ptuj (2004-2008)
Fakulteta za elektrotehniko, računalništvo in informatiko, Maribor
(2008-2013)
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 32
9.3 IZJAVA O USTREZNOSTI DIPLOMSKEGA DELA
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 33
9.4 IZJAVA O ISTOVETNOSTI
Uporaba GPS in Google maps na primeru android aplikacije Rekreacijski asistent Stran 34
9.5 IZJAVA O AVTORSTVU DIPLOMSKEGA DELA