2014-09-21 85 views
0

我目前使用此功能反向地理从Instagram的图片经纬度:谷歌反向地理返回NULL

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
  1. 目前还不清楚是什么$geoAddress是,但是当它尚未url编码必须对其进行编码:

    $url = 'http://maps.google.com/maps/api/geocode/json?address=' . 
          urlencode($geoAddress); 
    
  2. 使用密钥,以确保你不” t与同一服务器上托管的其他域共享请求配额

  3. 请确保您不会每次secon运行此功能10次以上d

  4. 地理编码可能会失败,我们需要看到一个失败的尝试隔离问题一个例子,响应

相关问题