Introduction to MapView on Android - Codelab

August 25, 2011, 2:54 am

I am giving a talk about Android Google Maps development at the Android Australia User Group - Sydney meetup tonight. I hope you can make it.

I have put together a very simple code lab going over the basics for adding maps to your Android apps.

  • Before - A simple list based app that loads a 'Detail' activity.
  • After - Even list entries will load a native MapView based activity, odd list entries will use the Javascript Google Maps API in a WebView. Native views also geocode the name provided to set the map center.

This stuff is very much an introduction and much of it is covered in the Google Map View tutorial, but hopefully some people will find it useful.

Update

In my rush to get something together for the code lab I left some rather embarrassing, unsafe threading code in my "After" code lab.

I was calling set location on my MapView from my worker thread. Oops. Thanks to Darren Mason for pointing out this rather glaring error.

Make sure that you access the Android UI toolkit only on the UI thread.

I have updated the sample to use an AsynchTask to safely update my MapView when the blocking call finishes in the worker thread.

private class GeocodeTask extends AsyncTask { protected GeoPoint doInBackground(String... name) { return blockingGeocodeCall (name[0]); } protected void onPostExecute(GeoPoint result) { setLocation(result); } }

Permalink - Tags: Development,Android,Google