2014-09-21 84 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. 地理編碼可能會失敗,我們需要看到一個失敗的嘗試隔離問題一個例子,響應

相關問題