Date post: | 12-Jan-2015 |
Category: |
Technology |
Upload: | nokia-developer |
View: | 1,721 times |
Download: | 0 times |
Application Development with Nokia Maps and Location APIs for Series 40
Nokia Series 40
1 © Nokia 2012 Intro to Maps on Apps.pptx
Jason Fox Technical Support Engineer Maps Platform
1. Introduction to Nokia Maps API for Java ME
2. Getting Started - Prerequisites 3. Basic Mapping Concepts 4. An Introduction to the Search and
Routing Services 5. An Introduction to positioning (JSR-179)
Agenda
2 © Nokia 2012 Intro to Maps on Apps.pptx
Nokia Maps API for Java ME
3 © Nokia 2012 Intro to Maps on Apps.pptx
What is Nokia Maps API for Java ME?
4 © Nokia 2012 Intro to Maps on Apps.pptx
Full details at : http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_ME/
• API aimed at Series 40 Phones. Allows you to develop mobile applications based on Nokia Maps.
• Façade Pattern - hides all the “plumbing” code - the low level connection calls, image manipulation etc.
• Targets devices supporting MIDP 2.0 or higher.
• Not currently part of the SDK
• Single downloadable JAR around 150 kB.
• Faster App development. Better App performance
Why use Nokia Maps API for Java ME?
5 © Nokia 2012 Intro to Maps on Apps.pptx
• Multiple map types optimised for mobile displays
• Low latency and reduced network traffic compared with static map image solutions.
• “Out-of-the box” support for common mapping use cases (Markers, Images, Polygons, Polylines, Pan and Zoom)
• In-built libraries to access search, routing and POI information services.
• Map Components are open to extension -
ability to customise and override standard API functionality.
• Advanced Features as standard, such as KML parsing and the addition of custom overlays
Comparison of Nokia Maps for Java ME vs. Static Map Image Solutions
6 © Nokia 2012 Intro to Maps on Apps.pptx
Static Map (e.g. RESTful Map API) • one single http request per map ->one single image returned in response • new request for each alteration. Maps for Java ME • multiple http requests for individual map tiles. • Map tiles are cached. • Map tiles stitched together and objects
added to display result on screen • Additional requests only made if necessary.
Result • Reduced latency and lowered network traffic though built-in intelligent
map rendering, caching and tiling = Better for Mobile.
Prerequisites
7 © Nokia 2012 Intro to Maps on Apps.pptx
Prerequisites
8 © Nokia 2012 Intro to Maps on Apps.pptx
1. Install a Java Runtime Environment 6 http://www.java.com/en/download/index.jsp
2. Install an IDE (e.g. NetBeans) Netbeans.org
3. Install a Nokia SDK for Java (free) http://www.developer.nokia.com/Develop/Java/Tools/
2.
Prerequisites
9 © Nokia 2012 Intro to Maps on Apps.pptx
4. Configure Nokia SDK in NetBeans
1.
3.
Prerequisites
10 © Nokia 2012 Intro to Maps on Apps.pptx
5. Download the binary Jar http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_ME/Getting_started/
Prerequisites
11 © Nokia 2012 Intro to Maps on Apps.pptx
6. Register as a developer free at www.developer.nokia.com
Prerequisites
12 © Nokia 2012 Intro to Maps on Apps.pptx
7. Obtain a free set of authentication credentials (App Id and Token) from: https://api.developer.nokia.com/ovi-api/ui/registration − A unique App ID and Token, are required for each application
8. After creating a new NetBeans project, You must add a reference to the Nokia Maps API binary jar itself - Maps_API.jar. This reference is added under the ”Resources” folder in theNetBeans project.
Basic Mapping Concepts
13 © Nokia 2012 Intro to Maps on Apps.pptx
• The Minimal Map
• An Introduction to Map Types
• Map Languages
• Markers
• Polylines and Polygons
• Interaction
The Minimal Map
14 © Nokia 2012 Intro to Maps on Apps.pptx
A Pannable Zoomable Map in five lines of code 1. Set credentials in the ApplicationContext
2. Create a MapCanvas
3. Set it as the current Display
Map Types
15 © Nokia 2012 Intro to Maps on Apps.pptx
Pick the right map type for your app
Map Types – Simple Method
16 © Nokia 2012 Intro to Maps on Apps.pptx
The Standard Map Schemes
The Code
Map Types – Advanced Method
17 © Nokia 2012 Intro to Maps on Apps.pptx
1) Implement a MapSchemeListener and call getAvailableMaps()
2) Handle Success and Failure
3) Set the BaseMapType from MapProviders received
Map Languages
18 © Nokia 2012 Intro to Maps on Apps.pptx
• Currently eight map Languages available Arabic, Chinese, German, English, French, Italian, Russian and Spanish
• Just set the DefaultLanguage in the ApplicationContext
• By default Maps are displayed in English
Map Markers
19 © Nokia 2012 Intro to Maps on Apps.pptx
Markers highlight points of interest at a specified location on the map - two types exist: • MapStandardMarker
• Various Geometric Shapes plus Balloon • Easy to add text, change color (and opacity)
• MapMarker • Used to add graphical icons. • Need to define an anchor point.
• Use the MapFactory to created instances of MapStandardMarkers and MapMarkers
• Default marker is a ‘Nokia Blue’ Balloon
Polylines and Polygons
20 © Nokia 2012 Intro to Maps on Apps.pptx
• A MapPolyline is a series of connected points
• A MapPolygon is the area within a closed loop of points
• Every instance of a MapPolygon or MapPolyline is created using the MapFactory
• Both objects have an implicit GeoBoundingBox.
MapCanvas MapDisplay MapObject
21 © Nokia 2012 Intro to Maps on Apps.pptx
• MapCanvas holds a MapFactory and a MapDisplay
• Use the MapFactory to create MapObjects
• Can also use MapFactory to create
a MapDisplay directly e.g. for automatic caching of Static Maps
• The MapDisplay contains MapObjects but is also a
MapObject itself.
• MapObjects may be also be contained within a MapContainer
Map Events
22 © Nokia 2012 Intro to Maps on Apps.pptx
• Create a MapComponent to interact with your MapDisplay
• Add an EventListener to your MapComponent to receive notifications of screen interactions and key presses
An Introduction to Location-Based Services
23 © Nokia 2012 Intro to Maps on Apps.pptx
• Search (Geocoding and Reverse Geocoding)
• Places Search
• Routing
• Sharing
Geocoding Search
24 © Nokia 2012 Intro to Maps on Apps.pptx
• Finds a location on the Map from a given Address
• Search can be either synchronous or asynchronous.
• Asynchronous search is preferred.
1. Implement a GeoCodeRequestListener
2. Create a GeoCodeRequest
3. Handle Success or Failure
Reverse Geocoding Search
25 © Nokia 2012 Intro to Maps on Apps.pptx
• Finds the Address for a given geographic location. • Search can be either synchronous or asynchronous. • Asynchronous search is preferred.
1. Implement a ReverseGeocodeRequestListener
2. Create a ReverseGeoCodeRequest
3. Handle Success or Failure
Places Search
26 © Nokia 2012 Intro to Maps on Apps.pptx
• Flexible Local Search • General Text Search (e.g. “Pizza”) • Category Search (e.g. restaurant) • Combined Search (e.g. “Italian” + restaurant)
• Drill down to get more details
• Contact Details • Opening Times • Description and Reviews • Images etc.
Places Search
27 © Nokia 2012 Intro to Maps on Apps.pptx
1. Implement a PlaceSearchRequestListener
2. Create a PlaceSearchRequest
3. Handle Success or Failure
4. More details can be obtained by interrogating the Result
Routing Service
28 © Nokia 2012 Intro to Maps on Apps.pptx
• Routing Service consists of creating a route between two or more Waypoints.
• Responses from the Routing service can take time. Make your RouteRequests asynchronously.
1. Implement a RouteListener
2. Create a RouteRequest
3. Handle Success or Failure
• Routing Type – default is RoutingType.Shortest
• Mode of Transport – default is TransportMode.CAR
• Additional Restrictions – None are selected by default
Routing Service
29 © Nokia 2012 Intro to Maps on Apps.pptx
• The preferred route calculation can be optimized by altering the parameters of the RoutingMode
Sharing Manager
30 © Nokia 2012 Intro to Maps on Apps.pptx
• Creates short encrypted URLs for the RESTful Maps API
• Send URL as an SMS for a client to receive a static map.
• Service forwards to maps.nokia.com or m.maps.nokia.com on capable browsers
Positioning
31 © Nokia 2012 Intro to Maps on Apps.pptx
• Separate Optional Package for Positioning (JSR-179)
• Frequently combined with the Nokia Maps API for Java ME, though not part of the API itself
• Two location methods maybe available • Cell ID positioning • GPS
Cell-ID Location
32 © Nokia 2012 Intro to Maps on Apps.pptx
• A MIDlet can obtain an approximate position using the Cell-ID location method.
• The method consists of passing the ID of the cell the device is currently connected to, on to a look-up service. The service will then return the well-known position of the given cell-ID.
• This Cell ID location provides a method of positioning mobile devices which do not contain a GPS unit.
Note: the degree of uncertainty can vary of a few meters to hundreds of kilometers, depending upon the infrastructure of the local network and the data available to the look-up service for that region
Cell-ID Example
1) Create a Cell-ID LocationProvider using LocationUtils Note: The second parameter of getLocationProvider() is currently always null. This leaves the library open for future extension
2) Make a call to getLocation() and process the result
The attributes of the QualifiedCoordinate class map directly onto the GeoCoordinate class.
Set up a loop and poll to obtain location updates.
© Nokia 2012 Intro to Maps on Apps.pptx 33
LocationUtil • The preferred Location method(s) can
be any combination of the methods defined in JSR-179:
Useful Combinations • Offline Cell ID
• Standalone GPS
• Assisted GPS
• Online Cell ID an/or WLAN
© Nokia 2012 Intro to Maps on Apps.pptx 34
GPS Example
1. Create a GPS LocationProvider
2. Set the provider to start polling
3. Retrieve and process the result
© Nokia 2012 Intro to Maps on Apps.pptx 35
For More Information
Download the latest Nokia SDK for Java http://developer.nokia.com Consult the Nokia Developer Library http://library.developer.nokia.com Nokia Maps API http://developer.nokia.com/Maps
36 © Nokia 2012 Intro to Maps on Apps.pptx