Je suis en train de faire l'utilisation de la nouvelle Android de Google Maps API.
J'ai créer une activité qui comprend un MapFragment. Dans l'activité onResume
- je définir les marqueurs dans le GoogleMap objet, puis de définir un rectangle de délimitation de la carte qui comprend tous les marqueurs.
C'est à l'aide de la 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 à l' map.moveCamera()
des causes de ma demande de collision 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 l' newLatLngBounds()
usine méthode que j'utilise newLatLngZoom()
méthode, puis le même piège ne se produit pas.
Est l' onResume
le meilleur endroit pour tirer les marqueurs sur la GoogleMap objet ou devrais-je dessiner les marqueurs et le réglage de la position de la caméra à un autre endroit?