Difference between revisions of "Teams Winter 2011/team1/BlackBerry/Add Mapping Option"
(Created page with '=== 10. Add Mapping Option ===') |
|||
Line 1: | Line 1: | ||
=== 10. Add Mapping Option === | === 10. Add Mapping Option === | ||
+ | 10.1. Add the Map Option to the manu:<br/> | ||
+ | <source lang="java"> | ||
+ | //Show the address on the map | ||
+ | ImageMenuItem mapItem = new ImageMenuItem("Address on Map", 500, 5, MENU_MAP); | ||
+ | _mainScreen.addMenuItem(mapItem); | ||
+ | </source> | ||
+ | 10.2. Implement address locator: | ||
+ | <source lang="java"> | ||
+ | mapItem.setCommand(new Command(new CommandHandler(){ | ||
+ | public void execute(ReadOnlyCommandMetadata metadata, Object context) | ||
+ | { | ||
+ | Student student = (Student) _keywordFilterField.getSelectedElement(); | ||
+ | |||
+ | if(student != null) | ||
+ | { | ||
+ | try | ||
+ | { | ||
+ | String address = student.getAddress(); | ||
+ | Coordinates co = new Coordinates(45.423488, -75.697929, 0); | ||
+ | Landmark[] landm = Locator.geocode(address, co); | ||
+ | double lon = landm[0].getQualifiedCoordinates().getLongitude()*100000.0 ; | ||
+ | double lat = landm[0].getQualifiedCoordinates().getLatitude()*100000.0; | ||
+ | StringBuffer document = new StringBuffer("<location-document><location lon='"); | ||
+ | document.append(lon).append("' lat='").append(lat).append("' label='").append(address); | ||
+ | document.append("' description='Student Address' zoom='10'/></location-document>"); | ||
+ | |||
+ | // Invoke maps application for current Contact | ||
+ | Invoke.invokeApplication(Invoke.APP_TYPE_MAPS, new MapsArguments(MapsArguments.ARG_LOCATION_DOCUMENT, document.toString())); | ||
+ | |||
+ | } catch(LocatorException ex){ | ||
+ | Dialog.alert("cannot get location: " + ex.getMessage()); | ||
+ | } catch(Exception ex){ | ||
+ | Dialog.alert("map application is not available: "+ ex.getMessage()); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | })); | ||
+ | </source> |
Revision as of 13:13, 7 April 2011
10. Add Mapping Option
10.1. Add the Map Option to the manu:
//Show the address on the map
ImageMenuItem mapItem = new ImageMenuItem("Address on Map", 500, 5, MENU_MAP);
_mainScreen.addMenuItem(mapItem);
10.2. Implement address locator:
mapItem.setCommand(new Command(new CommandHandler(){
public void execute(ReadOnlyCommandMetadata metadata, Object context)
{
Student student = (Student) _keywordFilterField.getSelectedElement();
if(student != null)
{
try
{
String address = student.getAddress();
Coordinates co = new Coordinates(45.423488, -75.697929, 0);
Landmark[] landm = Locator.geocode(address, co);
double lon = landm[0].getQualifiedCoordinates().getLongitude()*100000.0 ;
double lat = landm[0].getQualifiedCoordinates().getLatitude()*100000.0;
StringBuffer document = new StringBuffer("<location-document><location lon='");
document.append(lon).append("' lat='").append(lat).append("' label='").append(address);
document.append("' description='Student Address' zoom='10'/></location-document>");
// Invoke maps application for current Contact
Invoke.invokeApplication(Invoke.APP_TYPE_MAPS, new MapsArguments(MapsArguments.ARG_LOCATION_DOCUMENT, document.toString()));
} catch(LocatorException ex){
Dialog.alert("cannot get location: " + ex.getMessage());
} catch(Exception ex){
Dialog.alert("map application is not available: "+ ex.getMessage());
}
}
}
}));