APL Ocean Remote Sensing
 Home      Staff      Research      Links      Outreach      Software 
 Navigate 

A Simple Navigation Calculator
for the Palm OS

Navigate is a Palm OS program for computing the range and bearing between any two points on the Earth's surface OR the end location given a starting location, range and bearing. It will compute these solutions for either lines of constant bearing (loxodromes or rhumb lines) or the shortest possible path on the Earth (geodesics or great circle routes). The calculator also supports the conversion of angular units between decimal degrees, degree and decimal minutes, or degrees, minutes and decimal seconds; and range units of kilometers, nautical miles, statute miles, meters, yards, or feet.

The program requires 68K of memory in the Palm, in addition to the 52K required by MathLib.




System Requirements:

Navigate runs under Palm OS 2.0 or later. Navigate needs MathLib.prc to be installed on the same Palm as Navigate. MathLib is a widely used library of mathematical routines. Navigate should work with any version of MathLib that is installed on your Palm. A copy of MathLib is included in the Navigate distribution for installation if you don't already have a copy.

Instructions:

The latitude and longitude fields accept any of the following formats: decimal degrees (e.g. 39.1636°); degree and decimal minutes (e.g. 39° 09.187'); or degrees, minutes and decimal seconds (e.g. 39° 09' 49.1"). Note that the formatting does not matter, the numbers in each field can be separated by any non-numeric characters. The first number is always interpreted as degrees, the optional second number is interpreted as minutes, and the optional third number is interpreted as seconds. Thus 39° 09' 49.1" is identical to 39 9 49.1, the latter being much easier to write.

Click on the N or E buttons to switch to S or W to indicate latitudes south of the equator and longitudes west of the prime meridian. A negative value for degrees is also interpreted as a latitude south of the equator or longitude west of the prime meridian. Negative values take precedence over the button settings.

The format pop up list selects the output format for the latitude, longitude and bearing fields, and also automatically reformats all of these fields.

The calculations can be performed for loxodromes (lines of constant bearing, also known as rhumb lines) or geodesics (shortest paths on the globe). Geodesics are commonly known as great circle routes, but that term should really only apply to paths on a sphere, not an ellipsoid.

Note that all loxodromes, except for those with headings due east or west, spiral in towards the North or South pole. Thus there is a maximum distance along a loxodrome to the pole. If you specify a distance exceeding this maximum distance, Navigate will replace the specified distance with the distance to get to the pole.

This all may seem counter-intuitive if you were brought up looking at maps using the Mercator projection, where loxodromes are straight lines and great circle routes appear to curve. On the surface of the Earth though there is no such thing as a straight line. Loxodromes are generally spiral and great circle routes are the shortest distance between two points.

The WGS-84 ellipsoid is used by default for all calculations. The ellipsoid used in the calculations can be changed from the preferences menu item under the Edit menu (see figure below). As a convenience, the Navigate preferences screen also lists many map datums - selecting a datum will automatically select the appropriate ellipsoid.



The final preference item allows the selection of Graffiti or a popup keyboard as the primary means of data entry. The popup keyboard was added at the request of a colleague who wanted to be able to use Navigate using just his fingertip. This is a bit experimental, so I'd appreciate feedback on how well this feature works for you.



The Locations pop up list allows you to paste 1 of 10 user-selectable locations into the start or end location. If the cursor is in the start latitude or longitude fields at the top of the screeen, the selected location will be entered into the start position. If the cursor is in the end latitude or longitude fields at the bottom of the screen, the selected location will be entered into the end position. A location selection does nothing if the cursor is not in one of the start or end fields.

The Calc Pnts button brings up another screen for calculating multiple points along a geodesic curve, as shown below. The starting and ending locations are copied from the main screen. You can then enter the number of segments you want to compute along the curve, and tap the Calc Pnts button. The intermediate points are then computed and listed in the scrolling field at the bottom of the screen. The calculation may take some time (a few seconds per point), so the progress is shown by the scroll bar on the right. The calculations cannot be interrupted once they are begun.



The indented lines in this listing are the range and (initial) bearing between the preceeding and following points. These range and bearings can be computed according to the geodesic or loxodrome. Thus the loxodrome values can be used to approximate a great circle route with a sequence of rhumb lines.

Conversions between latitude/longitude and UTM grid coordinates can be computed from UTM Convert screen, accessible from the main menu.



Likewise, converisons between WGS-84 and Ordnace Survey of Great Britain grid can be computed from British Grid screen, accessible from the main menu. This screen ignores the datum and ellipsoid preference - latitude/longitude is always WGS-84 and the OSGB grid is always to the Airy 1830 datum.

A help menu is available to provide some tips for using Navigate.

Cut and paste work into and out of other applications.

The geodesic calculations are based on the forward/inverse codes implementing T. Vincenty's method that are distributed by the U.S. National Geodetic Survey. These algorithms were ported to C by J. R. Jensen. The original FORTRAN codes are available at: http://www.ngs.noaa.gov/TOOLS/Inv_Fwd/Inv_Fwd.html

The loxodromic calculations are based on IDL codes written by Ray Sterner. These original codes were based on the algorithms described in "Map Projections - A Working Manual" by John Snyder.

The WGS-84 to OSGB36 conversion code is a mix of a few grid mapping routines written by Chuck Gantz and new datum conversion routines written by myself. The datum conversion routines use the exact same notation as appears in "A Guide to Coordinate Systems in Great Britain", which is available on the web at http://www.ordnancesurvey.co.uk/oswebsite/gps/information/index.html. The routines use the 7-element Helmert transformation. The user is warned that the OSGB grid is inhomogeneous, and so the accuracy of the transformation is on the order of 5 m.

Download the Navigate application (v3.2) for Palm OS in Zip format

This version of Navigate was developed using the Palm OS Developer Suite v1.2. The complete source code can be downloaded as a Zip file. The source code and program are provided without any warranty of any kind.

Download the Navigate source code (v3.2) for Palm OS in Zip format

Please send bug reports to me at the address below.

Revision History:

Version 1.0 - released Oct 14, 2002: First released version.

Version 1.1 - released Nov 4, 2002: Fixed a serious bug which caused the program to crash.

Version 1.2 - released Nov 11, 2002: Added the editing keyboard, support for multiple ellipsoids, and the geodesic points calculation. Please delete older versions of Navigate prior to installing this version. A new application code was used in this version which makes it incompatible with the older versions.

Version 1.3 - released Nov 12, 2002 - Added miles to list of range units at the request of a colleague.

Version 1.4 - released Jun 4, 2003 - Fixed program logic so screen entries would be preserved between invocations of the program.

Version 1.5 - released Jul 10, 2003 - Fixed program to use the WGS-84 ellipsoid on the first invocation of the program. Added Graffiti indicator to Edit Locations form. Fixed obscure computational bug in computing range and bearing along a loxodrome which is very nearly, but not exactly, due east or west.

Version 2.0 - released Aug 21, 2003 - Added UTM conversions.

Version 2.1 - released Sep 15, 2004 - Fixed N/S and E/W buttons for destination in Calc Pnts screen.

Version 2.2 - released Dec 13, 2004 - Expanded latitude and longitude fields by two pixels to prevent seconds from disappearing due to word wrap.

Version 3.0 - released Jan 24, 2006 - Converted code to Palm OS Developer Suite. Fixed bugs in executing locations that occurred on some newer models. Increased number of locations from 8 to 10. Fixed bug in calculate points processing when 2 points was selected. Changed specification to number of segments instead of points to remove potential ambiguity.

Version 3.1 - released Feb 21, 2006 - Fixed bug that allowed longitude computed from Geodesic calculation to exceed 180 degrees.

Version 3.2 - released Aug 15, 2006 - Added WGS-84 to British grid conversions. Added feet to list of units at the request of a user. Fixed bug that incorrectly set the ellipsoid when the Datum was set to the Ordnance Survey of Great Britain.


Rick.Chapman@jhuapl.edu
© The Johns Hopkins University Applied Physics Laboratory