WILLCOM 位置情報検知サービス
位置情報検知サービス対応端末で利用できます。「WILLCOM:ウィルコムの電話機向けホームページの作成方法」で仕様が公開されています。
下記のパラメータをWILLCOMの位置情報取得用のURL(http://location.request/dummy.cgi)に送信します。
パラメータ | 説明 |
my | 遷移先URL |
pos | $location(固定) |
<a href="http://location.request/dummy.cgi? my=http://example.com/sample5.cgi&pos=$location¶m1=foo">送信</a>
パラメータ | 説明 | 例 |
pos | 緯度経度 | 例)N35.33.22.150E135.22.33.121 |
#!/usr/bin/perl use strict; use CGI; my $q = CGI->new; my ($lat,$lon) = $q->param('pos') =~ /^([N|S][\d\.]+)([E|W][\d\.]+)$/; my $param1 = $q->param('param1'); print $q->header(-charset=>'Shift_JIS'),<<END; <html> <body> latitude:$lat<br> longitude:$lon<br> param1:$param1 </body> </html> END
パラメータの引継ぎ
位置情報の送信と取得は、間にキャリアへの遷移をはさむため、サイト側で必要な情報がある場合は、位置情報送信時に引き継がせる必要があります。
ですがキャリアによって、このパラメータの引継ぎの制限が厳しいものもあるので注意が必要です。
キャリア | 制限 |
iモード | arg1 、arg2 パラメータに引き継ぐパラメータを渡す |
EZweb | パラメータを引き継げない |
Yahoo!ケータイ | a タグ、form タグでパラメータを渡せる |
WILLCOM | a タグ、form タグでパラメータを渡せる |
以下の例ではapacheのrewriteを利用して、URLの一部をパラメータと見立てて環境変数に格納し、プログラム内で参照しています。
このようにURLの一部をパラメータとして扱えばEzwebの簡易位置情報でもパラメータを引き継げ、全キャリアで引継ぎ方法を統一することもできます。
<a href="device:location?url=http://example.com/ foo/bar/sample6.cgi">送信</a>
RewriteEngine On RewriteRule ^/([^/]+)/([^/]+)/sample6.cgi /sample6.cgi [E=PARAM1:$1,E=PARAM2:$2,L]
#!/usr/bin/perl use strict; use CGI; my $q = CGI->new; my $lat = $q->param('lat'); my $lon = $q->param('lon'); #PARAM1にfoo、PARAM2にbarが入ります print $q->header(-charset=>'Shift_JIS'),<<END; <html> <body> latitude:$lat<br> longitude:$lon<br> param1:$ENV{'PARAM1'}<br> param2:$ENV{'PARAM2'}<br> </body> </html> END
まとめ
今回の紹介で基本的な位置情報の取得方法については理解していただけたと思います。派手な機能とは言えないかも知れませんが、いつも持ち歩く携帯ならではの機能と言えるのではないでしょうか。
ぜひ、皆さんのアイデアと結びつけて素晴らしいサービスを生み出してください。