2013-03-06 86 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