我目前正在使用此功能从instagram图片反转地理编码latlng:
function getGeoCountry($geoAddress) {
$url = 'http://maps.google.com/maps/api/geocode/json?address=' . $geoAddress .'&sensor=false';
//$get = file_get_contents($url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$geoData = json_decode($response);
if(isset($geoData->results[0])) {
foreach($geoData->results[0]->address_components as $addressComponent) {
if(in_array('country', $addressComponent->types)) {
return array($addressComponent->short_name, $addressComponent->long_name);
}
}
}
return null;
}
这种方式有效率为60%,但有时会返回null。基本上我不知道是什么导致了这一点,我需要有人帮我解决问题。
提前致谢
答案 0 :(得分:0)
它不清楚$geoAddress
是什么,但是当它不是urlencoded但你必须编码它时:
$url = 'http://maps.google.com/maps/api/geocode/json?address=' .
urlencode($geoAddress);
使用密钥确保您不与同一服务器上托管的其他域共享请求配额
请确保您每秒运行此功能的次数不超过10次
地理编码可能会失败,我们需要查看示例 - 响应失败尝试隔离问题