Over the last year, the market has seen a surge of GPS-enabled handsets as well as the successful launch of several location-based service (LBS) applications. However, the use of location and location-based data can enhance almost any application. An IM client can include automated status updates, a mobile game can become multiplayer when other gamers are nearby, or a banking application can add additional security by knowing where the handset is located. The list of possibilities is endless, but how do you get the device’s location, display a map or even get a user-readable address?
DEFINE THE EXPERIENCE
The first step to adding location to your application is defining your location-based feature. Understanding the needs of your location-based experience and prioritizing the importance of each need often includes identifying accuracy, timing, frequency and network requirements.
Accuracy: How accurate does the data need to be? Does the feature require an exact location or will something more general (like knowing the user’s city) suffice?
Timing: How quickly do you need a location to make your use case compelling? Will you sacrifice some accuracy to get a location coordinate in less time?
Frequency: How often do you need to determine the device’s location? Is the data only required once or will you need to update it at regular intervals?
Network capabilities: Do you need real-time location information transferred through the network such as map data, directory search results, route information, or address lookup services? Would you allow additional network access to improve the timing or accuracy of the device’s location?
STRATEGIZE FOR YOUR PLATFORM
After you have a better idea of the user experience you are trying to create with location, you can put together an implementation strategy. Depending on the development environment you are interested in, there are different capabilities that will be available through the platform. In the Java environment, location coordinates and related information can be accessed through JSR 179. In the soon to be finalized standard JSR 293: Location 2.0, libraries for the geo-spatial APIs such as mapping and routing have also been defined. The updated Java APIs will allow developers to include location-based features such as:
- Getting the device’s current location
- Displaying a map of a location
- Creating a route between two locations
- Finding points of interest around a location (directory search)
- Getting an address for a location coordinate
- Exchanging a location between handsets
- Receiving a notification when you enter or exit a predefined area
- Storing frequently used locations
In the Windows Mobile development environment, access to location coordinates on the handset has been standardized in Windows Mobile 6 through a function called GPSID. Currently, Windows Mobile versions on the market do not support standard mechanisms for accessing geo-spatial content. However, SiRF’s easy-to-use, standards based SiRFstudio SDK (available at SiRF’s DeveloperZone ) supports all location-based functionality defined in JSR 179 and JSR 293 on Windows Mobile and Java handsets. The SiRFstudio libraries can be used with existing emulators and plugged into IDEs and toolkits such as WTK, Visual Studio and Eclipse.
There are many types of location environments that have been deployed commercially. While each handset and network has its own location support, standards such as JSR 179 and 293 have aligned that support across Java enabled handsets. Developing on multiple environments can be made easier with tools such as SiRFstudio APIs, which provide a single interface to getting a location, including support for location acquisition methods such as autonomous GPS, Bluetooth GPS, AGPS, and cell ID.
TEST ACROSS NETWORKS
With many environments, you will also need to test your application on different network configurations, such as networks supporting AGPS (assisted GPS) and geo-spatial APIs. Performing end-to-end location relevant unit, black box and stress tests on your application can help ease your deployment in commercial environments. A good user experience with location functionality can be greatly enhanced by good performance, which can be assessed by measuring important statistics for location functions such as:
- The time to get your first location coordinate
- Network transfer times for maps and other geo-spatial data
- Geo-spatial data usage
- Geo-spatial data regional coverage
Tools such as the SiRFsandbox, a location server environment including geo-spatial data and location assistance data, can help you test your application as well as measure key performance criteria. With the client SiRFstudio libraries, SiRFsandbox supports global geo-spatial data access with simple configuration tools that allow you to test your application with different vendors in different regions.
Finally, as with many functions tied to privacy and personal data, you will often need to get your application certified through the handset manufacturers and operators. In the SiRFstudio library, transfer of the device’s location coordinates is handled over a secure communication channel. Using standardized location protocols and working directly with companies like Motorola and NSTL will help you get the appropriate access to location APIs.
GET ON THE FAST TRACK
Navigating through the LBS value chain to add location capabilities to your application can seem daunting for an application developer who has not worked with the technology before. However, the power of location and its ability to make the consumer’s life easier and more productive is undeniable. With the use of intelligent, standards driven libraries and tools, location can be easily added to enhance your current application or used to create a brand new location based application.
SiRF is a MOTODEV Fast Track partner and supports Motorola application developers with the SiRFecosystem tools to develop, test and market your location enabled applications. MOTODEV application partners have access to the SiRFstudio SDK, the SiRFsandbox testing environment and SiRF’s co-marketing initiative for location enabled applications, the LocativeMedia Catalog. To find out more information about the SiRFecosystem and the resources available to you, go to www.sirf.com/ecosystem or email ecosystem@sirf.com.
