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
|