#6 恋する位置情報(ジオロケーション) -Where is the love?-

「赤ふん坊や、ゲットだぜ!」

「あ、赤ふん坊やってのは福井県大飯郡高浜町のゆるキャラでですね」


 放課後、情報処理部の部室――ではない。

 篠宮樹里しのみやじゅり瀬尾絵子せのおえこの二人は、MacBookとiPhoneを持って、近くの名勝・気比松原けひのまつばらを散策中だ。


「さて、今日は部室を抜け出し、炎天下の海岸にやってきたぞ、絵子」

「お、樹里のキャラが戻ってる。良かった」

「今日はJavaScriptと位置情報、というテーマで課外授業だ」

「GPSは現代人の生活になくてはならないものになったからねー」

「なんせ今は、世界中で自分の現在地とか自宅とかのプライベートを晒す遊びが流行ってるらしいので。私たちもブームに乗らないとな」

「ずいぶん間違った形でブームが伝わったようだけど」


「時に絵子は、World Wide Web Consortium(ワールド・ワイド・ウェブ・コンソーシアム)、通称W3Cという団体は知っているか」

「うん、知ってる。ウェブ系技術の標準化を進めてる団体だよね」

「この位置情報を取り扱うためのルールも、W3Cの手で『Geolocation API』として標準化されている」

「へー」

「このGeolocation APIにJavaScriptからアクセスすることにより、位置情報を利用したWebアプリケーションの製作が可能となるのだ。これで君も、へしこちゃん、ゲットだぜ!」

「あ、へしこちゃんってのは福井県三方郡美浜町のゆるキャラでですね」


「では、さっそく我々の位置情報を取得してみよう」

「それはいいんだけど……」

 絵子は不満げな顔で辺りを見回す。

「周りは水着の子ばっかだよ? せっかくの海だよ? まずは泳いでいこうよ」

「遊んでいる場合ではない。今私は、全能なるGPS衛星と対話中なのだ」

「怪しい宗教みたいに言わないでよ……じゃあ、せめて海の家寄って行こうよ。イカ焼き食べたいよ」

「ええい、気が散る。測位できないではないか」

「うえーん」


「……お、出た出た。取得できたぞ」

「なんか、数字の羅列が出てきたね。35.6……」

「これが、私たちが今いる場所の緯度と経度だ」

「ほー」

「そしてこれが、現在地を取得するためのJavaScriptのコードだ」


----

navigator.geolocation.getCurrentPosition( function( pos ){

 console.log( pos.coords.latitude, pos.coords.longitude );

});

----


「え、たったこれだけで位置情報が取れちゃうんだ」

「2行目は結果の出力だからな。実質、1行のコードで取得できる」

「へー。こりゃすごい」


「じゃあ、コードについて説明しよう。まず最初のnavigatorというのは、このJavaScriptを実行しているアプリケーションのことだ。要はWebブラウザのことだと思えばいい」

「なるほど」

「次のgeolocationというのが、位置情報を取得するためのオブジェクトである。今日の主役だな。このオブジェクトは、Safari・Chrome・Firefoxなど、新しいWebブラウザであればもれなく実装されている」

「ふむふむ」

「次のgetCurrentPositionメソッドが、geolocationオブジェクトのメソッドの一つであり、現在地を一回だけ取得する命令である。取得した結果は変数に格納され、次の関数に渡される。今回はposという変数だな」

「ほえー……」

「どうした、絵子」

「いやー、暑くて頭がボーッとしてきた」

「ああ、それは悪かった。日陰でカキ氷でも食べるか」

「やったー!樹里、愛してるー!」


「……それで、位置情報を関数に渡した後はどうなるの?」

「その中に含まれるcoordsオブジェクトの中に、いろんな情報が格納されている。latitudeプロパティが緯度、longitudeが経度だな。他にも高度なんかも取れる」

「うん」

「今回はコンソールに出力しただけだが、Ajaxなんかを使ってサーバーに送信すれば、自分の位置情報を他人に知らせることもできるわけだ」

「なるほどねー」


「さて、ここから先は細々した注意事項だ。カキ氷を食べながら聞き流してくれればいい」

「うん。そうするー」

「プライバシー保護の観点から、位置情報を取得する際には、許可するかどうかのダイアログが表示される。ここで『許可』を選択した場合のみ取得される」

「んー」

「最近のChromeは、より堅固なプライバシー保護のため、HTTPS接続でないと位置情報を取得できないよう仕様変更されている。検証の際には注意してほしい」

「んー」

「Webアプリケーション製作時の注意。位置情報取得の頻度や精度はオプションで細かく指定できる。また、いつでも取得に成功するわけではないので、失敗した時の動作もちゃんと定義する必要がある」

「んー」

「まあ、一つのWebアプリケーションを完成させるには、もっともっとたくさんの記述が必要なわけだが。最初のとっかかりは実に敷居が低い、ということはわかってもらえたと思う」

「うん、わかった」


「さて、涼んだところで。次は湯巡権三ゆめぐりごんぞう、ゲットだぜ!」

「あ、湯巡権三ってのは福井県あわら市のゆるキャラでですね」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー