Ik moet voor een functie de afstand tussen 2 routes bereken. Nu was ik op het internet aan het zoeken en had ik iets gevonden wat misschien wel kon helpen.
Ik heb het scriptje gestest en er bleek iets mis te gaan om de json string die de Google Maps API terug stuurt te decode.
Ik heb zelf niet veel verstand van de Google Maps API.
Dit is het script wat ik gebruik:
<?php
function postCodeBerekener($van, $naar) {
$data = array (
'output=json',
'gl=nl',
'q=' . urlencode('from: '.$van.' to: '.$naar)
);
$url = 'http://google.com/maps/nav?' . join( '&', $data);
$ch = curl_init( $url);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_MAXREDIRS, 3);
curl_setopt( $ch, CURLOPT_REFERER, 'http://google.com');
$str = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200 ) {
return $str;
} else {
return curl_error( $ch);
}
}
$van = '5643 JR, Eindhoven, Nederland';
$naar = '5121 GG, s hertogenbosch, Nederland';
$fetch = postCodeBerekener($van, $naar);
var_dump($fetch);
var_dump(json_decode($fetch));
echo 'Afstand: '.round($fetch->Directions->Distance->meters/1000,2).' km<br />';
echo 'Tijdsduur: ~'.round($fetch->Directions->Duration->seconds/60).' minuten<br />';
Toon Meer
Het resultaat van de variable dump van fetch is een mooie string van 5460 karakters die hier te vinden is en het resultaat van de variable dump van de json_decode is: "NULL".
Weet iemand wat hier fout is gegaan? Ik gebruik trouwens geen Google Map API key om dat ik vernomen had dat deze niet gebruikt hoeft te worden. Het kan zijn dat ik dit mis heb.
Alvast bedankt!
EDIT!:
Ik heb de JSON string getest op http://jsonlint.com/ en hij zegt dat dit "Valid json" is.