Google Maps Android API v2 その1
2013/08/10更新
August 2013の更新でMAPS_RECEIVEのpermissionが不要になりましたので、その辺りの記述を削除しました。
年末にiOS版(Ver.1.1.2とかの記事はこちら)のを調査した際に、こちらもざっとは目を通していたのですが、ぼちぼち公開中のアプリのもv2に切り替えて行きたいということで、改めて使用方法を調査していきます。機能的には、for iOS とほぼ一緒な感じです。
公式サイトは以下になります。
Developer Guide
v2の概要
- Google Play servies SDKの一部として配布されるから、SDK managerでインストールしてね
- 今度のMapsはFragmentを継承したMapFragmentになってるよ。スマホの小さな画面からタブレットの大きな画面まで地図を表示できるよ
- MapsAPIはベクタータイルを使うよ。ラスタに比べてデータサイズも小さくて高速だよ
- 地図のキャッシュ方法を改善したよ
- 地図は3Dだよ
- API key の生成方法が変わったよ
Introduction
地図上にの特定の座標に配置可能なもの
- アイコン(Markers)
- 複数の線(Polylines)
- 複数の閉じた図形(Polygons)
- 画像(Ground Overlays)
- 地図のタイルとしての画像群(Tile Overlays)
これは必須
Google Maps Android v2を使うためには、 About画面等の"Legal Notices"(使用条件、免責事項)の中で、
GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo (Context context)
の戻り値を表示する必要がある
サンプルコード
手順に従ってgoogle-play-services_libのライブラリプロジェクトと、マップのサンプルデモをImportし、API keyを取得すればデモを動かせる
Getting Started
Google Maps Android API v2を使ったアプリを作る為には、以下の手順を実行する必要がある 詳しい手順は本家のページに解説がある
Google Play services SDKをダウンロードし、インストールを行う。
ライブラリプロジェクトをImportする。MapsのSDKもこの中に含まれている。
API keyを生成する
Google APIs consoleで v2用のkeyを生成する。 API v2 はキー管理に新しいシステムを使っているため、v1のkeyでは動かない。 API keyの生成には、アプリ署名用の証明書のSHA-1のfinger printと、アプリのパッケージ名が必要。
debug時にも地図を表示させるには、debug用証明書を使って別のAPI keyを取得するか、ブラウザ用のAPI keyを利用するかが必要。
ApplicationManifestを設定する
<application>タグ内に<meta-data>でAPI keyを設定する。
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="生成したキー"/>
<uses-permission>で必要なpermissionを宣言する
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
また、v2はOpenGL ES Ver.2が必須となる
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
新規/既存のアプリにマップを追加する
MapFragmentをActivityに貼り付けるだけ。v1はMapActivityの中でMaps のサーバーとのやりとりが実装されており、必ずこのActivityかその派生クラスを使う必要がありましたが、v2ではFragmentの中にそれらのコードが納められています。Fragmentはviewのコンテナみたいなもので、好きなActivityに貼り付けられるため、v1よりうんと使い易くなっています。
アプリを公開する
めでたしめでたしです。
なんだか introductionでえらい手間取っているような… ちょっとネジ巻いて頑張ります。