2016-01-18 8 views
6

Ho il seguente metodo per aggiornare la mia mappa:moveCamera e animateCamera non funzionano la seconda volta

private void setCamera() { 
     if (currentLocation != null) { 
      String[] coords = currentLocation.split(",", 2); 
      CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(Double.parseDouble(coords[0]), Double.parseDouble(coords[1]))); 
      CameraUpdate zoom = CameraUpdateFactory.zoomTo(5); 
      mMap.moveCamera(center); 
      mMap.animateCamera(zoom); 
     } 
    } 

La prima volta invoco questo metodo subito dopo l'apertura della app, e questo metodo sta lavorando bene. Ma dopo vado ad un altro frammento e poi di nuovo al primo frammento. E in questo caso il metodo è stato invocato, currentLocation non è uguale a null, center ha ottenuto l'oggetto giusto LatLng, ma la mia visualizzazione della mappa non è cambiata e lo zoom è inferiore a 5. Cosa c'è che non va?

+0

Sto affrontando lo stesso problema. Qualche fortuna? – user1406716

+0

@ user1406716, alla fine ho risolto questo problema – Ksenia

risposta

3

Eventualmente ho risolto questo problema. Ho modificato il codice precedente come segue:

private void setCamera() { 
     if (currentLocation != null) { 
      String[] coords = currentLocation.split(",", 2); 
      CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(Double.parseDouble(coords[0]), Double.parseDouble(coords[1]))); 
      CameraUpdate zoom = CameraUpdateFactory.zoomTo(5); 
      mapFragment.getMap().moveCamera(center); 
      mapFragment.getMap().animateCamera(zoom); 
     } 
    } 

E ora la mappa viene visualizzata correttamente.