sveuČiliŠte u rijeci tehniČki fakultet · 2016. 6. 5. · 2 2. opis suČelja klijenta ovo...
TRANSCRIPT
SVEUČILIŠTE U RIJECI
TEHNIČKI FAKULTET
Diplomski sveučilišni studij računarstva
Diplomski rad
Primjena reverznog geokodiranja i praćenja
kretanja u mobilnoj aplikaciji
Rijeka, oţujak 2016. Bojan Sulovsky
0069049945
SVEUČILIŠTE U RIJECI
TEHNIČKI FAKULTET
Diplomski sveučilišni studij računarstva
Diplomski rad
Primjena reverznog geokodiranja i praćenja
kretanja u mobilnoj aplikaciji
Mentor: izv. prof. dr. sc. Miroslav Joler
Rijeka, oţujak 2016. Bojan Sulovsky
0069049945
Sadržaj
1. UVOD ................................................................................................................................. 1
2. OPIS SUČELJA KLIJENTA .............................................................................................. 2
2.1 Navigacija .................................................................................................................... 2
2.1.1 Neprijavljeni korisnici .......................................................................................... 2
2.1.2 Prijavljeni korisnici .............................................................................................. 3
2.2 Prijava (Login) ............................................................................................................. 4
2.2 Registracija (Register) ................................................................................................. 5
2.4 Oporavak lozinke (Recover password) ........................................................................ 6
2.5 Glavni izbornik (Main menu) ...................................................................................... 7
2.6 Mapa (Show map) ........................................................................................................ 8
2.7 Povijest (History) ....................................................................................................... 10
2.7.1 Povijest (History) ................................................................................................ 10
2.7.2 Mapa povijesti (History Map) ............................................................................ 11
2.8 Moj profil (My Profile) .............................................................................................. 12
2.8.1 Izmjena lozinke (Change Password) .................................................................. 13
2.8.2 Brisanje korisničkog računa (Delete account) .................................................... 14
2.9 Prijatelji (Friends) ...................................................................................................... 15
2.9.1 Prihvaćeni prijatelji (Accepted) .......................................................................... 15
2.9.2 Zahtjevi za prijateljstvo (Pending) ..................................................................... 16
2.9.3 Traţenje novih prijatelja ..................................................................................... 17
2.9.4 Slanje pozivnice (Friend invite) ......................................................................... 18
2.10 Postavke (Settings) .................................................................................................... 19
3. OPIS SUČELJA ADMINISTRATORA ........................................................................... 21
3.1 Navigacija .................................................................................................................. 21
3.1.1 Neprijavljeni korisnici ........................................................................................ 21
3.1.2 Prijavljeni korisnici ............................................................................................ 22
3.2 Prijava (Login) ........................................................................................................... 23
3.2 Registracija (Register) ............................................................................................... 24
3.4 Oporavak lozinke (Forgot Password) ........................................................................ 25
3.5 Glavni izbornik (Main menu) .................................................................................... 26
3.6 Izmjena lozinke (Change Password) .......................................................................... 27
3.7 Postavke servera (Server Settings) ............................................................................ 28
4. POZADINSKI PROCESI ................................................................................................. 29
5. MATEMATIČKE FORMULE ......................................................................................... 30
6. NOVE FUNKCIONALNOSTI ......................................................................................... 31
6.1 Reverzno geokodiranje .............................................................................................. 31
6.2 Povijest kretanja ......................................................................................................... 31
6.3 Ostale funkcionalnosti ............................................................................................... 32
7. OPIS RADA SERVERA ................................................................................................... 33
7.1 Baza podataka ............................................................................................................ 33
7.1.1 Users ................................................................................................................... 33
7.1.2 History ................................................................................................................ 34
7.1.3 Settings ............................................................................................................... 34
7.1.4 Admin ................................................................................................................. 35
7.2 PHP skripte ................................................................................................................ 35
8. LOKALNA BAZA PODATAKA (NA MOBILNOM UREĐAJU) ................................. 38
8.1 Pamćenje kredencija .................................................................................................. 38
8.2 Spremanje postavki .................................................................................................... 39
8.3 Pohrana prihvaćenih prijatelja ................................................................................... 39
8.4 Pohrana povijesti kretanja prijatelja .......................................................................... 40
9. SAŢETAK ......................................................................................................................... 41
10. LITERATURA .............................................................................................................. 43
1
1. UVOD
Zadatak ovog diplomskog rada je nadogradnja postojeće mobilne aplikacije MapMe by
Circle [1]. Svrha aplikacije je mogućnost organiziranja susreta ili sastanaka s većim krugom
poznanika bez potrebe za učestalim kontaktiranjem, koordiniranjem i usmjeravanjem na
odreĎeno mjesto, a prednost je što olakšava i predviĎanje točnijeg vremena susreta. U
današnje vrijeme uţurbanog ţivljenja, ovo je jako prihvatljiva mogućnost za jednostavan
dogovor oko što točnijega vremena i mjesta susreta.
Osjetljiva strana aplikacije je mogućnost praćenja poznanika kroz dulji vremenski rok i
zadiranje u privatnost, ali u rješenju je osigurano da se svaka osoba u svakom trenutku moţe
„sakriti“ pomoću opcije u samoj aplikaciji. Podatci o kretanju korisnika se automatski brišu
nakon 24 sata. No, mogućnost praćenja istovremeno moţe biti i pogodnost, npr. za roditelje
da mogu imati prikaz kretanja svojega djeteta tijekom dana i na taj način povećati sigurnost
djeteta.
Na postojeće funkcionalnosti aplikacije (upravljanje prijateljstvima, slanje vlastite i
preuzimanje lokacija prijatelja, prikaz lokacija prijatelja na mapi, filtriranje prijatelja po
proizvoljnoj udaljenosti od korisnika, mogućnost sakrivanja vlastite lokacije), bilo je
potrebno dodati mogućnost reverznog geokodiranja i praćenje kretanja kroz odreĎeni
vremenski period. Uz to su dodane i mogućnosti izmjene teme aplikacije (svijetla ili tamna),
mogućnost zaključavanja orijentacije, mogućnost filtriranja ostalih korisnika po starosti
podataka, mogućnost brisanja korisničkog računa te implementacija preciznijeg i brţeg
sustava za lociranje korisnika. TakoĎer je razvijena i administratorska verzija aplikacije
sukladno zadatku.
Aplikacija je, radi meĎunarodne upotrebljivosti, cijela raĎena na engleskom jeziku. Za
korištenje aplikacije potrebno je kreirati račun (account) koji od korisnika zahtijeva: email
adresu, display name (ime za prikaz), zaporku te broj telefona.
2
2. OPIS SUČELJA KLIJENTA
Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi.
Aplikacija ima 9 glavnih sučelja: sučelje za prijavu, registraciju, oporavak lozinke, glavni
izbornik, prikaz mape, povijest kretanja prijatelja na mapi, moj profil, prijatelji i postavke.
2.1 Navigacija
Navigacija aplikacijom dijeli se na dva dijela: neprijavljeni (Slika 2.1) i prijavljeni
korisnici (Slika 2.2).
Prijavljeni i neprijavljeni korisnici imaju pristup različitim navigacijskim sustavima. Korisnik
moţe s lakoćom mijenjati svoje stanje iz neprijavljenog u prijavljenog korisnika i obratno.
Povratak na prijašnje sučelje vrši se klikom na „Back“ tipku na vašem mobilnom ureĎaju,
osim u slučaju povratka iz „Glavni izbornik“ u „Prijava“ koje se vrši tipkom „Sign out“.
2.1.1 Neprijavljeni korisnici
Pri pokretanju aplikacije svaki korisnik počinje kao neprijavljeni korisnik u sučelju za prijavu.
Iz sučelja za prijavu korisnik moţe izvršiti prijavu te tako doći do Glavnog izbornika, odnosno
navigacije za prijavljene korisnike.
Slika 2.1. Graf navigacije neprihjavljenih korisnika
3
Do sučelja za registraciju korisnik dolazi iz sučelja za prijavu klikom na tipku „Register“, dok do
sučelja za povratak lozinke klikom na tipku „Forgot password“.
2.1.2 Prijavljeni korisnici
Pri uspješnom izvršavanju prijave, neprijavljeni korisnik postaje prijavljeni korisnik te
dobiva pristup navigaciji za prijavljene korisnike pritom gubeći pristup navigaciji za
neprijavljene korisnike.
Prijavljeni korisnik moţe ponovno postati neprijavljeni korisnik klikom na tipku „Sign out“ u
glavnom izborniku.
Iz glavnog izbornika korisnik moţe doći do sučelja „Mapa“ klikom na tipku „Show map“.
Za pristup sučelju „Povijest“ potrebno je kliknuti na tipku „History“ u glavnom izborniku. Iz
tog sučelja dolazi se do sučelja „History map“ klikom na tipku „Show history“.
Do sučelja „Moj profil“ dolazi se klikom na tipku „My profile“ u glavnom izborniku. Iz tog
sučelja moţe se doći do sučelja „Izmjena lozinke“ klikom na tipku „Change password“, a do
sučelja „Brisanje računa“ klikom na tipku „Delete account“.
Iz glavnog izbornika dolazi se do sučelja „Prijatelji“ klikom na tipku „Friends“ u kojem,
ovisno o broju neodgovorenih zahtjeva za prijateljstvom, vas aplikacija sama postavlja u
jedno od sučelja – „Prihvaćeni“ ili „Zahtjevi za prijateljstvo“. Iz oba ta sučelja moguće je doći
do drugog putem tipki. Do sučelja „Traţenje novih prijatelja“ dolazi se klikom na tipku „Add
new friend“ koja se nalazi u sučeljima „Prihvaćeni“ i „Zahtjevi za prijateljstvo“.
Slika 2.2. Graf navigacije prijavljenih korisnika
4
Do sučelja „Slanje pozivnice“ dolazi se iz sučelja „Traţenje novih prijatelja“ klikom na tipku
„Send invite“
Za doći do sučelja „Postavke“ potrebno je na glavnom izborniku kliknuti na tipku
„Settings“.
2.2 Prijava (Login)
Sučelje za prijavu (Slika 2.3) sluţi za prijavu registriranih korisnika radi upotrebe
aplikacije. Na tom sučelju se takoĎer nalaze standardne mogućnosti sučelja za prijavu.
Sučelje za prijavu sastoji se od:
1) Polja za unos email adrese
2) Polja za unos lozinke
3) Checkbox opcije za pamćenje prijavnih kredencija
4) Checkbox opcije za automatsku prijavu – moguće samo ako pamtimo kredencije
5) Tipke za prijavljivanje korisnika
6) Tipke za otvaranje sučelja za registraciju novih korisnika
7) Tipke za otvaranje sučelja za povratak lozinke
Slika 2.3. Sučelje za prijavu
5
2.2 Registracija (Register)
Sučelje za registraciju (Slika 2.4) sluţi za registraciju novih korisnika. Od korisnika se
zahtijeva unos podataka u za to predviĎena polja.
Sučelje za registraciju sastoji se od:
1) Polja za unos email adrese
2) Polja za unos lozinke
3) Polja za ponovni unos lozinke
4) Polja za unos imena za prikaz
5) Polja za unos telefonskog broja
6) Tipke za kreiranje novog korisničkog računa
Slika 2.4. Sučelje za registraciju
6
2.4 Oporavak lozinke (Recover password)
Sučelje za oporavak lozinke (Slika 2.5) sluţi da u slučaju kad korisnik zaboravi lozinku
svog korisničkog računa moţe oporaviti svoju lozinku.
Sučelje za oporavak lozinke sastoji se od:
1) Polja za unos email adrese
2) Tipke za oporavak lozinke
Slika 2.5. Sučelje za oporavak lozinke
7
2.5 Glavni izbornik (Main menu)
Slika 2.6 prikaz je glavnog izbornika iz kojega je moguć pristup svim ostalim glavnim
sučeljima i funkcionalnostima aplikacije.
Glavni izbornik sastoji se od:
1) Tipke za otvaranje prikaza mape
2) Tipke za otvaranje sučelja za povijest kretanja korisnika
3) Tipke za otvaranje sučelja za „moj profil“
4) Tipke za otvaranje sučelja za prikaz informacija o prijateljima
5) Ispisa o trenutnom stanju zahtjeva za prijateljstvom (vidljivo samo ako postoji zahtjev)
6) Tipke za otvaranje sučelja za postavke
7) Tipke za otvaranje sučelja za odjavu korisnika (Slika 2.7)
8) Opcija „Ne“
9) Opcija „Da i zaboravi me“
10) Opcija „Da“
Slika 2.6. Glavni izbornik Slika 2.7. Glavni izbornik - odjava
korisnika
8
2.6 Mapa (Show map)
Mapa (Slika 2.8) je sučelje s glavnom funkcionalnošću aplikacije – prikaz prijatelja na
mapi u odreĎenom radijusu.
Sluţi tome da moţemo na brz i jednostavan način otkriti tko se nalazi u našoj okolici, koliko
je udaljen te koliko je ta informacija stara.
Mapa sadrţi:
1) Padajući izbornik prijatelja u zadanom radijusu
2) Tipka za centriranje mape na odabranog prijatelja
3) Tipka za izvanredno hvatanje podataka o lokacijama prijatelja
4) Checkbox opcija za kontinuirano centriranje mape na odabranog prijatelja
5) Checkbox opcija za kontinuirano centriranje mape na vlastitu lokaciju
6) Checkbox opcija za zadrţavanje ekrana upaljenim
7) Mapa
8) Tipka za centriranje mape na našu lokaciju
9) Tipka za kontrolu zoom-a mape
Slika 2.8. Mapa
9
10) Tipka za pristup dodatnim mogućnostima pruţanih od aplikacije Maps
11) Detalji o prijatelju – email, ime, broj telefona, starost podatka i udaljenost od nas
12) Marker na mapi – lokacija prijatelja
13) Krug – radijus oko naše lokacije, ugaĎa se sa 14, 15 i 16
14) Checkbox opcija za omogućavanje i onemogućavanje kruga
15) Slider za kontrolu radijusa kruga
16) Numeričko polje za kontrolu radijusa kruga
17) Detalji o osobi koju smo zadnju odabrali
18) Tipka za pokretanje aplikacije za poruke – broj je već odabran
19) Tipka za pokretanje aplikacije za pozive – broj je već odabran
20) Adresa osobe koju smo zadnju odabrali
21) Tipka za dohvaćanje adrese (reverzno geokodiranje)
10
2.7 Povijest (History)
Povijest (Slika 2.9) je sučelje sa funkcionalnosti prikaza povijesti kretanja prijatelja po
mapi.
Sastoji se od dvaju sučelja: odabir prijatelja čije kretanje ţelimo vidjeti te prikaz kretanja
odabranih prijatelja na mapi.
2.7.1 Povijest (History)
Sučelje povijest sluţi za odabir prijatelja čiju povijest kretanja ţelimo vidjeti na mapi.
Povijest se sastoji od:
1) Checkbox liste prijatelja koji dopuštaju uvid u svoje kretanje
2) Tipke za otvaranje sučelja Povijest mapa sa odabranim prijateljima
Slika 2.9. Povijest - odabir prijatelja
11
2.7.2 Mapa povijesti (History Map)
Mapa povijesti (Slika 2.10) je sučelje koje prikazuje povijest kretanja odabranih prijatelja
na karti te dopušta kronološko navigiranje po točkama kretanja.
Mapa povijesti sadrţi:
1) Padajući izbornik za odabir prijatelja
2) Tipka za centriranje na najstariju lokaciju odabranog prijatelja
3) Tipka za centriranje na prethodnu lokaciju odabranog prijatelja
4) Tipka za centriranje na iduću lokaciju odabranog prijatelja
5) Tipka za centriranje na najnoviju lokaciju odabranog prijatelja
6) Detalji o trenutnoj lokaciji prijatelja – email, vrijeme kada se nalazio na toj lokaciji i
adresa
7) Markeri na mapi – lokacije odabranih prijatelja
8) Linije koje povezuju markere – kronološki put kretanja prijatelja – svakoj osobi je
dodijeljena druga boja za jednostavniji pregled
Slika 2.10. Mapa povijesti
12
2.8 Moj profil (My Profile)
Moj profil (Slika 2.11) je sučelje koje prikazuje podatke o korisniku koji se nalaze na
serveru te korisniku daje mogućnost izmijeniti neke od njih.
Sučelje za Moj profil sastoji se od:
1) Ispis email adrese korisnika – nemoguće promijeniti
2) Polje za ime za prikaz, vidi se trenutno i moţe se mijenjati
3) Polje za telefonski broj, vidi se trenutno i moţe se mijenjati
4) Ispis vremena i datuma zadnjeg slanja vlastite lokacije na server
5) Checkbox za mogućnost skrivanja sebe na mapi od prijatelja
6) Checkbox za mogućnost skrivanja povijesti kretanja od prijatelja
7) Tipka za otvaranje sučelja za izmjenu lozinke
8) Tipka za otvaranje sučelja za brisanje korisničkog računa
9) Tipka za prisilno slanje vlastite lokacije na server
10) Tipka koja ostavlja vrijednosti svih polja prije promjena
11) Tipka za slanje promijenjenih vrijednosti polja na server
Slika 2.11. Sučelje za Moj profil
13
2.8.1 Izmjena lozinke (Change Password)
Sučelje za promjenu lozinke (Slika 2.12) se otvori nakon pritiska na tipku „Change
Password“, na sučelju My Profile (Slika 2.11 točka 8) i sluţi za promjenu trenutne zaporke
korisnika.
Sučelje za izmjenu lozinke sastoji se od:
1) Polja za unos trenutne zaporke
2) Polja za unos nove zaporke
3) Polja za ponovni unos nove zaporke
4) Tipke za izmjenu trenutne lozinke
Slika 2.12. Sučelje za Izmjenu lozinke
14
2.8.2 Brisanje korisničkog računa (Delete account)
Sučelje za brisanje korisničkog računa (Slika 2.13) sluţi za brisanje računa korisnika i
otvori se nakon stiska na tipku „Delete account“ na sučelju „My Profile“.
Sučelje za brisanje računa sastoji se od:
1) Polja za unos trenutne zaporke
2) Tipke za brisanje korisničkog računa
Slika 2.13. Sučelje za Brisanje računa
15
2.9 Prijatelji (Friends)
Prijatelji (Friends) je sučelje koje sadrţi podatke o prijateljima trenutnog korisnika. Sučelje
ima odvojeni prikaz za već prihvaćene prijatelje i sa zahtjevima za prijateljstvo koji su
poslane korisniku. TakoĎer postoji sučelje za traţenje novih prijatelja te sučelje za slanje
pozivnica.
Prihvaćeni prijatelji i Zahtjevi za prijateljstvom su zapravo isto sučelje, razlika je u tome
koja lista se prikazuje, no za potrebe ove dokumentacije bit će tretirani kao zasebna sučelja.
2.9.1 Prihvaćeni prijatelji (Accepted)
Slika 2.14. Prihvaćeni prijatelji (Accepted) je dio sučelja za prijatelje koji prikazuje
prihvaćene prijatelje korisnika te opciju prekidanja prijateljstva (Slika 2.15).
Prihvaćeni prijatelji sučelje se sastoji od:
1) Tipka za promjenu prikaza na prihvaćene prijatelje – trenutni prikaz
2) Tipka za promjenu prikaza na zahtjeve za prijateljstvo – prikazuje i broj trenutnih
zahtjeva
Slika 2.14. Prihvaćeni prijatelji Slika 2.15. Prihvaćeni prijatelji -
prekid prijateljstva
16
3) Podatci o prijatelju – ime za prikaz, email adresa i broj telefona
4) Tipka za otvaranje sučelja za prekid prijateljstva (Slika 2.15)
5) Tipka za otvaranje sučelja za traţenje novih prijatelja
6) Tipka za prisilno osvjeţavanje prikaza
7) Prikaz emaila adrese prijatelja za koga je prikazano sučelje za prekid prijateljstva
8) Opcija „Ne“
9) Opcija „Da“
2.9.2 Zahtjevi za prijateljstvo (Pending)
Slika 2.16 Zahtjevi za prijateljstvo (Pending) je dio sučelja koje sadrţi podatke o
podnositeljima zahtjeva za prijateljstvo trenutnom korisniku te korisniku daje mogućnost
prihvaćanja (Slika 2.17) ili odbijanja zahtjeva.
Zahtjevi za prijateljstvo sastoji se od:
1) Tipka za promjenu prikaza na prihvaćene prijatelje
2) Tipka za promjenu prikaza na zahtjeve za prijateljstvo – trenutni prikaz
3) Podatci o podnositelju zahtjeva – ime za prikaz, email adresa i broj telefona
Slika 2.16. Zahtjevi za prijateljstvo Slika 2.17. Zahtjevi za prijateljstvo -
prihvaćanje prijateljstva
17
4) Tipka za otvaranje sučelja za odbijanje prijateljstva – kao (Slika 2.17) uz drukčiji opis
5) Tipka za otvaranje sučelja za prihvaćanje prijateljstva (Slika 2.17)
6) Tipka za otvaranje sučelja za traţenje novih prijatelja
7) Tipka za prisilno osvjeţavanje prikaza
8) Prikaz email adrese prijatelja za koga je prikazano sučelje za prihvaćanje/odbijanje
zahtjeva
9) Opcija „Ne“
10) Opcija „Da“
2.9.3 Traţenje novih prijatelja
Traţenje novih prijatelja (Friends lookup) (Slika 2.18) je sučelje koje omogućuje korisniku
da potraţi korisnike aplikacije te da im moţe poslati zahtjev za prijateljstvom.
Traţenje novih prijatelja sastoji se od:
1) Polja za unos informacija o osobi – unosi se ili email ili ime za prikaz osobe na ekranu
ili telefonski broj
Slika 2.19. Traženje novih prijatelja -
podnošenje zahtjeva
Slika 2.18. Traženje novih prijatelja
18
2) Tipke za pretraţivanje korisnika u bazi sa podatcima iz Polja 1
3) Podatci o pronaĎenim korisnicima – ime za prikaz, email adresa i broj telefona
4) Tipka za otvaranje sučelja za podnošenje zahtjeva za prijateljstvo (Slika 2.19)
5) Tipka za otvaranje sučelja za slanje pozivnice
6) Prikaz email adrese korisnika za kojega je prikazano sučelje za podnošenje zahtjeva
7) Opcija „Ne“
8) Opcija „Da“
2.9.4 Slanje pozivnice (Friend invite)
Slanje pozivnice (Slika 2.20) je sučelje koje omogućuje korisniku da šalje email pozivnice
za korištenje aplikacije.
Traţenje novih prijatelja sastoji se od:
1) Polja za unos email adrese osobe kojoj ţelimo poslati pozivnicu
2) Polje za unos osobne poruke koja se pridodaje pozivnici
3) Izgled pozivnice koja se šalje
4) Tipka za slanje pozivnice
Slika 2.20. Slanje pozivnice
19
2.10 Postavke (Settings)
Postavke (Slika 2.21) je sučelje gdje se postavljaju sve lokalne postavke aplikacije:
omogućavanje prikaza kruga područja od interesa na mapi, postavljanje maksimalne i
defaultne veličine radijus kruga, period osvjeţavanja podataka o prijateljima, period slanja
vlastite lokacije na server, onemogućavanje provjere mobitela za GPS postavke, odabir načina
prikaza prijatelja u padajućem izborniku na mapi.
Postavke se sastoji od:
1) Checkbox opcija za omogućavanje/onemogućavanje prikaza radijus kruga na mapi
2) Polje za unos maksimalnog radijusa kruga – vidljivo samo ako je krug radijusa
omogućen
3) Slider za kontrolu defaultnog radijusa kruga – vidljivo samo ako je krug radijusa
omogućen
4) Polje za kontrolu defaultnog radijusa kruga – vidljivo samo ako je krug radijusa
omogućen
5) Checkbox opcija za omogućavanje/onemogućavanje filtriranje prijatelja po vremenu
na mapi
6) Polje za unos vremenskog perioda u danima – vidljivo samo ako je filtriranje
omogućeno
Slika 2.21. Postavke
20
7) Polje za unos vremenskog perioda u satima – vidljivo samo ako je filtriranje
omogućeno
8) Polje za unos vremenskog perioda u minutama – vidljivo samo ako je filtriranje
omogućeno
9) Slider za kontrolu perioda osvjeţavanja podataka o prijateljima
10) Polje za kontrolu perioda osvjeţavanja podataka o prijateljima
11) Checkbox opcija za omogućavanje/onemogućavanje servisa za slanje vlastite lokacije
na server
12) Checkbox opcija za dozvoljavanje komunikacije sa serverom samo putem WiFi
konekcije – vidljivo samo ako je slanje omogućeno
13) Checkbox opcija za omogućavanje/onemogućavanje rada servisa u pozadini – vidljivo
samo ako je slanje omogućeno
14) Slider za kontrolu perioda slanja vlastite lokacije – vidljivo samo ako je slanje
omogućeno
15) Polje za kontrolu perioda slanja vlastite lokacije – vidljivo samo ako je slanje
omogućeno
16) Stanje servisa za slanje vlastite lokacije na server
17) Checkbox opcija za omogućavanje/onemogućavanje opcije slanja i primanja podataka
što je češće moguće – sakriva 9, 10, 11, 12, 13 i 14
18) Checkbox opcija za onemogućavanje provjere mobitela za GPS postavke
19) Checkbox opcija za odabir teme (boje) aplikacija – svijetla ili tamna
20) Checkbox opcije za zadrţavanje ekrana upaljenim tokom prikaza mapa
21) Padajući izbornik za izbor prikaza sadrţaja padajućeg izbornika prijatelja na mapi
22) Padajući izbornik za izbor orijentacije aplikacije
23) Tipka za postavljanje svih vrijednosti na defaultne
24) Tipka za spremanje postavki
21
3. OPIS SUČELJA ADMINISTRATORA
Ovo poglavlje sadrţi opis sučelja administratora, odnosno gdje se što nalazi te čemu što sluţi.
Administratorska aplikacija (MapMeC – Admin) ima 6 glavnih sučelja: sučelje za prijavu,
registraciju, oporavak lozinke, glavni izbornik, izmjenu lozinke i postavke servera.
3.1 Navigacija
Navigacija aplikacijom dijeli se na dva dijela: neprijavljeni (Slika 3.1) i prijavljeni
korisnici (Slika 3.2).
Prijavljeni i neprijavljeni korisnici imaju pristup različitim navigacijskim sustavima. Korisnik
moţe s lakoćom mijenjati svoje stanje iz neprijavljenog u prijavljenog korisnika i obratno.
Povratak na prijašnje sučelje vrši se klikom na „Back“ tipke na vašem mobilnom ureĎaju,
osim u slučaju povratka iz „Glavni izbornik“ u „Prijava“ koje se vrši tipkom „Sign out“
3.1.1 Neprijavljeni korisnici
Pri pokretanju aplikacije svaki korisnik počinje kao neprijavljeni korisnik u sučelju za
prijavu.
Slika 3.1. Graf navigacije neprihjavljenih korisnika
22
Iz sučelja za prijavu korisnik moţe izvršiti prijavu te tako doći do Glavnog izbornika,
odnosno navigacije za prijavljene korisnike.
3.1.2 Prijavljeni korisnici
Pri uspješnom izvršavanju prijave, neprijavljeni korisnik postaje prijavljeni korisnik te
dobiva pristup navigaciji za prijavljene korisnike pritom gubeći pristup navigaciji za
neprijavljene korisnike.
Prijavljeni korisnik moţe ponovno postati neprijavljeni korisnik klikom na tipku „Sign out“ u
glavnom izborniku.
Iz glavnog izbornika korisnik moţe doći do sučelja „Izmjena lozinke“ klikom na tipku
„Change password“.
Za doći do sučelja „Postavke servera“ potrebno je na glavnom izborniku kliknuti na tipku
„Configure server“.
Slika 3.2. Graf navigacije prijavljenih korisnika
23
3.2 Prijava (Login)
Sučelje za prijavu (Slika 3.3) sluţi za prijavu registriranih administratora radi upotrebe
aplikacije. Na tom sučelju se takoĎer nalaze standardne mogućnosti sučelja za prijavu.
Sučelje za prijavu sastoji se od:
1) Polja za unos email adrese
2) Polja za unos lozinke
3) Checkbox opcije za pamćenje prijavnih kredencija
4) Checkbox opcije za automatsku prijavu – moguće samo ako pamtimo kredencije
5) Tipke za prijavljivanje korisnika
6) Tipke za otvaranje sučelja za registraciju novih korisnika
7) Tipke za otvaranje sučelja za povratak lozinke
Slika 3.3. Sučelje za prijavu
24
3.2 Registracija (Register)
Sučelje za registraciju (Slika 3.4) sluţi za registraciju novih administratora. Od korisnika
se zahtijeva unos podataka u za to predviĎena polja.
Sučelje za registraciju sastoji se od:
1) Polja za unos email adrese
2) Polja za unos lozinke
3) Polja za ponovni unos lozinke
4) Tipke za kreiranje novog korisničkog računa
Slika 3.4. Sučelje za registraciju
25
3.4 Oporavak lozinke (Forgot Password)
Sučelje za oporavak lozinke (Slika 3.5) sluţi da u slučaju kad administrator zaboravi
lozinku svog korisničkog računa moţe povratiti svoju lozinku.
Sučelje za oporavak lozinke sastoji se od:
1) Polja za unos email adrese
2) Tipke za povratak lozinke
Slika 3.5. Sučelje za oporavak lozinke
26
3.5 Glavni izbornik (Main menu)
Slika 3.6 prikaz je glavnog izbornika iz kojega se ima pristup svim ostalim glavnim
sučeljima i funkcionalnostima aplikacije.
Glavni izbornik sastoji se od:
1) Tipke za otvaranje sučelja za izmjenu lozinke
2) Tipke za otvaranje sučelja za postavke servera
3) Tipke za otvaranje sučelja za odjavu korisnika (Slika 3.7)
4) Opcija „Ne“
5) Opcija „Da i zaboravi me“
6) Opcija „Da“
Slika 3.7. Glavni izbornik - odjava
korisnika
Slika 3.6. Glavni izbornik
27
3.6 Izmjena lozinke (Change Password)
Sučelje za promjenu zaporke (Slika 3.8) sluţi za promjenu trenutne zaporke
administratora.
Sučelje za izmjenu lozinke sastoji se od:
1) Polja za unos trenutne zaporke
2) Polja za unos nove zaporke
3) Polja za ponovni unos nove zaporke
4) Tipka za izmjenu trenutne zaporke
Slika 3.8. Sučelje za Izmjenu lozinke
28
3.7 Postavke servera (Server Settings)
Sučelje za postavke servera (Slika 3.9) sluţi za pregled i izmjene trenutnih postavki servera.
Sučelje za izmjenu lozinke sadrţi:
1) Polje za unos URL adrese od kuda se moţe preuzeti klijentsku aplikaciju
2) Polje za unos vrijednosti za postavke vremena za sate
3) Polje za unos vrijednosti za postavke vremena za minute
4) Polje za unos vrijednosti za postavke udaljenosti u metrima
5) Tipka koja vraća sve vrijednosti polja prije promjena
6) Tipka za slanje vrijednosti na server
Slika 3.9. Sučelje za Postavke servera
29
4. POZADINSKI PROCESI
Klijentska aplikacija ima samo jedan pozadinski proces – servis za slanje vlastite lokacije na
server.
Servis je aktivan samo dok je aplikacija upaljena, gašenjem aplikacije gasi se i servis.
Za slanje vlastite lokacije na server servis zahtijeva:
1) Email adresu korisnika
2) Dozvolu za slanje vlastite lokacije na server
3) Pristup internetu
Servis dobiva email adresu korisnika pri prijavi korisnika u aplikaciju tako da nije moguće
slati lokaciju drugog korisnika.
Dozvolu za slanje lokacije na server servis dobiva ovisno o postavkama aplikacije. Ukoliko
korisnik to ţeli, moguće je da servis nema dozvolu za slanje te se automatski gasi.
Pristup internetu moţe biti putem beţičnog interneta (Wi-Fi) ili putem mobilnog interneta
(uslugu pruţa teleoperater).
Učestalost slanja lokacije na server, ako je dopušteno, ovisi o postavkama aplikacije.
Lokacija se moţe slati u intervalima od jedne minute do 15 minuta i to svake pune minute.
30
5. MATEMATIČKE FORMULE
Klijentska aplikacija koristi Haversinovu formulu (5.1) za računanje zračne udaljenosti na
sferoidnom objektu izmeĎu dvije lokacije.
Pošto naš planet nije savršeni sferoid, formula ima male pogreške u rezultatu za zračne
udaljenosti. Veličina pogreške ovisi o poloţajima izmeĎu kojih ţelimo saznati udaljenost.
Pogreška će biti veća što smo bliţe ekvatoru i što su točke udaljenije jedna od druge. Kod
ekvatora pogreška iznosi do 0.55%, dok je u prosječnom slučaju ispod 0.3% [2].
Za primjenu ove aplikacije ta razina greške je zanemarivo mala.
(√ (
) ( ) ( ) (
)) (5.1)
Gdje su:
( )
( )
( )
31
6. NOVE FUNKCIONALNOSTI
Ovo poglavlje pokriva nove funkcionalnosti dodane klijentskoj aplikaciji – reverzno
geokodiranje i povijest kretanja.
6.1 Reverzno geokodiranje
Reverzno geokodiranje je proces reverznog mapiranja geografske lokacije tj. iz poznate
zemljopisne širine i duţine se odreĎuje adresa lokacije, što omogućuje idetifikaciju lokacije
na graĎanima razumljiv način.
Ova funkcionalnost je prisutna u 2 sučelja klijentske aplikacije – „Map“ i „History map“.
Za saznavanje adrese aplikacija se sluţi Google Maps Geocoding API-em [3], na način da
se pošalje geografska lokacija za koju ţelimo saznati adresu na za to predviĎenu klasu
„Geocoder“. Povratna informacija od API-a sadrţi podatke o lokaciji različitih razina
preciznosti – od imena ulice do imena drţave.
Implementacijom ove funkcionalnosti omogućeno je očitavanje adresa lokacija ostalih
korisnika na praktičan način.
6.2 Povijest kretanja
Ova funkcionalnost daje mogućnost pohrane korisnikovih lokacija na server što će
odobrene osobe potom moći vidjeti u aplikaciji ukoliko je korisnik dopustio uvid u povijest
svoga kretanja.
Zbog zaštite privatnosti korisnika aplikacije, njihove točke kretanja se u sustavu zadrţavaju
samo 24 sata nakon čega se točke kretanja brišu.
Učestalost biljeţenja točki kretanja ovisi o postavkama servera, o kojima odlučuje
administrator. Postupak zapisivanja točki kretanja detaljno je opisan u poglavlju 7.2 zbog
potrebe poznavanja strukture baze podataka na serveru i korištenih PHP skripti.
Uvid u povijesti kretanja moguć je u sučelju „History map“ no samo za prijatelje korisnika
koji su dopustili uvid u njihovo kretanje.
Aplikacija u sučelju Povijest (Slika 2.9) od servera preuzima podatke o povijesti kretanja
korisnika i svih njegovih prijatelja (ako su dopustili uvid). Korisnik potom moţe odabrati
proizvoljan broj osoba čiju povijest kretanja ţeli vidjeti na mapi.
32
Odabrane osobe prikazane su na sučelju Mapa povijesti (Slika 2.10) kao markeri na mapi.
Markeri svake osobe kronološki su povezani linijama jedinstvene boje u slučaju da je
odabrano do 20 osoba, a ako je odabrano više od 20 osoba, boje linija poveznica se mogu
ponavljati.
6.3 Ostale funkcionalnosti
U aplikaciju je dodana mogućnost odabira teme (svijetla ili tamna), mogućnost
zaključavanja orijentacije te mogućnost postavljanja podesivog vremenskog filtra na prikaz
prijatelja na mapi. To se podešava u sučelju Postavke (Slika 2.21).
Kod vremenskog filtra moţe se postaviti odabrana starost podataka u danima, satima i
minutama. U slučaju da je zadnja lokacija prijatelja starija od postavki vremenskog filtra,
prijatelj neće biti prikazan na mapi.
Dodana je i mogućnost brisanja korisničkog računa u slučaju da korisnik više ne ţeli
koristiti aplikaciju te će tom opcijom izbrisati svoje podatke sa servera.
Izmijenjena je metoda hvatanja lokacije korisnika. U prijašnjoj verziji se koristila android
klasa LocationManager [4], dok je sada u upotrebi FusedLocationProvider [5]. Izmjena je
implementirana iz razloga što je FusedLocationProvider efikasniji te funkcionira na razini
ureĎaja, odnosno, moţe hvatati sve zahtjeve za lokacijom na mobilnom ureĎaju, a ne
isključivo od ove aplikacije. Time se postiţe manja potrošnja baterije i češće i točnije
lociranje korisnika.
Razvijena je i zasebna administratorska aplikacija koja omogućuje izmjenu postavki
servera u vezi učestalosti zapisivanja povijesti kretanja korisnika. Učestalost se moţe podesiti
u satima i minutama.
33
7. OPIS RADA SERVERA
Da bi aplikacija mogla pruţiti sve svoje funkcionalnosti korisniku, mora se učestalo spajati na
server i razmjenjivati podatke sa njim. Na serveru se nalazi MySQL baza podataka [6] i PHP
skripte [7] koje vrše komunikaciju izmeĎu aplikacije i baze.
7.1 Baza podataka
Baza podataka se sastoji od 4 tablice: users, history, settings i admin.
7.1.1 Users
U tablici users (Tablica 7.1) se nalaze svi podatci o korisnicima – email, lozinka, telefonski
broj, ime za prikaz, zadnja lokacija, vrijeme zadnje lokacije, ţeli li korisnik biti skriven ili ne,
ţeli li korisnik sakriti svoju povijest kretanja te popis prijatelja i zahtjeva za prijateljstvo.
Tablica 7.1. Tablica users
Ime polja Vrsta vrijable Opis
id INT(11) Primarni ključ tablice
username VARCHAR(25) Email adresa korisnika
password VARCHAR(128) Kriptirana lozinka korisnika
display_name VARCHAR(45) Ime za prikaz
latitude FLOAT(10,6) Poloţaj na geografskoj širini
longitude FLOAT(10,6) Poloţaj na geografskoj duţini
hide_me TINYINT(1) Ţeli li korisnik biti skriven prijateljima na karti
hide_history TINYINT(1) Ţeli li korisnik sakriti svoju povijest kretanja
last_update VARCHAR(45) Vrijeme i datum kada je zadnji put poslana lokacija
number VARCHAR(20) Broj telefona
friends_accepted TEXT Popis svih prihvaćenih prijatelja
friends_pending TEXT Popis svih trenutnih zahtjeva za prijateljstvo
34
7.1.2 History
U tablici history (Tablica 7.2) nalaze se podatci o kretanju korisnika – email, lokacija i
vrijeme.
Tablica 7.2. Tablica history
Ime polja Vrsta vrijable Opis
id INT(11) Primarni ključ tablice
username VARCHAR(25) Email adresa korisnika
latitude FLOAT(10,6) Poloţaj na geografskoj širini
longitude FLOAT(10,6) Poloţaj na geografskoj duţini
time VARCHAR(45) Vrijeme i datum kada je poslana lokacija
server_time TIMESTAMP Vrijeme i datum servera kada je poslana lokacija
Nad tablicom history se svakih sat vremena izvršava MySQL upit koji briše sve unose starije od 24
sata.
7.1.3 Settings
U tablici settings (Tablica 7.3) nalaze se podatci za pozadinsko dinamično funkcioniranje
servera – URL adresa gdje se moţe naći aplikacija, vremenske postavke za history te
udaljenost za history.
Tablica 7.3. Tablica settings
Ime polja Vrsta vrijable Opis
id INT(11) Primarni ključ tablice
gps_link VARCHAR(2000) URL lokacija aplikacije
time_hour VARCHAR(2) Vrijeme – sati
time_minute VARCHAR(2) Vrijeme – minute
distance VARCHAR(10) Udaljenost – metri
Vrijednost u polju gps_link koristi se pri slanju pozivnica.
Vrijednosti u poljima time_hour, time_minute i distance potrebne su za zapisivanje u
tablicu history. Točan postupak je opisan u poglavlju 7.2 PHP skripte.
35
7.1.4 Admin
U tablici admin (Tablica 7.4) nalaze se kredencije za prijavu administartora, te sadrţi samo
email i lozinku.
Tablica 7.4. Tablica admin
Ime polja Vrsta vrijable Opis
id INT(11) Primarni ključ tablice
username VARCHAR(25) Email adresa administratora
password VARCHAR(128) Kriptirana lozinka administratora
7.2 PHP skripte
PHP skripte (Tablica 7.5) su zaduţene za primanje upita od aplikacije, vršenje tih upita na
bazi te vraćanje odgovora aplikaciji.
Imena svih skripti vrlo jasno označuju za kakav upit je koja skripta zasluţna.
Tablica 7.5. PHP skripte an serveru
Ime skripte Služi za
admin_change_password Zamjenu trenutne lozinke administratora
admin_login Akreditacija administratora
admin_read_settings Dohvaćanje postavki servera
admin_recover_account Zaboravljena lozinka, postavlja novu generiranu lozinku i
obavještava o tome administratora
admin_register Registracija novog administratora
admin_update_settings Zapisivanje postavki servera
change_passowd Zamjenu trenutne lozinke
config.inc Sadrţi podatke za povezivanje sa bazom, ostale skripte
ovise o njoj
delete_account Brisanje korisnika
friend_accept Prihvaćanje zahtjeva za prijateljstvom
friend_deny Odbijanje zahtjeva za prijateljstvom
friend_lookup Pretraţivanje baze za korisnicima
friend_remove Prekidanje prijateljstva sa korisnikom
36
friend_request Podnošenje zahtjeva za prijateljstvom
invite_friend Slanje pozivnice
login Akreditacija korisnika
mailSend Slanje emaila korisnicima po potrebi
read_all_friends_history Dohvaćanje podataka o povijesti kretanja
read_all_friends_accepted Dohvaćanje podataka o prihvaćenim prijateljima
read_all_friends_pending Dohvaćanje podataka o zahtjevima za prijateljstvo
read_my_profile Dohvaćanje podataka o korisniku
recover_account Zaboravljena lozinka, postavlja novu generiranu lozinku i
obavještava o tome korisnika
register Registracija novog korisnika
update_location Slanje lokacije na server
update_profile Izmjena podataka o korisniku
Kada korisnik pošalje svoju lokaciju da osvjeţi lokaciju u tablici users (update_location),
vrši se provjera za zapisivanje (Slika 7.1) u tablicu history koja izgleda ovako:
a) Server dohvaća vrijednosti time_hour, time_minute i distance iz tablice settings
b) Server potom pretraţuje tablicu history za zapise koji ispunjavaju iduće uvjete:
samo zapisi za korisnika koji osvjeţava lokaciju, koji su zapisani unazad time_hour
i time_minute vremena te se sortiraju tako da najnoviji zapis bude na prvom mjestu
Slika 7.1. Graf zapisivanja u tablicu history
37
c) U slučaju da nema zapisa u zadnjih time_hour i time_minute vremena, dodaje se
novi zapis u history te skripta završava
d) U slučaju da postoji zapis u zadnjih time_hour i time_minute vremena, računa se
udaljenost izmeĎu lokacije iz najnovijeg zapisa i trenutne lokacije korisnika
e) U slučaju da je izračunata udaljenost veća ili jednaka vrijednosti distance, dodaje se
novi zapis u history te skripta završava
f) U slučaju da je izračunata udaljenost manja od vrijednosti distance, skripta se
završava bez dodavanja novog zapisa
38
8. LOKALNA BAZA PODATAKA (NA MOBILNOM UREĐAJU)
Klijentska aplikacija koristi lokalnu bazu podataka za pamćenje kredencija (ako korisnik ţeli)
(Tablica 8.1), za spremanje postavki aplikacije (Tablica 8.2), za pohranu prihvaćenih prijatelja
i podataka o njima (Tablica 8.3) te za pohranu povijesti kretanja prijatelja (Tablica 8.4).
Administratorska aplikacija koristi lokalnu bazu podataka samo za pamćenje kredencija
(ako korisnik ţeli).
Budući da je aplikacija namijenjena za korištenje na mobitelu, nije predviĎeno da isti
ureĎaj koristi više osoba. To se odraţava u strukturi baze podataka i funkcijama koje se nad
njom vrše.
8.1 Pamćenje kredencija
Tablica 8.1. Izgled tablice "login"
Ime polja Služi za
_id Primarni ključ tablice
username Email adresa korisnika
password Lozinka korisnika
login Automatski pokušaj prijave pri pokretanju aplikacije
Aplikacije pamte samo jednog korisnika, tako da ako u bazi već postoji unos za korisnika,
taj unos se zamijeni novim unosem.
Klijnetska i administartorska aplikacija koriste identičnu tablicu za kredenciju.
39
8.2 Spremanje postavki
Tablica 8.2. Izgled tablice "settings"
Ime polja Služi za
_id Primarni ključ tablice
default_max_radius Maksimalna veličina radius kruga
default_radius Defaultna veličina radius kruga
default_refresh Učestalost dohvaćanja podataka o prijateljima
default_update Učestalost slanja vlastite lokacije
default_realtime Stanje opcije „realtime“
default_gps_check Provjera ureĎaja za GPS postavkama
default_dropdown Prikaz padajućeg izbornika
last_db_update Vrijeme i datum zadnjeg dohvaćanja podataka o prijateljima
default_orientation Orijentacija aplikacije
default_theme Tamni ili svijetli izgled aplikacije
default_filter Stanje opcije „filter“
default_filter_day Vrijeme u danima za filter
default_filter_hour Vrijeme u satima za filter
default_minute Vrijeme u minutama za filter
default_startup Dopušten rad servisa u pozadini
default_wifi Komunikacija sa serverom samo putem WiFi konekcije
default_alive Drţanje ekrana upaljenim tijekom prikaza mape
Aplikacija pamti samo jedne postavke, tako da u slučaju da više korisnika dijeli isti ureĎaj,
svi će imati iste postavke.
8.3 Pohrana prihvaćenih prijatelja
Tablica 8.3. Izgled tablice "friends"
Ime polja Opis
_id Primarni ključ tablice
username Email adresa prijatelja
display_name Ime za prikaz prijatelja
40
latitude Poloţaj prijatelja na geografskoj širini
longitude Poloţaj prijatelja na geografskoj duţini
hide_me Ţeli li prijatelj biti skriven na karti
last_update Vrijeme i datum kada je zadnji put poslana lokacija
number Broj telefona prijatelja
Pri svakom dohvaćanju podataka o prihvaćenim prijateljima, svi unosi u tablici „friends“ se brišu,
zatim se zapisuju novi podatci. Time je postignuto da je tablica uvijek aktualna u trenutku
osvjeţavanja podataka.
8.4 Pohrana povijesti kretanja prijatelja
Tablica 8.4. Izgled tablice "history"
Ime polja Opis
_id Primarni ključ tablice
username Email adresa prijatelja
display_name Ime za prikaz prijatelja
latitude Poloţaj prijatelja na geografskoj širini
longitude Poloţaj prijatelja na geografskoj duţini
hide_me Ţeli li prijatelj biti skriven na karti
time Vrijeme i datum kada je poslana lokacija
number Broj telefona prijatelja
Pri svakom dohvaćanju podataka o povijesti kretanja prijateljima, svi unosi u tablici
„history“ se brišu, zatim se zapisuju novi podatci. Time je postignuto da je tablica uvijek
aktualna u trenutku osvjeţavanja podataka.
41
9. SAŽETAK
Zadatak ovog diplomskog rada je bila nadogradnja aplikacije MapMe by Circle, svrha koje je
geolociranje prijatelja u stvarnom vremenu i u od korisnika zadanom radijusu.
Da bi aplikacija funkcionirala, potreban je server sa podatcima o svim korisnicima, na koji
se šalju vlastiti podatci i primaju podatci o prijateljima.
Na serveru je potrebno imati bazu podataka i način za komuniciranje sa njom te direktorij
za smještaj PHP skipti koje posreduju izmeĎu mobilne aplikacije i baze podataka na serveru.
Kodiranje aplikacije započelo je upoznavanjem sa Google Maps objektom pošto je to
centralni dio aplikacije. Potom je slijedilo implementiranje raznih funkcionalnosti -
dizajniranja sučelja i osnovnih usluga, ostvarivanje komunikacije sa serverom te lokalno
spremanje podataka.
Izradom aplikacije, ostvarene su sljedeće ključne funkcionalnosti:
Slanje vlastite lokacije na server
Preuzimanje lokacija prijatelja sa servera
Prikaz lokacija prijatelja na mapi
Filtriranje prikaza po području interesa
Filtriranje prikaza po vremenskom periodu
Prikaz povijesti kretanja korisnika i prijatelja na mapi
Upravljanje dopuštenjima prikaza vlastite lokacije i povijesti kretanja
Pogodnosti koje nudi aplikacija jesu:
Prikaz samo prijatelja koji se nalaze unutar ţeljenog radijusa
Mogućnost pokretanja apliakcija za slanje SMS-a ili glasovnog poziva
Mogućnost pokretanja aplikacije za izradu rute do ţeljenog prijatelja
Periodično aţuriranje lokacije korisnika i prijatelja
Ispis stvarne adrese prijatelja
Kronološki prikaz povijesti kretanja prijatelja
Mogućnost izmjene periodičnosti, udaljenosti, filtriranja
Za Google Maps objekt korištena je sluţbena dokumentacija na web stranicama Google-a
[8].
Za slanje emaila korisniku pri registraciji, izmjeni lozinke i povratku zaboravljene lozinke
korištena je PHPMailer knjiţnica [9].
42
Tijekom kodiranja same aplikacije vrlo korisnim se prikazala i web stranica Stack
Overflow [10].
43
10. LITERATURA
[1] Joler Apps: „MapMe by Circle“, s Interneta,
https://play.google.com/store/apps/details?id=com.mapstest.mapmec, 12. oţujka 2015.
[2] Veness, C.: „Calculate distance, bearing and more between Latitude/Longitude points“, s Interneta,
http://www.movable-type.co.uk/scripts/latlong.html#ellipsoid, 05. oţujka 2016.
[3] Google: „Google Maps Geocoding API“, s Interneta,
https://developers.google.com/maps/documentation/geocoding/intro, 08. oţujka 2016.
[4] Google: „LocationManager“, s Interneta,
http://developer.android.com/reference/android/location/LocationManager.html, 12. oţujka
2016.
[5] Google: „FusedLocationProviderApi“, s Interneta,
https://developers.google.com/android/reference/com/google/android/gms/location/FusedLoc
ationProviderApi, 12. oţujka 2016.
[6] Oracle Corporation, „MySQL“, s Interneta, https://www.mysql.com/, 08. oţujka 2016.
[7] Zend Technologies, „PHP“, s Interneta, http://php.net/, 08. oţujka 2016.
[8] Google: „Google Maps Android API“, s Interneta,
https://developers.google.com/maps/documentation/android/, 05. Oţujka 2016.
[9] Worx International Inc.: „PHPMailer“, s Interneta, http://phpmailer.worxware.com/index.php, 01.
prosinca 2015.
[10] Stack Overflow. s Interneta, http://stackoverflow.com/questions/tagged/android, 05. oţujka 2016.