iPhone/iPad/iPod touchで動く位置情報アプリを作成するための「測位機能の取り扱い」「地図の取り扱い」「サーバとの通信」という重要なポイントを解説します
前回の「iPhoneアプリで位置情報と地図を使うための基礎知識」では、位置情報アプリの基本ともいえる、位置情報の取得と地図の表示を行いました。今回は、現在地に応じてネットワーク経由で情報を取得して表示してみます。
大量の位置情報データを扱うようなサービスでは、サーバとの連携が必要になります。独自のサービスを作成するならば、自前でサーバを用意する必要がありますが、公開されているWeb APIとマッシュアップし、見せ方を工夫するだけでも、面白いアプリを作れます。
以下は、主な位置情報系のWeb APIの例です。
今回は、通信を行ってデータを取得し、表示するアプリの例として、写真共有サイト「Flickr」のWeb APIを使って現在地付近の写真を取得してみます。
FlickrのWeb APIをiOSから利用するための便利なライブラリ「ObjectiveFlickr」もありますが、この記事では、他のAPIにも応用ができるよう、できるだけiOS SDKの標準APIを使って開発することにします。
iOS SDKで作るネイティブアプリのObjective-Cコードを解説するので、iOS SDKやObjective-Cについて詳細を知りたい方は、以下の連載を参照しておいてください。
Flickr APIを利用するには、まずはアプリの登録を行う必要があります。Flickrには、「The App Garden on Flickr」という開発者向けのコンテンツがあり、Flickrのアカウントを持っている人なら誰でもアプリを開発できます。
「Flickr」のTOPページ→「The App Garden」→「Create an App」にアクセスし、新しいアプリを登録します。Flickr APIを利用したアプリは、非商用(Non-Commercial)と商用(Commercial)に分類され、若干利用規約などが異なります。利用目的に合ったタイプの「Request an API Key」をクリックします。
アプリの名称と、概要を記入します。概要は後から変えることもできます。利用規約をしっかり読んで、同意したら、アプリを登録します。
登録が完了すると、「Key」「Secret」が発行されます。これらは、後ほど、活用します。
次ページでは、FlickrのAPIを使って、指定した地点の周辺の画像を検索してみます。
デジタルカメラで撮影した画像には、撮影したときのカメラやレンズの設定(撮影時刻、カメラの機種名、焦点距離、露出時間などなど……)がEXIF情報として埋め込まれます。それに加えて、緯度経度が入っている場合もあります。
iPhoneには、撮影した写真にも撮影地点を埋め込む機能があります。この機能をオフにすることもできます。GPSレシーバ機能を搭載したデジタルカメラもあります。
このEXIF情報に埋め込まれた位置情報を検出しているのです。また、EXIF情報から取得したものだけでなく、ユーザーが手動で指定することもできます。
Copyright © ITmedia, Inc. All Rights Reserved.