GeolocationAPIとは

GeolocationAPIとは

Geolocation APIはユーザーの現在位置を知るためのAPIで、IPアドレス、携帯電話の基地局、無線LANなどを利用してユーザーの現在いる地点の緯度経度を取得することができます。

また、Geolocation APIで特徴的なのは実際の位置情報の取得手段(無線LAN、基地局、IPアドレス等)を開発者が意識しなくても良い点が挙げられます。位置情報がもっとも有効に活用されるのは、やはりモバイルPCなどの持ち運びができる端末かと思いますが、一度書いたGeolocation APIを使ったコードはそのままデスクトップPCでもモバイルPCでも可能になります。

さて、GeoLocaion APIを使うのにJavaScriptの中ではじめにgeolocationオブジェクトを生成します。以下のようになります。

var geo = google.gears.factory.create('beta.geolocation');

そのオブジェクトのgetCurrentPositionメソッドに取得した緯度経度を扱うメソッドをハンドラとして登録します。

geo.getCurrentPosition(successHandler,errorHandler);

上記コードでsuccessHandlerとあるのが、緯度経度がちゃんと取得できた時にたたかれる関数名です。逆にerrorHnadlerは何らかの理由により緯度経度取得に失敗した時に起動します。そのように登録すると緯度経度取得に成功した時に、以下のようにしてデータが取得できます。

function successHandler(position) {
alert('緯度' + position.latitude + ',経度:' + position.longitude);
}

これを使うと位置情報を使ったサービスをちょっと便利にすることができます。

Gearsのこれから

今回はデータベースと位置情報の取り扱いを中心に紹介しましたが、スレッド処理などもGearsならではの機能のひとつです。オフライン=オンライン切り替え時のバックグラウンドでのデータの同期がよく使われる例ですが、それだけでなく、ユーザーのUIを邪魔したくないような重い演算をスレッド処理させるとユーザビリティを損ねることなく複雑な処理を実現することができます。

ですので、重い処理になるからとあきらめていた機能も、もしかしたらスレッド処理させることで実現可能になるかもしれません。うまく使うといろいろと利便性の高くなる機能です。WorkerPoolの場合、JavaScrit側の実装方法として、文字列オブジェクトとしてスレッド実行するためのJavaScriptソースを書く、もしくはfunctionオブジェクトをStringに変換してWorkerPoolに渡すという、ややトリッキーな方法なので、多くの人がデバッグに苦労しているというのも事実なのですが、今後そのあたりも改善されていくのではないかと期待しています。

Gearsのアップデートについては、今後開発中のファイルアップロード機能の拡張(中断したアップロードを再開する機能など)やGtalkのようにデスクトップ上に新着通知などをポップアップするノーティフィケーション機能があります。それらがそろってくると、単にWebアプリケーションをオフライン化するものという位置づけから、Webブラウザだけではできかった機能を補完するに変化していくように感じられます。

また、Googleが開発しているChromeやAndroidテクノロジーとの親和性も期待されるところです。Android携帯がどこまで普及するかは未知数ですが、Chrome Liteを搭載するとされていますので、モバイル環境とデスクトップ環境を橋渡しするような役割の一部を担ってくるかもしれません。

Gearsは、まだまだベータ段階という位置づけですが、正式リリースされると、将来的には、現在のFlash Playerのように普及してきて、それにより依存した形での開発も可能になってくるかもしれません。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30