2017-07-13 1 views
1

Comment Animer une caméra (déplacement) vers la position actuelle (le point bleu) sans utiliser OnLocationChanged délibérément.Android: Google Map animation Caméra

+0

double possible de [Android Google Maps aller à l'emplacement actuel sans animation] (https://stackoverflow.com/questions/37692476/android-google-maps-go-to- current-location-without-animation) –

+0

Que voulez-vous dire par "première fois?" Typiquement, l'animation ne se produira qu'une seule fois, sur la carte, ou éventuellement après un changement d'orientation. Le lien en double devrait vous couvrir. –

+0

Ce n'est pas ce qui est mentionné dans votre question suggérée. Je souhaite animer la caméra pour la première fois mais pas à chaque fois que le fragment d'hébergement de carte arrive au premier plan, lorsque l'utilisateur navigue à travers différents fragments à l'aide des onglets de la vue de navigation du bas. –

Répondre

1

C'est vraiment sur la clôture entre un commentaire et une réponse, mais je pense que vous pouvez obtenir le comportement vous voulez juste en utilisant un drapeau booléen de niveau d'activité. Initialement, ce drapeau serait défini sur true. Si cela est vrai, vous allez animer votre carte Google. Sinon, vous ne voudriez pas animer. Quelque chose comme ceci:

public class MapsActivity extends FragmentActivity 
    implements OnMapReadyCallback, LocationListener { 

    private GoogleMap googleMap; 
    private boolean firstRender = true; 

    @Override 
    public void onLocationChanged(Location location) { 
     CameraUpdate current = CameraUpdateFactory.newLatLngZoom(coordinates,15); 
     if (firstRender) { 
      googleMap.animateCamera(current); 
      firstRender = false; 
     } 
     else { 
      googleMap.moveCamera(current); 
     } 
    } 
} 
+0

Merci Tim. J'ai déjà fait pareil. Comme je l'ai mentionné dans le commentaire ci-dessus. :) –

+0

@SubhanAli Une mise à jour est-elle possible? –

+0

Qu'en est-il de ces points que j'ai perdus selon votre dicton de possible dubliquer? Bien que ce ne soit pas dubliquer –

0

Il suffit de déplacer la caméra ur au lieu de animateCamera onMapReady: mGoogleMap.moveCamera (CameraUpdateFactory.newCameraPosition (ur emplacement))

0
public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 
     // Add a marker in Sydney, Australia, and move the camera. 
     LatLng chennai = new LatLng(new GPSTracker(activity).getLatitude(), new GPSTracker(activity).getLongitude()); 
     mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chennai, 12)); 
     mMap.addMarker(new MarkerOptions().position(chennai).title("Marker in chennai")); 
    }