携帯サイトを作ろう! -ちょっと詳しいモバイルサイトの作り方-
XHTML+CSSで一歩進んだモバイルサイトを作るテクニックを幅広く紹介☆
このエントリーを含むはてなブックマーク このエントリーをブックマークに追加
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


このエントリーを含むはてなブックマーク このエントリーをブックマークに追加
なかなか更新できず申し訳ないです。

auのGPS機能を利用する方法と、GPSの起動方法については前回の

au携帯のGPS機能で地図を表示させるプログラム

を参考にしていただければ、だいたいの流れは分かったとは思いますが、
今回は最終回「auのGPSから緯度や経度を取得するプログラム例」を書きたいと思います。

前回の記事で、
GPSを起動させるには、

<a href="device:gpsone?url=test.php&ver=1&datum=1&unit=0&acry=0&number=0">位置情報取得</a>

というような記述をすればよいということはふれました。

ここで、上記の「url=test.php」という部分は、GPSにより得られた結果を処理するプログラムを指すわけですが、実際のところ、プログラムの肝となるのは、MapFanのような携帯地図表示サービス(要登録)が提供している仕様に合わせて、結果をカスタマイズすれば良いのです。

今回は、このMapFanが提供しているサービスを例に、そのプログラム(といっても数行ですが…)を紹介したいと思います。

まず、MapFanが提供しているサービスとは、
予め登録した携帯サイトにMapFanが提供するAPIを組み込むことで、
誰でも簡単に携帯GPSを使った地図表示サービスの提供が可能となり、
例えば、自社周辺の地図を提供したり、今回のようなプログラムを使用することで、現在地を提供したりすることが無料でできるようになります。

一方、MapFan(インクリメントP社)は、地図サービスを無料で提供する一方で、地図を表示するのは1回に限ったりと制限を加えることで、オリジナル版と差別化を図ることでMapFanへの登録を促したり、サービスをより広く告知する意味でもAPIを公開することがプラスになるわけです。

だいぶ本題からはずれましたが、
このサービスを利用するには登録が必要ですので、登録しなければ得られない情報は「***」で伏せてありますので、予めご了承ください。

スクリプト例
test.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Cache-Control" content="no-cache">
<title> [周辺地図検索]</title>
</head>
<body bgcolor="#fffcee">
<a name="top"></a>
<center><font color="orange">[周辺地図検索]</font></center>

<center>
<form method="get" action="http://****************.cgi">
<input type="hidden" name="***" value="http://">
<input type="hidden" name="***" value="戻る">
<input type="hidden" name="***" value="11">
<?
chop($lat);
chop($lon);
$lat_s = explode("+", $lat);
$lon_s = explode("+", $lon);
echo "<input type=hidden name=*** value=E$lon_s[1]N$lat_s[1]>";
?>
<input type="submit" value="現在地表示">
</form>

<br><font size="-2">powered by MapFan</font></center><br>

<hr size="1" color="orange" width="90%">
<font color="red">[ご注意]</font><br>地図の表示は1枚に限ります。2頁目以降はMapFanへの登録が必要です。

<hr color="blue" size="1">
<a href="/">トップへ戻る</a>
<hr color="blue" size="1">
</body>
</html>

といった感じです。
上記例はPHPを使ったスクリプトですので、CGIなどの言語にも応用可能なはずです。

ここで重要となるは、

<form method="get" action="http://****************.cgi">
<input type="hidden" name="***" value="http://">
<input type="hidden" name="***" value="戻る">
<input type="hidden" name="***" value="11">
<?
chop($lat);
chop($lon);
$lat_s = explode("+", $lat);
$lon_s = explode("+", $lon);
echo "<input type=hidden name=*** value=E$lon_s[1]N$lat_s[1]>";
?>
<input type="submit" value="現在地表示">
</form>

の<form>タグで書かれた部分ですが、
まず、わざわざMapFanのサービスにformタグを用いて情報を渡す必要があるのは、MapFanの仕様では、経度や緯度などの情報はURLエンコードされてなければならない理由があるためです。

「http://****************.cgi」は、MapFanからいただける技術情報に記載のURLで、これが経度や緯度といった情報を渡す地図プログラムです。

さらに、hiddenの隠しパラメータで戻りURLを指定したり、そのアンカーテキストなどを指定することができます。それが2~4行に書かれているものです。

そのほか、phpの部分である

<?
chop($lat);
chop($lon);
$lat_s = explode("+", $lat);
$lon_s = explode("+", $lon);
echo "<input type=hidden name=*** value=E$lon_s[1]N$lat_s[1]>";
?>

は、auのGPSが返す戻り値を参考に、MapFanの仕様に合わせるだけです。

上記例は、MapFanの地図サービスの中で、「経度・緯度」による地図表示を使用していますので、それ以外にも、駅名検索や電話番号検索などのサービスもこの応用で使えます。

ごらんの通り、「経度・緯度」による地図表示は現在地を上手く表示するためには、それなりの精度が求められます。これはau携帯のGPSが取得する情報に大きく依存することになりますので、
auのGPS起動時のパラメータを上手く設定してあげる必要がありますが、
これは前回の記事に詳しく書いてありますので参考にしてください。





管理者にだけ表示を許可する






Copyright © 携帯サイトを作ろう! -ちょっと詳しいモバイルサイトの作り方-. all rights reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。