2007年01月09日
auのGPS携帯電話の位置を追跡するPerlスクリプトの作成補助者大募集
さて寝るかと思ったら、なんか過去のエントリにコメントがあった。
私は美術をやっているものなのですが、10日後に控えた卒業制作の作品にどうにかしてGPSを使って自分を追跡するような映像が流せないかと思い試行錯誤しているのですが、一向にうまくいきません。
私は全くのプログラミング初心者で、作品プランを思いついたはいいものの全くどうやって実現すればいいのかわからない状態です。やっとPERLが少し理解できたくらいで、しかし残念ながらそのperlによるauのGPS追跡のスクリプトがどうしても見つかりません。
phpによるスクリプトならば見つけられたので、phpを習得しようともしたのですが、全く歯が立っていない状態です。自分の頭の悪さが不甲斐ないです。でもどうしても作品を完成させたい。させなければならない。途方に暮れて、とんでもない申し出と知りながら、ここにコメントさせていただいたしだいです。
自分勝手な理由で本当に申し訳ないのですが、その制作のアドバイス、手助けをしてはいただけないでしょうか。
どうかよろしくお願いいたします。
うーん、助けたいけど余裕ないなあ...とりあえず私も動けそうなら動くけど、少なくともウィークデーはほとんど動けないし、週末も保証できない。
というわけで、他に動けて彼女助けられる人がいるならば、そちらに助けてもらった方が確実かなと思って、公開募集します。
ついでに、この辺のノウハウ持ってそうなところに通知トラックバック。
他の人達も忙しそうな人ばっかりではあるけど...。
というわけですので、とりあえず、こちらのエントリで連絡集約しますので、具体的にどういうことがしたいですとか(上記リンクしたの身辺メモさんとこの記事のようなことがしたいのかなと想像しますが)、どういう形で支援すればよいかですとか、こちらのエントリのコメントに書き込んでください。 > かなこさん
支援しようという方もこちらで連絡お願いいたします。
さて、すみませんが寝ます。
2007/1/9 追記:
crawler.jpさんが、いしなおさんのPHPスクリプトを移植してくれました。感謝、感謝。
とりあえずコメント欄で、かなこさんのやりたいことも判った?感じなので、crawler.jpさんのスクリプトちょこっと改造して、リアルタイム監視用のページも吐くようにしてみました。
コードはこちら。(文字エンコードはUTF-8です。)
とりあえず、http://kokogiko.net/augps/augps.cgiで実際に稼動させてます。

アクセスすると、
EZNO: XXXXXXXXXXXXXX
NOW: YYYY/MM/DD hh:mm:ss
LAT:
LNG:
RELOAD!
みたいな画面が表示され、60秒毎にリロードされて位置情報を更新します。
蓄積された位置情報のログは、http://kokogiko.net/augps/XXXXXXXXXXXXXX.txtに蓄積されます(XXXXXXXXXXXXXXはEZ番号)。
また、他の端末からリアルタイム監視するには、http://kokogiko.net/augps/XXXXXXXXXXXXXX.htmlにアクセスすると、測位されている端末で見ているのと同じ画面を見ることができ、またこの監視画面も測位画面と同じ60秒インターバルで自動更新されます。
とりあえずはこんなところでどうでしょうか。
監視画面側で移動の軌跡をグラフィカルに表示したりとなると、画像処理用のライブラリを、Perlで動くようにWindowsでセットアップしたりしないといけなくなるので、かなり敷居が高いと思います。
明日以降まだ余裕があれば、PCからGoogle Mapsで軌跡表示くらいなら出来るかもしれませんが...。
でも、PCからの軌跡閲覧でよいのなら、crawler.jpさんのお散歩MAPS使う方がよいかもね。
ところで、上記のwml使った自動リロードですが、W41Hではブラウザがバグってるようで使えませんでした。
最初に表示すると、インターバル時間経過後位置情報取得を始めるのですが、その後ノータイムでえんえんと位置取得を続けてしまい、動きません。
仕方ないので家内のA5505SAを借りてテストしたんですが、そっちでは問題なく動いているので、スクリプト側が間違っているわけでもないようです。
Excerpt: なにかと拝見させていただいているここギコ!さんに、こんなエントリーが! auの...
Weblog: crawler.jp
Tracked: 2007年01月09日 06:23
いしなおさんとこにPHPのサンプルがあった。
http://tdiary.ishinao.net/20050603.html#p02
とりあえずいざとなればこれの移植で何とかなりそうか。
おはようございます。いつも拝見させていただいてます!
いしなおさんのphpサンプルをperlに書き直しただけのものを作ってみました。
http://www.crawler.jp/archives/000584.html
一点、いしなおさんのスクリプトと異なるのは、出力がhdmlではなくてxhtmlというところです。
公開するような代物ではないんですが、お役に立てればと思います。
ご協力本当にありがとうございます!
返信ないかも・・・とも思っていたので大変感動しています。 しかもすでにご協力いただいている方もいるようで・・・本当に恐縮です。こんな不躾なお願いを・・・すごく嬉しいです。
具体的には2つの携帯を使ってAの携帯の位置情報をBの携帯でリアルタイムでブラウズし続ける。ということがしたいのです。
その際、地図によるルートの軌跡が表示できればベストですが、最悪軌跡がない状態、もしくは位置の文字情報だけでもかまわないと思っています。
そのためのスクリプトの書き方や手順などを支援してくだされば・・・と思っています。
どうかよろしくお願いいたします。
Posted by: かなこ at 2007年01月09日 13:01あ、追記です。すみません。
私が持っているのはauW42Sです。
OSはWindowsでプログラミングはPerlが少しわかる程度です。phpにも手を出そうとしたのですが、今のところ・・・ダメです。
という状態です。
ここギコさん、みなさん、お忙しいところ本当に申し訳ありません。
Posted by: かなこ at 2007年01月09日 13:06 10日後...
crawler.jpさんからTBが入っていますね。これで大丈夫かな?
hvsGpsMailは今も動いております。
みなさんお力添え、コメント本当にありがとうございます。感激です!!
>ここギコねねさん
実際に作って公開してくださるなんて・・・びっくりです!ありがとうございます!!!
早速使ってみました!
全く問題なく使うことができました!!!
本っっっ当に嬉しいです!!!!
・・・なのですが、最後にもうひとつだけ質問してもいいでしょうか。図々しくてごめんなさい。
監視する側の画面なのですが、軌跡を表示するのは難しいとして、文字情報を表示する場合、毎回リロードして現在地のみの表示、というのではなく、履歴がどんどん追加されていくようにすることは難しいでしょうか・・・。
つまり”http://kokogiko.net/augps/XXXXXXXXXXXXXX.txt”のページを自動更新のカタチにして閲覧、ということなのですが。
あつかましくて申し訳ありません。もし簡単に書き換えればできるようならば、モチロンできるかぎり自分でやりたいと思うので、どうか教えていただけないでしょうか。
と頼ってばかりで本当にすみません。
ねねさん>ところで、上記のwml使った自動リロードですが、W41Hではブラウザがバグってるようで使えませんでした。
横からすみません。カシオ日立京セラへの対策は、待機ページと測位&位置記録処理を別スクリプトで行うと良いです。hvsGpsMailでは待機・測位・メール送信の3つに分けて行っています。(Locationヘッダーによるリダイレクトでオッケーです) 測位の間隔は2〜3分程度が良いようです。測位にタイマー設定以上の時間がかかると次のタイマーイベントが発生してしまうようです。割込処理の連鎖です。バグと言うには微妙なお話です。スクリプト名を変える事で回避出来ますので強引んキャッシュの問題かもー。
それから2分でも時々コケます。3分ならたぶんほとんど大丈夫でしょうが、保証は出来ません。単体GPSでも起動時などに位置取得に時間がかかる時がありますからねぇ。
#細かいノウハウ集積の意味であえてコメしますた。
#人ン家にメモるな>自分(笑
>かなこさん
すみません、明日以降ならばもうちょっと手入れられますが、今日はもう寝ますので、ご自分で試されるならばヒントだけ。
ソースコード中の
#ここに位置情報を記録する処理を書く
と書かれているところの周辺のコードで、XXXXXXXXXXXXXX.txtが出力されています。
ここで
open(OUT, '>>',"./$ezNo.txt");
となっていますが、'>>'という記号で、上書きでなくファイル末尾への追記を表しています。
どんどんログを貯める場合、この書き方になりますが、このファイルのままだと自動リロードするためのHTMLの記述等が含まれません。
逆に、HTMLを含んだファイルに追記してしまうと、HTML宣言がいくつも重複してしまいおかしくなってしまいます。
よってここは、これまでと同様XXXXXXXXXXXXXX.txtに最新の位置情報を追記しつつ、追記したら一旦XXXXXXXXXXXXXX.txtを開いてこれまでのログを読み込み、その前後にHTML表記をつけてXXXXXXXXXXXXXX.htmlに上書き出力する、というのがよいと思います。
もしこれだけで判らなければ明日まで待ってください。
また、単純にこれまでのログを画面に出すだけでは、何度も試すと延々とログが溜まってしまい、むちゃくちゃ長いログが画面に表示されてしまうことになります。
そうならないよう対応するには、監視されている側の携帯でログをリセットするような手順を作るか、或いはログはリセットしないが、監視する側の携帯で監視を始めたタイミング以降の履歴のみ表示していくとか、そういう工夫がいると思いますが、どういう方法を採用するかによって作り方が異なりますので、どうしたいかを表明してください。
>ひゅ〜さん
有用な情報、ありがとうございます!
Posted by: kokogiko at 2007年01月11日 02:12 詳しい説明ありがとうございます。
希望としては、メール等のようにフォルダがいっぱいになると古い順にひとつずつ消えていくというカタチが理想的なのですが、それが難しいのならば、
「監視されている側の携帯でログをリセットするような手順を作る」という方がいいです。
監視している側は固定でセットしてしまうのでその後いじったりできない状態になるので・・・
とりあえず、改造してみました。
稼動させているのもソースコードも、機能のURLと同じにしてあります。
一昨日のコードは、augps_old.cgi及びaugps_old.txtに移してあります。
違う点は2つ、
1.位置取得ページに「RESET」というリンクを作って、ログを消してしまえるようにした。
2.監視ページは、ログをリセットしてから現在までの時刻と位置の履歴を表示するようにした。
です。
試してみてください。
ついでに、ナニゲにひゅ〜さんからの情報に基づいて位置取得用のURLと位置表示ページのURLを変える変更も加えてみましたが、やっぱりW41Hでは動きませんでした...。
Posted by: kokogiko at 2007年01月12日 01:41ありゃん?、、、W41H持ちの方と連絡を取って確認してみますが、即日には、、、
何度もありがとうございます。
早速やってみました!
監視する側の携帯の方ではログは「RELOAD」を押さないと更新しない状態なのですが、自動更新という形は無理なのでしょうか・・・って本当に本当に注文が多くて申し訳ないです・・・!
監視する側の携帯は一度設置した後いじる事ができなくなってしまうようになるので自動更新できると大変助かるのですが・・・。
ど、どうでしょうか。
Posted by: かなこ at 2007年01月12日 23:17あれ?
自動更新しないですか?
おかしいなあ、更新するようにしてるんですけど...。
すみません、私のW41Hだとリロードがうまく再現しないので、ソースとか見てひゅ〜さん何か判りますでしょうか?
キャッシュもしないようにしてるし、問題ないはず?なんだけど...。
友人に試してもらいました。動かないみたいですね。ページソースをのぞいてみると、、、htmlタグの前にheadがありますね。文字コードはEUCですが表示はしてないから無問題のはずか... W41Hは持っていないのでなんとも言えないですが、ページの記述をもう少し丁寧にしてみても良いと思います。
ねねさんのW41Hで http://hvs.dyndns.org/gpsmail/ は動きますか?
hvsGpsMailは、(index.php=gpsmail.php) -(設定タイマー)-> gps.php -(1sec.の固定タイマーでgpsone)-> sendmail.php -(メール送信後リダイレクト)-> gpsmail.phpで待機と言う手順を踏んでいます。
hvsGpsMailはDBやファイルに記録を残しませんのでapacheのアクセスログにサブスクライバIDを残す為に2段階タイマで3スクリプトになっています。誤動作する(?)タイマをリセットしてみたかったっつーのもあります。
かなこさんうまくいってますか?
監視する側の携帯の方のページ、私のW41Hでは問題なく自動リロードされるようです。
(W41Hでうまく動かないのは監視される方のページ)
もしうまくいかないようでしたら、他の機種で監視してみるのも手かと思います。
また、私のサーバ上のスクリプトは、家に帰らないと直せないのですが、もし自分のサーバで動かしておられるのでしたら、上の「ひゅ〜」さんが書かれている通り、htmlの出力箇所で
<head>
<meta http-equiv="Cache-Control" content="no-cache" />
</head>
<tml>
となっているところを、
<html>
<head>
<meta http-equiv="Cache-Control" content="no-cache" />
</head>
と直してみてください。
それでうまくいくかもしれません。
Posted by: kokogiko at 2007年01月16日 12:56おっと、昼休みに慌てて書いたので、HTMLタグのところが見えなくなってしまっていました。
今、直しました。
ついでに、スクリプト・ソースの方でも直しております。
今再度確認しましたが、監視側のページ、W41Hでも自動リロードが問題なく動いてます。
もう一度確かめていただけますか?>かなこさん
あ、念のため確認ですが、監視される側と同期しては変わりませんよ。
2分とか一定周期での更新です。
これがどう美術になるのかよく判りませんが、また結果が出れば結局どういうことができたのか教えてください。
Posted by: kokogiko at 2007年01月17日 00:42 自動更新できました!
本当にありがとうございました!!!
ちょっと今は時間がないので申し訳ないですがまた改めて御礼しにきます!
恩に着ます。
では
![[ここギコ!]](http://kokogiko.net/logo.png)



・3Dどきゅめんと…って何?点字文書?(ulikmed)
・3Dどきゅめんと…って何?点字文書?(Appolinariy)
・DoCoMoのGPSでの簡易詐称チェック(けひん)
・3Dどきゅめんと…って何?点字文書?(eurozapc)
・モバイルSuicaへの不満(名無し)
・QWERTYだって単なる慣れの問題、日本でのiPhoneは韓国でのGoogle Mapsの立場(kokogiko)
・iPhoneのGPSはWeb連携できない(kokogiko)
・iPhoneのGPSはWeb連携できない(ハル)
・QWERTYだって単なる慣れの問題、日本でのiPhoneは韓国でのGoogle Mapsの立場(名無し)