The Locator class in the net.rim.device.api.lbs package has been deprecated, and replaced by new geocoding and reverse geocoding APIs. Using these APIs, you can perform geocoding and reverse geocoding requests asynchronously and synchronously. To initiate an asynchronous request, you must provide a ServerExchangeCallback implementation, otherwise the request is synchronous. The geocoding and reverse geocoding APIs are provided in the net.rim.device.api.lbs.maps.server and net.rim.device.api.lbs.maps.server.exchange packages.
Dynamic mappable framework
The dynamic mappable framework allows you to create locations on a map, specify if a location needs to be updated, and re-render the map when the location is updated. For example, you can display the location of a BlackBerry® Messenger contact in near real-time on a map as the contact's location changes. The dynamic mappable framework is provided in the net.rim.device.api.lbs.maps.model package.
You can define styles for single mappable items or classes of mappable items using the Styles framework. You can also adjust the line edge (weight, opacity, and color), the fill (opacity and color), and the label (fill and font) for mappable items. The Styles framework is located in the net.rim.device.api.lbs.maps.view package.
Building block framework
You can create mappable objects that correspond to geospatial shapes such as polygons, polylines, images, lines, markers, and points using the Building block framework. Shapes (for example, images or polygons) are provided in the net.rim.device.api.lbs.maps.model package. Geospatial shapes which correspond to these shapes are provided in the net.rim.device.api.lbs.maps.model.geospatial package. You can use these shapes to do various things. such as display BlackBerry® Messenger profile pictures as markers for locations on a map.
You can add a compass overlay to your application by using the CompassField class, which is provided in the net.rim.device.api.lbs.compass package. The CompassField provides a graphical representation of a compass to provide directional context (for example, in a mapping application, the compass displays where north is in relation to the BlackBerry® device user's current location). You can create an instance of CompassField and add it to a field manager, like other UI components in the BlackBerry® Java® SDK.
MapField and MapAction enhancements
The MapAction and MapField classes, which are provided in the net.rim.device.api.lbs.maps.ui package, provide new methods that allow you to perform specific actions on a map field. The classes support actions such as setting the center, zoom, and rotation level of a map field.
Retrieving the bearing between two locations
You can retrieve the compass initial bearing between two specified locations by using getBearing() method that is defined in the net.rim.device.api.gps.LocationInfo class. You must provide the geographic coordinates (latitude and longitude) for the starting and ending locations, and then invoke getBearing(), which calculates the angle (in degrees) between the two locations.
You can use the Geofence class to define geofenced areas and receive notifications when a BlackBerry® device user enters or leaves the specified area. A geofence is a virtual geographic area of interest that you can define by a radius around a location, or by coordinates that define a polygon for the location.
Your application must create an instance of a Geofence object, and implement GeofenceListener to receive notifications for geofencing events (when a user enters or exits geofenced areas). Each instance of Geofence is designed to process up to 20 monitored areas concurrently. Geofence is provided in the net.rim.device.api.location package.
Retrieving a bounding box
You can retrieve the mappable (that is, latitude and longitude-based) bounding box for a mappable item by using getBoundingBox(). The classes which implement the Mappable interface define this method. A mappable bounding box represents a rectangular area that a mappable item occupies on a map.
Departure time estimation
The Travel Time API is enhanced. You can now specify an arrival time, and request an estimated departure time. The Travel Time API is provided in the net.rim.device.api.lbs.travel package, and can now request estimated departure and arrival times given your current location.