Takubon World!> Free Software!> いまこのへん Mail
------------------------------------------------------------

いまこのへん

iエリア(アイエリア)を使った簡易位置情報システム

ダウンロード: Download IMAKO120.zip (8,354バイト) ZIP形式

このプログラムはPerlで記述したCGIです
掲載・収録 2003年... +
Last Update 2003.12.24
------------------------------------------------------------

NTTドコモオープンiエリア(アイエリア)を利用した簡易位置情報システムです.

もともと,仕事帰りに毎回,嫁さんに「今どこ?」メールをしているのですが,めんどくさいので簡単に伝える方法はないかな...と思って作りました.
最近,子供を狙った事件が多いので「こんなこともできるよ...」という意味で紹介します.

このシステムは,携帯電話を使って自分の位置をサーバに登録します.
登録した位置情報はウェブを利用してパソコンや携帯電話から参照することができます.

「いまこのへん」初期画面 「iエリア」エリア確認画面 「いまこのへん」完了画面 「いまこのへん」内容確認画面
携帯電話から「いまこのへん」のウェブページを開き,「現在位置の取得」を選択する.
自作のCGIを設置できるプロバイダが必要です.
iモードサーバから現在の位置情報を取得する.
「OK」ボタンを押すと,位置情報が「いまこのへん」に送信される.
「いまこのへん」は受信したエリア情報をJavaScriptファイルにして出力する.
出力したエリア情報を参照するには別途,HTMLやJavaScriptを記述する必要があります.
登録した内容はiモードやパソコン,他社の携帯電話から確認することができる.

「いまこのへん」が出力するJavaScriptファイルのサンプル

/* Ima Konohen System v1.20                  */
/*               Copyright (C) 2003 Takubon  */
/* http://homepage3.nifty.com/takubon_world/ */
/* E-mail : taku.bon@nifty.com               */
function ImaKonohen(){}
ImaKonohen.year = "";
ImaKonohen.mon  = "";
ImaKonohen.day  = "";
ImaKonohen.hour = "";
ImaKonohen.min  = "";
ImaKonohen.sec  = "";
ImaKonohen.week = "";
ImaKonohen.areacode   = "";
ImaKonohen.areaname   = "";
ImaKonohen.prefname   = "";
ImaKonohen.regionname = "";

変数名説 明
ImaKonohen.year登録時の年(4桁)
ImaKonohen.mon登録時の月(2桁:01~12)
ImaKonohen.day登録時の日(2桁:01~31)
ImaKonohen.hour登録時の時間(2桁:00~23)
ImaKonohen.min登録時の分(2桁:00~59)
ImaKonohen.sec登録時の秒(2桁:00~59)
ImaKonohen.week登録時の曜日を示す値(0:日,1:月,2:火,...,6:土)
ImaKonohen.areacodeiエリアのエリアコードを示す5桁(3桁:エリアID+2桁:サブエリアID)
ImaKonohen.areanameiエリア名
ImaKonohen.prefname都道府県名
ImaKonohen.regionname地域名(北海道,東北,関東甲信越,東海,北陸,関西,中国,四国,九州/沖縄)
「いまこのへん」を利用するHTMLのサンプル

<html>
<head>
<script type="text/javascript" src="imakonohen.js"></script>
</head>
<body>
<script type="text/javascript">
<!--
w = new Array("日","月","火","水","木","金","土");
document.write(ImaKonohen.year,"年");
document.write(ImaKonohen.mon,"月");
document.write(ImaKonohen.day,"日");
document.write("(",w[ImaKonohen.week],") ");
document.write(ImaKonohen.hour,"時");
document.write(ImaKonohen.min,"分");
document.write(ImaKonohen.sec,"秒<br>");
document.write("エリアコード:",ImaKonohen.areacode,"<br>");
document.write("エリア名:",ImaKonohen.areaname,"<br>");
document.write("都道府県名:",ImaKonohen.prefname,"<br>");
document.write("地域名:",ImaKonohen.regionname,"<br>");
//-->
</script>
</body>
</html>
サンプルの出力結果

------------------------------------------------------------

  • iモードができる携帯電話
  • 自作のCGIが設置できるサーバ
  • JavaScriptが動作するブラウザ
------------------------------------------------------------

  • このプログラムはフリーですが,著作権はTAKUBONにあります.
  • スクリプトのパラメータ以外の改変時,必ず連絡をください. フィードバックさせていただきます.
  • 基本的に再配布は認めません.
  • 商用利用は認めません.
------------------------------------------------------------

------------------------------------------------------------

URL http://www.abc.ne.jp/~taku/cgi-bin/imakonohen.cgi
+ ディレクトリ public_html
+ ディレクトリ cgi-bin
| + CGIファイル imakonohen.cgi 755 ascii いまこのへん本体(Perlスクリプト)
| + データファイル iarea.dat 644 ascii iエリア(アイエリア)のエリア情報ファイル
+ HTMLファイル imakonohen.html 666 ascii 登録情報HTMLファイル(使用する時のみ)
+ JavaScriptファイル imakonohen.js 666 ascii 登録情報JavaScriptファイル(使用する時のみ)

上記の環境および,ディレクトリ構成でファイルを展開した時のimakonohen.cgi編集イメージ
#!/usr/local/bin/perl
環境に合わせてperlへのパスを#!以降に記述してください.
$JavaScript = "../imakonohen.js";
JavaScriptファイルへの相対パス,または絶対パスで記述します
""と指定した場合,JavaScriptファイルは出力されません.
$HTMLFile = "../imakonohen.html";
HTMLファイルへの相対パス,または絶対パスで記述します
""と指定した場合,HTMLファイルは出力されません.
$BaseURL = "http://www.abc.ne.jp/~taku/cgi-bin/imakonohen.cgi";
エリア情報送るimakonohen.cgiのURLを記述します.
かならずhttp://からすべて記述してください.
$ConfirmURL = "../imakonohen.html";
登録内容確認用のURLを記述します.
編集後,属性(パーミッション)と転送モードを確認しサーバに転送してください.
------------------------------------------------------------

iエリアは当然iモードからしか使えませんが,次の方法を使うことでパソコンから動作テストを行うことができます.

  1. 初期画面の確認

    「いまこのへん」初期画面 初期画面は,パソコンのブラウザからアドレス (上記の例ではhttp://www.abc.ne.jp/~taku/cgi-bin/imakonohen.cgi) さえ指定すれば画面の確認を行うことができます.ただし,絵文字は化けるので気を付けてください.
    Windows NT 4.0/2000/XPの方はNTTドコモが提供しているiモードHTMLシミュレータを使うといいでしょう.

    うまく行かなかった場合

    • URLの確認
    • imakonohen.cgiの属性(パーミッション)755の確認
    • 編集内容の確認
    を行ってください.

  2. 完了画面の確認

    「いまこのへん」完了画面 完了画面を確認するためにはテスト用のHTMLを記述します.
    <html>
    <head>
    </head>
    <body>
    <form method="post" action=
     "http://www.abc.ne.jp/~taku/cgi-bin/imakonohen.cgi">
    <input type="hidden" name="AREACODE" value="00100">
    <input type="submit" name="ACTN" value="OK">
    </form>
    </body>
    </html>
    
    例では,エリアコード00100(函館/渡島)でテストします.

    うまく行かなかった場合

    • テスト用HTMLの確認(特にaction="http://...")
    • iarea.datの属性(パーミッション)644の確認
    • 編集内容の確認
    • JavaScriptファイル(imakonohen.js)の属性(パーミッション)666とパスの確認
    • HTMLファイル(imakonohen.html)の属性(パーミッション)666とパスの確認
    を行ってください.

  3. 内容確認画面の確認

    「いまこのへん」内容確認画面 完了画面の確認テストがうまく行ったらHTMLファイルが出力されているはずです.
    この画面の確認を行うには完了画面の確認から戻るを選択して初期画面に戻ってください.
    次に,[2]登録内容の確認を選び右のような画面が出力されるか確認してください.

    うまく行かなかった場合

    • 編集内容の確認(特に$ConfirmURL)
    を行ってください.

  4. JavaScriptの確認

    上記のサンプルを元にJavaScriptを参照するHTMLを記述し,正しく表示できるか確認してください.

  5. iモードを使った確認

    「iエリア」エリア確認画面 最後に実際に携帯電話を使ってテストを行います.
    携帯電話からURLを入力(上記の例ではhttp://www.abc.ne.jp/~taku/cgi-bin/imakonohen.cgi)し,iエリアの情報が正しく通知されてくるかを確認してください.

------------------------------------------------------------

1.20 2003.10.21 HTMLも出力できるように修正
1.10 2003.10.15 出力するJavaScriptを修正
1.00 2003.10.02 とりあえず公開
------------------------------------------------------------

  • iモードはNTTドコモの登録商標です.
  • iエリアはNTTドコモの登録商標です.
  • 平成15年5月9日現在のエリア情報を利用しています.
------------------------------------------------------------
ソフトウェアへの要望,感想,不具合など, taku.bon@nifty.com まで連絡いただけるとうれしいです. また,上記ソフトウェアの使用によって生じた,いかなる損害も作者は責任を取りません.
------------------------------------------------------------