Androidプログラマへの道 〜 Moonlight 明日香 〜 - 屋内を表示/非表示する

Google Maps Android API v2

Googleマップで, 屋内のマップを表示/非表示するには, GoogleMapクラスを利用する.

屋内マップの表示/非表示

Googleマップを表示する」を参照し, Googleマップが表示できるようにする.

  • MainActivity.java
    • GoogleMapのインスタンスを取得する.
    • GoogleMap#setIndoorEnabledメソッドで, 屋内マップの表示/非表示を設定する.
   デフォルトは, 屋内マップ表示である.
    • GoogleMap#isIndoorEnabledメソッドで, 屋内マップの表示/非表示状態を取得できる.
package com.moonlight_aska.android.web.googlemap001;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;

public class MainActivity extends FragmentActivity {
  private GoogleMap mMap = null;
  // 大阪駅の緯度・経度
  private static final LatLng OSAKA_STATION = new LatLng(34.702177, 135.495114);

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mMap = ( (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map) ).getMap();
    if (mMap != null) {
      // 大阪駅へ移動
      CameraPosition cameraPos = new CameraPosition.Builder()
        .target(OSAKA_STATION)
        .zoom(18.0f)
        .bearing(0).build();
      mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPos));
      // 屋内マップの表示/非表示
      mMap.setIndoorEnabled(false); // デフォルト true
      Log.v("GoogleMap", "屋内表示 = " + mMap.isIndoorEnabled());
    }
  }
}
  • 動作例
Nexus 7 / Android 4.4
1) 表示


2) 非表示