Remplacer getMap avec getMapAsync
Je veux remplacer l'obsolète getMap
Méthode avec getMapAsync
, mais je n'ai pas utilisé MapFragment
mais GoogleMap
comme ceci:
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 je remplace le googleMap
avec MapFragment
comme cela, je ne suis pas plus en mesure de setMapType
et ainsi de suite. Alors, comment puis-je changer getMapAsync
dans mon cas?
MapFragment mapFragment = (MapFragment) getFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
Vous devez vous connecter pour publier un commentaire.
comme dans la doc officielle, obtenir carte asynchrone nécessite un rappel;
c'est là votre principal point d'entrée" pour google maps trucs!
Très simple, il suffit de disposer de votre Activité, mettre en œuvre les
OnMapReadyCallback
interface, et ensuite affecter votregoogleMap
de référence dans leonMapReady()
de rappel.Ensuite, effectuez l'une des actions sur
googleMap
que vous voulez.Voici un exemple simple:
Si vous utilisez MapFragment vous pouvez toujours utiliser stMapType méthode. Mettre en œuvre OnMapReadyCallback sur votre activité.
Créer MapFragment et appel getAsyncMap méthode sur cet objet.
Il va vous demander de inplement onMapReady(carte GoogleMap) méthode de là, vous pouvez définir le type de carte et ainsi de suite.
Espérons que cela aide.