47
Klemen Kodrič UPORABA GPS IN GOOGLE MAPS NA PRIMERU ANDROID APLIKACIJE REKREACIJSKI ASISTENT Diplomsko delo Maribor, marec 2013

UPORABA GPS IN GOOGLE MAPS NA PRIMERU ...Android Inc., katerega je leta 2005 kupilo podjetje Google, ki v nadaljnje vodi razvoj. Od prvotne različice operacijskega sistema, katera

  • 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