That sounded like an excellent suggestion so I gave it a try. The new code looks like this:
mapController.zoomToSpan(latitudeDelta, longitudeDelta); /* * If the MapView has not been drawn yet, we won't be able to retrieve an * accurate zoom level. We have to queue up the work to make the adjustment, * if necessary. */ mapView.post(new Runnable() { public void run() { if (mapView.getZoomLevel() > 20) { mapView.getController().setZoom(20); } } }); And, that still didn't work although I fully expected it to. But, after debugging it awhile I noticed some strange behavior that I did not expect. First, I wanted to check that my runnable got queued up OK, and it ran when I expected it to run. It did not. Before I explain what I observed let me first explain my activity / view structure. Tabbed Activity w/ 3 tabs - Tab 1 - ListActivity - Tab 2 - MapActivity - Tab 3 - Plain 'Ol Activity So the sequence I did was: 1. Enter Tabbed Activity, ListActivity in Tab 1 is shown by default. 2. Click on Tab2, the MapActivity. I would have expected the Runnable to be executed at this point. 3. Click 'back' to exit Tabbed Activity. 4. Re-enter Tabbed Activity, again ListActivity in Tab 1 is shown by default. And, this is the point at which the Runnable was executed. I am at a loss as to why. P.S. I must have misunderstood getMaxZoomLevel() because that didn't return what I thought it would which is the zoom level at which you still get the satellite imagery and not the blank white screen w/ grey X's. So, I went back and hard-coded to zoom level 20. On Sep 1, 4:29 pm, Steve Howard <ste...@android.com> wrote: > The zoom may be deferred if the MapView hasn't been drawn yet. Have you > tried putting your logic in a Runnable and post()ing it to the MapView? > > Steve > > On Sun, Aug 29, 2010 at 7:18 PM, Chad McQuillen > <chad.mcquil...@gmail.com>wrote: > > > > > My application has a MapView which shows a collection of items in a > > satellite view. I use the MapController's zoomToSpan() method to > > initialize the zoom level of MapView. I later discovered that the > > MapView was showing a blank white screen with grey X's (zoom'd too > > far, zoom out once and everything looks as expected) for the use case > > when the collection of item's locations were very close to each > > other. So, I modified the code from this: > > > mapController.zoomToSpan(latitudeDelta, longitudeDelta); > > > to this: > > > mapController.zoomToSpan(latitudeDelta, longitudeDelta); > > > if (mapView.getZoomLevel() > mapView.getMaxZoomLevel()) { > > mapController.setZoom(mapView.getMaxZoomLevel()); > > } > > > but, I still got the same result. I added some debug before and after > > the zoomToSpan() to retrieve the zoom level from MapView and noticed > > that the zoom level did not change. I'm guessing somehow that the > > work is queued up?? > > > I don't know if this information is important or not to this problem, > > but I'll also mention that the MapView is created from a MapActivity > > which is hosted in the tab host of a TabActivity that contains three > > tabs, one of which is the map. I searched this forum and elsewhere > > and haven't seen anyone encounter such a problem before. I'm hoping > > someone can point me in the right direction. > > > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to android-developers@googlegroups.com > > To unsubscribe from this group, send email to > > android-developers+unsubscr...@googlegroups.com<android-developers%2Bunsubs > > cr...@googlegroups.com> > > For more options, visit this group at > >http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en