Location and Maps
Location and maps-based applications are compelling for mobile device users. You can build these capabilities into your applications using the classes of the android.location
package and the Google Maps external library. The sections below provide details.
Location Services
Android gives your applications access to the location services supported by the device through the classes in theandroid.location
package. The central component of the location framework is the LocationManager
system service, which provides APIs to determine location and bearing of the underlying device (if available).
As with other system services, you do not instantiate a LocationManager
directly. Rather, you request an instance from the system by calling getSystemService(Context.LOCATION_SERVICE)
. The method returns a handle to a new LocationManager
instance.
Once your application has a LocationManager
, your application is able to do three things:
- Query for the list of all
LocationProvider
s for the last known user location. - Register/unregister for periodic updates of the user's current location from a location provider (specified either by criteria or name).
- Register/unregister for a given
Intent
to be fired if the device comes within a given proximity (specified by radius in meters) of a given lat/long.
For more information, read the guide to Obtaining User Location.
Google Maps External Library
To make it easier for you to add powerful mapping capabilities to your application, Google provides a Maps external library that includes the com.google.android.maps package. The classes of the com.google.android.maps package offer built-in downloading, rendering, and caching of Maps tiles, as well as a variety of display options and controls.
The key class in the Maps package is com.google.android.maps.MapView
, a subclass of ViewGroup
. A MapView displays a map with data obtained from the Google Maps service. When the MapView has focus, it will capture keypresses and touch gestures to pan and zoom the map automatically, including handling network requests for additional maps tiles. It also provides all of the UI elements necessary for users to control the map. Your application can also use MapView class methods to control the MapView programmatically and draw a number of Overlay types on top of the map.
In general, the MapView class provides a wrapper around the Google Maps API that lets your application manipulate Google Maps data through class methods, and it lets you work with Maps data as you would other types of Views.
The Maps external library is not part of the standard Android library, so it may not be present on some compliant Android-powered devices. Similarly, the Maps external library is not included in the standard Android library provided in the SDK. So that you can develop using the classes of the com.google.android.maps package, the Maps external library is made available to you as part of the Google APIs add-on for the Android SDK.
To learn more about the Maps external library and how to download and use the Google APIs add-on, visit
http://code.google.com/android/add-ons/google-apis
For your convenience, the Google APIs add-on is also available as a downloadable component from the Android SDK and AVD Manager (see Adding SDK Components).
Note: In order to display Google Maps data in a MapView, you must register with the Google Maps service and obtain a Maps API Key. For information about how to get a Maps API Key, see Obtaining a Maps API Key.