竹形誠司 ブログ
Java+MySQL+Tomcat    »トピック一覧
掲示板へのスパムが多いため、「ご質問」のコーナーはユーザー登録制とさせていただきました。お手数ですが、上の「新規ユーザーの登録」メニューより登録をお願いします。
帳票Web
アプリケーション

受注開発始めました
詳しくは こちら
竹形 誠司 著/ラトルズ刊
JSP帳票アプリケーション実践開発入門
JSP帳票アプリケーション
実践開発入門

JSP業務アプリケーション短期開発入門
JSP業務アプリケーション
短期開発入門

Java+MySQL+Tomcatで始めるWebアプリケーション構築入門
Java+MySQL+Tomcatで始めるWebアプリケーション構築入門

Java+MySQL+Tomcatで作る掲示板とブログ
Java+MySQL+Tomcatで作る
掲示板とブログ
携帯GPSで位置情報を記録する
by 竹形 誠司[takegata]
AUの携帯電話は、ある特殊なURLにアクセスするとGPSの位置情報をサーバに送信するようになっています。そのURLとは、こんなやつです。
device:gpsone?url=gps.jsp&ver=1&datum=1&unit=0&acry=0&number=0
上の例では、url=gps.jsp と指定しているので、位置情報をサーバのgps.jspというページに送ります。このページには、送られてきた位置情報を記録し、一定時間経過後に再度上記のURLにアクセスするようなコードを書いておきます。

<%@ page contentType="text/html; charset=Windows-31J"%>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.Date"%>
<%
String subNo = request.getHeader("X-Up-Subno");
String lat = request.getParameter("lat");
String lon = request.getParameter("lon");
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String strDate = dateFormat.format(date);
String strTime = timeFormat.format(date);
String strPath = application.getRealPath("/WEB-INF/data");
String strFile = strPath + "/" + subNo + ".log";
FileOutputStream fos = new FileOutputStream(strFile,true);
OutputStreamWriter osw = new OutputStreamWriter(fos,"utf-8");
BufferedWriter bw = new BufferedWriter(osw);
StringBuffer sb = new StringBuffer();
sb.append(strDate).append("\t")
    .append(strTime).append("\t")
    .append(lat).append("\t")
    .append(lon);
bw.write(sb.toString());
bw.newLine();
bw.close();
osw.close();
fos.close();
%>
<wml:card ontimer="device:gpsone?url=gps1.jsp&ver=1&datum=0&unit=1&acry=0&number=0">
<wml:timer value="600" /><p>GPS位置計測中【1分間隔】</p>
N<%=lat%><BR>
E<%=lon%><BR>
SUB-No:<%=subNo%><BR>
</wml:card>
位置情報は緯度がlat、経度がlonというパラメータで送られます。上の例ではWEB-INFディレクトリの下にdataというディレクトリを手動で作っておけば、端末IDに対応する.logファイルが自動作成され、1分毎に日時と位置情報が記録されます。

このデータを使えば、自分の移動した経路をGoogleマップに表示したり、デジカメで撮ったデータのタイムスタンプと突き合わせて地図上に写真を貼り付けたりといったことができそうです。

一日中これを動かしていると、24×60=1440回のアクセスを行うことになりますが、パケット代はどれぐらいになるんでしょうかね。1回のアクセスは大したデータ量ではないので、死ぬほどではないと思いますけど。

参考 au KDDI 技術情報->簡易位置情報
http://www.au.kddi.com/ezfactory/tec/spec/eznavi.html
その他(device:gpsoneでググ)
http://www.google.co.jp/search?hl=ja&q=device%3Agpsone
投稿:竹形 誠司[takegata]/2008年 01月 16日 23時 23分 /更新:2008年 01月 17日 14時 05分