2012-04-20 10 views
0

さらなる処理のためにGoogle Maps API Distance Matrixの出力をPHPに取り込みたいだけです。距離の値を変数に戻す方法を理解できません。私のデータはa JSON file from Google’s Maps API v3です。JSON出力をGoogle Maps API v3距離行列からPHPに解析するにはどうすればよいですか?

{ 
    "destination_addresses" : [ "San Francisco, Californie, États-Unis", "Victoria, BC, Canada" ], 
    "origin_addresses" : [ "Vancouver, BC, Canada", "Seattle, Washington, États-Unis" ], 
    "rows" : [ 
     { 
     "elements" : [ 
      { 
       "distance" : { 
        "text" : "1 703 km", 
        "value" : 1703343 
       }, 
       "duration" : { 
        "text" : "3 jours 19 heures", 
        "value" : 326836 
       }, 
       "status" : "OK" 
      }, 
      { 
       "distance" : { 
        "text" : "138 km", 
        "value" : 138267 
       }, 
       "duration" : { 
        "text" : "6 heures 45 minutes", 
        "value" : 24278 
       }, 
       "status" : "OK" 
      } 
     ] 
     }, 
     { 
     "elements" : [ 
      { 
       "distance" : { 
        "text" : "1 451 km", 
        "value" : 1451182 
       }, 
       "duration" : { 
        "text" : "3 jours 4 heures", 
        "value" : 274967 
       }, 
       "status" : "OK" 
      }, 
      { 
       "distance" : { 
        "text" : "146 km", 
        "value" : 146496 
       }, 
       "duration" : { 
        "text" : "2 heures 52 minutes", 
        "value" : 10321 
       }, 
       "status" : "OK" 
      } 
     ] 
     } 
    ], 
    "status" : "OK" 
} 

私は、PHPの使用経験が最小限で、JavaScriptとJSONの新機能です。

答えて

5
$url = 'http://maps.googleapis.com/maps/api/distancematrix/json?origins=Vancouver+BC|Seattle&destinations=San+Francisco|Victoria+BC&mode=bicycling&language=fr-FR&sensor=false'; 
$json = file_get_contents($url); // get the data from Google Maps API 
$result = json_decode($json, true); // convert it from JSON to php array 
echo $result['rows'][0]['elements'][0]['distance']['text']; 
+0

送信!それはわたしを助ける! – doxsi

0

URL内のスペース+とあなたの別々の場所がわからないください:

<?php 
    $url = 'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=Place+City&destinations=Place+City'; 

    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    $response = curl_exec($ch); 
    if(curl_error($ch)) 
    { 
     echo 'error:' . curl_error($c); 
    } 
    else{ 
     echo json_decode($response,true); 
    } 

    curl_close($ch); 
    ?> 
0
$url = 'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=Hyderabad+Telangana+India&destinations=Mumbai+Maharashtra+India'; 
$json = file_get_contents($url); 
$result = json_decode($json, true); 
$mi = $result['rows'][0]['elements'][0]['distance']['text']; 
$km = $mi*1.60934; 
echo round($km)." KM <br/>"; 
echo $result['rows'][0]['elements'][0]['duration']['text']; 
関連する問題