J'utilise la nouvelle API Google Maps pour Android .
Je crée une activité qui inclut un MapFragment. Dans l'activité, onResumeje place les marqueurs dans l'objet GoogleMap, puis je définis un cadre de délimitation pour la carte qui comprend tous les marqueurs.
Cela utilise le pseudo code suivant:
LatLngBounds.Builder builder = new LatLngBounds.Builder();
while(data) {
   LatLng latlng = getPosition();
   builder.include(latlng);
}
CameraUpdate cameraUpdate = CameraUpdateFactory
   .newLatLngBounds(builder.build(), 10);
map.moveCamera(cameraUpdate);
L'appel à map.moveCamera()provoque le blocage de mon application avec la pile suivante:
Caused by: java.lang.IllegalStateException: 
    Map size should not be 0. Most likely, layout has not yet 
    at maps.am.r.b(Unknown Source)
    at maps.y.q.a(Unknown Source)
    at maps.y.au.a(Unknown Source)
    at maps.y.ae.moveCamera(Unknown Source)
    at com.google.android.gms.maps.internal.IGoogleMapDelegate$Stub
        .onTransact(IGoogleMapDelegate.java:83)
    at android.os.Binder.transact(Binder.java:310)
    at com.google.android.gms.maps.internal.IGoogleMapDelegate$a$a
        .moveCamera(Unknown Source)
    at com.google.android.gms.maps.GoogleMap.moveCamera(Unknown Source)
    at ShowMapActivity.drawMapMarkers(ShowMapActivity.java:91)
    at ShowMapActivity.onResume(ShowMapActivity.java:58)
    at android.app.Instrumentation
        .callActivityOnResume(Instrumentation.java:1185)
    at android.app.Activity.performResume(Activity.java:5182)
    at android.app.ActivityThread
        .performResumeActivity(ActivityThread.java:2732)
Si - au lieu de la newLatLngBounds()méthode d'usine, j'utilise la newLatLngZoom()méthode, le même piège ne se produit pas.
Est-ce onResumele meilleur endroit pour dessiner les marqueurs sur l'objet GoogleMap ou dois-je dessiner les marqueurs et définir la position de la caméra ailleurs?