Php 使用google maps api v3反向地理编码检索国家和街道地址

Php 使用google maps api v3反向地理编码检索国家和街道地址,php,google-maps-api-3,reverse-geocoding,Php,Google Maps Api 3,Reverse Geocoding,我需要从一个坐标数组开始检索:街道地址,国家,也许还有地区 我正在使用此函数: $url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=$lat,$long&sensor=false"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt(

我需要从一个坐标数组开始检索:街道地址,国家,也许还有地区

我正在使用此函数:

$url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=$lat,$long&sensor=false";

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_ENCODING, "");
$curlData = curl_exec($curl);
curl_close($curl);

$data = json_decode($curlData);

$address = $data->results[0]->address_components[1]->long_name.', '.$data->results[0]->address_components[0]->long_name;
$country = $data->results[0]->address_components[5]->long_name;
$nation = $data->results[0]->address_components[6]->long_name;
这个脚本本身正在工作,我得到了结果,但我注意到每次值都不在同一个位置(我认为这取决于可用的结果),所以我得到了错误的值。我能修好吗

以下是我的两个输出示例,用于一个位置:

$url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=$lat,$long&sensor=false";

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_ENCODING, "");
$curlData = curl_exec($curl);
curl_close($curl);

$data = json_decode($curlData);

$address = $data->results[0]->address_components[1]->long_name.', '.$data->results[0]->address_components[0]->long_name;
$country = $data->results[0]->address_components[5]->long_name;
$nation = $data->results[0]->address_components[6]->long_name;


有什么建议可以为我的结果获取正确的值吗?

您可以循环访问地址组件,并从数组“类型”字段中确定类型


工作起来很有魅力!结果和类型后刚刚添加了“s”,非常感谢!