2017-07-07 71 views
-1

我想從谷歌地圖與地理編碼API獲取位置。但經過一些使用api不起作用。在經緯度與谷歌API的位置查找器

這裏是我的代碼,我不知道發生了什麼,我已經改變了API_KEY和嘗試,也沒有從API

function addressPicker($latitude, $longitude){ 
     /*$latitude = '9.537086'; 
     $longitude = '76.886407';*/ 
     $geolocation = $latitude.','.$longitude; 

     $API_KEY = 'AIzaSyCV1OstieLoQIssF0tBwB6jYYz_I7w1FRA'; 
     $request = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.$geolocation.'&sensor=false&key='.$API_KEY; 

     $file_contents = file_get_contents($request); 
     $json_decode = json_decode($file_contents); 
     $place_name = ''; 
     if(isset($json_decode->results[0])) { 
      $response = array(); 
      $j = 0; 
      foreach($json_decode->results[0]->address_components as $addressComponet) { 
       $response2[] = $addressComponet->long_name; 

       switch ($json_decode->results[0]->address_components[$j]->types[0]) { 
        case 'street_number': 
         $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
         break; 
        case 'route': 
         $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
         break; 
        case 'political': 
         $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
         break; 
        case 'locality': 
         $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
         break; 
       } 
       $j++; 
      } 
      return $place_name; 
     } 
    } 
+0

弄來使用API​​簡單的地圖? –

+0

首先我得到了這個API的結果,現在沒有數據 – Midhun

+0

羅傑@Midhun,可以告訴我你在file_get_contents中得到了什麼? –

回答

1

@Midhun請使用此代碼。 我只是檢查您的代碼其返回錯誤:

LIKE [error_message] =>對此API的請求必須通過SSL。使用「https://」而不是「http://」加載API。

/*$latitude = '9.537086'; 
    $longitude = '76.886407';*/ 
    $geolocation = $latitude.','.$longitude; 

    $API_KEY = 'AIzaSyCV1OstieLoQIssF0tBwB6jYYz_I7w1FRA'; 
    $request = 'https://maps.googleapis.com/maps/api/geocode/json?latlng='.$geolocation.'&sensor=false&key='.$API_KEY; 

    $file_contents = file_get_contents($request); 
    $json_decode = json_decode($file_contents); 
    $place_name = ''; 
    if(isset($json_decode->results[0])) { 
     $response = array(); 
     $j = 0; 
     foreach($json_decode->results[0]->address_components as $addressComponet) { 
      $response2[] = $addressComponet->long_name; 

      switch ($json_decode->results[0]->address_components[$j]->types[0]) { 
       case 'street_number': 
        $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
        break; 
       case 'route': 
        $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
        break; 
       case 'political': 
        $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
        break; 
       case 'locality': 
        $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
        break; 
      } 
      $j++; 
     } 
     return $place_name; 
    } 
} 

所以我只設置HTTPShttps://maps.googleapis.com/maps/api/geocode/json?latlng='.$geolocation.'&sensor=false&key='.$API_KEY;

+0

實際上它返回的結果是** http **,但在某些回覆停止後需要將其設置爲** https **並放置api鍵,現在它的完美工作 – Midhun

+0

羅傑! @Midhun Happy Codding Bro –

0

得到確實的谷歌的網址是不正確的。此URL似乎也不錯:

https://maps.googleapis.com/maps/api/geocode/json?latlng=9.537086,76.886407&key=AIzaSyCV1OstieLoQIssF0tBwB6jYYz_I7w1FRA

function addressPicker($latitude, $longitude){ 
     /*$latitude = '9.537086'; 
     $longitude = '76.886407';*/ 
     $geolocation = $latitude.','.$longitude; 

     $API_KEY = 'AIzaSyCV1OstieLoQIssF0tBwB6jYYz_I7w1FRA'; 
     $request = 'https://maps.googleapis.com/maps/api/geocode/json?latlng='.$geolocation.'&sensor=false&key='.$API_KEY; 

     $file_contents = file_get_contents($request); 
     $json_decode = json_decode($file_contents); 
     $place_name = ''; 
     if(isset($json_decode->results[0])) { 
      $response = array(); 
      $j = 0; 
      foreach($json_decode->results[0]->address_components as $addressComponet) { 
       $response2[] = $addressComponet->long_name; 

       switch ($json_decode->results[0]->address_components[$j]->types[0]) { 
        case 'street_number': 
         $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
         break; 
        case 'route': 
         $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
         break; 
        case 'political': 
         $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
         break; 
        case 'locality': 
         $place_name .= $json_decode->results[0]->address_components[$j]->long_name . ', '; 
         break; 
       } 
       $j++; 
      } 
      return $place_name; 
     } 
    } 
相關問題