この記事は最終更新日から1年以上経過しています。
今回は地図の基本設定と、カメラ位置とズームレベルの変更の方法をご紹介します。
Android2.x系、3.1.x系以上の2パターンを紹介しています。
API v2の導入方法については以下をご覧ください。
[Google Maps Android API v2]
2014-08-18 追記
GooglePlay開発者サービス(GooglePlayServices)がAndroid2.2はサポートしなくなりました。
そのため、Android2.2ではGoogleMap Android API v2が利用できません。
Android2.x系でも動作するように作成する場合
メインとなるFragmentActivityを継承したクラスに機能を実装していきます。
1 | public class MainActivity extends FragmentActivity |
変数の宣言
マップオブジェクトを生成する関数を作成
1 | private void setUpMapIfNeeded() { |
5 | mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) |
作成した関数をActivityのonCreateで実行します。
2 | protected void onCreate(Bundle savedInstanceState) { |
3 | super .onCreate(savedInstanceState); |
4 | setContentView(R.layout.activity_main); |
マップの各種設定を指定する場合
まず変数の宣言
2 | private UiSettings mUiSettings; |
先程作成した関数を修正します。
1 | private void setUpMapIfNeeded() { |
5 | mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) |
9 | mUiSettings = mMap.getUiSettings(); |
10 | mUiSettings.setCompassEnabled( true ); |
11 | mUiSettings.setMyLocationButtonEnabled( false ); |
12 | mUiSettings.setRotateGesturesEnabled( false ); |
setCompassEnabled |
北を指すコンパス表示の有効/無効を設定します。 |
setMyLocationButtonEnabled |
現在地ボタンの表示有無を設定します。
※現在地が取得可能な場合に限ります。 |
setRotateGesturesEnabled |
回転ジェスチャーを有効にするかどうかを設定します。 |
UiSettingsの詳細は
http://developer.android.com/intl/ja/reference/com/google/android/gms/maps/UiSettings.html
レイアウトXML
1 | <? xml version = "1.0" encoding = "utf-8" ?> |
2 | < fragment xmlns:android = "http://schemas.android.com/apk/res/android" |
4 | android:layout_width = "match_parent" |
5 | android:layout_height = "match_parent" |
6 | class = "com.google.android.gms.maps.SupportMapFragment" > |
カメラ位置を変更する
指定した場所を指定したズームレベルで表示するときはcom.google.android.gms.maps.CameraUpdateを使います。
2 | CameraUpdateFactory.newLatLng( |
3 | new LatLng( 35.65858 , 139.745433 )); |
5 | mMap.animateCamera(CameraUpdateFactory.zoomTo( 15 )); |
APIレベル12(Android 3.1.x)以上をターゲットとする場合
Android 3.1.x以上をターゲットとする場合、FragmentActivityではなくActivityを継承します。
1 | public class MainActivity extends Activity |
変数の宣言
マップオブジェクトを生成する関数を作成
こちらもSupportMapFragmentではなくMapFragmentを使用します。(com.google.android.gms.maps.MapFragment)
1 | private void setUpMapIfNeeded() { |
5 | mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)) |
レイアウトXMLは以下のようになります。
1 | <? xml version = "1.0" encoding = "utf-8" ?> |
2 | < fragment xmlns:android = "http://schemas.android.com/apk/res/android" |
4 | android:layout_width = "match_parent" |
5 | android:layout_height = "match_parent" |
6 | class = "com.google.android.gms.maps.MapFragment" > |
GoogleMapOptionsを使用する場合
GoogleMapOptionsを使用する場合はMapFragmentのインスタンスを以下のように作成します。
2 | mMapFragment = (SupportMapFragment) getSupportFragmentManager() |
3 | .findFragmentById(R.id.map); |
4 | if (mMapFragment == null ) { |
6 | GoogleMapOptions options = new GoogleMapOptions(); |
7 | options.useViewLifecycleInFragment( false ); |
8 | options.zOrderOnTop( false ); |
11 | mMapFragment = SupportMapFragment.newInstance(options); |
12 | getSupportFragmentManager().beginTransaction() |
13 | .add(android.R.id.content, mMapFragment) |
GoogleMapOptionsの詳細は
http://developer.android.com/intl/ja/reference/com/google/android/gms/maps/GoogleMapOptions.html