2011年7月14日木曜日

PHP 住所から緯度/経度を取得

Google Geocoding API を使って住所から緯度経度を求めます。(めちゃめちゃ簡単です)

Windows 環境ですので文字コードは SJIS です。API呼び出し時に UTF-8 に変換しています。

APIのレザルトは JSON で受け取って配列にデコードしています。

このレザルトには住所などの情報も含まれていますが JSON ですので Windows で使用する場合は SJIS への変換が必要となります。

<?php
//================================================
// 住所 → 緯度/経度変換
//================================================
function strAddrToLatLng( $strAddr )
{
    $strRes = file_get_contents(
         'http://maps.google.com/maps/api/geocode/json'
        . '?address=' . urlencode( mb_convert_encoding( $strAddr, 'UTF-8' ) )
        . '&sensor=false'
    );
    $aryGeo = json_decode( $strRes, TRUE );
    if ( !isset( $aryGeo['results'][0] ) )
        return '';


    $strLat = (string)$aryGeo['results'][0]['geometry']['location']['lat'];
    $strLng = (string)$aryGeo['results'][0]['geometry']['location']['lng'];
    return $strLat . ',' . $strLng;
}


//================================================
echo strAddrToLatLng( '東京都青梅市' );
?>

実行結果

35.7879958,139.2758298

詳しい情報は Google Geocoding API サービス をご覧ください。

0 件のコメント:

コメントを投稿