MakeGPX, A GPS Waypoint *.GPX File Creator

MakeGPX.exe is a software utility used to create a comprehensive set of waypoints for handheld GPS units to demark routes, and often routes with numerous alternative paths. Most frequently these waypoints follow a circuitous path with turns and curves and decisions points. Not only does this utility mark where these decisions occur, but it also creates a quick reference guide for use in conjunction with a GPS, called a Take-Along Guide.





Take-Along Waypoint Guide




St Bees - Start of C2C




Fleatham House, St Bees








St Bees Lighthouse




Bear R, follow coastline




Quarry bungalows, head S

The Take-Along Guide provides quick reference of directional and other information, a sample guide from England's Coast to Coast path is illustrated to the right. MakeGPX creates a PDF for double-sided printing which is expected to be plastic laminated and then cut into convenient-to-carry sized slices.

The Take-Along Guide identifies a waypoint ID (WP) with accumulated Miles or kilometers (KM), GPS coordinate in the prevailing units (such as OSGB for England), Elevation, percent (%) grade, and a short Description. Waypoint IDs are prefixed with a letter followed by number (generally 3 digits), and this prefix is used to identify different paths or features along the route. For the Coast to Coast route, four prefixes were used: Cxxx demarked the primary path as historically walked by Alfred Wainwright, Axxx and Bxxx demarked common alternate paths such as to Saint Sunday Crag or to Helvellyn, and Pxxx demarked points of interest such as St Bees Lighthouse. While using the GPS, different visual icons are coordinated with the waypoint ID prefixes. So for the Coast to Coast a red-flag icon identifies the primary Cxxx path, a green-flag for alternate Axxx paths, a blue-flag for alternate Bxxx paths, and a red-pin for points of interest.

About the Files:



How & where to get

It is recommended that these files be downloaded using your browser's save link as option rather than just clicking on the link. The files are available from the website of

All of the following files packaged into a single *.zip file.


This file.


The utility to create GPS waypoint files in *.gpx format. See change information below for support of country specific coordinate systems.


A companion utility to make a track file which can be useful when compiling waypoint routes.

Change Information:

The following change information primarily identifies support for various country specific grid systems. The program originated to support a walk of England's Coast to Coast. Subsequently, the Irish grid was added. The author has intentions to support UTM and New Zealand's grid systems. For the adventurous, the author will provide the source code if the user intends to add another country specific grid system to the utility for ultimate publication on


Grid System




Initial web published version with the English grid system.



Added Irish grid system.


MakeGPX is a MS Windows command line utility. Entering makegpx in a cmd.exe window yields:

Usage: makegpx [options] WayFile
Creates a WayFile.gpx file (with the -g option) for use with a GPS and/or a PDF
Guide WayFile.pdf file (with the -p option) and/or a report WayFile.rpt file
(with the -r option) from a text WayFile.  The input file may contain numerous
directives.  Use extended help for more information.
      -? - Extended help
  -g[=f] - Output GPX to file 'f' or WayFile.gpx if 'f' not given
  -p[=f] - Output PDF guide to file 'f' or WayFileGuide.pdf if 'f' not given
  -r[=f] - Output tabbed report file 'f' or WayFileReport.txt if 'f' not given
Version 1.5, Copyright (c), All rights reserved

To use MakeGPX, you must supply a text input WayFile. This file contains several directives at the beginning followed by an ordered list of waypoints. The waypoints are space/tab delimited consisting of {WaypointID WGS84_Longitude WGS84_Latitude [OptionalElevation] Description}. A snippet of a text WayFile might look like:

| Directives
#SYM.P = Pin, Red			    	| Points of Interest
#SYM.A = Flag, Green			    	| Alternate path A
#SYM.B = Flag, Blue			    	| Alternate path B
#SYM.C = Flag, Red			    	| Main/primary path
#SYM_RULE.P = RULE_NONE			    	| Don't accumulate distance
#SYM_RULE.A = RULE_CONTINUOUS		    	| Accumulate distance within A-path
#SYM_RULE.B = RULE_CONTINUOUS		    	| Accumulate distance within B-path
#SYM_RULE.C = RULE_ALL			    	| Accumulate all C-path distance
#GRID=OSGB                                  	| England?s OSGB grid
#DISTANCE_TWEAK = 1.0947854		    	| For a C2C total distance of 190 miles
#TITLE=Coast to Coast
| Waypoints follow:
| ID     WGS84 Lon   WGS84 Lat   Elev  Description
C001	54.489844	-3.604649	8	St Bees - Start of C2C
P001	54.491263	-3.584923	53	Fleatham House, St Bees
C002	54.504526	-3.629874	23	Fleswick
P003	54.513583	-3.636925	89	St Bees Lighthouse
C003	54.517269	-3.637381	57	Bear R, follow coastline
C004	54.523124	-3.613724	97	Quarry bungalows, head S

Comments may be inserted anywhere and are demarked with the vertical bar |. Directives (described in detail below) are demarked with the pound sign # located in the first column of a line. Although there are many directives, only the #SYM.?=, #SYM_RULE.?=, #GRID=, #DISTANCE_TWEAK=, and #TITLE= are expected for all WayFiles. The remaining directives primarily control the formatting of the PDF Take-Along Guide, and their default values are normally used.

MakeGPX has a few command line options: Option -g generates a GPX file, option -p generates a PDF Take-Along Guide file, option -r generates a text report file, while option -? outputs extended help. The extended help is:

c:makegpx -?
Usage: makegpx [options] WayFile
      -? - Extended help
  -g[=f] - Output GPX to file 'f' or WayFile.gpx if 'f' not given
  -p[=f] - Output PDF guide to file 'f' or WayFileGuide.pdf if 'f' not given
  -r[=f] - Output tabbed report file 'f' or WayFileReport.txt if 'f' not given

Utility makegpx.exe creates a GPS (*.gpx) waypoint file from a text WayFile of
repeated lines of <<<ID Lat Long Elev Desc>>>, where:

<<<ID>>> is a unique ID of the form a AlphaCharacter followed by a number
(which may contain a decimal point).  The AlphaCharacter is used to segregate
different waypoint symbol groups.  e.g. Cnnn (e.g. C001, C057, etc.) might be
used to identify the primary Coast to Coast Path waypoints, while Annn or Bnnn
might be used to identify alternate 'A' and 'B' path waypoints, and Pnnn might
be used to identify points of interest waypoints.
<<<Lat Long>>>> is WGS-84 latitude and longitude of waypoint.
<<<Elev>>> is the waypoint elevation in meters - this field is optional.
<<<Desc>>> is short description, generally nor more than 30 characters.

Additionally, makegpx.exe generates two supplemental files:  A Report file and
a Take-Along Guide file.  Both of these supplemental documents require numerous
directives to function best.

The Report file is a tab-delimited, text file (suitable for import to Microsoft
Excel) which lists lines of:
<<<Item# WP-ID WGS-Lat WGS-Lon Elev OSGB-Grid Miles Grade Description>>>

The Take-Along Guide file is a PDF table formatted into multiple 2 inch wide
columns that is expected to be double-side printed, then clear-plastic
laminated, and finally cut into column widths.  These laminated column slices
then become a convenient waypoint reference to take along with a GPS on your
walk.  Using default parameters generates convenient-to-carry sized 2 inch wide
by 5 inch tall guides.  As many as 16 guide slices can be output to single
double-sided printed 8-1/2x11 inch paper.

Both the Report and Take-Along Guide expect various directives.  Directives are
placed at the top of the text WayFile, and must begin in column 1 with the #
character.  Directives not specified revert to their defaults.  The use of the
vertical bar | character after a directive (or for that matter anywhere within
line in a text Wayfile) denotes a user comment follows to the end of the
current line.

Directives include:

<<<#SYM.?=>>> Correlates a symbol ID prefix (the ? in #SYM.?) with a
GPS symbol name.  Thus <#SYM.C=Flag, Red> is used to correlate the main Coast
to Coast Path waypoint IDs with a red flag.  Likewise, <#SYM.A=Flag, Green>,
<#SYM.B=Flag, Red>, and <#SYM.P=Pin Green> denote symbols for IDs A, B, and P.
The syntax of the symbol name must be compatible with your GPS, otherwise the
GPS will most likely select its default if it doesn't understand.

<<<#SYM_RULE=>>> Instructs how to calculate accumulated distance for an
explicit #SYM.? symbol ID prefix.  There are 3 rule types:  RULE_ALL,
RULE_CONTINUOUS, and RULE_NONE.  RULE_ALL causes distance to be summed over the
entire set of symbol IDs, useful for the Cnnn main Coast to Coast Path IDs.
RULE_CONTINUOUS sums only within the region where the symbol IDs are the
continuous, such as the Annn and Bnnn alternate path symbol IDs.  RULE_NONE
ignores distance, useful for the Pnnn points-of-interest symbol IDs.
Correlating a SYM_RULE with a SYM.? causes both the accumulated Miles and
%-Grade to be output in both the Report and Take-Along Guide.

<<<#DISTANCE_TWEAK=>>> A tweak factor to make total accumulated distance fit to
expected, defaults to 1.  This value makes the total Coast to Coast Path
distance 173.55 miles rather than a desired 190.  Thus, setting the tweak to
1.0947854 forces the mileage total to 190.

<<<#TITLE=>>> Descriptive name of take-along guide, defaults to file basename.
<<<#DISTANCE_UNITS=>>> Miles or KM, defaults to Miles.
<<<#GRID=>>> OSGB or IRISH, defaults to OSGB
<<<#ELEVATION=>>>METERS or FEET, defaults to METERS
<<<#FIELDWIDTH_WP=>>> Width (inches) of waypoint field, default = 0.25.
<<<#FIELDWIDTH_GRID=>>> Width (inches) of grid field, default = 0.35.
<<<#FIELDWIDTH_ELEV=>>> Width (inches) of elevation field, default = 0.25.
<<<#FIELDWIDTH_DESC=>>> Width (inches) of description field, default = 1.0.
<<<#FIELDHEIGHT=>>> Height (inches) of one waypoint entry, default = 0.2.
<<<#GUTTER=>>> Space between waypoint columns on an output page, default = 0.1.
<<<#BORDERS=>>> Size (inches) of output page perimeter border, default = 0.25.
<<<#FONTSIZE=>>> Size (points) of Helvetica font, default = 6.0.
<<<#SHEETSIZE=>>> Size (inches WIDTHxHEIGHT) of output page, default = 8.5x11.
<<<#SPLITSHEET=>>> Number times sheet height is split, default = 1.0.

The defaults for split, sheet size, various field sizes makes the printed
Take-Along Guide slices a convenient size to carry, about 2 inches wide by 5
inches tall.  Overall slice width is the sum of the various #FIELDWIDTHs, while
the overall slice height is approximately the #SHEETSIZE.HEIGHT divided by

Typically, the minimum set of directives to use are #SYM.?, #SYM_RULE, and
DISTANCE_TWEAK.  The default size of each Take-Along Guide slice is about 2
inches wide by 5 inches tall, and 16 slices will print on a double-sided
8-1/2x11 sheet of paper.

The following page formatting directives may be used to control the PDF
Take-Along Guide file:
<<<#BLANK_LINE=>>> Number blank lines to insert, default = 1 if value omitted.
<<<#NEW_COLUMN>>> Inserts blank lines so next waypoint starts new column.

For the Coast to Coast Path, use directives:
#SYM.P = Pin, Green                | Points of Interest
#SYM.A = Flag, Green               | Alternate path A
#SYM.B = Flag, Blue                | Alternate path B
#SYM.C = Flag, Red                 | Main/primary path
#SYM_RULE.P = RULE_NONE            | Don't accumulate distance
#SYM_RULE.A = RULE_CONTINUOUS      | Accumulate distance within A-path
#SYM_RULE.B = RULE_CONTINUOUS      | Accumulate distance within B-path
#SYM_RULE.C = RULE_ALL             | Accumulate all C-path distance
#DISTANCE_TWEAK=1.0947854          | Tweaks C2C total distance to 190 miles
#GRID=OSGB                         | England's OSGB grid system
#TITLE=Coast to Coast

Version 1.5, Copyright (c), All rights reserved

Practical Usage:

The author's practical methodology to create a GPS waypoint file is best done by starting with a known good GPS track file. If this is not available, then GPS waypoints can usually be created using Google Maps and Google Earth, but as you might expect this method is both more tedious and might lead to less accurate waypoint locations.

So starting with a GPS track file:

1) Search the web for GPS track files of the route you plan to walk. The website WikiLoc is a valuable source, but GPS track files might also be found just by doing an extensive search.

2) With the track displayed in Google Earth, select those track points which demark pertinent decision points, OR manually select the WGS84 coordinate as needed. WGS84 coordinates can be aquired in Google Maps by right clicking on the map at the point of interest and then selecting What?s here?, the WGS84 lat,lon coordinate is then displayed in the search bar.

3) Make a list of these decision points, adding an appropriate waypoint ID and description to each point.

4) The first time you run makegpx.exe, it will likely be done without elevations. Import the new *.gpx file into Google Earth to (a) verify decision points and directions and (b) extract elevations. The elevations are then inserted into the WayFile.

5) Repeat steps as necessary.

The method when starting without a know good track file is generally more tedious. WGS84 waypoint locations can be extracted from Google Earth, but a map set that can be viewed in say MapSource may be easier. In any case, a list of decision points needs to be compiled to which directions and elevations can be added.

Utility maketrk.exe:

Utility maketrk.exe is a tool used to assist in the production of GPS waypoint files. As a real world example: Returning from a multiday walk, the saved track files in the GPS were organized in day-long files. Using UNIX utility grep, you can extract the lat/lon WGS84 coordinates from these files and then concatenate these lat/lon files into an ordered list for the entire walk. This lat/lon text file is run through maketrk to create a new track file, and is then viewed in Google Earth and it is possibly modified to expurgate the points which don't fit for whatever reason.

The usage of maketrk.exe is:

Usage: maketrk TrackFile
Creates a TrackFile.gpx file from a text TrackFile which contains an ordered
list of space/tab delimited latitude longitude [plus optional elevation].  The
output *.gpx file has the same basename as the input TrackFile, but with the
.gpx extension.
Version 1.0, Copyright (c), All rights reserved