GPS携帯から位置情報を取得する(CGI編)


CGIを使って、AuのGPS携帯から位置情報を取得するのは比較的簡単です。HTMLファイルにFORMセクションを作り、action指定に特殊なURLを指定するだけです。

<FORM action="device:gpsone?url=reglm_au.cgi" method="GET">
<INPUT type="submit" value="位置情報取得">
<INPUT type="hidden" name="ver" value="1">
<INPUT type="hidden" name="datum" value="1">
<INPUT type="hidden" name="unit" value="1">
</FORM>


action="device:gpsone?url=reglm_au.cgi"がGPSを呼び出すURLです。ちなみにAuの技術情報の解説では、「簡易位置情報」として、GPSを内臓していない機種の場合が解説されています。
その場合action指定は"device:locationi"となります。

さて、ここで問題がひとつ。
上記FORMセクションの記述でGPS位置情報をCGIスクリプトで取り込むことができるのですが、任意の文字などの付加情報は同時に送ることができません。
つまり、FORMタグの中に、テキストフィールドを定義してもサーバには送られないのです。この問題を回避するためには、一旦CGIで位置情報を受け取り、位置をHTMLに埋め込んで再度送信させる二段階方式を取らなければいけません。

print "<INPUT TYPE=TEXT size=18 name=title value=見出し><BR>\n";
print "<TEXTAREA rows=3 cols=18 name=comment>説明</TEXTAREA><BR>\n";
print "<INPUT type=hidden name=datum value=$gps_datum>\n";
print "<INPUT type=hidden name=lat value=$gps_lat>\n";
print "<INPUT type=hidden name=lon value=$gps_lon>\n";


の様な感じになります。(詳しくはCGIのソースを見てください)

CGIでGPS位置を取得して登録する流れとしては以下のようになります。

  1. 位置取得だけのHTMLを表示(HTMLファイル
  2. CGIで経緯度を取り出し、隠しフィールドとして埋め込んだHTMLを返す。
  3. 付加情報を入力してCGIに送信。
  4. 位置+付加情報を取り出してファイルに保存