職人が教える!iOSアプリ開発で使いこなしたいとっておきのOSS

第6回 iOS6のApple製マップに,Googleマップをオーバーレイするライブラリ/フレームワーク

この記事を読むのに必要な時間:およそ 2 分

YAMapKit

概要

前述の GoogleMapsOverlayiOSと同じく Google Maps API を利用するものですが,こちらは「MapKit.frameworkと置き換えてそのまま使える」というコンセプトで開発されています。

2012年9月25日現在では,リポジトリのREADMEに "under construction" とありますが,デモプロジェクトを見ると地図表示やズーム,スクロールなどの基本機能はすでに動作しているようです。

使い方

(前提として,MKMapViewを用いた地図表示の実装まで完了しているものとします)

1.ソースコードを以下のURLよりダウンロード
2.YAMapKitフレームワークをプロジェクトに追加

9月25日現在,リポジトリに入っているYAMapKitフォルダ配下には必要なファイルとそうでないファイルが混在しているので,付属しているYAMapKitプロジェクトを開いてからFrameworkグループをドラッグ&ドロップで自分のプロジェクトにコピーすれば,必要なファイルのみプロジェクトに追加することができます。

YAMapKitプロジェクトのFrameworkグループ

YAMapKitプロジェクトのFrameworkグループ

または,次のようにYAMapKitフォルダ配下から必要なファイルを選別してください。

  • ソースファイル(拡張子.hと拡張子.mのファイル)のみ抽出する
  • main, MKViewController, MKAppDelegateは取り除く
3.CoreLocation.frameworkをプロジェクトに追加
4.MapKit.frameworkをプロジェクトから外す

概要のところで述べた通り,MapKitを「置き換える」コンセプトでつくられたものなので,MapKit.frameworkは不要となります。

以上の手順を踏めば,MapKitで実装したコードがそのまま動き,かつiOS6上でGoogle Mapsの地図が表示されるようになります。

Google Maps APIのライセンスについて

Google Maps API を無料で使用する場合には,次のような使用制限があります。

  • APIごとに1日あたりの地図読み込み回数が最大で25,000回まで
  • スタイル付き地図機能を使用して変更された地図の1日あたりの読み込み回数が最大で2,500回まで

これらの使用制限を超過してGoogle Maps APIを使用する場合には,Maps API Premierライセンスを購入するか,超過分を支払う地図読み込み回数の超過分のオンライン購入価格か,のいずれかの対応が必要になります。

これらの利用規約や使用制限については,Googleのデベロッパ向けサイトにわかりやすくまとめられています。

まとめ

iOS 6のApple製マップをGoogle Mapsで代替できるライブラリ/フレームワークを2種紹介しました。

それぞれ効用は似ていますが,MKMapViewにオーバーレイ,MapKitフレームワークごと置き換え,と実現方法が大きく異なります。

「MKMapViewだけGoogleの地図に置き換えたい」という場合はGoogleMapsOverlayiOSを,⁠MapKitの機能を色々使いたいけどAppleのじゃなくGoogleのを使いたい」という場合はYMMapKitを,といったようにご利用になるケースに応じて適した方をご検討ください。

またApple製のマップも,まだリリースされたばかりのものなので,これからどんどん改善されていくと思います。こちらの今後にも期待していきましょう!

著者プロフィール

堤修一(つつみしゅういち)

1978年生まれ。京都大学工学部を卒業後,同大学院修了。その後,NTTデータにて音声認識技術の研究開発,キヤノンにて画像処理機能の設計に携わる。

2010年より面白法人カヤックに入社。3年間ほぼiOSアプリ開発に専念し,フルスクラッチで開発しリリースしたアプリは30本以上。代表作は150万ユーザを突破した「バウンドモンスターズ」,AppStore Best of 2012を獲得した「タップ忍者」,カンヌ国際広告祭でブロンズを獲得した「Domino's App」など。

現在は,米国シリコンバレーのマウンテンビューにあるAppSocially社の一員として活躍中。

著書=『iOSアプリ開発 達人のレシピ100―開発現場で実証された実用コード集』

ブログ=Over&Outその後

Github=shu223

Twitter=shu223