最終更新:
moonlight_aska 2016年04月10日(日) 11:44:51履歴
GoogleMapインスタンスの取得方法が変わり, getMap()メソッドは非推奨となった.
- java/xxx/MapsActivity.java
- getSupportFragmentManager#findFragmentByIdメソッドで, FragmentManeagerを取得する.
- MapFragment#getMapAsyncメソッドで, GoogleMapインスタンス生成完了時に呼ばれるイベントハンドラを登録する.
- onMapReadyメソッドで, GoogleMapインスタンスを取得する.
- GoogleMap#setOnMapLoadedCallbackメソッドで, 地図の描画完了時に呼ばれるイベントハンドラを登録する.
- onMapLoadedメソッドに, 描画完了時の処理を実装する.
package com.moonlight_aska.android.web.mapsample01;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.widget.Toast;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMapLoadedCallback;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, OnMapLoadedCallback {
private GoogleMap mMap = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment)getSupportFragmentManager()
{.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setOnMapLoadedCallback(this);
}
@Override
public void onMapLoaded() {
// 地図の描画完了時の処理を実装
Toast.makeText(this, "地図の描画完", Toast.LENGTH_LONG).show();
}
}
「Googleマップを表示する」を参照し, Googleマップが表示できるようにする.

- MainActivity.java
- GoogleMapのインスタンスを取得する.
- GoogleMap#setOnMapLoadedCallbackメソッドで, 地図の描画完了に呼ばれるイベントハンドラを登録する.
- onMapLoadedメソッドに, 描画完了時の処理を実装する.
package com.moonlight_aska.android.web.googlemap005;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMapLoadedCallback;
import com.google.android.gms.maps.SupportMapFragment;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.Toast;
public class MainActivity extends FragmentActivity implements OnMapLoadedCallback {
private GoogleMap mMap = null;
@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) {
// イベントハンドラの登録
mMap.setOnMapLoadedCallback(this);
}
}
@Override
public void onMapLoaded() {
// TODO Auto-generated method stub
// 地図の描画完了時の処理を実装
Toast.makeText(this, "地図の描画完", Toast.LENGTH_LONG).show();
}
}
- 動作例

コメントをかく