Google directions API
Om me iets meer te verdiepen in de Google Directions API wou ik een webapplicatie maken m.b.t. dit onderwerp.
Ik heb in gedachte om een applicatie te maken waar je een adres in kunt vullen. Vervolgens wordt het dichtstbijzijnde station gezocht voor dat adres.
Om me eerst te oriënteren heb ik er eerst voor gekozen om een hardcoded array te maken met hierin een aantal plaatsen i.p.v. stations.
Mijn code lijkt op het eerste gezicht te werken maar af en toe geeft hij de volgende
Notice: Trying to get property of non-object in C:\Users\ZeroSorry\Desktop\USB Webserver\root\functions.php on line 39
Lijn 39 komt overeen met het onderstaande lijnnummer 39.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
function findClosestStationByCar($adres) {
$nameStation = "";
$viableStations = array(
"Almelo",
"Almere",
);
$shortestDistance = 1000000;
foreach ($viableStations as $value) {
$params = array(
'origin' => $adres,
'destination' => $value,
'mode' => 'driving',
'sensor' => 'true',
'units' => 'metric',
'language' => 'nl'
);
$params_string = "";
foreach ($params as $var => $val) {
$params_string .= '&' . $var . '=' . urlencode($val);
}
// Request URL
$url = "https://maps.googleapis.com/maps/api/directions/json?" . ltrim($params_string, '&');
// Make our API request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($curl);
curl_close($curl);
// Parse the JSON response
$directions = json_decode($return);
if ($directions->routes[0]->legs[0]->distance->value < $shortestDistance) {
$shortestDistance = $directions->routes[0]->legs[0]->distance->value;
$nameStation = $value;
}
}
$returnArray = array(
$nameStation,
$shortestDistance
);
return $returnArray;
}
?>
function findClosestStationByCar($adres) {
$nameStation = "";
$viableStations = array(
"Almelo",
"Almere",
);
$shortestDistance = 1000000;
foreach ($viableStations as $value) {
$params = array(
'origin' => $adres,
'destination' => $value,
'mode' => 'driving',
'sensor' => 'true',
'units' => 'metric',
'language' => 'nl'
);
$params_string = "";
foreach ($params as $var => $val) {
$params_string .= '&' . $var . '=' . urlencode($val);
}
// Request URL
$url = "https://maps.googleapis.com/maps/api/directions/json?" . ltrim($params_string, '&');
// Make our API request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($curl);
curl_close($curl);
// Parse the JSON response
$directions = json_decode($return);
if ($directions->routes[0]->legs[0]->distance->value < $shortestDistance) {
$shortestDistance = $directions->routes[0]->legs[0]->distance->value;
$nameStation = $value;
}
}
$returnArray = array(
$nameStation,
$shortestDistance
);
return $returnArray;
}
?>
Ik heb er al wat informatie over gevonden maar geen een lijkt specifiek overeen te komen met mijn geval. Zijn er mensen die mij kunnen helpen?
Alvast bedankt.
Gewijzigd op 26/05/2014 17:02:12 door Johhny Westra
Er zijn nog geen reacties op dit bericht.