Google Maps APIでリバースジオコーディング


Google Maps API v3を使って、ジオコードから住所を割り出す方法。

以下では、都道府県と市区町村レベルまで取り出す。

$lat = '35';
$lng = '139';

// 日本語で欲しいのでlanguage=ja 指定。sensor=true/falseは必須
$url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.$lat.','.$lng.'&language=ja&sensor=true';

$json = file_get_contents($url);

$rg = json_decode($json);
// ここでprint_r($rg)すると全部見えるが、欲しいところだけを見る。
// 実際$rgには'results'がいっぱいあるが、都道府県と市区町村ぐらいなら全部同じっぽい
$results = $rg->{'results'}[0]->{'address_components'} ;
foreach($results as $key=>$array)
{
$value = $array->{'long_name'};
$name = $array->{'types'}['0'];

    // 欲しいところだけ格納
if($name == 'country' ) // 都道府県
$reverse_geocode['country'] = $value;
elseif($name == 'administrative_area_level_1' ) // 都道府県
$reverse_geocode['administrative_area_level_1'] = $value;
elseif($name == 'locality' )
$reverse_geocode['locality'] = $value;
elseif($name == 'postal_code' )
$reverse_geocode['postal_code'] = $value;

}
print_r($reverse_geocode);

注意点

Use of the Google Geocoding API is subject to a query limit of 2,500 geolocation requests per day. (User of Google Maps API for Business may perform up to 100,000 requests per day.)

参照

https://developers.google.com/maps/documentation/geocoding/

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL