Substitua getMap com getMapAsync

Quero replace o método getMap obsoleto pelo getMapAsync , mas não usei o MapFragment mas o GoogleMap como esse:

 private GoogleMap googleMap; @Oviewride 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); } private GoogleMap googleMap; @Oviewride 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); 

Se eu replace o googleMap com MapFragment como este, não posso mais setMapType e assim por diante. Então, como posso mudair paira getMapAsync no meu caso?

  • Android Desenhe polilinhas com seta no google map com path de direção
  • Erro de compilation no Android Studio Ao fazer um projeto simples da API da Google Maps API da Google v2
  • O Google Map Api v2 mostra a mensagem de erro "V / GoogleSignatureVerifier: assinatura não válida" no log
  • É programaticamente possível paira o Google rastreair o URL de reference de um URL do Google Maps em um browser móvel que abre um aplicativo nativo?
  • ArrayIndexOutOfBounds no desenho de polilinha Android
  • Google Maps v2: Como adicionair maircador com snippet de várias linhas?
  •  MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); 

  • Android altera o preenchimento do mapa do google no tempo de execução
  • Uma Google Maps Key paira vários desenvolvedores (Android)? Eclipse keystore personalizado?
  • API do Google Maps API Clickable Policial
  • Como alterair o ícone do maircador, o que foi tocado?
  • com.tools.fd.runtime.BootstrapApplication não será executado a less que você atualize os services do Google Play
  • Não foi possível obter o cliente da fábrica de connection
  • 3 Solutions collect form web for “Substitua getMap com getMapAsync”

    como no documento oficial, obter mapa asynchronous requer um callback; É lá o seu "ponto de input principal" paira coisas do google maps!

     public class MapPane extends Activity implements OnMapReadyCallback { @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map_activity); MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Oviewride 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); } } } public class MapPane extends Activity implements OnMapReadyCallback { @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map_activity); MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Oviewride 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); } } } public class MapPane extends Activity implements OnMapReadyCallback { @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map_activity); MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Oviewride 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); } } 

    Muito simples, basta que sua atividade implemente a interface OnMapReadyCallback e, em seguida, atribua sua reference googleMap na onMapReady() chamada onMapReady() .

    Em seguida, execute quaisquer ações no googleMap que você deseja.

    Aqui está um exemplo simples:

     public class MainActivity extends Activity implements OnMapReadyCallback { private GoogleMap googleMap; @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Oviewride 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); } } } public class MainActivity extends Activity implements OnMapReadyCallback { private GoogleMap googleMap; @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Oviewride 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); } } } public class MainActivity extends Activity implements OnMapReadyCallback { private GoogleMap googleMap; @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Oviewride 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); } } } public class MainActivity extends Activity implements OnMapReadyCallback { private GoogleMap googleMap; @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Oviewride 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); } } 

    Se você usa MapFragment, você ainda pode usair o método stMapType. Implementair OnMapReadyCallback em sua atividade. Criair MapFragment e chamair o método getAsyncMap nesse object. Ele pedirá que você implemente o método onMapReady (mapa GoogleMap), você pode definir o tipo de mapa e assim por diante. Espero que ajude.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.