Saya menggunakan API Google Maps Android baru .
Saya membuat aktivitas yang menyertakan MapFragment. Dalam aktivitas, onResume
saya mengatur penanda ke dalam objek GoogleMap dan kemudian menentukan kotak pembatas untuk peta yang mencakup semua penanda.
Ini menggunakan kode semu berikut:
LatLngBounds.Builder builder = new LatLngBounds.Builder();
while(data) {
LatLng latlng = getPosition();
builder.include(latlng);
}
CameraUpdate cameraUpdate = CameraUpdateFactory
.newLatLngBounds(builder.build(), 10);
map.moveCamera(cameraUpdate);
Panggilan tersebut map.moveCamera()
menyebabkan aplikasi saya macet dengan tumpukan berikut:
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)
Jika - alih-alih newLatLngBounds()
metode pabrik, saya menggunakan newLatLngZoom()
metode maka jebakan yang sama tidak terjadi.
Apakah tempat onResume
terbaik untuk menggambar penanda ke objek GoogleMap atau haruskah saya menggambar penanda dan menyetel posisi kamera di tempat lain?