携帯サイトで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>';
}
?>