1. Inleiding
Voor het HR-portaal zijn wij gevraagd declaraties te kunnen maken voor de reiskosten die gemaakt worden. Het bedrag van de declaratie wordt berekend door een standaard tarief keer de afstand te doen, hierbij is het dus erg belangrijk om een correcte afstand te hebben zodat dit consistent is en ook daadwerkelijk klopt. Tot nu toe werd dit door JDI gedaan door de locaties in te vullen op de ANWB routeplanner en deze vervolgens zelf in een excel sheet te zetten en daar te berekenen, dit kan natuurlijk veel makkelijker.
Door JDI waren wij de opties gegeven gebruik te maken van de Google Distance Matrix API of de ANWB routeplanner API. Over de ANWB routeplanner was echter niks te vinden dus hebben wij ervoor gekozen te gaan met de Google API, hier lag ook bij JDI de voorkeur bij.
2. Doelstelling
Het doel van dit onderzoek is duidelijk maken wat de opties zijn bij het gebruiken van de Google API en wat de verschillen zijn tussen de Google API en hoe JDI het voorheen heeft gedaan.
3. Onderzoeksvragen
Om goed onderzoek te kunnen doen stellen we onderzoeksvragen op die alle punten raken om het doel te behalen en zo een voldoende conclusie te kunnen trekken.
3.1. Hoofdvraag
De hoofdvraag luidt als volgt:
Kan de Google Distance Matrix API gebruikt worden om onze berekening te doen bij het declareren?
3.2. Deelvragen
De deelvragen zijn als volgt:
- Zijn er kosten verbonden aan het gebruiken van de Google Distance Matrix API?
- Zijn er grote verschillen tussen de resultaten van de Google Distance Matrix API en de ANWB routeplanner?
- Welke mogelijkheden zijn er bij het gebruiken van de Google Distance Matrix API?
4. Aanpak en criteria
4.1. Onderzoek aanpak
Dit onderzoek zal voornamelijk aan de hand van internetbronnen worden uitgevoerd, Google heeft zelf uitgebreide documentatie over de API dus dit zou de voornamelijkste bron zijn die gebruikt zal worden. Verder zal het onderzoek door middel van de deelvragen de hoofdvraag beantwoorden en hierdoor tot een voldoende conclusie komen.
4.2. Criteria waaraan de API moet voldoen
Om de API goed te kunnen gebruiken zijn er wat criteria waar het aan moet voldoen, de criteria zijn:
- De API moet makkelijk te gebruiken zijn.
- De API moet geen kosten in kaart brengen.
- De API berekende afstanden mogen niet veel verschillen van die van de ANWB routeplanner.
- De API moet voldoende gegevens op kunnen sturen voor ons gebruik.
5. Resultaten
5.1. Zijn er kosten verbonden aan het gebruiken van de Google Distance Matrix API?
Het prijsmodel van de Google Distance Matrix API is 'pay-as-you-go', dit houd in dat je het niet hoeft te kopen en het ook geen subscriptie is maar er echter een bedrag verbonden is aan een request doen. Voor de eerste 100.000 requests (per maand) kost het 0.005 USD per request, dit zou 5 USD zijn voor 1000 requests. Er is echter een crediet van 200 USD per maand beschikbaar van Google voor het gebruiken van bepaalde APIs, de Google Distance Matrix API valt hier ook onder. Dit betekend dus dat zolang het onder de 40.000 requests per maand blijft. er geen kosten aan verbonden zijn.
5.2. Zijn er grote verschillen tussen de resultaten van de Google Distance Matrix API en de ANWB routeplanner?
JDI heeft voorheen altijd gebruik gemaakt van de ANWB routeplanner site om afstanden te berekenen. Bij het gebruik van ons portaal hadden zij de voorkeur naar de Google API, maar alleen als deze niet veel zou verschillen van de asftanden die zij op moment dus gebruikten. Hiervoor zijn er enkele routes naar het JDI kantoor berekend vanaf enkele willekeurige locaties en zijn deze vervolgens vergeleken met de resultaten van de ANWB routeplanner, dit ziet er uit als volgt:
Locatie A | Locatie B | Afstand Google API | Afstand ANWB routeplanner |
---|---|---|---|
Gildekamp 3318, Nijmegen | Beekhuizensweg 12, Velp | 30508m | 30600m |
Professor Molkenboerstraat 3, Nijmegen | Beekhuizensweg 12, Velp | 28422m | 28300m |
Willem van Arenbergstraat 4, Nijmegen | Beekhuizensweg 12, Velp | 22413m | 22400m |
Antoon van Hooffplein 1, Arnhem | Beekhuizensweg 12, Velp | 7118m | 6900m |
Zoals te zien is zijn de verschillen erg minimaal en zou dit geen problemen opleveren voor JDI.
5.3. Welke mogelijkheden zijn er bij het gebruiken van de Google Distance Matrix API?
De Google Distance Matrix API heeft een heel aantal parameters die meegegeven kunnen worden om de resultaten te verfijnen of aan te passen naar wens.
Alle parameters die meegestuurd kunnen worden bij een request zijn als volgt:
Type | Beschrijving | Verplicht |
---|---|---|
destination | het eind punt | Ja |
origin | het begin punt | Ja |
arrival_time | de tijd waarop je aan zou komen | Nee |
departure_time | de tijd waarop je zou vertrekken | Nee |
avoid | resticties om te voorkomen zoals: toll wegen, snelweg, veerboot of binnen plekken | Nee |
language | de taal waarin je het terug krijgt | Nee |
mode | transport mode zoals: rijden, lopen fietsen of het OV | Nee |
region | regio code | Nee |
traffic_model | aanname bij het berekenen van de reistijd | Nee |
transit_mode | specificatie van welk type OV gebruikt mag worden zoals: bus of trein | Nee |
transit_routing_preference | extra voorkeuren zoals: zo min mogelijk lopen of overstappen | Nee |
units | in welke unit het wordt terug gegeven | Nee |
Voor ons doeleinde gebruiken wij alleen de 'destination', 'origin' en 'units' om de afstand te berekenen in kilometers.
Een functie voor een request hiermee zal er uitzien als volgt:
String url = "https://maps.googleapis.com/maps/api/distancematrix/json?destinations=" + destination + "&origins=" + origin + "&units=metric&key=" + APIKEY;
String resultString = restTemplate.getForObject(url, String.class);
Uit deze functie komt een JSON object terug, een voorbeeld hiervan ziet er zo uit:
{
"destination_addresses": [
"Zoetendaal 31, 6662 XG Elst, Netherlands"
],
"origin_addresses": [
"Professor Molkenboerstraat 3, 6524 RN Nijmegen, Netherlands"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "13.5 km",
"value": 13510
},
"duration": {
"text": "20 mins",
"value": 1181
},
"status": "OK"
}
]
}
],
"status": "OK"
}
Hierbij hebben wij alleen de afstand nodig, deze pakken wij hieruit in meters.
6. Conclusie
Nu alle deelvragen zijn beantwoord kunnen we antwoord geven op de gestelde hoofdvraag: Kan de Google Distance Matrix API gebruikt worden om onze berekening te doen bij het declareren?
Zoals in de eerste deelvraag is opgesteld zijn er geen kosten (tot en bepaald punt) verbonden aan het gebruik van de API, wij kunnen hier dus gratis gebruik van maken. Verder zoals er beschreven staat in de tweede deelvraag zijn er geen grote verschillen tussen de afstanden waar JDI gebruik van maakte en de afstand die wij nu krijgen via de API. En tot slot zoals in de derde deelvraag beschreven staat kunnen wij erg makkelijk gebruik maken van de API en krijgen wij hier vervolgens ook de benodigde informatie uit terug.
Om de vraag dus te beantwoorden: ja deze kan gebruikt worden om onze berekening te doen.
Add Comment