外出先などで道順を調べるときに便利なのが、Android端末から利用できる地図アプリです。端末に内蔵されたGPS(Global Positioning System、全地球測位システム)センサーを使い、現在位置から目的地までの道筋を教えてくれるので、初めての場所に行くときなどに重宝します。

 今回は、地図とGPSセンサーを使ったアプリを作成するときの前提になる、地図表示用の新しいAPI「Google Maps Android API v2」を紹介します。Google Maps Android API v2は、米Googleが2012年末に発表した比較的新しいAPI(アプリケーション・プログラミング・インタフェース)です。

Google Maps Android API

 まず、Google Maps Android API v2と、前のバージョンである同 v1の違いを説明しましょう。

 Google Maps Android API v2とこれまで使っていた同 v1との大きな違いは、ラスターベースのマップが2D/3D対応のベクターベースのマップに変わったことです。地図を傾けたり回転させたりすることができるようになりました。傾けると、ビルが立ち上がり、立体的な地図が表示されます。また、地下街や空港など大きな建物のインドアマップも表示可能になりました。

 Google Maps Android API v1では、MapView(マップビュー)を使ってマップを表示していました。Mapを表示するActivityは、MapActivityを継承する必要がありました。また、マップを操作するにはMapControllerを使い、自分の位置やマーカーを描画するには、Overlayクラスを継承するMyLocationOverlayクラスやItemizedOverlayクラスを利用しました。

 一方、新しいv2では、MapActivityは使いません。MapFragmentを画面レイアウトのXMLファイルに埋め込んで使います。フラグメント化されたことで、一つの画面に複数のマップを表示できるようになりました。

 また、v1での移動や拡大には、MapControllerクラスのanimateTo() やsetZoom()などのメソッドを使っていましたが、v2ではGoogleMapクラスのメソッドを使います。マーカーの表示もGoogleMapクラスのメソッドで可能です。OverlayクラスやMapControllerクラスを使わなくても、地図に関する操作のほとんどがGoogleMapクラスで実行できるようになったのです。

 開発環境への導入方法も異なります。Google Maps Android API v1はGoogle APIsに含まれていたので、Android SDKと一緒にインストールされました。一方、新しいv2は、Google Play Servicesに含まれているので、以下で説明するように、別途Android SDKマネージャーからインストールする必要があります。インストールしたうえで、Library Project(ライブラリプロジェクト)として利用します。ライブラリ化されたことで、Android との結びつきが少し緩くなりました。

 結果として、Google Maps Android API v1用のコードをv2用に修正することはかなり困難です。v1は今後も利用可能なようですが、v1のAPIキーの発行は2013年3月18日をもって終了しました。こうしたことから今後はv2 が広く使われるようになるでしょう。