GPSmapper guide
Revision 021020, for GPSmapper version 00453
By Snay, based on valuable input from many colleagues active on the pl.rec.gps newsgroup.
CONTENTS
1. Introduction
2. Importing OziExplorer files
2.1. Importing WPT files
2.2. Importing PLT files
3. Object height
4. Road numbers
5. Object visibility
5.1. Visibility layers
5.2. Controlling the object layers
6. Sendmap parameters
Appendix: FAQ
1. Introduction
This Guide provides additional explanations on how to create your own maps using the GPSmapper freeware (
http://gps.chrisb.org/gps_mapper.htm). It is assumed that you have studied my UMP: Getting Started (available from the above-mentioned site) and know how to make simple maps and upload them to a Garmin’s GPS receiver with map memory.Until now, your maps were created completely manually, i.e. you had to enter coordinates of points and object vertices as numbers, using a text editor. It is a laborious process if you have more than, say, a dozen coordinate pairs. To facilitate this process, the cGPSmapper map compiler accepts files imported from OziExplorer (
http://www.oziexplorer.com). It is one of the most popular tools for defining objects (such as waypoints, routes, and tracks) on scanned maps and uploading those objects to a GPS receiver.Among many other features, OziExplorer enables you to create files that contain sets of waypoints or tracks. It is very easy to create them by simply clicking with the mouse on a scanned map visible on the screen. To create uploadable maps, you will use those waypoints and tracks not for their intended purpose, i.e. not for sending them directly to the GPS receiver. Instead, you will use them to define coordinates of the objects on your vector map, which is a much more convenient and effective method than entering numeric coordinates with a text editor.
If you don’t know OziExplorer, download it from the above-mentioned site and make sure you are pretty well acquainted with it before going on to Section 2 Importing OziExplorer files.
2. Importing OziExplorer files
To make things more clear, in the examples given below files are imported directly to the main map file. However, in a real-world project it is often more convenient to split the whole data set into a number of modules, each of which deals with a different aspect of your map, such as cities/towns, land cover, water, POIs, land contour, etc., or with a different sub-area. Each of such aspects or sub-areas may be kept in a separate file, perhaps maintained by a different person. To include such files into the main map file, use the
[FILE]...[END-FILE] section. Insert this section just after the header (the [IMG ID]...[END-IMG-ID] section). For example, the following section:[FILE]
name=water.txt
name=towns.txt
[END-FILE]
has the same effect as inserting the body of the two files,
water.txt and towns.txt, directly into your map file. Of course, you can insert as many files as you need.2.1. Importing WPT files
Instead of manually creating a series of
[RGN10] or [RGN20] sections (for POI objects or non-POI point objects, correspondingly), you may define corresponding waypoints in OziExplorer and save them to a .wpt file.Note: All objects within one file must be of the same type.
Such a file may be imported using the
[WPT]...[END-WPT] section. For example, suppose you’ve created the bus_stations.wpt file with 12 waypoints. The section:[WPT]
Type=0x2f08
RgnType=0x10
Levels=3
File0=bus_stations.wpt
[END-WPT]
creates 12 points of interest (RgnType=0x10), each of them being a bus station (Type=0x2f08). (The meaning of the
Levels parameter is explained in Section 5 Object visibility below.)Note: The object labels displayed on the map are derived from the waypoint description field, not from the name field. In this way, we avoid a possible limitation imposed by the receiver and configured in OziExplorer (such as only six capital letters or digits in the name).
The section:
[WPT]
Type=0x0c
RgnType=0x20
Levels=3
File0=small_towns.wpt
[END-WPT]
creates as many non-POI objects as there are waypoints in the
small_towns.wpt file, each object being a small town (Type=0x0c).2.2. Importing PLT files
The efficiency boost achieved by importing OziExplorer files is even more visible when you use
.plt files to define linear and area objects. The following example section imports the file yellow_trail.plt, containing perhaps hundreds of track points created in OziExplorer, defining a trail:[PLT]
Type=0x14
RgnType=0x40
Label=Yellow
Levels=2
File0=yellow_trail.plt
[END-PLT]
Pay attention to the
Label parameter. It defines the object label, because (unlike waypoints) tracks and track segments are not individually named.Similarly as with waypoint files, you may define several linear objects in one
.plt file. To do this, create a track consisting of a number of segments. Each track segment will correspond to a separate object. As before, all objects in one file must be of the same type, which is defined by the Type=... parameter.It is also possible to have a different label for each of the objects (track segments) in the file. To achieve this, create a separate file with the same name and the
.plt.txt extension, then enter into it the corresponding number of lines, each containing one label. For example, if you have the file alleys.plt containing three segments for three alleys, create the alleys.plt.txt file containing, say, the following three lines:Rose Aly.
Tulip Aly.
Lilac Aly.
To import area objects, do it in a similar way, only use
RgnType=0x80.
3. Object height
You may define height for such objects as summit (RgnType=0x10, Type=0x6616), height point (RgnType=0x20, Type=0x62...0x63), and land/depth contours (RgnType=0x40, Type=0x20...0x25).
By default, the height is defined in feet. To define the height in meters, use the following parameter in the map header (i.e., in the
[ID]...[END-ID] section):Elevation=m
The height is defined not as a distinct parameter, but in the object name, separated from the rest of it by the
~[0x1f] delimiter. The following section defines a summit with the defined height of 2499 meters (provided that the Elevation=m parameter is defined):[RGN10]
Type=0x6616
Label=Mt.
Rysy~[0x1f]2499
Levels=2
Data0=(49.17958,20.08800)
[END-RGN10]
The height may be also provided without a name. The following section defines a land contour line of the height of 115 meters:
[PLT]
Type=0x20
RgnType=0x40
Label=~[0x1f]115
Levels=1
File0=Contour115.plt
[END-PLT]
4. Road numbers
You may define road numbers in a similar way as object height, by placing the number after a delimiter. The following delimiters for road numbers are available:
~[0x2a]
Interstate highway~[0x2b]
Highway - shield~[0x2c]
Highway - round symbol~[0x2d]
Highway - small symbol - blue/red~[0x2e]
Highway - big symbol~[0x2f]
Highway - small symbol - whiteFor example, the parameter
Label=~[0x2d]619
defines a road with the number 619, displayed as a small symbol (blue/red).
5. Object visibility
It would not be desirable if on a map zoomed out to see the whole county, all pizza shops and restrooms were displayed, would it? The map would be unusable due to cluttering. Therefore, the map maker (i.e. you) can control at what zoom levels individual objects should be visible. Some objects may be visible only if you zoom in closely enough. Some objects may even be displayed differently depending on the level, e.g. an amusement park may be visible as one POI when you zoom out and as an area with several individual features when you zoom in.
5.1. Visibility layers
To control the object visibility, a map is divided into visibility layers, referred to as Level0 through Level9. There may be up to 10 layers. Each object belongs to one or more layers and is visible only if the map is zoomed to a zoom level corresponding to one of the object’s layers.
The number of visibility layers in the map is defined by the
Levels=... parameter in the header.Note: The number of layers defined by the
Levels=... parameter must be one more than the actual number of layers you use. In other words, no objects may belong to the highest layer which always remains empty.Following the
Levels=... parameter, there are parameters Levelx (where x is 0 through 9) which define zoom levels for individual layers. For example, the following header specifies that the map has four (Levels=4) visibility layers (out of which only three may be used for placing objects) and defines their corresponding zoom levels:[IMG ID]
ID=66660001
Name=Pine Forest
TreSize=2048
RgnLimit=500
Elevation=m
The numeric values in the
Levelx parameters specify the visibility in terms of so-called display grid expressed in fractions of degrees, according to the formula Grid = 360*2^-n (where n is the value provided in the Levelx parameter). In practice, it is more convenient to use the following approximate table (valid for normal settings in the GPS unit):Level
x= Visible if zoomed to:For example, with the layers defined as in the header above, objects belonging to the lowest layer (
Level0=22) will be visible when you zoom the map to 500 m or closer, while objects belonging to the second layer (Level2=19) will be visible when you zoom out to 3 km.5.2. Controlling the object layers
Each object belongs to the layer indicated by the
Datax or Filex parameter with which the object is defined. For example, the objects defined with the parameter:File0=bus_stations.wpt
belong to the lowest (zero) layer, while an object defined with the parameter:
Data2=(44.4444,-111.1111)
would belong to the second layer.
If you want to have the object visible in more than one layer (as is often the case), you don’t need to define the object multiple times. Instead, use the
Levels=... parameter in the object definition. For example, the section[WPT]
Type=0x42
RgnType=0x20
Levels=2
File0=wrecks.wpt
[END-WPT]
specifies that the objects defined here belong to the lowest layer (Level0), as well as to layers above it up to Level2, i.e. to three layers altogether.
Note: Do not confuse the parameter
Levels in the object definition, where it specifies that the object is duplicated onto a number of layers, with the parameter Levels in the header, where it specifies the total number of layers in the map.If you zoom out beyond the highest layer of your map, you will see the base map of your receiver.
6. Sendmap parameters
The full syntax of the Sendmap command line is as follows:
Sendmap
comport [–kunlock_key] [–sspeed] [–p] file, ...The -p option causes the program to wait after execution until the user hits a key.
Example:
Sendmap COM2 -kQWERT -s9600 01000012.img 01000014.img
Appendix: FAQ
Q.: I have a scanned map in OziExplorer. Can I upload it to my Garmin eMap receiver using the GPSmapper software?
A.:
No. But OziExplorer makes it easier to create a vector map which then may be uploaded to the receiver with GPSmapper. To achieve this, you manually trace the terrain features on the raster map to gather data which then will be transformed by the map compiler to a vector (uploadable) map.Q.: Does GPSmapper support other GPS brands besides Garmin?
A.: No.
Q.: After I upload my own map to the receiver, I don’t see its title in the map menu, only the date.
A.: Due to a quirk in the present version of software, if the map ID (defined in the ID=... parameter) is numeric only, you see the title (defined in the Name=... parameter) twice in the receiver’s menu, and if the map ID is non-numeric, you don’t see the title at all.
Q.: I defined a railroad on my map, but I cannot see it on my eTrex Legend.
A.: Due to a quirk in the Legend firmware, you see railroads only when you zoom in to 200 m with the Normal detail level or to 500 m with the Most detail level.
Q.: I’ve defined a number of POIs on my map, but I can’t find them using the “Find by name” function, only using the “Find near”.
A.: Open the .img file in the GPSmapper program, make sure that you are at the lowest layer, point to the object using the Pointer tool, in the popup window enter the name into the Street/Description field, than save the file as .img. Now you will be able to find that object by name. For the time being, nothing better is available.
Q.: Can I use the Sendmap program on a portable computer with only USB ports?
A.: There are USB drivers available which provide a virtual COM port. If you configure such a port, it may be used by Sendmap.
Revision history
Rev. 021019 -- document created.
Rev. 021020 -- corrections, added Road numbers, Sendmap parameters, new FAQs.