位置情報フレームワーク「Core Location」にCLIからアクセス

海上忍
2010-07-09 16:33:04
  • このエントリーをはてなブックマークに追加
最新特集【一覧】

 Mac OS X/Darwinで投入し、熟成された技術がiOSなどほかのシステムに導入される……基本的にはこの解釈で正しいはずだが、何事もそうであるように例外はある。それが位置情報フレームワーク「Core Location」だ。

 Core Locationフレームワークの初出は、iPhone OS 2のとき。GPSとWi-Fi、3G回線という3種の経路を利用し、そのときデバイスが存在する緯度と経度を取得する。3G回線とGPSを利用できないiPod touchでは、Wi-Fi回線のみで位置情報を取得できるなど、デバイスの種類や回線の状態に対し柔軟に対応できるところが特徴といえる。

 そのCore Locationフレームワークは、Snow LeopardからMac OS Xに導入された。わかりやすい変化としては、システム環境設定の「日付と時刻」ペインに、「現在の位置情報に基づいて、時間帯を自動的に設定」オプションが追加されたことが挙げられる。「セキュリティ」ペインでは、位置情報サービスそのものを無効化することも可能だ。ただし、位置情報の取得に無線LANベースステーションが参照されるため、AirMacが有効でなければ機能しない。

 Core Locationフレームワークの導入により、Safari 5では位置情報サービスがサポートされた。Google Mapsなど同機能に対応するウェブサイトにアクセスすると、「Webサイト"http://〜"は現在の位置情報を使うことを求めています」とダイアログが表示され、確認してはじめて位置情報を取得できる。これはMac OS Xのセキュリティモデルとも関係した話で、前述した「セキュリティ」ペインで無効化すると、Core Locationフレームワークの機能を利用したサービスは一切使えなくなる。

初回起動画面 Core Locationフレームワークにアクセスするプログラムは、初回起動時にこのようなダイアログで確認を求められる

 フレームワークを通じて取得できる情報は、基本的に緯度、経度の数値情報となるため、Automatorと組み合わせればEXIFへの埋め込みなど便利に使えそうと考えた筆者。CLIから利用できるソフトを探したところ、「whereami」なるプロジェクトをGitHubに発見した。セキュリティの都合上、初回の起動時はダイアログで利用の確認を求められるが、2回目以降はコマンドらしくTerminal上ですべての処理を完結できる。ごく短いコードで構成されるため、はじめてCore Locationを使う開発者には参考になるはずだ。

  • 新着記事
  • 特集
  • ブログ