As part of the Qt Mobility project, we are introducing a Location API to provide components for distributing and receiving location-related data.

What is location data? It's the data provided by technologies like GPS, Mobile Cell Identification and WLAN positioning that allows you to pinpoint your exact location on the surface of the Earth (or pretty close to it, anyway). It's the data that lets you drive with in-car navigation, track your running routes via SportsTracker, find your friends with Google Latitude and play location-based games like Pac-Manhattan and GeoCaching. With the advances in positioning hardware and network-based positioning methods, location services have become increasingly popular and are now commonly found on mobile and embedded devices.

In the Location API, we provide an architecture for distributing location data to multiple clients and a simple way for clients to request and receive location data. There are also components for coordinate calculations, reading NMEA data and distributing satellite data. The API is focused on providing the essential components for location data sharing and does not involve more advanced location services like geocoding and mapping capabilities.

Here's the basic structure of the API. The light blue boxes indicate components that can be used to implement custom location engines.

Location API diagram

On mobile platforms with built-in location capabilities such as GPS, we plan to provide access to these default capabilities through the Location API. On platforms that have no built-in location services, developers can write custom location data sources using the Location API.

Check out the source at http://qt.gitorious.org/qt-mobility/location which includes an example for writing custom data sources. You'll also find an example that parses NMEA data and displays the parsed coordinates using Google Maps and QtWebKit. Here's a screenshot of the latter example:

Location demo screenshot

We plan to add other components such as landmarks storage in future releases, so watch this space. As always, feedback is welcome at qtmobility at trolltech.com.

Blog Topics: