iPhone&Androidで位置情報アプリを作ろう!

ジオモバイルプログラミング

本書は、スマートフォン(iPhone、Android)に向けて位置情報アプリを発信したいプログラマのための実践書です。実際にコードを書き、作りながら開発技法を学んでいきます。現在地を取得し、それをパースして地図・ARの両方の見せ方をする、さらにサーバとの連携といった、ネットワークに対応した位置情報アプリのクライアントサイド開発に必要となる一連の開発が習得できます。

在庫あり

ご注文日から最短2営業日でお届けいたします。詳しくはこちら。 この商品は送料無料にて、ボーンデジタルが直接販売、発送いたします。

定価 3,780円(税込)
判型 B5変型
総ページ数 356
発売日 2011年1月27日
ISBN 978-4-86267-098-4
著者 郷田まり子/宅間俊志/近藤昭雄

イメージ:ジオモバイルプログラミング

数量

送料無料

※後からでも冊数変更できます

  • ご利用ガイド
  • 内容
  • 目次
  • 立ち読み
  • お詫びと訂正

iPhone、Android向け位置情報アプリの開発を基礎から解説!

位置情報を利用したアプリケーションの開発の第一歩は、緯度経度情報を取得することです。取得した位置情報を地図上に表示するには、iPhoneならMapKitフレームワーク、AndroidならAndroid Mapsの開発テクニックが必要になります。さらに、位置情報をカメラの映像と組み合わせる、拡張現実(AR)アプリを作成する場合はカメラのプレビュー上にものを描画したり、端末のセンサ情報を利用し、表示すべき情報の座標を計算する、などのテクニックが必要です。また、実用的なアプリケーションを作成する場合は、ネットワークを介したサーバとの連携が必要になります。

これらの開発技法を、iPhone、Androidそれぞれで順を追って解説していきます。iPhone編では2章から5章までを通じて1つの位置情報アプリを構築していくという流れに、また、Android編では1つの章ごとにサンプルアプリケーションを作っていく流れになっています。なお、双方で共通する基礎知識は章の冒頭にまとめています。

「2章 位置情報を取り扱う」では、2-1において、基礎知識としてモバイル端末における位置情報取得の仕組みを解説。そして、2-2でiPhone向けの位置情報取得の実装を解説し、2-3でAndroid向けの位置情報取得の実装を解説していきます。また、両プラットフォームとも、ここで基本的なアプリ開発の流れをまとめます。以降、「3章 位置情報を地図上に表示する」、「4章 位置情報を使った拡張現実」、「5章 サーバとの連携」と進み、全体を通して取得した位置情報を使ったアプリの開発手法を学んでいきます。

 
iPhone編はオレンジのテーマカラー(「2-2 現在地の取得【iPhone編】」より)

 
Android編は緑色のテーマカラー(「2-3 現在地の取得【Android編】」より)

本書で使用したサンプルファイルがダウンロードできます

本書の理解を早めるため、著者及びサンプルを提供いただいた方々のご好意により本書で使用した一部のサンプルファイルがダウンロードできます。

はじめに
本書の構成
開発環境の準備

1. 開発をはじめる前に

1-1 スマートフォンと位置情報サービスのいま


  • 携帯電話と位置情報サービス
    • 携帯電話の標準機能での位置情報の利用
    • サードパーティ製アプリケーションでの位置情報の利用
    • 携帯電話向けサイトでの位置情報の利用
  • 地理情報システムの発展
    • Google Static Maps API
  • 位置情報の利用の広がり
    • ソーシャルメディアでの位置情報の利用
    • API で広がる位置情報の利用
  • スマートフォンの時代
  • 位置情報サービス開発者が身につけるべき技術
    • コラム:「地図」自体をソーシャルに作る「OpenStreetMap」

2. 位置情報を取り扱う

2-1 位置情報の仕組み


  • モバイル端末で位置情報を取得する
    • 衛星を使ったGPS
    • 携帯電話やPHS の基地局を使う
    • Wi-Fiを使う
    • iPhone の場合
    • Android の場合
    • コラム:準天頂衛星

2-2 現在地の取得【iPhone 編】


  • 新規プロジェクトの作成
  • Viewの編集
    • コラム:iPhone アプリのスケルトンのタイプ
  • 位置情報を取得し画面に表示する
    • フレームワークの追加
    • ヘッダファイルの編集
    • ラベルのひもづけ
    • 実装コードの編集
  • デバッグ
    • iOSシミュレータを利用する
    • 実機で動かす
  • デバイス要件の記述
  • 位置情報の精度を取得する
    • 精度を表示するラベルを加える
  • 電子コンパス
  • Xcode におけるリファクタリング

2-3 現在地の取得【Android 編】


  • プロジェクトとActivity の作成
  • 画面の作成
  • 位置情報の取得
    • LocationManager の取得
    • 権限の付与
    • 位置情報の取得と画面の更新処理
    • リスナを使った状態の監視
  • エミュレータで動作を確認する
  • 実機で動作を確認する
    • デバッグ版のインストール
    • リリース版のインストール
    • アプリのアンインストール
  • GPX 送信とKML 送信
    • GPX 送信
    • KML 送信

3. 位置情報を地図上に表示する

3-1 地図の取り扱いの基礎


3-2 位置情報を地図上に表示する【iPhone 編】


  • 地図を表示する
    • MapKitフレームワークの追加
    • Interface Builder で地図のカスタマイズ
  • 地図の制御
    • MapViewControllerクラスの作成
    • MapViewをコードで扱う
  • 緯度・経度を指定してピンを出す
    • SimpleAnnotationクラスの作成
    • コラム:プロパティの属性
    • 地図上にピンを立てる
  • アノテーションを変更する
    • URLを保持するプロパティの追加
    • アノテーションのカスタマイズ
    • MapViewController から呼び出す
  • 地図上に図形を書く
    • MKPolylineで地図上に線を引く
    • MKPolygonで地図上に多角形を描く

3-3 位置情報を地図上に表示する【Android 編】


  • 地図情報を扱うための準備
    • Google アカウントの取得
    • キーストアから証明書のフィンガープリント(MD5)を取得
    • MapsKey の取得
    • Manifest.xml の設定
  • 地図を表示する
    • パンとズームの簡易実装
    • 衛星画像、交通量表示、ストリートビューの切り替え
  • 地図を制御する
    • コラム:座標
  • 地図上に図形を描画する
    • コラム:タッチイベント
    • CompassOverlayクラスの追加
    • 図形の描画
    • タッチイベントの制御
    • ストリートビューとの連携
  • 地図上にピンを立てる
    • PinOverlayクラスの実装
  • 位置情報を地図上に表示する
    • コラム:世界測地系と日本測地系

4. 位置情報を使った拡張現実(AR)

4-1 拡張現実(AR)の基礎


  • さまざまなAR
    • 画像認識タイプ
    • 位置情報+ 6 軸センサ
    • コラム:これからのAR
  • 実務に必要なこと
  • 端末の向きの計算
    • 端末の向きの3 つの要素
    • 端末の向き(Yaw, Pitch, Roll)の計算
    • カメラ座標系
  • 座標変換

4-2 位置情報を使った拡張現実(AR)の実装【iPhone 編】


  • カメラオーバーレイを行う
    • UIImagePickerController でカメラプレビューの取得
    • カメラオーバーレイの追加
  • 加速度センサの利用
    • 加速度センサの値を表示するラベルの追加
    • 加速度センサの値を取得
    • 加速度センサの値をラベルに表示
  • 端末の向きの計算
    • 端末の向きを計算する
    • azimuth, pitch, roll の値を画面に表示する
  • カメラの上にラベルを表示する
    • ラベルつきの位置情報の保持
    • 画面上での位置を計算する
  • MapViewController からカメラオーバーレイに表示
    • コラム:さらに魅力的な表現へ

4-3 位置情報を使った拡張現実(AR)の実装【Android 編】


  • カメラのプレビューを表示する
    • CameraPreviewViewの構成
    • コンストラクタの実装
    • surfaceCreated の実装
    • surfaceChanged の実装
    • surfaceDestroyed の実装
  • オーバーレイにアイコンを表示する
    • FrameLayout の生成とパラメータの設定
    • FrameLayout へのViewの登録
    • オーバーレイ用View(CameraOverlayView)の実装
  • カメラの向きを計算する
    • センサからの値の取得
    • センサのイベントの受信
    • 端末の向きの取得
    • カメラの向きの取得
  • 地理情報を表示する
    • アプリケーションの構成
    • パースペクティブ・ドローイングの計算

5. サーバとの連携

5-1 サーバとの連携の基礎


  • ぐるなびWeb サービスの利用

5-2 サーバとの連携【iPhone 編】


  • NSXMLParser によるXML 解析
    • Restaurantクラスの作成
    • パーサの実装
  • 取得したデータを地図・AR 画面に表示する
  • 通信・パース処理をバックグランドで行う
    • 処理中を示すアニメーションを表示する
    • XML データの取得とパースをバックグラウンドで処理する
  • JSON 形式のデータを扱う

5-3 サーバとの連携【Android 編】


  • Web サービスから取得したXML データの解析
    • 処理の流れ
    • レストラン検索API のリクエスト情報
    • GourmetClient のコンストラクタ
    • parse() の実行
    • コラム:AndroidでのHTTP 通信
    • GourmetClient 内のDefaultHandler 派生クラスの実装
    • 業種メニューの選択処理
  • 取得データを地図上に表示する
    • 検索ボタンでレストラン情報を取得する
    • 店舗情報をオーバーレイアイテムに設定する
  • 取得データをカメラプレビューに表示する
  • ビューの切り替え
  • Webブラウザとの連携
  • JSON 形式のデータを解析する

Appendix

  1. Javaプログラマのための3 分間Objective-C 入門
  2. Objective-C におけるメモリ管理
  3. 本文で使用した数式について
  4. マルチプラットフォーム開発者のためのiOS⇔ Android 対応表

索 引
著者紹介

画像をクリックすると拡大表示いたします。

iPhone&Androidで位置情報アプリを作ろう!

ジオモバイルプログラミング

3,780円(税込)/B5変型/356ページ/2011年1月27日

カートに入れる

関連商品

イメージ:iPhoneのオモチャ箱

iPhoneのオモチャ箱

iPhone SDKプログラミング

イメージ:ユメみるiPhone

ユメみるiPhone

クリエイターのためのiPhone SDK プログラミング

イメージ:ケータイサイト解体新書

ケータイサイト解体新書

デザインパターンから理解する実装テクニック

Design Log

WORKS ONLINE BOOK STORE BLOG

CGWORLD.JP

WORKS_TW

CGWJP_TW

CGKENTEI