Summary
The Location API is consist of three main parts.
Positioning provides an easy to use interface that encapsulates basic geographical information obtained from satellite or other sources.
Maps and Navigation provides a way to create and interact with maps.
Landmarks provides a means to manage POIs.
Supported Functionality - Positioning
Requirement |
Comments |
Priority |
Position data |
- Current position
- longitude coordinate (degrees) (mandatory)
- latitude coordinate (degrees) (mandatory)
- time stamp (mandatory)
- altitude (meters)
- longitude/latitude accuracy (meters)
- altitude accuracy (meters)
- heading (degrees counting clockwise relative to the true north)
- heading accuracy (degrees)
- ground speed (meters per second)
- ground speed accuracy (meters per second)
- Satellite information (only available with satellite updates)
- number satellites visible
- number satellites used
- signal strength for each satellite
|
|
Query the current position |
- Does not return immediately instead result is sent through signal at point in future.
- A timeout can be specified. If not timeout is specified the platform shall choose a reasonable timeout.
- The method used to query the location is up to the platform implementation. The choice of method shall respect the "high accuracy" option mentioned below.
|
|
Query last cached position |
- Returns immediately.
- User can access the last known position.
- Useful if an immediate position update is not available.
- If no position has been cached user is notified.
- User can specify to receive the last cached satellite position.
- Handles case a low accuracy position update stomps on a relatively recent satellite position update.
|
|
Be notified of changes in position |
- Notification shall be in the form of a Qt signal.
- User can specify frequency of notification in time units. For example:
- Emit a notification every 10s.
- There shall be a minimum notification period. It shall be possible to determine this minimum using the API.
|
|
Determine distance between two positions |
Distance is "as the crow flies". |
|
Serialization of position |
- Make it easy to serialize a position using Qt using stream operator function.
- Does not include managing the storage of positions.
|
|
Notify when entering or leaving an area |
- User can specify the center of a circular area to be notified when entering or leaving the area
- User can specify radius of circular area
- User can specify multiple circular areas
|
|
Options |
- It shall be possible to enable or disable "high accuracy".
- The main trade-off is power usage. For example, a background application that requires 24 hour location information is expected to disable high accuracy.
- It shall be possible to enable or disable "low accuracy".
- Use case is an application only being able to make use of high accuracy updates.
- It shall not be possible to disable both high and low accuracy updates.
- Cost or no-cost will not be an option.
|
|
Query Availablity of High Accuracy Data |
- User can query if high accuracy data is available at all.
- Use case is an application that can only work with high accuracy data. Application should be able to query this information instead of blindly waiting for a high accuracy update.
|
|
Supported Functionality - Maps and Navigation
Requriements |
Comments |
Routing |
- Request route from one GPS location to another
- List of way points
- Distinguish pedestrian and car navigation
|
Reverse geocoding |
Request Landmarks for given coordinate |
Geocoding |
Find matching landmarks for given search criteria |
Display maps |
Provide map for given coordinate |
Zooming support |
|
Plugin system |
the plugins group the functionality per service provider |
Supported Functionality - Landmarks
Requirement |
Comments |
Store and load a landmark |
|
Get land marks within range of a position |
|
Create, Edit, Delete landmark (and its details) |
Some platforms may not allow modification |
Add, Edit, Delete a category |
Some platforms may not allow modification |
Enumerate categories |
|
Sort, Search based on category for a landmark |
|
Sort landmarks(alphabetical, nearest) |
|
Notification on landmark changes |
Addition/Removal/Update |
Notification on category changes |
Addition/Removal/Update |