今回はWassr(ワッサー)の実験的試みワッサーラボで公開している,携帯の位置情報を使ったコンテンツについてです。ワッサーラボってなに?ワッサーラボは,今後正式なコンテンツになるかもしれないし,ならないかもしれない実験的な企画を公開する場(※1)です。サイトの方向性などを考えるうえで主流のラインには乗らないけれど技術的におもしろそうなことを思いついた場合などに,とりあえずラボで公開してみる,という形で使っています。今回は,この位置情報を使ったコンテンツの裏側技術的な仕組みを解説します。※1現時点(2007年8月7日)で,2つのコンテンツ(位置情報,認証API)が公開されています。日本中のヒトコト*ハイパーとは?ワッサーラボで公開している,携帯から発信できる位置情報を使ったコンテンツが,日本中のヒトコト*ハイパーです。日本中のヒトコト*ハイパーをひとことをで説明すると,日本を505のエリア(オープンiエリアに準拠)に分割し,このエリアを参加者全員で奪い合う陣取りゲームです。これは,携帯の位置情報を使うので,実際その場所に行かないと更新できないため,より現実とWebのサービスとが融合したおもしろい試みと言えます。この位置情報に,オープンiエリアを採用したのは,全キャリアに対応するためです。Willcom,au,SoftBankは取得した位置情報をiエリアに変換しています。NTTドコモも903iシリーズの一部機種および904iシリーズではGPSを利用できるのですが,まだまだ該当機種が普及していないためWassrでは対応しておりません。携帯電話の位置情報はアンテナの簡易位置情報とGPSによるより正確な位置情報の2種類が取得できます。Wassrは「お気軽メッセージングハブ」ですので,サイトの趣旨上そこまで正確な情報が必要ないうえに,全国に505のエリアしかないiエリアに丸めてしまうため,必要ないと判断しました。位置情報は緯度・経度で送られてくるのですが,日本で広く普及している緯度・経度の表現方法には日本測地系(tokyo)と世界測地系(wgs84)の2種類あり,位置情報関連アプリケーションを実装する際には注意する必要があります。日本測地系は今後は利用が推奨されず,世界測地系を使うことが推奨されていますので,アプリケーションの内部データとして使うには,世界測地系を使うほうが良いでしょう。表記方法が度(degree)で表現する場合と度分秒(dms)で表現される場合など多彩なのでこのあたりの変換も行う必要があります。Osawa氏によるGeo::Coordinates::Converterというライブラリを使うとこのあたりの変換をすべて面倒見てくれるのでお手軽です。Wassrでもこのモジュールを利用しています。セッションを引き継ぐような仕様になっているサイトが多いですが,位置情報を使う際にはhttp://example.com/foo?sid=jklj3245u7820jkjsdaKJLKのようなURLにリダイレクトしようとするとhttp://example.com/foo?sid=jklj3245u7820jkjsdaKJLK?datum=tokyo&unit=dms&lat=35.37.16.00&lon=139.43.38.25のように,無条件で?foo=barを文字列連結されるので(URLの中に?が2回でてきてしまいURI的に不正になってしまうので⁠)⁠,PATH_INFOなどにセッションIDを埋め込むなどの細工が必要です。iエリアへの変換Wassrでは一番精度の粗いNTTドコモのオープンiエリアに合わせて,座標から変換して利用しています。精度が高いキャリアでは精度の高い位置情報を街区レベルの住所・駅情報などを求めることもできるのですが,Wassrではあえてそれはやっておりません。キャリアごとに得られる情報の粒度をそろえたかったのと,ユーザがあまりにも細かい位置情報を送ってしまうとプライバシーの観点から問題が起きやすいためです。座標からiエリアへの変換はNTTドコモのサイトからダウンロードできるCSVにiエリアの外接情報が含まれているのでこれを利用するのが一番簡単です。iエリアはでこぼこしているため外接情報だけでどのエリアに含まれるかを判断すると,複数のエリアの外接領域に入ってしまう場合に本来とは違うエリアに分類されてしまいます。そこで,まじめに計算するようにしました。iエリアを計算するにはメッシュコードというものを求めなくてはいけないのですが計算式が複雑になるのでkokogikoさんのLocation::Area::DoCoMo::iAreaからメッシュコードを求める部分を拝借して,つきあわせるようにしています。Wassrは,時間とヒトコトを結び付け公開するサービスです。そこに「位置情報」という第三の軸を取り入れたらどうなるかという試みでした。今後も,こういった一風変わった試みを,ラボで提供していければと思っております。けアフィリエイトサービスの開発運用,PodCastingサービスの開発運用,ブログ広告システムの開発運用を経て,ワッサーの開発を行った。フレームワーク関連の技術に興味があり,日本で最初にRailsによるオープンソースの掲示板システムイナモデレーダー6を開発公開した。ブログはhttp://d.hatena.ne.jp/tokuhirom/など。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。