从google.maps json获取网址并将数据保存在变量

时间:2017-09-15 18:56:07

标签: json google-maps

早上好我需要从JSON获取google.maps距离和时间生成的数据,文档中的地址是:

https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=Washington,DC&destinations=New+York+City,NY&key=MI_API_KEY

使用我的api进行设置并通过两个随机方向我得到并显示距离和时间:

<script>
    var respuesta = '{"destination_addresses":["Av. Sagrada Familia 627, 
Cordoba"],"origin_addresses":["9 de Julio 1800, Cordoba"],"rows":[{"elements":[{"distance":{"text":"2,2 
mi","value":3523},"duration":{"text":"9 
min","value":540},"status":"OK"}]}],"status":"OK"}'


  var distancia = JSON.parse(respuesta).rows[0].elements[0].distance.text
 var tiempo = JSON.parse(respuesta).rows[0].elements[0].duration.text

   window.onload = function what(){
    document.getElementById("span_distancia").innerHTML = distancia;
    document.getElementById("span_tiempo").innerHTML = tiempo;
  }
</script>

DISTANCE: <span id="span_distancia"></span><br>
TIME: <span id="span_tiempo"></span><br>

到目前为止一切顺利,现在开始和结束地址都不是静态的,在这个例子中,我之前总是会得到相同的数据,我需要那些数据是动态的,因为google.maps步骤开始的地址并以变量结束:

https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=VARIABLE_PHP_START&destinations=VARIABLE_PHP_END&key=MY_API_KEY

如何读取Google生成的JSON并将数据动态插入响应变量,以便每次通过开始和结束时我都会计算距离和时间并将其显示给我?

1 个答案:

答案 0 :(得分:0)

完成:

<?php 
$start= !empty($_GET['start']) ? urlencode($_GET['start']) : null;
$end = !empty($_GET['end']) ? urlencode($_GET['end']) : null;
$urlApi = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=".$start."&destinations=".$end."&key=API_KEY";
$result = file_get_contents($urlApi);
$data = json_decode($result, true);
$millas =  $data['rows'][0]['elements'][0]['distance']['text'];
$millasKm = round(($millas * 1.60934),2);
$duration = $data['rows'][0]['elements'][0]['duration']['text'];
?>
Distance: <?php echo $millasKm." Km";?><br>
Duration: <?php echo $duration;?><br>