2013-03-06 83 views
0

这是我以前的帖子就同一事项:driving-distance-between-2-locations发行代码为找到两两地之间的行车距离与谷歌的距离矩阵

我需要使用谷歌地图找到两个位置之间的行驶距离,但在JavaScript中,而不是我需要它在PHP中。在那个网页上被接受的答案在我所寻找的内容中为我工作。我需要这个用于我的项目,并且在一个星期左右没有测试过我的项目,现在这个代码不再工作。为了让代码突然停止工作,搜索和查找答案花了很长时间。

<?php 
    $url = 'http://maps.google.com/maps/nav?q=from:London%20to:Dover'; 
    $data = file_get_contents($url); 
    $data = utf8_decode($data); 
    $obj = json_decode($data); 
    echo $obj->Directions->Distance->meters; 
?> 

这是代码,我已经尝试了一些var_dumps,但我真的不足够的经验来理解。

Var_dumps每行:

串(56) “http://maps.google.com/maps/nav?q=from:London%20to:Dover

串(76), “{” 名称 “:” 从:伦敦:多佛 “ ”状态“:{” 代码“:”610“,”request“:”directions“}}”

string(76)“{”name“:”from:London to:Dover“,”Status“:{”code“:610,”request “:”directions“}}”

object(stdClass)#1(2){[“name”] => string(20)“from:London to:Dover”[“Status”] => object( stdClass)#2(2){[“code”] => int(610)[“request”] => stri NG(10)“方向”}}

NULL

我不知道是怎么回事脱错误等。如果有人可以帮助我会非常感激,因为我很失望,它只是停止加工。

+0

的可能重复[能够看到打印\ _r()一个变量的输出,但不知道如何访问它的代码(http://stackoverflow.com/questions/6322084 /能够看到-a-variable-in-print-rs-output-but-not-sure-how-to-it-in -c) – hakre 2013-03-06 12:43:42

+0

想知道你是否添加了一个逗号和地名后的国家可能会帮助 – Rafe 2013-03-06 12:55:07

+0

这不应该是你的网址吗? 'http://maps.googleapis.com/maps/api/distancematrix/json?originins = London&destinations = Dover&mode = bicycling&language = zh-CN&sensor = false' https://developers.google.com/maps/documentation/distancematrix/# JSON – AmazingDreams 2013-03-06 12:55:48

回答

1

在这里你去

<?php 
$url = 'http://maps.googleapis.com/maps/api/distancematrix/json?origins=London&destinations=Dover&mode=driving&language=en&sensor=false'; 
$data = file_get_contents($url); 
$data = utf8_decode($data); 
$obj = json_decode($data); 

echo($obj->rows[0]->elements[0]->distance->text); //km 
echo($obj->rows[0]->elements[0]->distance->value); // meters 
+0

非常感谢:') – Lubblobba 2013-03-06 13:14:02

+0

@Lubblobba随时乐意帮助,我相信你的原始网址是api的V2和多数民众赞成在为什么它扔600错误,你什么也没有得到 – 2013-03-06 13:17:01

+0

哦,我认为可能有更新或什么的。再次感谢! – Lubblobba 2013-03-06 13:39:43