U ovom ću blog postu pokazati kako koristiti Google® Distance Matrix API za prikaz informacija o udaljenosti i vremenu putovanja između dvije ili više lokacija na Google karti. Ideja za ovaj blog post došla je iz jednog projekta od prije nekoliko mjeseci, slično ovome, gdje smo kod kolege ugrađivali ovaj jednostavan, a vrlo koristan API.
The Distance Matrix API is a service that provides travel distance and time for a matrix of origins and destinations. The API returns information based on the recommended route between start and end points, as calculated by the Google Maps API, and consists of rows containing duration and distance values for each pair. – Developer Guide
Priprema projekta
Unutar Google Cloud Platform Console sučelja trebam prvo kreirati novi projekt ili odabrati postojeći.
S obzirom da sam prije koristio nekoliko različitih Google API-ja već imam postojeće projekte, ali ovaj API ne želim dodati niti u jedan od njih pa ću kreirati novi.
Novi projekt će se zvati APIs4Blog.
Nakon što se novi projekt kreira pojavit će se sljedeći ekran. Ovdje me zanima gumb “ENABLE APIS AND SERVICES”.
Klikom na gumb “ENABLE APIS AND SERVICES” dolazim do sljedećeg ekrana gdje mogu vidjeti sve dostupne API-je.
Pomoću tražilice pronalazim Distance Matrix API.
Ovdje se još jednom mogu vidjeti detalji kao i cijena korištenja Distance Matrix API-ja.
Klikom na “ENABLE” mogu vidjeti sučelje s informacijama o korištenju API-ja.
Odmah se prebacujem na Credentials tab kako bi ondje kreirao API KEY bez kojega ne mogu koristiti Distance Matrix API.
API KEY je uspješno kreiran i spreman za korištenje.
Implementacija
URL za slanje zahtjeva izgleda ovako:
|
1 |
https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters |
Format dobivenih rezultata.
outputFormat određuje format dobivenih rezultata koji može biti u dva oblika: json ili xml. Maksimalna dužina URL-a je 8192 znakova.
Obavezni parametri (parameters)
Primjer API poziva sa obaveznim parametrima:
|
1 |
https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=Vinkovci,HR&destinations=Osijek,HR&key=*************************************** |
Kod parametara je situacija nešto složenija i postoje razne kombinacije kao što su:
Polazište (origins)
Polazište označava početnu lokaciju. Može biti zadano u obliku adrese, koordinata ili place ID-a.
Ako se za početnu lokaciju koristi više adresa ili koordinata između njih je potrebno staviti sljedeći znak “|”.
Korištenje adrese kao polazišta:
|
1 |
origins=Vinkovci+HR|Osijek+HR |
Korištenje koordinata kao polazišta:
|
1 |
origins=45.287907,18.805677|45.554962,18.695515 |
Korištenje Place ID-a kao polazišta:
|
1 |
origins=place_id:ChIJWQLDg4iKXEcRsM4rhlCtAAQ |
Odredište (destinations)
Jednak oblik kao i za polazište.
API Ključ (API KEY)
Njega sam kreirao ranije u ovom blog postu.
Opcionalni parametri
- mode – označava način prijevoza koji će se koristiti pri izračunavanju udaljenosti. Moguće je birati između: driving (vožnja, ako se ništa ne odabere uzima se ovaj parametar), walking (hodanje), bicycling (bicikl), transit (javni prijevoz, ako postoji).
- language – označava jezik u kojemu će se prikazati rezultati.
- region – označava odabir države prema ccTLD. Ovaj parametar će utjecati na rezultate geokodera, ali ako relevantniji rezultati postoje izvan određenog područja, oni mogu biti uključeni u rezultat.
- avoid – omogućava odabir ograničenja za rutu. Npr. izbjegavati cestarinu (avoid=tolls), autocestu (avoid=highways).
- units – omogućava odabir mjerne jedinice za izražavanje udaljenosti (kilometri ili milje).
Kasnije je unutar sučelja moguće vidjeti statistiku korištenja API-ja.















