てぃーだブログ › 作る人 (つくるんちゅ)日記 › iPhone › iPhoneでリアルタイムGPSロガー! Perl Script(その3) ZIP編!



2011年01月31日

iPhoneでリアルタイムGPSロガー! Perl Script(その3) ZIP編!

iPhoneでリアルタイムGPSロガー! Perl Script(その3) ZIP編!昨年12月の那覇マラソンに参加した僕は、実際のレース中に、iPhoneからの位置情報を、このブログ上にリアルタイムで表示していました。
 → GPS那覇マラソン作戦! (iPhoneからリアルタイムで更新中)

途中、ハッシュタグ付きで、ツイートなども‥。

今回は、当時使用した、一連のPerlスクリプトのZIPと、設定方法を公開しちゃいます。

注:オリジナルのスクリプトは以下。 Keiyaさんのサイトで配布されているものです。。
→ 【GPSロガー】iPhoneのGPSをJavaScriptから使って自分の居場所をログる



必要な物:レンタルサーバとAPIキー、FTPソフト


僕がやったように、iPhoneを使って、誰でも位置情報を公開する事は簡単です。
以下、実際のスクリプト、利用方法等を、ざっと解説していきます。

iPhoneでリアルタイムGPSロガー! Perl Script(その3) ZIP編!今回のスクリプトは、WEBサーバ上で動く仕組みなので、まずはレンタルサーバが必要ですね。
最近はレンタルサーバも安くなりました。 
月額105円で容量2GB (ロリポップ!)とか‥。

それと、グーグルマップの利用には、APIキーの取得も必要。

それぞれ、申し込み・設定方法等を説明すると長くなりますが、共に解説ページが充実しているので、迷う事は少ないでしょう。

サーバは適当なサービスなら、どれでも構いません。(多分、ロリポップならスクリプトが無改造で動くとは思います)

パソコン上のファイルをサーバに転送したり、設定するにはFTPソフトを使います。
FFFTPが使いやすいです(1.97b版以降推奨)。


スクリプト本体


スクリプトのZIPを置いておきます。
→ ダウンロード

内容:
 loc1.cgiiPhoneの位置情報を送るスクリプト → 解説ページ
 log.txtログファイル (中身は空です)
 km_1205.cgi    マップを表示するスクリプト → 解説ページ
 nau.cgiツイッター投稿用スクリプト

オリジナルのKeiyaさんの内容と、かなり変更があります。
本体はiPhone用と、WEBページへの表示用の2つに分けました。

実際に使っていた物なので、動くと思いますが、特に動作保証等はありません。
また、個別の問い合わせはご勘弁願います。(このサイトは、「作る人」向けなので‥)


設定方法


まずはiPhone用「loc1.cgi」。
特にパスワード等はありません。万が一、他の人がアクセスすると(データが)混乱するので、適当に名称を変えてください。
その際、ファイル内の8行目「my $script = 'loc1.cgi';」の部分も、変更した名称に修正しておきます。

表示用のスクリプトは、「km_1205.cgi」
こちらは、9行目にGoogle APIキーを入力します。

iPhoneでリアルタイムGPSロガー! Perl Script(その3) ZIP編!設定ができたら、ファイル一式をサーバに転送します。
パーミッションは、サーバの仕様に従います。
ロリポップだと、CGIファイルは700。ログ用のTXTファイルは600でいいでしょう。


使用方法


まずは、iPhoneのSafariから、loc1.cgiを開きます。
レンタルサーバの場合は、
http://提供されたURL/loc1.cgi
と、ブラウザーに打ち込みます。

ちゃんと動いていれば、以下のような表示になると思います。

iPhoneでリアルタイムGPSロガー! Perl Script(その3) ZIP編!iPhoneでリアルタイムGPSロガー! Perl Script(その3) ZIP編!左:設定画面。
上側でインターバル(間隔)を秒数で指定。
下側で位置情報の精度を指定。

右:送信画面。
現在の緯度経度、誤差情報、送信回数、最後に送信した時間。等を表示します。

下部の「nau.cgi」は、ツイート用です。


ある程度、位置情報を送ったら、今度はマップを見てみましょう。
同じく、
http://提供されたURL/km_1205.cgi
を、PCのブラウザーで開きます。

iPhoneでリアルタイムGPSロガー! Perl Script(その3) ZIP編!


なお、位置の精度が悪い場合は、バックグラウンドで他のGPSソフトを動かしておくと、数メートル以内の数値を得られます。


おまけ。位置情報をツイート!


マラソン前日、ついでに作ったスクリプト。
「nau.cgi」(名前は、考える暇が無かったので‥そのまま 笑)

iPhoneでリアルタイムGPSロガー! Perl Script(その3) ZIP編!走りながらiPhoneでツイートするのは辛いので、簡単にできるように作ってみました。
前回紹介した位置計測のスクリプトに、逆ジオコーディングの仕組みをくっ付けたもの

逆ジオコーディングは、以下のサイトを参考にしています。
→ iPhoneのGPSを使用して現在位置の住所を表示する方法


位置と距離情報を保持して、ツイッターの自分のページに飛ばす事ができます(アカウント必要)。
後は、ツイートボタンを押せば、投稿完了。

走りながらは無理だけど、時々歩きながら、iPhoneから2ステップでツイートできました。


というわけで、駆け足の3回シリーズで、iPhoneのGPSネタを書いてみました。


この仕組を応用すると、他にもいろいろ遊ぶ事ができます。
以下の記事も、それぞれ今回のスクリプトの、別バージョンです。

iPhoneって、とっても楽しい「おもちゃ」ですね。

iPhoneでリアルタイムGPSロガー! Perl Script(その3) ZIP編!iPhoneでリアルタイムGPSロガー! Perl Script(その3) ZIP編!
▲左:Wi-Fi(無線LAN)の電波到達距離を、iPhoneで計測してみた! / 右:高速モバイルインターネット「WiMAX」実測データ。沖縄・北谷編




関連記事:
iPhoneでリアルタイムGPSロガー! Perl Script(その1)
iPhoneでリアルタイムGPSロガー! Perl Script(その2)

 





同じカテゴリー(iPhone)の記事



Posted by IGU at 20:39│Comments(3)iPhone
この記事へのコメント
素晴らしいスクリプトをありがとうございます。

さっそく試してみたのですが、iPhone上からloc1.cgiを開き、
設定画面、送信画面までは進んだのですが、
km_1205.cgiをPCから開いても何も表示されず困っております。

また、送信画面も緯度軽度・誤差情報については更新されていくのですが、
送信回数、最後に送信した時間については一切表示(更新)されません。

log.txtファイルも空のままで、どうやらiPhoneからの位置情報が
サーバー側で保存されていないようです。
(パーミッションはフルコントロールで試してみたのですが・・・)

スクリプトファイルをのぞいてみて、xmlhttp.jsの記載があったため、
こちらもダウンロードしてスクリプトと同一箇所に保存してみたのですが、
やっぱり表示されませんでした。

あまりスクリプト関連について詳しくなく、大変恐縮ですが
何かヒントになるようなご助言をいただければ幸いです。
Posted by cobber at 2011年02月13日 18:24
送信画面も緯度軽度・誤差情報が表示されているなら、一応動いていますね。

ただ、設定した誤差以下の数値で無いと、送信しない仕様になっています。

Tolerance:の数値は、どのくらいですか? 
accuracy:は、初期設定で31にしていますが、もしTolerance: がそれ以上だと、送信されません。
試しに、Tolerance:に2000等の数字を入れてみて下さい。
それでダメなら、メッセージを‥。
Posted by IGUIGU at 2011年02月13日 23:09
スクリプトの提供、ありがとうございます!!
レーシングカートの周回ラップなど、自分で色々できないかと模索していたところ、本Webページを発見しました!
色々スクリプトを変えて試したいと思います!!

うまく行った際には、報告できればと思います。

お礼まで。
Posted by kaji at 2011年12月07日 01:42
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

※記事内容に言及無いコメントは、コメントスパムと判断して削除する場合があります。