2004-09-28
| Rate This Article: | Add This Article To: |
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.
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:
$GPGLL,3441.3872,N,11745.0587,W,184555.284,A*20< $GPGSA,A,3,01,23,25,16,11,,,,,,,,4.9,1.7,4.6*3B $GPRMC,184555.284,A,3441.3872,N,11745.0587,W,52.436006,89.83,290804,,*1A
Each sentence begins with a descriptor to identify the type of information that follows. Some of the common descriptors include:
- $GPGLL: Geographic position - latitude / longitude
- $GPGSA: GNSS DOP and active satellites
- $GPRM: Recommended minimum specific GNSS data
- $GPGGA: Global positioning system fixed data
I did have to make one small change in the app to hardwire the COM port number when it didn't auto select the correct port. The new line looks like:
GpsRecorder.Device.Settings.ComPort = ComPort.COM4
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.
|
![]() |
|


