Reviewed: GPS.NET Shows You The Way ByDevSource 2004-09-28
Article Rating: / 0
Rate This Article:
Add This Article To:
You might want your applications to take advantage of GPS, but where in the world do you go to get started? This SDK makes the task a heck of a lot easier.
Global Positioning SDK, Version 1.4.5
Company: Storm Source Software, http://www.gpsdotnet.com Price: $219.90 for a single developer license; $399.99 for a single subscription license; $1799.00 for an enterprise license
Pros: Wide variety of routines for dealing with GPS data to calculate time and distance traveled, monitor various GPS precision
parameters, and display information about specific satellites. Cons: No easy way to build a map-based program, some difficulties with the automatic device detection routine.
For much of its history, Global Positioning System (GPS) was restricted to military and commercial navigation. The costs associated with receivers and display software put it out of reach for casual users. However, the last several years have seen prices continually dropping, and the advent of GPS receivers in many new cell phones is making access to location based information more universal. If you want to GPS-enable your applications, the best way to accomplish this may be to use Storm Source Software's GPS.NET software development kit.
ADVERTISEMENT
Let's Start From Here
First, let's look at whether the technology will do you any good. Understanding how GPS works will help you decide if it will benefit new or existing applications for you or your company. The Institute of
Navigation has a series of ten lesson plans targeted at seventh and eight graders on the basics of navigation and the principles behind GPS. They also provide a good basis of how GPS works, comparing it with other forms of navigation.
Just about every commercially available GPS receiver needs to receive signals from at least four satellites in order to determine its position. That means the receiver must be able to "see" a decent portion of the sky in order to work. My Pharos receiver comes with an extension cord allowing the antenna to be placed on the dashboard of a car while sitting in the passenger seat.
The National Electrical Manufacturer Association (NEMA) has defined a standard for output messages from a GPS device. For example, two of my GPS-equipped devices (one from Pharos, and my cell phone) output information in the NEMA 0183 format. To the computer, this looks like a stream of comma-separated data coming in through a COM port, typically at 4800 baud. Your software application must then parse this information to extract the pertinent data.
The GPS.NET Software Development Kit
While building an application from scratch to parse the NEMA 0183 data is not impossible, it would take a significant amount of coding. That is, unless you have a tool like the GPS.NET Software Development Kit (SDK) from StormSource Software.
If you're not quite sure how you'd put this to use, you may be inspired by some of the example applications suggested on the GPS.NET Web site, which include:
Shipping and delivery route tracking
Transportation
Tracking devices for pets and children
Collaborative field research
Assistance for the blind
The SDK includes two separate namespaces: StormSource.GPS and StormSource.GPS.Controls. Controls include a Satellite Viewer class and a Fade Panel class. The Fade Panel is used by the nag screen (which goes away when you reference the license from code) and the Satellite Viewer is pretty obvious.
The StormSource.GPS class contains a myriad of different functions and enumerations to speed up the development cycle for GPS-based applications. Many of these functions will never be used by programmers needing a simple location service. If, on the
other hand, you care about things like ellipsoid properties, Molodensky transforms, and the like, you'll find it all in this product.
GPS.NET supports pre-planned navigation using waypoints for Garmin receivers. Using the Waypoint class makes it possible to get and set individual waypoints stored on the handheld Garmin units. Some of the helper classes, like the Angle class, provide a host of useful routines to perform common trigonometric calculations.
Learning by Example
Two example solutions on the GPS.NET Web site show you how to build a time and distance calculator application along with a logging app. Both applications are available in C# and VB.NET.
I cranked up the logging application on a short trip to gather data for testing purposes. Once you have a data file with position information, you can test any application without having to travel. The output of the application includes repeating sections of lines
like this:
The playback demo applicatino shows off a number of different capabilities that the SDK delivers, such as satellite display and position, speed, and direction information.
Another worthwhile feature of the demo is its use of multi-threading, which shows how to process incoming information from the GPS device on one thread while writing the output to a log file on another.
The "Total Travel Distance Calculator" example shows how easy it is to build an app to add up the distance between all accumulated GPS data points. The Position collection includes various methods and properties to facilitate distance measurements. New data points are added to the collection with the Add method while the TotalDistance property keeps track of the distance traveled.
Documentation and Help
The most current GPS.NET documentation is only available from the company's Web site, although the downloadable version should be available soon. Formatting for their documentation follows a common MSDN-like style with a treeview showing the content on the left and a description pane on the right.
User feedback and contributions happen in the GPS.NET forums. The GPS.NET online community forum provides a place to ask questions and get answers. It's also the repository for sample
applications.
This SDK is the ticket for anyone needing to build applications that need to know where the carrier platform is located.