携帯サイトでGoogleMAP+GPSナビへのリンクを設置

2009年 11月 20日 (金) / AM 10:37

携帯サイト用にGoogleMAP(画像)を設置しただけでは寂しいので、docomoとauからのアクセスの場合は自動でキャリアのGPSナビゲーションへのリンクを地図下部に表示するサンプルを作ってみた。

GoogleMAPとauの緯度経度情報は10進法なのに対してdocomoは60新法なので、10進法→60進法へ自動計算出来ればベストなのですが、PHPの知識が足りないので挫折。
softbankはキャリア提供のGPSナビが無い様なので無視。

サンプルの座標は熊本城。
・・・・・本丸御殿を見に行きたい。

<?PHP
    // ユーザエージェントの取得
    $agent = $_SERVER['HTTP_USER_AGENT'];

    // 10進法
    $lat = 32.806173 ; // 緯度
    $lon = 130.705834 ; // 経度

    // 60進法 (docomo用)
    $lat2 = '32.48.22.223' ; // 緯度
    $lon2 = '130.42.21.004' ; // 経度

    // Google MAPの設定
    $api_key = '(APIキー)' ; // APIキー
	$size_w = 200 ; // 地図画像の幅
	$size_h = 150 ; // 地図画像の高さ
	$zoom = 14 ; // ズームレベル

    // Google MAPの記述
    echo '<center><img src="http://maps.google.com/staticmap?center=' . $lat . ',' . $lon . '&markers=' . $lat . ',' . $lon . '&zoom=' . $zoom . '&size=' . $size_w . 'x' . $size_h . '&key=' . $api_key . '"><br />' ;

    // 各キャリアのナビゲーションへのリンク
    if (preg_match('/^J-PHONE/', $agent) or
        preg_match('/^Vodafone/', $agent) or
        preg_match('/^SoftBank/', $agent) or
        preg_match('/^MOT-/', $agent)) {
        // SoftBank
        echo '</center>';
    } elseif (preg_match('/^DoCoMo/', $agent)) {
        // docomo
        echo '<a href="http://docomo.ne.jp/cp/map.cgi?geo=wgs84&lat=' . $lat2 . '&lon=' . $lon2 . '">ナビを起動</a></center>' ;
    } elseif (preg_match('/UP.Browser/', $agent)) {
        // au
        echo '<a href="http://walk.eznavi.jp/map/?datum=0&unit=1&lat=+' . $lat . '&lon=+' . $lon . '">ナビを起動</a></center>' ;
    } else {
        // その他
        echo '</center>';
    }
?>

タグ: , ,

コメントを残す