2013-01-21 82 views
-1

我有經緯度,現在不得不查找城市名稱。如何從經度和緯度找到城市?

我使用地理代碼,但我沒有得到正確的城市名稱。

但城市名稱不正確。

有什麼方法可以讓我得到正確的城市名稱?

$geocode_stats = file_get_contents("maps.googleapis.com/maps/api/geocode/…" . "&sensor=true"); 
$output_deals = json_decode($geocode_stats); 
$city   = $output_deals->results[0]->address_components[1]->short_name; 
+0

會有助於看到您的代碼 – duncan

+0

我使用此代碼: $ geocode_stats = file_get_contents(「http://maps.go ogleapis.com/maps/api/geocode/json?latlng=".$lat.",".$long。 「&傳感器=真」); $ output_deals = json_decode($ geocode_stats); $ city = $ output_deals-> results [0] - > address_components [1] - > short_name; 但有時我無法獲得正確的城市名稱 – Funti

+0

我已經將您的代碼添加到問題中,這樣更容易閱讀 – duncan

回答

3

您必須循環通過結果的所有address_components,找到一個同類型屬性設置爲一個數組:

[ "locality", "political" ] 

例子:

<?php 

$geocode_stats = file_get_contents(/*the url*/); 
$result='no city found'; 
$output_deals = json_decode($geocode_stats); 
if($output_deals->status=='OK'){ 
    $address_components=$output_deals->results[0]->address_components; 


    for($i=0;$i<count($address_components);++$i){ 
    if(array("locality", "political")==$address_components[$i]->types){ 
     $result=$address_components[$i]->short_name; 
     break; 
    } 
    } 

} else{ 
    $result=$status; 
} 
echo $result; 

?> 
+0

你能舉個例子吧。 ? – Funti

+0

增加了一個例子 –

+0

我打印$ address_conponents,但沒有值,例如「locality」 –

0
<?php 
$deal_lat=30.469301; 
$deal_long=70.969324; 
$geocode=file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng='.$deal_lat.','.$deal_long.'&sensor=false'); 

     $output= json_decode($geocode); 
enter code here 
    for($j=0;$j<count($output->results[0]->address_components);$j++){ 
       $cn=array($output->results[0]->address_components[$j]->types[0]); 
      if(in_array("locality", $cn)) 
      { 
      $city= $output->results[0]->address_components[$j]->long_name; 
      } 
      } 
      echo $city; 
?> 
+0

這是簡單的代碼,如果你需要找到城市名稱,然後將in_array(「country」,$ cn)替換爲in_array(「locality」,$ cn),如果你需要查找郵編然後replacein_array(「country」,$ cn) in_array(「postal_code」,$ cn) –

相關問題