Reemplazar getMap con getMapAsync

Quiero reemplazar el obsoleto método getMap con getMapAsync , pero no MapFragment pero GoogleMap como este:

 private GoogleMap googleMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_map); try { if(googleMap == null) { googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); } googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); googleMap.setMyLocationEnabled(true); googleMap.setTrafficEnabled(true); googleMap.setIndoorEnabled(true); googleMap.setBuildingsEnabled(true); googleMap.getUiSettings().setZoomControlsEnabled(true); 

Si reemplazo el googleMap con MapFragment como este ya no soy capaz de setMapType y así sucesivamente. Entonces, ¿cómo puedo cambiar a getMapAsync en mi caso?

 MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); 

3 Solutions collect form web for “Reemplazar getMap con getMapAsync”

Como en el documento oficial, obtener mapa asincrónico requiere una devolución de llamada; ¡Está allí su "punto de entrada principal" para la materia de google maps!

 public class MapPane extends Activity implements OnMapReadyCallback { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map_activity); MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override public void onMapReady(GoogleMap map) { //DO WHATEVER YOU WANT WITH GOOGLEMAP map.setMapType(GoogleMap.MAP_TYPE_HYBRID); map.setMyLocationEnabled(true); map.setTrafficEnabled(true); map.setIndoorEnabled(true); map.setBuildingsEnabled(true); map.getUiSettings().setZoomControlsEnabled(true); } } 

Muy simple, basta con que su Actividad implemente la interfaz OnMapReadyCallback y, a continuación, asigne su referencia googleMap en la devolución de llamada onMapReady() .

A continuación, realice cualquier acción en googleMap que desee.

Aquí hay un ejemplo sencillo:

 public class MainActivity extends Activity implements OnMapReadyCallback { private GoogleMap googleMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override public void onMapReady(GoogleMap map) { googleMap = map; setUpMap(); } public void setUpMap(){ googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); googleMap.setMyLocationEnabled(true); googleMap.setTrafficEnabled(true); googleMap.setIndoorEnabled(true); googleMap.setBuildingsEnabled(true); googleMap.getUiSettings().setZoomControlsEnabled(true); } } 

Si utiliza MapFragment todavía puede utilizar el método stMapType. Implementar OnMapReadyCallback en su actividad. Crear MapFragment y llamar al método getAsyncMap en ese objeto. Se le pedirá que inplement onMapReady (GoogleMap mapa) método allí se puede establecer el tipo de mapa y así sucesivamente. Espero eso ayude.

  • Android: ubicación de Google Maps con bajo consumo de batería
  • Android Google Maps v2: en el oyente de clics no responde
  • Error al obtener Google Maps en android
  • Google Maps no se muestra de repente en Android
  • Compruebe si el usuario está en un bosque utilizando la ubicación
  • Google Map V2 Android y iOS colocan decimales latlng
  • Cómo obtener un marcador de mapa por su ID en Google Maps v2
  • Cómo cargar marcadores dinámicamente para la posición actual en google-maps de Android?
  • Algoritmo de Google Maps
  • Visualización de varias rutas utilizando la API de direcciones en Android
  • ¿Todavía es necesario el permiso READ_GSERVICES para Google Maps?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.