如何从 json 解码结果中获取格式化地址
Posted
技术标签:
【中文标题】如何从 json 解码结果中获取格式化地址【英文标题】:how do I get formatted address from json decode result 【发布时间】:2014-05-03 06:54:33 【问题描述】:我正在尝试从此URL 获取格式化地址。我在下面的编码中试过这个。但它不显示任何内容,也没有显示任何错误.. ?
while($r = mysql_fetch_assoc($res))
$lat = $r['latitude'];
$lng = $r['longitude'];
$url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($lat).','.trim($lng).'&sensor=false';
$jsons = @file_get_contents($url);
$data = json_decode($jsons,true);
echo $data->results[0]->formatted_address;
$json[]= array("nod"=>ucwords($r['driver_name']),"info"=>ucwords($r['driver_name'])."<br />Speed:<b>".$r['current_speed']."Km/h</b>","lat"=>$r['latitude'],"lng" => $r['longitude'],"location"=> $data, "did"=>$r['driver_id'],"mobile_number"=>$r['mobile_number'],"current_speed"=>$r['current_speed']." km/h","vehicle_name"=>$r['vehicle_name'],"vehicle_number"=>$r['registration_number']);
【问题讨论】:
【参考方案1】:给你:
<?php
while($r = mysql_fetch_assoc($res))
$lat = urlencode(trim($r['latitude']));
$lng = urlencode(trim($r['longitude']));
$url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.$lat.','.$lng.'&sensor=false';
$jsons = @file_get_contents($url);
$data = json_decode($jsons,true);
$address = $data['results'][0]['formatted_address'];
$json [] = array(
"nod" => ucwords($r['driver_name']),
"info" => ucwords($r['driver_name'])."<br />Speed:<b>".$r['current_speed']."Km/h</b>",
"lat" => $r['latitude'],
"lng" => $r['longitude'],
"location" => $address,
"did" => $r['driver_id'],
"mobile_number" => $r['mobile_number'],
"current_speed" => $r['current_speed']." km/h",
"vehicle_name" => $r['vehicle_name'],
"vehicle_number" => $r['registration_number']
);
?>
【讨论】:
试试上面的版本。您确定 json 变量是在 while 上方定义的,并且 $res 实际上返回了一些表行吗? 我确定。$res
返回纬度经度数据。但是,仍然没有显示地址..
好的,请给我它尝试获取地址的纬度和经度。
我的数据库经纬度返回此输出 lat = 9.934667 & lng = 78.104984
是的,我明白了.. 谢谢.. 这条线不见了$address = $data['results'][0]['formatted_address'];
【参考方案2】:
试试这个,应该是$data
而不是$datas
$data=json_decode($jsons);
echo $data->results[0]->formatted_address;
而不是
$data=json_decode($jsons);
$datas->results[0]->formatted_address;
--^
我得到了
的输出$lat = 32;
$lng = 40;
$url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($lat).','.trim($lng).'&sensor=false';
$jsons = @file_get_contents($url);
$data=json_decode($jsons);
echo $data->results[0]->formatted_address; // output: 75898, Saudi Arabia
【讨论】:
以上是关于如何从 json 解码结果中获取格式化地址的主要内容,如果未能解决你的问题,请参考以下文章