Fun*_*nti 2 php google-maps google-geocoder
我有一个纬度和经度,我需要取国.
我用这个:
$geocode_stats = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=".$deal_lat.",".$deal_long . "&sensor=false");
$output_deals = json_decode($geocode_stats);
$country = $output_deals->results[2]->address_components[4]->long_name;
Run Code Online (Sandbox Code Playgroud)
有时它会提供正确的国家/地区名称,但有时会提供空白值,有时会返回城市名称.
有人可以帮忙吗?
我写了一个功能,让它变得简单.只需传入您的地理位置地址即可以是完整地址,邮政编码,也可以是您的纬度和经度.然后,它将搜索该国家/地区的地址组件数组.如果它无法找到县,它将只返回null,如果需要,可以将其更改为空字符串("").
function getGeoCounty($geoAddress) {
$url = 'http://maps.google.com/maps/api/geocode/json?address=' . $geoAddress .'&sensor=false';
$get = file_get_contents($url);
$geoData = json_decode($get);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new \InvalidArgumentException('Invalid geocoding results');
}
if(isset($geoData->results[0])) {
foreach($geoData->results[0]->address_components as $addressComponent) {
if(in_array('administrative_area_level_2', $addressComponent->types)) {
return $addressComponent->long_name;
}
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13094 次 |
| 最近记录: |