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:

  1. Zijn er kosten verbonden aan het gebruiken van de Google Distance Matrix API?
  2. Zijn er grote verschillen tussen de resultaten van de Google Distance Matrix API en de ANWB routeplanner?
  3. 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 ALocatie BAfstand Google APIAfstand ANWB routeplanner
Gildekamp 3318, NijmegenBeekhuizensweg 12, Velp30508m30600m
Professor Molkenboerstraat 3, NijmegenBeekhuizensweg 12, Velp28422m28300m
Willem van Arenbergstraat 4, NijmegenBeekhuizensweg 12, Velp22413m22400m
Antoon van Hooffplein 1, ArnhemBeekhuizensweg 12, Velp7118m6900m

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:

TypeBeschrijvingVerplicht
destinationhet eind puntJa
originhet begin puntJa
arrival_timede tijd waarop je aan zou komenNee
departure_timede tijd waarop je zou vertrekkenNee
avoid

resticties om te voorkomen zoals: 

toll wegen, snelweg, veerboot of binnen plekken

Nee
languagede taal waarin je het terug krijgtNee
mode

transport mode zoals:

rijden, lopen fietsen of het OV

Nee

regionregio codeNee
traffic_modelaanname bij het berekenen van de reistijdNee
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
unitsin welke unit het wordt terug gegevenNee


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.


Bronnen

  1. https://developers.google.com/maps/documentation/distance-matrix/distance-matrix
  2. https://developers.google.com/maps/documentation/distance-matrix/start
  3. https://developers.google.com/maps/documentation/distance-matrix/usage-and-billing
  • No labels
Write a comment…