我有经纬度,现在必须找到城市名称。
我正在使用地理位置代码,但我没有获得正确的城市名称。
但城市名称不正确。
我有没有办法获得正确的城市名称?
$geocode_stats = file_get_contents("maps.googleapis.com/maps/api/geocode/…" . "&sensor=true");
$output_deals = json_decode($geocode_stats);
$city = $output_deals->results[0]->address_components[1]->short_name;
答案 0 :(得分:3)
您必须循环遍历结果的所有address_components并找到类型属性设置为数组的那个:
[ "locality", "political" ]
示例:
<?php
$geocode_stats = file_get_contents(/*the url*/);
$result='no city found';
$output_deals = json_decode($geocode_stats);
if($output_deals->status=='OK'){
$address_components=$output_deals->results[0]->address_components;
for($i=0;$i<count($address_components);++$i){
if(array("locality", "political")==$address_components[$i]->types){
$result=$address_components[$i]->short_name;
break;
}
}
} else{
$result=$status;
}
echo $result;
?>
答案 1 :(得分:0)
<?php
$deal_lat=30.469301;
$deal_long=70.969324;
$geocode=file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng='.$deal_lat.','.$deal_long.'&sensor=false');
$output= json_decode($geocode);
enter code here
for($j=0;$j<count($output->results[0]->address_components);$j++){
$cn=array($output->results[0]->address_components[$j]->types[0]);
if(in_array("locality", $cn))
{
$city= $output->results[0]->address_components[$j]->long_name;
}
}
echo $city;
?>