-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;
4

2 に答える 2

3

結果のすべての address_components をループして、types-property が配列に設定されているものを見つける必要があります。

[ "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;

?>
于 2013-01-21T12:30:30.393 に答える
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;
?>
于 2015-08-05T10:47:12.957 に答える