cGPSmapper User Manual | Manualzz

cGPSmapper User Manual

First Published Date: 2005-04-01

Version: 2.5

Published Date: 2009-10-16

Total Page Count: 130

cGPSmapper Manual

1 Contents

1 CONTENTS .................................................................................................................. 2

2 INTRODUCTION ........................................................................................................ 5

2.1 P

URPOSE OF THIS DOCUMENT

.................................................................................. 5

2.2 B

ASIC

C

ONCEPTS

..................................................................................................... 5

2.2.1 What is Polish Format (PFM)? ...................................................................... 5

2.2.2 What is cGPSmapper?.................................................................................... 5

2.2.3 What is sendmap?........................................................................................... 5

2.3 D

OCUMENT

C

ONVENTIONS

...................................................................................... 5

2.3.1 PFM Code ...................................................................................................... 5

2.3.2 cGPSmapper versions .................................................................................... 6

2.4 M

ANUAL

A

UTHORS

................................................................................................. 6

3 OVERVIEW ................................................................................................................. 7

4 MAP PROJECT ........................................................................................................... 8

4.1 M

AP

C

REATION

....................................................................................................... 8

4.2 PFM

SYNTAX

D

ESCRIPTION

..................................................................................... 8

4.2.1 Header ............................................................................................................ 9

4.2.2 Declarations ................................................................................................. 15

4.2.2.1

Countries ........................................................................................................................................ 15

4.2.2.2

Regions .......................................................................................................................................... 15

4.2.2.3

Cities .............................................................................................................................................. 16

4.2.2.4

Chart Info....................................................................................................................................... 16

4.2.3 Advanced Declarations ................................................................................ 18

4.2.3.1

Background .................................................................................................................................... 18

4.2.3.2

Dictionary ...................................................................................................................................... 18

4.2.3.3

Highways ....................................................................................................................................... 18

4.2.3.4

ZIP Codes....................................................................................................................................... 18

4.2.3.5

Definitions...................................................................................................................................... 18

4.2.4 Body (Objects) .............................................................................................. 18

4.2.4.1

Point of Interest.............................................................................................................................. 19

4.2.4.2

Polygon .......................................................................................................................................... 21

4.2.4.3

Polyline .......................................................................................................................................... 23

4.2.4.4

Point of Interest from OziExplorer................................................................................................. 24

4.2.4.5

Polyline or Polygon from OziExplorer........................................................................................... 25

4.2.4.6

Shapes ............................................................................................................................................ 25

4.2.4.7

MapDekode file.............................................................................................................................. 30

4.2.4.8

File ................................................................................................................................................. 30

4.2.5 Object elevation............................................................................................ 30

4.2.6 Road numbers ............................................................................................... 31

4.2.7 Special codes for object labels ..................................................................... 32

4.3 M

ARINE

C

HARTS

................................................................................................... 34

4.4 L

EVELS

.................................................................................................................. 42

4.4.1 Introduction .................................................................................................. 42

4.4.2 Concepts and Terminology........................................................................... 43

4.4.3 Using levels when defining map objects....................................................... 45

4.4.3.1

Tailoring shape according to level. ................................................................................................ 46

4.4.4 Idiosyncrasies of GPS hardware .................................................................. 47

4.5 D

ICTIONARY

.......................................................................................................... 47

http://cgpsmapper.com/ 2 of 130

cGPSmapper Manual

4.5.1 Introduction .................................................................................................. 47

4.5.2 Concepts and Terminology........................................................................... 48

4.5.3 Using Dictionary .......................................................................................... 48

5 ROUTABLE MAPS ................................................................................................... 51

5.1 I

NTRODUCTION

...................................................................................................... 51

5.2 G

ENERAL REMARKS

............................................................................................... 51

5.3 C

ONCEPT OF INPUT DATA

....................................................................................... 51

5.4 R

OAD CLASS

.......................................................................................................... 53

5.5 S

PEED ATTRIBUTE

.................................................................................................. 53

5.6 R

OUTING ATTRIBUTES

PMF .................................................................................. 54

5.7 R

ESTRICTIONS

....................................................................................................... 55

5.7.1 Restriction definition with ESRI format ....................................................... 57

5.8 R

OAD SIGNS

........................................................................................................... 57

5.9 R

OUTING DATA DEFINED FOR

ESRI

FILES

.............................................................. 58

5.9.1 Segment of the road ...................................................................................... 58

5.9.2 Defining routing data in [DEFINITIONS] ................................................... 59

5.9.3 Defining attributes of road segments in [DEFINITIONS] .......................... 59

5.9.4 Defining restriction data in [DEFINITIONS] .............................................. 60

5.9.5 Secton [DEFINITIONS] ............................................................................... 61

6 NATIONAL CHARACTERS - INDEXING............................................................ 64

6.1 C

ODEPAGES

........................................................................................................... 64

6.2 I

NDEXING

.............................................................................................................. 64

6.3 P

REPARING MAPS FOR INDEXING

........................................................................... 65

6.4 M

ULTI ATTRIBUTES ASSIGNMENT

.......................................................................... 65

6.5 I

NDEXING WITH CPREVIEW PROGRAM

.................................................................... 66

7 PROTECTING IMG FILES - LOCKING............................................................... 67

7.1 R

ESPONSIBILITY

.................................................................................................... 67

7.2 T

ECHNOLOGY

........................................................................................................ 68

7.3 L

OCKING MAPS WITH C

GPS

MAPPER

...................................................................... 69

7.4 C

REATING PREVIEW

MAPSET

............................................................................... 69

7.5 U

NLOCK CODES

..................................................................................................... 71

7.6 U

NLOCKING MAPS ON

SD

CARD

............................................................................ 71

8 CREATING CUSTOM TYPE FILE ........................................................................ 71

8.1 C

REATING THE SOURCE FILE

.................................................................................. 72

8.2 C

USTOM

T

YPE

D

EFINITION

.................................................................................... 75

8.3 P

UTTING IT ALL TOGETHER

.................................................................................... 82

9 MAPSOURCE ............................................................................................................ 86

9.1 I

NSTALLING MAPS TO BE USED WITH

M

AP

S

OURCE

................................................ 86

9.2 M

AP

S

OURCE

D

ATA STRUCTURE

............................................................................ 86

9.3 C

REATING PREVIEW MAP FILES

.............................................................................. 87

9.4 PFM

FORMAT OF PREVEIW CONTROL FILE

............................................................. 87

9.4.1 Structure of the preview control file. ............................................................ 87

9.5 M

AKING THE REGISTRY ENTRIES

........................................................................... 91

9.6 L

OADING THE MAPS INTO THE

GPS ....................................................................... 93

http://cgpsmapper.com/ 3 of 130

cGPSmapper Manual

10 FAQS ....................................................................................................................... 95

10.1 N

AME VARIABLES AND WHERE THEY SHOW UP

...................................................... 95

10.1.1 Introduction .................................................................................................. 95

11.2.2 Sendmap ....................................................................................................... 95

10.2 A

CTIVATION OF MAPS IN THE

GPS......................................................................... 96

10.3 S

AVING

O

BJECTS AS

[RGN

X

0]

VS

.

[POI], [POLYGON], [POLYLINE]............... 97

10.3.1 Equivalences................................................................................................. 97

10.3.2 Impact of saving objects in one format or the other..................................... 97

10.3.3 Preferred method.......................................................................................... 97

10.4 R

ELATIONSHIP BETWEEN LEVELS IN THE DETAIL MAPS AND THE PREVIEW MAPS

... 98

10.5 F

ILLING

(G

AS

) S

TATIONS NOT SHOWING IN THE FIND FUNCTION OF THE

GPS ....... 98

10.6 I

SLANDS AND

C

LEARINGS

...................................................................................... 98

11 GLOSSARY .......................................................................................................... 100

12 APPENDICES....................................................................................................... 101

12.1

C

GPS

MAPPER COMPILATION

E

RRORS AND

W

ARNINGS

........................................ 101

12.2 E

XITS

................................................................................................................... 105

12.2.1 Valid exit facility types ............................................................................... 105

12.2.2 Directions ................................................................................................... 106

12.2.3 Facilities ..................................................................................................... 106

12.3

C

GPS

MAPPER OBJECT TYPES LIST

........................................................................ 106

12.3.1 [POI] types ................................................................................................. 107

12.3.2 [POLYLINE] types ..................................................................................... 117

12.3.3 [POLYGON] types...................................................................................... 119

12.3.4 Custom types name substitution ................................................................. 122

12.3.5 How do I create XPM definitions? ............................................................. 123

12.4

C

GPS

MAPPER VERSIONS

...................................................................................... 124

12.5

C

GPS

MAPPER FILES

............................................................................................. 125

13 INDEX AND TABLES......................................................................................... 126

13.1 T

ABLE OF

F

IGURES

.............................................................................................. 126

13.2 V

ERSION

C

ONTROL

L

OG

...................................................................................... 126

13.3 I

NDEX

.................................................................................................................. 127

http://cgpsmapper.com/ 4 of 130

cGPSmapper Manual

2 Introduction

The latest version of this document can be found at http://www.cgpsmapper.com/ .

Feel free to e-mail your comments / contributions to the present document to [email protected]

.

2.1 Purpose of this document

This manual explains how to create vector maps and then upload them to your Garmin

®

GPS receiver (or see them in the MapSource software), utilizing the cGPSmapper /

sendmap software.

2.2 Basic Concepts

2.2.1 What is Polish Format (PFM)?

Polish Format is a convenient, text based, format used for saving map information on a computer and transferring map information between computer programs.

Polish format map files cannot be sent directly to a GPS unit. First they must be converted into a format which is understandable to your GPS receiver. A program which performs this conversion is called a "map compiler".

2.2.2 What is cGPSmapper?

cGPSmapper is a command line program which "compiles" files in polish format (PFM) and produces a vector map in file(s) of a format understandable by your GPS receiver and

Garmin

®

MapSource.

There are different cGPSmapper versions (refer to section 12.3.4 on page 122) with diverse

features.

2.2.3 What is sendmap?

sendmap is a command line program used to transfer vector map files (generated with

cGPSmapper) to your GPS receiver.

2.3 Document Conventions

Text in italics is shown in the Glossary (page 100).

2.3.1 PFM Code

Text in monospace font represents literals (to be inserted literally in the PFM file).

Text in underlined monospace font represents metavariables - which appear to the right of the equals sign (=) in many statements. Metavariables should be replaced with appropriate values, as described in the explanation (or self-evident).

Text in normal font is explanatory and should not be inserted into the source file.

The number sign special metavariable (#) takes a numeric value. E.g. Data# stands for

Data0

, Data1, etc.

The special iteration operator ... in a statement line has its intuitive meaning. This operator in a separate line denotes that the preceding statement may be repeated zero or more times http://cgpsmapper.com/ 5 of 130

cGPSmapper Manual with various (typically consecutive) values of the metavariable #. If the iteration operator is preceded by a pair of statements with # metavariables, the whole pair should be repeated

(see specific statements for examples).

Text in orange colour (e.g.

Name=

) are mandatory statements in the given section. Text in olive colour (e.g.

Label=

) are optional statements.

2.3.2 cGPSmapper versions

The table below contains the meaning of the different symbols used in this document to represent the cGPSmapper Version to which a certain concept applies.

Symbol cGPSmapper Version

φ

Freeware

σ

π

Shareware

Pro

₪ Routable

The different cGPSmapper versions are explained in section 12.3.4, on page 122.

2.4 Manual Authors

This manual was written by Stanislaw Kozicki (the author of cGPSmapper), Gary Turner,

Graham Bowring, Hans Scheffler, Keith Sheppard, Greg Rikker and Mauricio Zalba. http://cgpsmapper.com/ 6 of 130

cGPSmapper Manual

3 Overview

Creating a map to be uploaded to a GPS receiver may be compared to programming: you write a program (i.e. a map) in the programming language (i.e. in PFM) and then compile it. Alternatively - just as with programming - tools exist to generate the source code visually or semi-automatically or to assist in other ways in the code preparation.

The source code format used by the cGPSmapper compiler is referred to as PFM (Polski

Format Mapy - Polish Map Format) or the "Polish format". The standard file extension for maps in the PFM format is .mp (in previous versions, the .txt extension was used, which is still acceptable, but not recommended).

A map consists of map objects which fall into four categories: POIs (points of interest, e.g. hotel, restaurant), points (non-indexed point objects, e.g. summit, building), polylines

(linear objects, e.g. street, stream), and polygons (area objects, e.g. lake, forest). For nondimensional objects (POIs and points), it is necessary to define the object attributes, such as label and type, as well as the object coordinate pair (latitude, longitude). For dimensional objects (polylines and polygons), it is necessary to define the object attributes, as well as coordinate pairs of all object vertices. Providing the coordinates is the most laborious part of map authoring.

You may prepare the map source file (.mp) using various methods: by writing the complete source code with any text editor, by generating it visually (by drawing on the screen) with any visual editor, by importing objects (waypoints and tracks) created by the OziExplorer mapping software, or by various combinations of those methods.

When you have finished your map, you can compile it with cGPSmapper (a number of methods are available) and preview it after compilation. The standard file extension for compiled maps is .img. Finally, you can upload the resulting compiled map file (.img) to your GPS with sendmap or MapSource. All those operations and variants are described in relevant sections below. http://cgpsmapper.com/ 7 of 130

cGPSmapper Manual

4 Map Project

4.1 Map Creation

You write the source file in the PFM format (the .mp file) using any text editor. All maprelated information is provided in relevant statements. Then the map is compiled with the

cGPSmapper compiler and the resulting .img file is uploaded using sendmap or

MapSource.

The PFM format is described section 4.2 (PFM syntax Description), on page 8.

When you have finished your map (or at any time during the map creation process), you may preview it on the computer screen. Some software packages allow you to preview

PFM format files directly. Alternatively you can compile it and preview the resultant .img file using MapSource. Finally the .img file may be uploaded to your GPS.

4.2 PFM syntax Description

A PFM format file contains comment lines and statements. Blank lines are also permitted

A comment line starts with the ";" character. Comment lines and blank lines may appear at anywhere in the file and are ignored

1

by the compiler.

Statements are grouped into sections. Sections are identified with a section name, enclosed between "[]" and finish with an

[END]

identifier.

PFM syntax for preview control file – used when generating preview file, TDB file and

index files – MDR and MDX are described at section 9.4, on page 87

[END-section_identifier]

can also be used to finish a section. E.g.

[IMG ID]

...

[END-IMG ID]

, instead of

[IMG ID]

...

[END]

.

The following types of sections exist:

Section Type Identifier(s)

Header

Declarations

[IMG ID]

[COUNTRIES]

[REGIONS]

[CITIES]

[CHART INFO]

Advanced

Declarations

[DICTIONARY]

[BACKGROUND]

[HIGHWAYS]

[ZIPCODES]

[DEFINITIONS]

1

However, GPSMapEdit uses special syntax of comments to specify attachments and such comments are interpreted by GPSMapEdit. http://cgpsmapper.com/ 8 of 130

cGPSmapper Manual

Section Type Identifier(s)

Body (Objects)

[POI]

[POLYLINE]

[POLYGON]

[PLT]

[WPT]

[DBX]

[SHP]

[FILE]

[RGN10]

[RGN20]

[RGN40]

[RGN80]

The header section is mandatory and must appear as the first section in the source file. All other sections are optional. Declaration and advanced sections (if any) must appear after the header section, in the order specified here. These sections cannot be repeated.

Objects must appear after declaration and advanced sections (if any), may be in any order, and may be repeated as many times as necessary.

The order of statements in the section body (i.e. between the section keyword statement and the

[END]

statement) is insignificant.

4.2.1 Header

[IMG ID]

ID=########

Name=map_name

LBLcoding=x

Section identifier

Unique identifier (up to 8 decimal digits) for the map.

May be only written in a decimal format

11000204

Map name to be displayed in the GPS receiver's Map Info menu.

Refer to section 10.1 (on page 95) for details.

80 characters maximum.

6 compressed label coding (smallest maps)

9 full-byte (8-bit) coding (supports national characters, depending on the GPS firmware)

10 Unicode / MBCS (depending on the GPS firmware)

Default = 6 http://cgpsmapper.com/ 9 of 130

cGPSmapper Manual

Codepage=xx

π

Datum=xxx

Transparent=x

MG=x

Numbering=x

≠ 0 full-byte (8-bit) character coding with the specified codepage is used (depending on the GPS firmware)

0 single-byte coding

Note: Refer to section 0 on page 55

Note: The delimiters for road numbers ( refer to section

4.2.6, on page 31, for details) are different if full-byte coding

is used.

Note: Special codes are different for 8-bit coding!

Default = 0

W84 WGS-84

Custom Custom

dx, dy, dz, semiMajorAxis, invFlattening

E.g. for (for WGS84): Custom: 0,0,0,6378137.000,

298.257223563

≠ W84 & ≠ Custom refer to the

Datum_List.txt

file (in the cGPSmapper directory) for the full list of supported datums

Default = W84

Y a full transparent map will be created

N a transparent map will not be created

S a semi-transparent map will be created

Default = N

When a transparent map is displayed on a GPS unit, features in the unit's basemap will also be visible. If your map is not transparent, it will obscure the basemap when visible.

Semi-transparent map is created in a way a usual map is created, but no background object is created. Full transparent map is created in a way that no background object is created and information in IMG is stored that map is transparent.

In some cases – to have a nice overlapping map it is necessary to use semi-transparency instead of fulltransparency.

Lock on road, search for intersection and show next street name active:

Y Yes

N no

Default = N

Lock on road, show next street name and house numbers along street active:

Y Yes

N no

Default = N http://cgpsmapper.com/ 10 of 130

cGPSmapper Manual

σ

τ

π

τ

π

σ

τ

π

τ

π

Routing=x

Elevation=x

Lock on road, show next street name active, house numbers along street and routable maps active:

Y Yes

N no

Note: for routable maps a special data format required!

Default = N

Lock=x

Final IMG file will require unlock code specific for each

GPS device.

Y Yes

N no

Default = N

τ

π

ProductCode=x

Subfamily identifier used for locked IMG files only – value between 1 and 60. Each subfamily can be unlocked with universal unlock code or separately with individual unlock code.

Default = 1

CopyRight=xxxxxxx

Text visible in welcome page of GPS.

Refer to section 10.1 (on page 95) for details.

80 characters maximum.

POIOnly=x

POIIndex=x

POINumberFirst=x m metres f feet

Default = f

No longer used / supported.

N objects will be indexed only if POI index info is explicitly provided

Y all POI objects will automatically be indexed (may be searched by the Find function in the GPS)

Default = N

N the house number will be after the street name

Y the house number will be before the street name

Default = Y

POIZipFirst=x

CountryName=countr y_name

=country_name

N the ZIP code will be after the street name

Y the ZIP code will be before the street name

Default = Y

Should be used in conjunction with R egionName

This is a replacement of depreciated key:

DefaultCityCountry

.

Defines the default region name for automatic city indexing.

If not defined, cities will be indexed only if city index info is explicitly provided.

80 characters maximum. http://cgpsmapper.com/ 11 of 130

σ

τ

π

₪ cGPSmapper Manual

RegionName==region

_name

TreSize=n

RgnLimit=n

SimplifyLevel=n

Should be used in conjunction with

CountryName

.

Defines the default country name for automatic city indexing.

If not defined, cities will be indexed only if city index info is explicitly provided.

80 characters maximum.

This is a replacement of depreciated key:

DefaultRegionCountry

Maximum allowed region size. A higher value increases the allowable region size, but may decrease the map performance; a lower value may increase the map size.

Suggested values: topo maps: 1000-2000 city (dense streets): 2000-5000 countryside: 6000-10000

Maximal number of elements in one region.

Can be any value between ~50 and 1024 (values less than 50 don't make sense).

Recent experiments show that this parameter does not impact map performance and can be set to maximum allowed value:

1024.

Suggested value:

1024

Simplify level for Douglas-Peucker simplification algorithm.

The higher value, the less simplification is done. It is important to note, that with high value, gridding (limitation coming from the format) might be visible.

Default = 1

Valid range is from 0.1 up to 10 http://cgpsmapper.com/ 12 of 130

cGPSmapper Manual

PreProcess=x

Kind of pre-processing:

G generalization only (faster method, but 'crossroad' nodes might be removed).

Also the nodes from intersections may be removed.

Data will be simplified using Douglas-Peucker polyline simplification algorithm which will ensure that the output is not jagged.

F (or Y) full generalization + intersection detection for polylines.

Unnecessary nodes are not removed if there are intersections (this is important for more advanced maps - at intersections, all the intersecting roads have to have nodes or 'find intersection' won't work).

This is very similar to 'G' with one important exception - all intersection points of the roads are preserved too

(even if according to the simplification algorithm these points should be reduced) - this is especially important when we are interested in using 'find intersection' functionality.

Intersections are detected only for the most detailed layer, for the others no trace is done.

P very similar to option ‘F’ - full generalization + intersection detection for polylines and polygons. Should be used with caution, as process time might be much longer.

Intersections for polygons are detected for all the layers, for polylines – only for the most detailed layer.

N no generalization and no intersection detection.

Unnecessary nodes (from the resolution point of view) will be removed automatically.

There will be no reduction of the 'oversampled' points in the objects - the only reduction of the points will be done because of alignment to the same coordinates.

This option should be used if input data is prepared separately for each layer - the data for each layer having already been adjusted to the map author's requirements.

Used only if you explicitly provide data for all layers.

Default = F http://cgpsmapper.com/ 13 of 130

cGPSmapper Manual

Levels=n

Level#=g

Zoom#=#

Preview=x

AlignMethod

BlockSize

LevelFill

LevelLimit

WorldMap

DrawPriority=#

Marine=x

Refer to section 4.4 (on page 42) for details.

Number of levels (layers) in the map (at least 2, not more than 10).

2

3

4

5

6

7

8

9

10

Note: the last layer must always be empty, e.g. Levels=3 means that two layers only are available for map objects.

Grid size for layer # (layer 0 is the most detailed one).

Refer to section 4.4 (on page 42) for details.

Refer to section 4.4 (on page 42) for details.

Refer to section 9.3 (Creating preview map files), on page 87, for details.

N map designated for use with GPS will be created

Y map designated for use as preview map for

MapSource will be created

Default = N

No longer used / supported.

No longer used / supported.

No longer used / supported.

No longer used / supported.

No longer used / supported.

Value between 0 and 31 indicating the priority used by the

GPS to draw the map. The highest value – the highest priority is set.

Priority for the transparent maps is calculated by adding always 32 to the set priority by DrawPriority value.

Default = 25.

Indicates if the map is of marine type.

N or 0 non-marine map

Y or 1 marine map

B or 2 marine map – compatible with G2 devices

X or 3 non-marine map – compatible with G2 devices

– be aware – Garmin does not produce such non-marine maps compatible with G2 devices only

Default = N.

Refer to section 0 (on page 31) for details.

http://cgpsmapper.com/ 14 of 130

cGPSmapper Manual

LeftSideTraffic=x

Indicates if driving side is right (default) or left.

N or 0 driving side is right

Y or 1 driving side is left

Default = N.

NT=x

[END]

Used for routable maps only – for proper display of roundabout icon / other maneuver icons.

Experimental. Changes storage format to NT-like. This is

NOT YET real Garmin NT format.

N or 0 normal storage format

Y or 1 Experimental NT format

Default = N.

Section terminator.

4.2.2 Declarations

The DECLARATION elements must be in the order shown herewith.

4.2.2.1 Countries

Although this section is obsolete, it is still supported.

[COUNTRIES]

Declares all countries used for city indexing

Country#=country_n ame~[0x1d]abbrevia tion

...

[END]

Name and abbreviation used to identify country #.

The first # must always be one.

E.g.: Country1=United States~[0x1d]US

80 characters maximum.

The statement above can be repeated as needed.

# must be in ascending order.

Section terminator

4.2.2.2 Regions

Although this section is obsolete, it is still supported.

[REGIONS]

Declares all regions used for city indexing

Region#=region_nam e~[0x1d]abbreviati on

CountryIdx#=countr y_index

Name and abbreviation used to identify region #.

The first # must always be one. Subsequent # must be ordered ascending.

E.g.: Region1=New York~[0x1d]NY

80 characters maximum.

The country_index represents the number in the corresponding

Country#

statement.

...

The first # (CountryIdx) must always be one.

Subsequent

2

# must be in ascending order.

If included, there must be at least 1 region per country. In theory, the limit is 13,107.

E.g.: CountryIdx1=1, means that the current region is located in country 1 (right side of the equals sign).

The statements above can be repeated as needed.

2

Unlikely, since each region normally is located in a single country. http://cgpsmapper.com/ 15 of 130

cGPSmapper Manual

[END]

Section terminator.

4.2.2.3 Cities

Although this section is obsolete, it is still supported.

[CITIES]

Declares all cities used for indexing

City#=ciy_name

Name used to identify the city #.

The first # must always be one. Subsequent # must be in ascending order.

E.g.: City1=New York

80 characters maximum.

RegionIdx#=region_ index

The region_index represents the number in the corresponding

Region#

statement.

The first # (RegionIdx) must always be one. Subsequent

3

...

[END]

# must be in ascending order.

If included, there must be at least 1 city per Region. In theory, the limit is 13,107.

E.g.: RegionIdx1=1, means that the current city is located in

Region 1 (right side of the equal sign).

The statements above can be repeated as needed.

Section terminator.

4.2.2.4 Chart Info

[CHART INFO]

Name=xxx

Number=xxx

Projection=xxx

Published=xxx

Scale=###

DeltaSN=###

DeltaWE=###

IALA=x

Print=mmyyyy

Declarations for marine charts, attached to the 'marine chart' object - which is created automatically as well (similar to the background object) - and also attached to the 'marine border' line.

This section should only be present if in the

[IMG ID] section, there is a definition

Marine=Y

Chart Name (e.g. La Plata to Nueva Palmira).

Chart Code (e.g. Gb3561(a)).

Chart Projection (e.g. Mercator).

Place where the chart was published (e.g. United Kingdom).

Map scale (e.g. 1:100000).

Longitude Delta.

Latitude Delta.

IALA system. The areas that use the 'B' system are the

Americas, Japan and the Philippines. The remainder of the world uses the 'A' system.

A

B

Default = A

Paper chart print date.

Note that MapSource will show the day as "01" (the day field is not available in the GPS).

3

Unlikely, since each city normally is located in a single region. http://cgpsmapper.com/ 16 of 130

σ

π

σ

π

₪ cGPSmapper Manual

Edition=mmyyyy

Correction=ddmmyyy

Paper chart edition date.

Note that MapSource will show the day as "01" (the day field is not available in the GPS).

Paper chart correction date. y

Text=xxx

ReferenceEllipsoid

=###

Very long description / information.

There could be several

Text

entries in a single object.

16kb maximum (each entry).

TextFile=file_name

File containing a very long description / information.

There could be several

TextFile

entries in a single object.

The path could be either absolute or relative to the current directory.

For platform portability, it is recommended to use slashes "/" instead of backslashes "\" to separate directories in the path.

In Unix, file_name

is case sensitive.

16kb maximum (each entry).

Reference Ellipsoid.

0 Krassovsky

1 Airy

2 Modified Airy

3 Australian National

4 Bessel 1841

5 Bessel 1841 (Namibia)

6 Clarke 1866

7 Clarke 1880

8 Everest (Brunei)

9 Everest (India 1830)

10 Everest (India 1956)

11 Everest (W Malaysia 1948)

12 Everest (W Malaysia 1969)

13 Modified Everest

14 Fischer 1960/Mercury

15 Modified Fischer 1960

16 Fischer 1968

17 GRS 1967

18 GRS 1980

19 Helmert 1906

20 Hough

21 International

22 South American 1969

23 WGS-60

24 WGS-66

25 WGS-72

26 WGS-84

27 Unknown http://cgpsmapper.com/ 17 of 130

cGPSmapper Manual

[END]

Section terminator.

4.2.3 Advanced Declarations

The ADVANCED DECLARATIONS elements must be in the order shown herewith.

4.2.3.1 Background

[BACKGROUND]

Name=file_name

[END]

τ π ₪ Declares a custom shape for the map – another way to define a custom shape for the map is to use a [POLYGON]

section (or [RGN80]) as described in section 4.2.4.2

.

Name of the ESRI file without extension

This should be the full or relative path for the ESRI file, without the extension (which should be .shp for files containing ESRI data)

Section terminator.

4.2.3.2 Dictionary

[DICTIONARY]

Level#RGNnn=bitmas k

[END]

Refer to section 4.5 (on page 47) for details.

bitmask mask used to show / hide the objects.

#

level on which the bitmask is applied.

nn

type of object to which the bitmask is applied.

Section terminator.

4.2.3.3 Highways

♣ This section will be further documented in a future version of this manual.

[HIGHWAYS]

[END]

Section terminator.

4.2.3.4 ZIP Codes

Although this section is obsolete, it is still supported.

♣ This section will be further documented in a future version of this manual.

[ZIPCODES]

[END]

Section terminator.

4.2.3.5 Definitions

Refer to section 5.7, on page 55, for further details.

[DEFINITIONS]

[END]

Section terminator.

4.2.4 Body (Objects)

BODY objects may be specified in any order. http://cgpsmapper.com/ 18 of 130

cGPSmapper Manual

4.2.4.1 Point of Interest

[POI]

Point of interest section identifier.

[RGN10]

(meaning point of interest) and

[RGN20]

(meaning point) may be used instead.

Type=object_type

Type of element, may be written in hex or decimal or as a name (valid names are defined in file RGNtyps.txt which you can customised to your requirements).

SubType=object_typ e

SubType

defines the second byte of the

Type

value.

The type of element can be defined either by using the

Type key only or by using the

Type

and

SubType

keys.

Example:

Type=0x0211 can be also written as:

Type=0x02

SubType=0x11

Extended / marine types can be stored in 3 bytes as follow:

Type=0x010203

What correspond to:

Type=0x02

Marine=x

City=x

SubType=0x03

Marine=Y

Indicates if the object is extended / marine type.

N or 0 standard type

Y or 1 extended type

Default = N

Indicates if the POI is a city.

Only used if the

[POI]

alias is used.

N or 0 not a city (instead of

[RGN10])

Y or 1 city (instead of

[RGN20])

Default = N

Label=object_name

Name of the object to be shown on the map.

80 characters maximum.

EndLevel=#

Refer to section 4.4 (on page 42) for details.

The coordinates in the lowest numbered

Data#

line apply up to the specified

EndLevel=#

. http://cgpsmapper.com/ 19 of 130

cGPSmapper Manual

Data#=(lat,lon)

StreetDesc=xxx

HouseNumber=xxx

Origin#=(lat,lon)

may be used instead.

Object data for layer #.

Refer to section 4.4 (on page 42) for details.

Coordinates are in degrees, using the datum defined in the header

4

(or default).

Applies to

[RGN10]

only.

Address for the

[RGN10]

object.

80 characters maximum.

Applies to

[RGN10]

only.

House number for POI defined by the object.

80 characters maximum.

Field is used to define POI address – number. Value should be defined as an integer number with eventual use of special codes which represent type of address.

Special sequence

Meaning (how it is translated in GPS device)

-0 #

-1 APT

-2 BLDG

-3 DEPT

-4 FL

-5 RM

-6 STE

-7 UNIT

Example:

HouseNumber=10-1103

This will be translated to: 10 APT 103

OvernightParking=x

Applies to

[RGN10]

only.

Highway=xxx

Indicates if 24 hr parking is allowed.

N or 0 No

Y or 1 POI at the exit of a highway will have an

'overnight parking' flag.

Default = N

Applies to

[RGN10]

only.

Name of the Highway.

This name will be added to the list of available highways, so it can be searched in some GPS devices.

Garmin does not support this feature.

80 characters maximum.

4

Refer to section 4.2.1, on page 9, for further details. http://cgpsmapper.com/ 20 of 130

σ

π

₪ cGPSmapper Manual

CityName=xxx

σ

π

σ

π

σ

π

RegionName=xxx

CountryName=xxx

Zip=xxx

For

[RGN20] CityName

has the same meaning as

Label

.

If both

Label

and

CityName

are provided, the one which appears later in the file is used.

For

[RGN10] CityName

is the name of the city to which the object belongs.

Can be used only together with keys

RegionName

and

CountryName

.

80 characters maximum.

Name of region to which the object belongs.

Can be used only together with keys

CountryName

CityName

.

.

80 characters maximum.

CityName

Name of country to which the object belongs.

Can be used only together with keys

80 characters maximum.

Object Zip Code.

80 characters maximum.

and

RegionName

and

Exit#=(type_of_exi t_facility),(direc tion_to_facility),

(facilities),(labe l)

[END]

Applies to

[RGN10]

only.

Additional facilities available at the exit.

+ type_of_exit_facility

+

+

+ direction_to_facility facilities label

Integer hex or decimal values as indicated on section

12.2 (Exits), on page 105.

80 characters maximum.

Section terminator.

4.2.4.2 Polygon

[POLYGON]

Type=object_type

SubType=object_typ e

Polygon section identifier.

[RGN80]

may also be used instead. It is used to define lakes, parks, forests, etc.

Refer to section 4.2.4.1 (on page 19) for details.

SubType

defines the second byte of the

Type

value.

The type of element can be defined either by using the

Type key only or by using the

Type

and

SubType

keys.

Example:

Type=0x0211 can be also written as:

Type=0x02

SubType=0x11 http://cgpsmapper.com/ 21 of 130

cGPSmapper Manual

Marine=x

Label=object_name

EndLevel=#

Background=x

Indicates if the object is extended / marine type.

N or 0 standard type

Y or 1 extended type

Default = N

Refer to section 4.2.4.1 (on page 19) for details.

Refer to section 4.2.4.1 (on page 19) for details.

Declare the custom shape of the map.

The background object defines the area of the basemap which is covered by this map.

It is recommended that background be only used with maps which have irregular boundaries.

If there is only one object set as the background, then the

EndLevel

is automatically set to 9.

If there is no background object, or more than one, then the

EndLevel

is not changed.

''It is a common mistake to use a background object when defining an island. An island is implemented simply as a hole in the containing polygon.

Refer to section 10.6 for

details. To create a background object in the shape of the island is quite wrong.

A background object is not a 'land'. It should only be used to describe the total area covered by your map.

Most maps do not require the use of this object at all!

The only exception is when you want to create map with an irregular boundary. In which case you should create ONLY ONE BACKGROUND OBJECT which covers the whole map.

If you create a lot of background objects - don't be surprised that map is 'strange', slow etc...

N No

Y Yes

Default = N http://cgpsmapper.com/ 22 of 130

cGPSmapper Manual

Data#=(lat1,lon1),

(lat2,lon2)...

[END]

Origin#=(lat1,lon1),(lat2,lon2)

may be used instead.

Object data for layer #.

Refer to section 4.4 (on page 42) for details.

Coordinates are in degrees, using the datum defined in the header

5

(or default).

Normally there will be no more than one data# line for each level. The exception is when creating a polygon with holes in it. Holes in polygons are used to represent islands in lakes or seas, clearings in woods etc.

Refer to section 10.6 for information on creating

polygons with holes.

Section terminator.

4.2.4.3 Polyline

[POLYLINE]

Type=object_type

SubType=object_typ e

Polyline section identifier.

[RGN40] may also be used instead. It is used to define linear objects such as streets, streams, etc.

Refer to section 4.2.4.1 (on page 19) for details.

SubType

defines the second byte of the

Type

value.

The type of element can be defined either by using the

Type key only or by using the

Type

and

SubType

keys.

Example:

Type=0x0211 can be also written as:

Type=0x02

SubType=0x11

Marine=x

Indicates if the object is extended / marine type.

N or 0 standard type

Y or 1 extended type

Default = N

Label=object_name

Refer to section 4.2.4.1 (on page 19) for details.

Label2=object_name

Secondary name of the object –only applies to roads.

EndLevel=#

Data#=(lat1,lon1),

Refer to section 4.2.4.1 (on page 19) for details.

Refer to section 4.2.4.2 (on page 21) for details.

(lat2,lon2)...

StreetDesc=xxx

DirIndicator=x

Street alias or secondary street name.

80 characters maximum.

Show direction of the road when selecting intersection in

GPS

0 No

1 Yes

Default = 0

5

Refer to section 4.2.1, on page 9, for further details. http://cgpsmapper.com/ 23 of 130

σ

π

σ

π

σ

π

₪ cGPSmapper Manual

[email protected]@z zz

[email protected]

@zzz

CountryName=xxx

σ

π

π

Zip=xxx

RoadID=xxx

Numbers#=xxx

Routeparam=xxx

NodID#=xxx

[END]

Name of city to which this object belongs.

Can be used only together with keys

RegionName

and

CountryName

.

80 characters maximum.

Since version 0.97 of cGPSmapper it is possible to assign more than one city as attribute to street – used for search purposes. That can be used for city name and quarter name – to enable search by both names.

Refer to section 6.4 (on page 65) for details.

Name of region to which this object belongs.

Can be used only together with keys

CityName

and

CountryName

.

80 characters maximum.

Name of country to which this object belongs.

Can be used only together with keys

RegionName

and

CityName

.

80 characters maximum.

Object Zip Code.

80 characters maximum.

Refer to section 4.2.6 (on page 31) for details.

Section terminator.

4.2.4.4 Point of Interest from OziExplorer

[WPT]

RgnType=object_cat egory

Type=object_type

EndLevel=#

File#=file_name

Point of interest section identifier, with data imported from an OziExplorer .wpt file.

The object labels are derived from the waypoint description field, not from the waypoint name field

0x10 POI

0x20 point

Refer to section 4.2.4.1 (on page 19) for details.

Refer to section 4.2.4.1 (on page 19) for details.

.wpt

file from which data will be imported to layer #.

The path could be either absolute or relative to the current directory.

For platform portability, it is recommended to use slashes "/" instead of backslashes "\" to separate directories in the path.

In Unix, file_name

is case sensitive. http://cgpsmapper.com/ 24 of 130

cGPSmapper Manual

[END]

Section terminator.

4.2.4.5 Polyline or Polygon from OziExplorer

[PLT]

RgnType=object_cat egory

Type=object_type

Label=object_name

DirIndicator=#

EndLevel=#

File#=file_name

[END]

Polygon / Polyline section identifier, with data imported from an OziExplorer .plt file.

0x40 polyline

0x80 polygon

Refer to section 4.2.4.1 (on page 19) for details.

Refer to section 4.2.4.1 (on page 19) for details.

If the track imported in the [PLT] section contains multiple segments (i.e. objects), all segments will take the same label

(name), as defined by the Label statement. However, it is possible to give a different name to each segment. To achieve this, omit the Label statement and specify the names in an additional file, which should have the same name as the

.plt file (including the extension) and the additional extension .txt, e.g. Highways.plt.txt). The file must be in the same directory as the .plt file. Each line in this file specifies the name for the corresponding track segment.

Direction indicator, only for streets, highways, etc.

0 no direction

1 the GPS will show direction of the road (calculated internally by GPS)

Default = 0

Refer to section 4.2.4.1 (on page 19) for details.

.plt

file from which data will be imported to layer #.

The path could be either absolute or relative to the current directory.

For platform portability, it is recommended to use slashes "/" instead of backslashes "\" to separate directories in the path.

In Unix, file_name

is case sensitive.

Section terminator.

σ

τ

π

4.2.4.6 Shapes

[SHP] name=file_name

ESRI shape file section identifier.

Name of the ESRI files without extension.

This should be the full or relative path for the ESRI files, without the extension (which should be .shp for files containing ESRI data). http://cgpsmapper.com/ 25 of 130

σ

τ

π

₪ cGPSmapper Manual

Type=xxx

LabelField=field_n ame

Label2Field=field_ name

TypeField=field_na me

SubTypeField=field

_name

DirField=field_nam e

Level=#

EndLevel=#

DefaultType=object

_type

CityName=field_nam e

Type of objects to be imported from the ESRI files

16 or RGN10 POI

32 or RGN20 cities

64 or RGN40 lines

128 or RGN80 polygons

2 or RGN02 marine polygons

3 or RGN03 marine lines

4 or RGN04 marine points

Name of the field - in the associated .dbf file - from which cGPSmapper will get the Label for each object.

Secondary name for roads. Used in cases where you want a road to have a numeric ID and a name.

The secondary name of the road (road number if highway for example) - is not visible in the GPS but is used when searching street by name.

Name of the field - in the associated .dbf file - from which cGPSmapper will get the object_type for each object.

The field_name field must contain a decimal or hexadecimal value representing the object type.

If both DefaultType and TypeField are specified, an error occurs, but at least one of them must be specified.

Refer to section 4.4 (on page 42) for details on the valid

object types.

Name of the field – in associated .dbf file – from which cGPSmapper will get the second byte of the object_type this is an optional field because the object_type can be defined using only TypeField

N or 0 Hide street direction on crossroads

Y or 1 Show street direction on crossroads

Default = N

Level into which objects will be imported.

Refer to section 4.4 (on page 42) for details.

The coordinates from Level=# line apply up to the specified EndLevel=#.

Decimal or hexadecimal value representing the object type to be applied when the TypeField is not specified.

If both DefaultType and TypeField are specified, an error occurs, but at least one of them must be specified.

Refer to section 4.4 (on page 42) for details on the valid

object types.

Name of the field - in the associated .dbf file - from which cGPSmapper will get the CityName for each object.

Only used for polylines (i.e. when Type=RGN40 or

Type=64

) and POIs (i.e. when Type=RGN20 or Type=32 or Type=RGN10 or Type=16). http://cgpsmapper.com/ 26 of 130

cGPSmapper Manual

σ

τ

π

RegionName=field_n ame

Name of the field - in the associated .dbf file - from which cGPSmapper will get the RegionName for each object.

Should not be present if the

DefaultRegionCountry element is present in the

[IMG ID]

section.

Only used for polylines (i.e. when Type=RGN40 or

Type=64

) and POIs (i.e. when Type=RGN20 or Type=32 or Type=RGN10 or Type=16).

σ

τ

π

CountryName=field_ name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the CountryName for each object.

Should not be present if the element is present in the

DefaultCityCountry

[IMG ID]

section.

Only used for polylines (i.e. when Type=RGN40 or

Type=64

) and POIs (i.e. when Type=RGN20 or Type=32

τ

π

τ

π

τ

π

τ

π

HouseNumber=field_ name

StreetDesc=field_n ame

PhoneNumber=field_ name

Zip=field_name or Type=RGN10 or Type=16).

House number written as a string.

Used for address search and routing.

Only used for POIs (Type=RGN10 or Type=16).

Street name or additional description.

Only used for POIs (Type=RGN10 or Type=16).

Phone number written as a string.

Only used for POIs (Type=RGN10 or Type=16).

Name of the field - in the associated .dbf file - from which cGPSmapper will get the Zip for each object.

Only used for polylines (i.e. when Type=RGN40 or

Type=64

) and POIs (Type=RGN10 or Type=16).

RoadID=field_name

Unique ID number for the road. This is internally used by cGPSmapper to maintain routing data creation.

Used for routing.

SpeedType=field_na me

This attribute defines the maximum allowed speed - it is used mainly for calculating fastest possible route.

There are 8 of them:

7 128 km/h

6 108 km/h - Can be adjusted in MapSource

5 93 km/h - Can be adjusted in MapSource

4 72 km/h - Can be adjusted in MapSource

3 56 km/h - Can be adjusted in MapSource

2 40 km/h - Can be adjusted in MapSource

1 20 km/h

0 8 km/h (ferry)

Used for routing. http://cgpsmapper.com/ 27 of 130

cGPSmapper Manual

RoadClass=field_na me

OneWay=field_name

This attribute defines the importance of the road for routing.

It is one of the most important attributes for routing.

The lowest importance is 0, the highest is 4.

Road class 4 should be used for Major highways and other main roads.

Used for routing.

1 one way road, where the permitted direction is always from the beginning of the road to the end, considering the digitalisation direction.

-1 one-way road, opposite to the digitalisation direction.

0 two-way road.

Used for routing.

Defines that it is a toll road.

1 no emergency vehicles allowed on the road.

Toll=field_name

VehicleE=field_nam e

VehicleD=field_nam

1 no delivery vehicles allowed on the road. e

VehicleC=field_nam e

VehicleB=field_nam

1 no cars allowed on the road.

1 no buses allowed on the road. e

VehicleT=field_nam e

VehicleP=field_nam

1 no taxis allowed on the road.

Position=field_nam

1 no pedestrians allowed on the road. e

VehicleI=field_nam e

VehicleR=field_nam e

TextFileLines=fiel

1 no bicycles allowed on the road.

1 no trucks allowed on the road. d_name

TextStart=line_num ber

TextEnd=line_numbe

Ending line number from TextFileLines file to be imported r

TextFile=file_name

Text file name to be imported

Color=field_name

Style=field_name

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Height=field_name

Depth=field_name

DepthUnit=field_na

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

me

HeightUnit=field_n

Refer to section 0 (on page 31) for details.

ame

Name of the file with long text for very long description of the object

Starting line number from TextFileLines file to be imported

Refer to section 0 (on page 31) for details.

e http://cgpsmapper.com/ 28 of 130

σ

τ

π

σ

σ

τ

π

τ

π

σ

τ

π

σ

τ

π

σ

τ

π

σ

τ

π

σ

τ

π

σ

τ

π cGPSmapper Manual

DepthFlag=field_na me

FoundationColor=fi eld_name

Light=field_name

LightType=field_na me

Note=field_name

LocalDesignator=fi eld_name

InternationalDesig nator=field_name

Period=field_name

HeightAboveFoundat ion=field_name

HeightAboveDatum=f ield_name

HeightAboveFoundat ionUnit=field_name

HeightAboveDatumUn it=field_name

LeadingAngle=field

_name

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

http://cgpsmapper.com/ 29 of 130

σ

τ

π

σ

τ

π

σ

τ

π cGPSmapper Manual

Racon=field_name

DoubleLights=field

_name

DoubleLightsHorizo ntal=field_name

FacilityPoint=fiel d_name

[END]

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Refer to section 0 (on page 31) for details.

Section terminator.

4.2.4.7 MapDekode file

♣ This section will be further documented in a future version of this manual.

[DBX] name=file_name

[END]

Name of a MapDekode file (including extension) to be processed in the current compilation.

Section terminator.

4.2.4.8 File

[FILE] name=file_name

[END]

Lists other PFM files to be included in the current compilation.

Name of a PFM file (including extension) to be processed in the current compilation.

The compiler processes all the objects (and sections) in the specified file as if they were part of the current file.

The file included may contain any section but the

[IMG

ID]

section.

You may specify either the full path or the path relative to the current directory.

Section terminator.

4.2.5 Object elevation

By default, the elevation is defined in feet in PFM. To define the elevation in metres, the

Elevation=m

statement should be defined in the header section ( refer to section

4.2.1 on page 9). Since this is a global definition, all elevations on a map must be in the

same units (either all in feet or all in metres).

Elevation can be specified for POI objects like summit (Type 0x6616) and depth / height points (Types 0x6200 to 0x6600) as well as for polyline objects like land / depth contours

(Types=0x20 to 0x25). http://cgpsmapper.com/ 30 of 130

cGPSmapper Manual

Whenever POI label starts with numbers or numbers are placed after ~[0x1f] separator, they are treated as elevation and might be converted (depends of Elevation setting in the header.

The elevation is entered in the label field of the objects. The following code extract defines a height point with elevation of 668 m (assuming Elevation=m is defined in the header section):

[RGN10]

Type=0x6300

Label=668

Origin0=(-33.93497,18.38925)

[END-RGN10]

A minor land contour with elevation of 1080 m can be defined like this:

[RGN40]

Type=0x20

Label=1080

Data0=(-33.96727,18.42540),(-33.96725,18.42557),

(-33.96709,18.42600),(-33.96693,18.42624),(-

33.96682,18.42630),

(-33.96662,18.42627),(-33.96646,18.42581),(-

33.96641,18.42557)

[END-RGN40]

Text can be combined with the elevation in the label by using the ~[0x1f] delimiter to indicate the elevation. Example of a summit with 1084 m elevation:

[RGN10]

Type=0x6616

Label=Table Mountain~[0x1f]1084

Origin0=(-33.96664,18.42569)

[END-RGN10]

Type 0x6616 require a special code separation before the height value – ~[0x1f] – in case

– there is no name of the summit – label should looks like:

Label=~[0x1f]1084

4.2.6 Road numbers

House numbers along the streets can be defined using NUMBERS# key within [RGN40] declaration. There could be up to 60 definitions of numbers for a single road.

Each definition consist from the NumbersX definition where X is increasing value from 1 up to 60

For using house numbering along streets when working with ESRI data please refer to

section 5.7, on page 55.

http://cgpsmapper.com/ 31 of 130

cGPSmapper Manual

[RGN40]

Type=6

Numbers1=0,E,1,9,O,4,20,2999,2999,Warszawa,Mazowieckie,Polska

,Warszawa,Mazowieckie,Polska

Numbers2=3,B,21,40,N,0,0,2999,2999,Warszawa,Mazowieckie,Polsk a,Warszawa,Mazowieckie,Polska

[END-RGN40]

Where –

NumbersX=

[index of point in the polyline – 0 based],

[left side numbering style],

[first number on left side],

[last number on left side],

[right side numbering style],

[first number on right side],

[last number on right side],

[left side zip code],

[right side zip code],

[left side city],

[left side region],

[left side country],

[right side city],

[right side region],

[right side country]

Some of the information are optional – if no zip code – it can be replaced by ‘-1’, if no city, region and country info – also it can be replaced by ‘-1’

Numbers1=0,E,1,9,O,4,20,-1,-1,-1,-1

First ‘-1’ replaces zip code on left side, second – zip code on the right side, then ‘-1’ replaces city/region/country info on left side and the last – on the right side.

This is equivalent of:

Numbers1=0,E,1,9,O,4,20

Numbering style can be: N,E,O,B – which suits to: None, Even, Odd, Both.

4.2.7 Special codes for object labels

It is possible to use some special codes for labialisation of the objects in the map – these special codes are responsible for both – adding graphics around the label and special behaviour of the label.

Special codes are different for 6-bit and 8-bit coding – for which LBLcoding parameter is responsible. http://cgpsmapper.com/ 32 of 130

cGPSmapper Manual

6-bit coding 8-bit coding

~[0x1b]

~[0x1b2b]

Code meaning

Used before a letter forces it to be a lower case

~[0x1b2c] ~[0x1c] section (when over 1km), with the mouse sees displayed one the word completely, not separated

Separation: on the map visible only the first section

(when over 1km), with the mouse sees displayed one the word completely, not separated on section (when over 1km), with the mouse sees displayed one the word completely, by blank separated

~[0x1f] ~[0x1f] Separation: on the map visible only the first section

(when over 1km), with the mouse sees displayed one the word completely, by blank separated.

Normally used as a separator before elevation

Example:

[RGN10]

..

Label=~[0x1f]500

~[0x2a] ~[0x01]

• Interstate symbol

name can consist only from digits!

allowed only at beginning of label

Example:

[RGN40]

Label=~[0x2a]11

..

~[0x2b] ~[0x02]

US Highway – shield

name can consist only from digits!

allowed only at beginning of label

~[0x2c] ~[0x03]

US Highway – round symbol

name can consist only from digits!

allowed only at beginning of label

~[0x2d] ~[0x04]

Highway – big

allowed only at beginning of label

~[0x2e] ~[0x05]

Main road – middle

allowed only at beginning of label

~[0x2f] ~[0x06]

Main road – small

allowed only at beginning of label http://cgpsmapper.com/ 33 of 130

cGPSmapper Manual

4.3 Marine Charts

Marine charts are a special kind of cartography - similar to Garmin's BlueChart - that is used as navigational aid and contains its own set of marine elements.

Although marine charts are generated, managed and compiled in the same way as ordinary

maps, certain restrictions apply to the attributes of the objects (e.g. extended attributes like

CityName, RegionName, StreetDesc are not applicable - marine objects are not searchable).

Such restrictions are explained in the present section.

All the attributes listed herewith are meant to be included in one of the following sections:

[POI]

,

[POLYLINE]

,

[POLYGON]

.

Refer to section 4.2 (on page 8) for details on these sections.

Marine maps cannot be transparent.

Most of marine types can be now used on usual ‘land’ maps.

Marine=x

Indicates if the object is of marine type.

N or 0 non-marine object

Y or 1 extended / marine object

Default =

Marine

value from the

[IMG ID]

section. If not present, default = N.

This key is no longer necessary if extended 3-bytes type definition is used:

Extended / marine types can be stored in 3 bytes as follow:

What correspond to:

Type=0x010203

Type=0x02

SubType=0x03

Marine=Y

Marine objects use many additional special attributes, which are listed below.

Marine objects have only the following keys in common:

Type=object_type

Type of element, may be written in hex or decimal or as a name (valid names are defined in file RGNtyps.txt which you can customised to your requirements). http://cgpsmapper.com/ 34 of 130

σ

π

σ

π

₪ cGPSmapper Manual

SubType=object_typ e

SubType

defines the second byte of the

Type

value.

The type of element can be defined either by using the

Type key only or by using the

Type

and

SubType

keys.

Example:

Type=0x0211 can be also written as:

Type=0x02

SubType=0x11

Label=object_name

Optional name of the object to be shown on the map.

80 characters maximum.

Data#=(lat,lon)

Origin#=(lat,lon)

may be used instead.

Object data for layer #.

EndLevel=#

Refer to section 4.4 (on page 42) for details.

Coordinates are in degrees, using the datum defined in the header

6

(or default).

Refer to section 4.2.4.1 (on page 19) for details.

Marine objects may also have the following keys, depending on the object_type

:

Text=xxx

Very long description / information displayed in the properties windows of the object.

There could be several

Text

entries in a single object.

Applies only to following marine types: polygons of types 0x0700 and 0x0704 points of types 0x0801 and 0x0902

16kb maximum (each entry).

TextFile=file_name

File containing a very long description / information displayed in the properties windows of the object.

There could be several

TextFile

entries in a single object.

The path could be either absolute or relative to the current directory.

For platform portability, it is recommended to use slashes "/" instead of backslashes "\" to separate directories in the path.

In Unix, file_name

is case sensitive.

16kb maximum (each entry).

6

Refer to section 4.2.1, on page 9, for further details. http://cgpsmapper.com/ 35 of 130

cGPSmapper Manual

Color=##

Style=## http://cgpsmapper.com/

Object colour.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Applies only to following marine types: polylines of types 0x04XX to 0x06XX points of types 0x0500 (coloured text)

Valid values - sum of:

0x00 to 0x03 (basic styles)

0x10 to 0x30 (extended styles)

0x00

0x01

0x02

0x03

0x10

0x11

0x12

0x13

0x20

0x21

0x22

0x23

0x30

0x31

0x32

0x33

Applies only to following marine types: polylines of types 0x04XX to 0x06XX polyline of type 0x0108 (Recommended Route - valid values are only between 0x00 and 0x03)

36 of 130

cGPSmapper Manual

Height=##.#

Depth=##.#

DepthUnit=x

HeightUnit=x

Position=#

Alias name for

Depth

.

Can not be present if

Depth

is present.

Point depth / height value with one decimal (e.g. 20.1).

The maximum value is 65535, when value is defined as integer; and 6553, when value is defined as real.

Warning:

This value is not displayed if the “Spot Soundings” setting in the GPS receiver is set to “Off”. Please note also that this setting affects also some of the objects (mainly soundings): they will not be displayed at all (because they have no visual representation except the depth/height value). This is dangerous for navigation since very important information will be hidden from the chart. There is also the “Spot

Soundings” setting in Preferences of MapSource.

Applies only to following marine types (as height / depth): polylines of types 0x0105 to 0x0107, 0x03XX polygon of types 0x0105 to 0x0107, 0x03XX points of types 0x03XX (soundings, building, spot height) points of types 0x04XX (obstruction)

Alias name for

HeightUnit

.

Can not be present if

HeightUnit

is present.

Allowed only when either

Depth

or

Height

is present. m metres f feet

Default =

Elevation

value from the

[IMG ID] section.

Allowed only when either

Depth

or

Height

is present.

Position of the obstruction.

0 unknown

1 (empty)

2 doubtful

3 existence doubtful

4 approximate

5 reported

Applies only to following marine types: points of types 0x04XX (obstruction) http://cgpsmapper.com/ 37 of 130

cGPSmapper Manual

DepthFlag=#

Depth info of the obstruction.

0 empty (no depth flag)

1 unknown, dangerous for navigation

2 awash at chart datum

3 unknown, safe for navigation

4 unknown

Applies only to following marine types: points of types 0x04XX (obstruction)

FoundationColor=#

Foundation colour.

0x00 (generic symbol)

0x01 red

0x02 green

0x03 yellow

0x04 white

0x05 black

0x06 black-yellow

0x07 white-red

0x08 black-red

0x09 white-green

0x0a red-yellow

0x0b red-green

0x0c orange

0x0d black-yellow-black

0x0e yellow-black

0x0f yellow-black-yellow

0x10 red-white

0x11 green-red-green

0x12 red-green-red

0x13 black-red-black

0x14 yellow-red-yellow

0x15 green-red

0x16 black-white

0x17 white-orange

0x18 orange-white

0x19 green-white

Applies only to following marine types: points of types 0x02XX http://cgpsmapper.com/ 38 of 130

σ

τ

π

₪ cGPSmapper Manual

Light=colour

Light=(colour,rang e)

Light=(colour,rang e,angle)...(colour

,range,angle)

Definition of light colour and range.

There are several accepted formats:

- Light=2 define colour of the light (valid for types

0x02XX)

- Light=(3,4) colour 3 and range 4 nm

Ranges always in nautical miles.

Light colours:

0x00 unlit

0x01 red

0x02 green

0x03 white

0x04 blue

0x05 yellow

0x06 violet

0x07 amber

Applies only to following marine types: points of types 0x02XX (accepts ONLY colour attribute!) points of types 0x01XX

Definition of light colour, nominal range and light sectors.

Light = (2,3,10.0), (3,3,205.0) defines colour 2, range 3 nm from angle 10.0 to 205.0 and colour 3, range 3 nm from angle 205.0 to 10.0

The true (geographic) angles should be used (as opposed to magnetic). Angles are arranged clockwise and are given from seaward toward the light. These are bearings of the light as seen from a vessel crossing the sector lines.

Please note that you can change the “Light sectors” setting both in MapSource and in your GPS receiver to suit your needs.

Applies only to following marine types: points of types 0x02XX (accepts ONLY colour attribute!)

- points of types 0x01XX http://cgpsmapper.com/ 39 of 130

cGPSmapper Manual

LightType=xxx

σ

τ

π

Note=xxx http://cgpsmapper.com/

Definition of the light type.

Can be a number (as decimal or hex) or a letter.

If the value is a letter, then the light type is set to 0x0b

(Morse code) and letter is used as a Morse code letter.

Hex values:

0x00 unlit

0x01 fixed

0x02 isophase

0x03 flashing

0x04 group flashing

0x05 composite group flashing

0x06 occulting

0x07 group occulting

0x08 composite group occulting

0x09 long flashing

0x0a group long flashing

0x0b Morse letter - see above

0x0c quick

0x0d group quick

0x0e group quick and long flashing

0x0f interrupted quick

0x10 very quick

0x11 group very quick

0x12 group very quick and long flashing

0x13 interrupted very quick

0x14 ultra quick

0x15 interrupted ultra quick

0x16 fixed and occulting

0x17 fixed and group occulting

0x18 fixed and isophase

0x19 fixed and flashing

0x1a fixed and group flashing

0x1b fixed and long flashing

0x1c alternating

0x1d alternating occulting

0x1e alternating flashing

0x1f alternating group flashing

Applies only to following marine types: points of types 0x01XX and 0x02XX

Text visible in the properties window of the object.

Applies only to following marine types: points of types 0x01XX and 0x02XX

40 of 130

σ

τ

π

σ

τ

π

σ

τ

π

σ

τ

π

σ

τ

π

σ

τ

π

σ

τ

π

σ

τ

π

₪ cGPSmapper Manual

LocalDesignator=xx x

InternationalDesig nator=xxx

Text visible in the properties window of the object.

Applies only to following marine types: points of types 0x01XX and 0x02XX

Text visible in the properties window of the object.

Applies only to following marine types: points of types 0x01XX and 0x02XX

Period=xxx

Period(s) of the light. Can be single value or series of values.

Examples:

Period=2.3

HeightAboveFoundat ion=##

Period=2.3,2.1,2.3,1.0

Applies only to following marine types: points of types 0x01XX

Height above foundation. Value visible in the properties window of the object.

Applies only to following marine types: points of types 0x01XX

HeightAboveDatum=#

#

Height above datum. Value visible in the properties window of the object.

Applies only to following marine types: points of types 0x01XX

HeightAboveFoundat ionUnit=##

HeightAboveDatumUn it=## m metres f feet

Default =

Elevation

value from the

[IMG ID] section.

Allowed only when

HeightAboveFoundation

is present. m metres f feet

Default =

Elevation

value from the

[IMG ID] section.

Allowed only when

HeightAboveDatum

is present.

LeadingAngle=##.#

Leading angle (in degrees) for the light, value with one decimal.

Racon=x

Example:

LeadingAngle=120.1

Applies only to following marine types: points of types 0x01XX

Y yes

N no

Default = N

Applies only to following marine types:

Points of types 0x01XX http://cgpsmapper.com/ 41 of 130

σ

τ

π

σ

τ

π

₪ cGPSmapper Manual

DoubleLights=x

Additional info shown in the properties window. Number of light bubbles. Valid values are from 1 to 7.

Applies only to following marine types:

Points of types 0x01XX

DoubleLightsHorizo ntal=x

Additional info shown in the properties window. Double lights horizontal / vertical flag.

Y yes

N no

Default = N

Applies only to following marine types: points of types 0x01XX

FacilityPoint=xxx

Facility point, sum of flags.

0x000001 boat ramp

0x000002 drinking water

0x000004 restrooms

0x000008 picnic area

0x000010 campground

0x000020 marina

0x000040 fuel

0x000080 marine supply

0x000100 bait and tackle

0x000200 groceries

0x000400 restaurant

0x000800 water/electric hook-up

0x001000 boat/motor rental

0x002000 guide service

0x004000 lodging

0x008000 dump station

0x010000 handicap accessible

Applies only to following marine types: points of types 0x0903

4.4 Levels

4.4.1 Introduction

Every Garmin

®

GPS with mapping capability gives you the option to zoom in or out on the map page, either displaying a small area in great detail, or a larger area in less detail.

The selection of map objects which it is appropriate for the unit to display is dependent on the zoom level. For example, when you are zoomed in, you would probably want to see individual buildings on your map. As you zoom out, this level of detail would be inappropriate because it would make the map too cluttered.

Using levels in your PFM file allows you to dictate the zoom settings at which your map objects will be visible.

Levels also allow you to display map objects in different ways depending on the zoom level. For example, a lake might appear as a region at some zoom levels but a single point at others. This is achieved by creating two map objects to represent your lake - one a region http://cgpsmapper.com/ 42 of 130

cGPSmapper Manual and the other a single point, and choosing levels for them so that the appropriate one is displayed at each zoom setting.

You may also want to show only the most important objects like main roads and cities at a wide zoom level and include secondary roads - and other objects such as railroads - at more detailed zoom levels.

Figure 1: less detail map Figure 2: more detail example map example

You can even have different sets of coordinates for the same map object at different zoom levels. The most usual use for this is to include more detail - perhaps showing every bend in a river, when zoomed in and less detail when zoomed out. Normally this will not be necessary though, because cGPSmapper automatically reduces the number of points in higher zoom levels.

4.4.2 Concepts and Terminology

When you zoom in and out on your GPS' map page, a scale line is displayed in the bottom left corner of the map screen

. This is annotated with the current scale, such as "800ft" or

"2km" or whatever. In a PFM file, these zoom levels are identified using an integer value called the Hardware Zoom Level. Hardware zoom levels are in the range 1-24. Note that there isn't a precise one-to-one mapping between the hardware zoom levels and all possible device zoom settings. The hardware zoom level is simply a guide.

Hardware zoom level 24 represents the most detailed map levels on the device. Each successively lower zoom level number maps onto twice the map scale of the previous number.

The approximate mapping of hardware zoom levels onto actual device zoom settings is shown in the table below. Note that this is only approximate. The matching of levels to

Garmin

®

display zoom levels is, unfortunately, not an exact science.

Level no.

7

GPS Equivalent (Metric) GPS Equivalent (Imperial)

24

23

Up to 120m

200m, 300m

Up to 500ft

800ft to 0.2 miles

22 500m

21 800m to 1.2km

20 2km

0.5 miles

0.8 miles to 1.2 miles

7

eTrex series. Other models may vary.

As previously indicated, the map level settings dictate the level at which objects are visible assuming the GPS user has their unit's map detail level set to Normal. http://cgpsmapper.com/ 43 of 130

cGPSmapper Manual

Level no.

7

GPS Equivalent (Metric)

GPS Equivalent (Imperial)

19

18

17

16

3km

5km to 8km

12km

20km to 30km

2 miles to 3 miles

5 miles

8 miles to 12 miles

20 miles to 30 miles

15 50km

14 80km to 120km

13

12

200km to 300km

500km to 800km

80 miles to 120 miles

200 miles to 300 miles

500 miles

The principle of doubling the map scale for each successive zoom number continues beyond level 12 but lower hardware zoom levels are not really useful. Zoom level 12 represents the most "zoomed out" setting for current Garmin

®

devices.

The hardware zoom levels described above are only ever referred to directly in the [IMG

ID] section of your PFM file. The remainder of the file uses a different level numbering scheme called Map Zoom Levels.

Map zoom levels are defined by the map author. Any map can use up to ten map zoom levels numbered 0 to 9. If you use fewer than ten map zoom levels you should use consecutive map zoom level numbers starting at zero.

Within your [IMG ID] section you specify the number of map zoom levels you will be using with a line of the form EndLevel=n. The relationship between your chosen map zoom levels and the hardware zoom levels using a set of Levelm=h lines, where m is the map zoom level and h is the corresponding hardware zoom level.

For example:

[IMG ID]

Levels=4

Level0=23

Level1=21

Level2=20

Level3=17

The above extract specifies that the map uses four map zoom levels. Map zoom level zero corresponds to hardware zoom level 23; map zoom level 1 corresponds to hardware zoom level 21 and so on.

The hardware zoom levels do not need to be consecutive, but each successive map zoom level must correspond to a smaller hardware zoom level number than the previous one.

The settings in our example specify that map objects and coordinates defined as map level zero, will be used at hardware zoom levels 23 and above. Objects defined as map level 1 will be used at hardware zoom levels 21 and 22, and so on.

The highest numbered map zoom level that you define dictates the zoom level at which your map replaces the GPS unit's base map. In our example, the highest numbered map zoom level is 3 and this corresponds to hardware zoom level 17. What this means is that if the GPS device user zooms in to level 17 or higher it will see your uploaded map. At hardware zoom levels 16 and below it will see the base map.

Your highest map zoom level is only used for the purpose of specifying when your map takes over from the base map. You are not allowed to define map objects and coordinates at this level. So, in our example, map zoom levels 0, 1 and 2 are the only ones available for http://cgpsmapper.com/ 44 of 130

cGPSmapper Manual defining map objects. Map zoom level 3 is only used to dictate when our map replaces the base map.

This means that you must always define one more map zoom level than you actually need for your map objects, and every map definition must therefore include at least two map zoom levels.

Having understood the relationship between map zoom levels and hardware zoom levels you can effectively ignore hardware zoom levels during the map design process. Within the rest of this section, the term level should be interpreted as meaning map zoom level unless explicitly stated to the contrary.

4.4.3 Using levels when defining map objects

Here is an extract from a PFM file defining the village of Remenham (Berkshire, UK) as a

Point of Interest:

[RGN10]

Type=3328

Label=Remenham

Data0=(51.551744,-0.889936)

[END]

Note that the coordinate definition line starts Data0=. The digit following the word Data specifies the level at which these coordinates will be used. This definition only specifies coordinates for level zero. That means that the village will only be visible on the user's GPS at zoom level zero.

Suppose we change this to:

[RGN10]

Type=3328

Label=Remenham

Data1=(51.551744,-0.889936)

[END]

Now we have defined coordinates for level 1 only. That means that the village will be visible only at zoom level 1. If the GPS user zooms out further than that, or if he zooms in closer, the village will not be visible.

Let's say you want the village to be visible at levels zero, one and two. You could write:

[RGN10]

Type=3328

Label=Remenham

Data0=(51.551744,-0.889936)

Data1=(51.551744,-0.889936)

Data2=(51.551744,-0.889936)

[END]

However there is an easier and better way. The above definition can be abbreviated using an EndLevel=n line: http://cgpsmapper.com/ 45 of 130

cGPSmapper Manual

[RGN10]

Type=3328

Label=Remenham

EndLevel=3

Data0=(51.551744,-0.889936)

[END]

What the EndLevel=n line says is that the coordinates in the highest numbered Datan= line apply up to the specified EndLevel=n, starting with the level number in the Datan= line. In our example, EndLevel=3, combined with Data0= means that the coordinates apply for three consecutive levels commending with level 0 (i.e. levels 0, 1, 2 and 3).

Levels and LevelsNumber are "old" equivalents of EndLevel.

4.4.3.1 Tailoring shape according to level.

In the previous example, our map object had the same coordinates at all the levels in which it was visible. For single point objects, there's no need for the coordinates to vary. You don't want your village moving around the countryside as the user zooms in or out on your map!

For lines and regions, you may wish to modify the coordinates according to zoom level.

Consider the following footpath:

[RGN40]

Type=22

Label=

EndLevel=3

Data0=(51.562624,-1.070283),(51.561637,-

1.070592),(51.561272,-1.069878), (51.560059,-1.064277)

[END]

This path will be visible, and have exactly the same shape, at levels 0 to 3. Now let's change it slightly:

[RGN40]

Type=22

Label=

EndLevel=2

Data0=(51.562624,-1.070283),(51.561637,-

1.070592),(51.561272,-1.069878), (51.560059,-1.064277)

Data1=(51.562624,-1.070283),(51.561272,-

1.069878),(51.560059,-1.064277)

[END]

The path is still visible at levels 0 to 3 but the shape changes subtly between level zero (the greatest detail) and level one. At level zero there are four vertices in the line. At levels one and two this reduces to three vertices. What we are actually doing here is specifying that we are only interested in the precise shape of the bend in the path at the highest zoom level.

Reducing the detail at higher zoom levels can reduce the size of your digital map, reducing upload times and helping to fit in memory where otherwise it wouldn't.

In practice, you don't normally need to specify reduced detail explicitly in this way because

cGPSmapper automatically detects when there is unnecessary detail for the target zoom http://cgpsmapper.com/ 46 of 130

cGPSmapper Manual level. cGPSmapper automatically averages out consecutive points which are too close to be distinguishable on the GPS screen and discards unnecessary points.

Nevertheless it is useful for the map author to understand how it is possible to take explicit control over the shape of map objects at different levels if and when necessary.

4.4.4 Idiosyncrasies of GPS hardware

The foregoing sections have explained how the map author can control the levels at which map objects are displayed. That's the theory. In practice things can be slightly different.

The first thing to note is that the map level settings dictate the level at which objects are visible assuming the GPS user has their unit's map detail level set to Normal. In the eTrex series, for example, the map set-up screen offers five choices for detail level: Most, More, Normal, Less and

Least.

Figure 3: Map Detail

Setup

At higher detail levels, map objects will continue to be visible even if the user zooms out further than the greatest level at which you have defined them. At lower detail levels the user will have to zoom in more than expected before the objects become visible. The extent to which the detail setting affects the levels at which objects become visible has not been determined by the authors of this guide. If this is important to you, you will just have to experiment.

Perhaps more bizarrely, the level at which things become visible can also be affected by what type of object it is. You may find, for example, that two points of interest with identical map level settings but different types (for example, one is a building and the other a village) become visible at different zoom settings on the GPS screen. Precise determination of how the object type affects its visibility is beyond the resources of the authors. Again, if this is important to you, you will just have to experiment. As mentioned near the start of this section, choosing correct zoom levels is not a precise science.

4.5 Dictionary

4.5.1 Introduction

Section 4.4 (Levels) explains how you can dictate the zoom settings at which your map

objects will be visible. However if you have a large map with many map objects and you need to change the display level for all objects of a specific type, changing the EndLevel= tag for each instance can be a cumbersome and time-consuming task. http://cgpsmapper.com/ 47 of 130

cGPSmapper Manual

Fortunately the Polish file format has a solution called 'Dictionary' which allows you to switch map objects of the same type on or off for each level. [DICTIONARY] is an optional section and follows after the [IMG ID] section.

4.5.2 Concepts and Terminology

[Dictionary] uses strings of 0's and 1's where the position of each digit in the string corresponds to a specific map object type and thus controls the display of that object type.

Programmers refer to this as a bit mask. (A bit is a binary digit. In binary there are only two digits, 0 and 1. In a bit mask 0 normally represents 'false' or 'off' and 1 represents 'true' or

'on').

In PFM each map object type has a code.

Refer to section 12.3 - on page 106 - for a list

of object types with codes in hexadecimal and decimal.

You do not have to be familiar with hexadecimal; the decimal equivalent works just as well. (In hexadecimal there are 16 digits, 0 to 9 plus a to f).

In the [Dictionary] 'bit mask' each bit (digit) refers to the object type code corresponding to the bit position, counting from the left of the string. E.g. the first bit refers to map object type 1, the second bit refers to map object type 2 and bit 20 refers to object type 20 and so on.

The PFM allows for a 'bit mask' to be defined for each map level.

The format is Level#RGNnn=<bit mask> where # indicates the level, nn the object class

(10, 20, 40 or 80) and <bit mask> is a string of 0's and 1's.

If you set the first bit in the 'bit mask' to 0, no objects of type 1 will display on the corresponding level, and if you set the first bit to 1 all objects of type 1 defined for the

specific level will display. This is explained much better by an example, see 4.5.3 below

Note that you still need to specify EndLevel=# or Data#= for each object to extend the object to the required level #. The dictionary 'bit mask' only filters out objects on layers they are defined on. However when using dictionary, you can set EndLevel= to your highest map level for all objects and control which type of objects display at which map levels with the dictionary 'bit mask'.

Since all object are by default displayed on the most detailed map level, level 0, it is not necessary to define a dictionary 'bit mask' for level 0.

The [Dictionary] tag is optional, but very useful to filter map objects per type per level.

4.5.3 Using Dictionary

The following is an extract from a PFM file defining a Dictionary 'bit mask' for polyline

[RGN40] objects. In this example major (thick) and principal (medium) highways (types 1,

2 & 3) will be displayed on levels 0 to 3, arterial roads (types 4 & 5) will be displayed on levels 0, 1 and 2 and residential streets (type 6) will be displayed on levels 0 and 1. No other polyline objects will be displayed. Level 4 is the last level of this map and cannot contain map objects. http://cgpsmapper.com/ 48 of 130

cGPSmapper Manual

The first two lines start with ';' indicating that these are comment lines and are ignored by

cGPSmapper. They are there so that you do not need to actually count the digits to determine which one refers to which object code.

[DICTIONARY]

; 0 1 2 3 4

; 1234567890123456789012345678901234567890123

Level1RGN40=1111110000000000000000000000000000000000000

Level2RGN40=1111100000000000000000000000000000000000000

Level3RGN40=1110000000000000000000000000000000000000000

Level4RGN40=0000000000000000000000000000000000000000000

[END DICTIONARY]

[RGN40]

Type=0x01

Label=Highway N1

EndLevel=3

Data0=(51.562624,-1.070283), (51.561637,-1.070592),

(51.561272,-1.069878), (51.560059,-1.064277)

[END]

...

In the same way we can use dictionary to filter polygon [RGN80] and point of interest

[RGN10 & 20] objects by defining 'bit masks' using Level#RGN80= and Level#RGN10=.

Dictionary for POI [RGN10 and 20] objects works slightly differently in that the POI objects are controlled in groups.

Refer to section 12.3 - on page 106 - for a list of object types with codes in

hexadecimal and decimal. Object type codes for POI consist of a group code and a subtype code. For the decimal codes the subtype is shown in brackets after the group code.

The hexadecimal POI object codes are of the form 0x##nn where ## is the group code and

nn the subtype code.

The Dictionary filter operates on the whole group and thus 'bit mask' position ## controls

POI group ##. As far as the Dictionary filter is concerned, you can ignore the nn subtype code.

The following PFM dictionary section will filter out all POI objects and display only dining type POIs 0x2A00 to 0x2AFF on levels 1 to 3.

In this example the comment lines count in hexadecimal, but you can count in decimal if you prefer. http://cgpsmapper.com/ 49 of 130

cGPSmapper Manual

[DICTIONARY]

; 0 1 2

; 123456789abcdef0123456789abcdef0123456789abcdef

Level1RGN10=00000000000000000000000000000000000000000100000

Level2RGN10=00000000000000000000000000000000000000000100000

Level3RGN10=00000000000000000000000000000000000000000100000

Level4RGN10=00000000000000000000000000000000000000000000000

[END DICTIONARY]

Note that the Dictionary 'bit mask' only operates on the objects defined on a layer. To define a specific object on a layer, a Data#= entry or an appropriate EndLevel= entry is required for the object.

Refer to section 4.4 (on page 42) for details.

http://cgpsmapper.com/ 50 of 130

cGPSmapper Manual

5 Routable maps

5.1 Introduction

Preparing maps data for making routable maps is a challenge due to additional complexity of the source data comparing to non-routable maps. There are several additional rules that have to be followed in order to have a working map at the end.

The most important thing is to prepare a correct network for roads – assigning route class value to roads does this. Meaning of this attribute is – importance of the road for routing

(which usually follow type of the road – but not necessary).

Road network should never be broken – network of most important roads (which are defined by road class attribute) cannot be broken, with lower class attributes insertion – or route calculation will fail.

5.2 General remarks

When preparing routable maps – following rules should be followed:

IMG file should be created with Level 0 equal to 24 – otherwise distance calculation might be wrong

A street cannot intersect itself (i.e. a roundabout from one object is not possible as it has common begin with end)

The minimal distance between Node ID points is 5.4 meters

When preparing routable preview map (what is required when mapset is composed from more than one IMG file – if routing has to work properly under MapSource software)

Roundabouts are not permitted

Any 2 different streets cannot be connected to each other by both sides

The minimal distance between NodeID points is 10 meters

Neither CGPSmapper nor cpreview generates automatically routable preview IMG (or MP – in case cpreview) file. Such routable preview map has to be created manually – MP file generated by cpreview program can be used as initial step.

5.3 Concept of input data

The idea of preparing routable data for cGPSmapper base on network of roads – where each road can be defined by its ID number (RoadID) and virtual set of connection points – nod points – where each such node is having its unique ID value (NodeID).

Whenever any two points of roads are sharing same NodeID value – cGPSmapper will make a connection between these roads at given points. http://cgpsmapper.com/ 51 of 130

cGPSmapper Manual

Having above picture, if we define in our data:

RoadID Node(point) NodeID

This will be understood by the program as follow – at point with index 3 of road 520763

(where each point of the road is indexed starting from beginning with index 0) we define

NodeID: 25008, then at point with index 2 of road 532674 we define NodeID: 25008 – that means – these roads are connected there – as they are sharing same NodeID value.

To code it in PFM we would look like:

[RGN40]

Label=road 1

RoadID=520763

Data0=…

Nod1=3,25008

[END-RGN40] http://cgpsmapper.com/ 52 of 130

cGPSmapper Manual

[RGN40]

Label=road 2

RoadID=532674

Data0=…

Nod1=2,25008

[END-RGN40]

5.4 Road class

The main attribute for routing calculation – as it has been mentioned already – is road class attribute. On one hand it is important to prepare data with non broken road network keeping specific road class, on the other hand it is important to keep well balanced percentage of roads with highest versus other road class roads.

In ideal situation – for usual mixed area (with city and rural areas) – percentage of roads with specific road class should be:

Road Approximate number of class

4

roads

0.5% - 1.5%

3 1% - 3%

2 4% - 7%

1 10%-20%

0 60%-80%

Road Class attribute is used as a main indicator for ‘fastest route’ calculation

5.5 Speed attribute

Second in importance of attributes used for routing calculation is speed attribute – which is used for ‘fastest route’ calculation.

Speed class

Speed attribute Comment

6

5

4

3

108 km/h

93 km/h

72 km/h

56 km/h

Can be adjusted in MapSource

Can be adjusted in MapSource

Can be adjusted in MapSource

Can be adjusted in MapSource

This attribute is independent of the route class attribute. http://cgpsmapper.com/ 53 of 130

cGPSmapper Manual

5.6 Routing attributes PMF

Routing attributes of the road in MP text format

[RGN40]

Label=road 1

RoadID=520763

Data0=…

RouteParam=2,3,1

Nod1=3,25008

[END-RGN40]

Route attributes are defined by a single key – RouteParam. Each attribute is separated by comma. At lease first two values has to be defined – rest of attributes is optional.

RouteParam=speed,road_class,one_way,toll,denied_emergency,den ied_delivery,denied_car,denied_bus,denied_taxi,denied_pedestr ain,denied_bicycle,denied_truck

Speed

Road_class

One_way

Toll

Denied_emergency

Denied_delivery

Denied_car

Denied_bus

Denied_taxi

Speed attribute

Road class attribute

0 both directions allowed

1 one way road, direction from beginning to end is allowed only

Default =

0

0 normal

1 toll road

Default =

0

0 normal

1 emergency car cannot use road

Default =

0

0 normal

1 delivery car cannot use road

Default = 0

0 normal

1 car cannot use road

Default = 0

0 normal

1 bus cannot use road

Default = 0

0 normal

1 taxi cannot use road

Default = 0 http://cgpsmapper.com/ 54 of 130

cGPSmapper Manual

Denied_pedestrian

Denied_bicycle

Denied_truck

0 normal

1 pedestrian cannot use road

Default = 0

0 normal

1 bicycle cannot use road

Default = 0

0 normal

1 truck cannot use road

Default = 0

For definition of connection – as it was written already –

Nod key is used. For each connection separate key is used :

[RGN40]

Label=road 1

RoadID=520763

Data0=…

RouteParam=2,3,1

Nod1=3,25008

Nod2=4,26005

Nod3=8,99330

[END-RGN40]

NodX=point_index,NodeID,bound

Point_index

NodeID

Bound

Index of the point in line definition. Starting point has index

0

Index of virtual routing point – NodeID

0 normal NodeID definition

1 bound point NodeID definition – this point will be used as entry/exit point of the map – connection to other separate IMG files

Default =

0

Bound attribute defines Entry/Exit points of single IMG file – if no NodeID point with such attribute is defined in the map – there is no way device can enter / exit the map. Typically every road crossing borders of the map, at the border, shall have NodeID point with this attribute set to ‘1’.

5.7 Restrictions

Restrictions define logical or physical turn restrictions in the map. Currently cGPSmapper is able to handle restrictions composed from two or three segments – respectively – 3 nod points or 4 nod points.

Restrictions can be defined either using MP text format or as ESRI import data. http://cgpsmapper.com/ 55 of 130

cGPSmapper Manual

Following our previous example

[RESTRICT]

TraffPoints=16968,25008,25009

TraffRoads=520763,532674

[END-RESTRICT]

Above definition will set a restriction when turning from road 520763 into road 532674.

However opposite direction will be still allowed – meaning – it will be allowed to go through road 532674 into road 520763 at crossing nod 25008.

Definition of the restriction is composed from set of 3 nod points – routable points – and two roads – with that we can define an unique route to be forbidden.

Second type of restriction cGPSmapper can handle at the moment, is a restriction composed from 3 roads. Such restriction will forbid route, which will follow only exactly the forbidden definition.

[RESTRICT]

TraffPoints=25009,25008,16968,16967

TraffRoads=532674,520763,520763

[END-RESTRICT]

Above definition will not allow creating a route going through roads 532674, 520763

(passing by nod 25009), 520763 (passing by nod 16968) and ending at node 16967. It will not of course forbid using a short cut of road 520762. http://cgpsmapper.com/ 56 of 130

cGPSmapper Manual

Restrictions – similar to roads – can apply only to certain vehicle types.

[RESTRICT]

Restriction section identifier.

TraffPoints=NodeID

1,NodeID2,NodeID3(

List of NodeID points composing the restrictions. Can be 3 points or 4 points.

,NodeID4)

TraffRoads=RoadID1

,RoadID2(,RoadID3)

RestrParam=restric tion_parameter_def inition

List of RoadID values composing the single restriction. Can be 2 or 3 roads, depending or restriction type.

Optional, defines vehicles to which apply the restriction.

This is a list of comma separated Boolean values (0,1).

By default restrictions apply to all kind of vehicles, if

RestrParam is used, then restriction will be ignored by specified types of vehicles.

[Emergency],[delivery],[car],[bus],[taxi],[pedestrian],[bicycl e],[truck]

Example:

RestrParam=0,1,1,0

Above definition will set the restriction to be applied for

Emergency, Bus, Taxi, Pedestrian and Bicycle. Restriction will NOT apply for Delivery and Car.

Restriction can be defined using ONLY neighboring nodes – there cannot be any additional nodes between

5.7.1 Restriction definition with ESRI format

Restriction can be defined also in a single DBF file – where all the parameters are stored.

To import them into the final IMG file – in the MP text file import section has to be defined

Refer to section 5.9.5 - on page 61. Required DBF field names can be found there.

5.8 Road signs

It is possible to define road sign information, which is shown as a routing guideline during navigation. This can include an information like exit number to be taken from the highway or additional direction information which usually can be found on a real road signs – e.g. direction toward a specific city.

Definition of the road sign in sense of logic is very similar to definition of restriction. It is defined as 3 NodeID routing points and 2 RoadID roads. http://cgpsmapper.com/ 57 of 130

cGPSmapper Manual

[SIGN]

SignPoints=NodeID1

,NodeID2,NodeID3

SignRoads=RoadID1,

RoadID2

SignParam=Type,Lab el

Sign section identifier.

List of NodeID points composing the road sign. Road sign will be defined only for route, which will go through routing points in the same order as defined in the list.

List of RoadID values composing the road sign. Road sign will be defined only for route, which will go through roads in the same order as defined in the list. This has to be consistent with routing points.

Define type of road sign and label to be shown

T Toward

O Onto

E Exit

Example:

SignParam=T,Bone Ville

5.9 Routing data defined for ESRI files

When working with ESRI data, routing data can be defined directly for shape files and stored in a DBF file. There can be only one DBF file which defines routing information.

This file is used also to define house numbering along streets as well as some other attributes.

Maproute program which is available for free as a generator of routable data by default generates DBF file which is ready to use in the [DEFINITIONS] section of the MP file.

For declaring the MP format [DEFINITIONS] section needs to be used. It is important to note that this section defines only what DBF file should be used and which fields from this particular DBF shall be used to define input data.

Section [DEFINITIONS] declare use of one or two DBF files. First one (declared with field

ROUTING) can hold following attributes:

- Routing data

- City / Region / Country attributes

- Zip code attributes

Second DBF file (declared with field RESTRICTIONS) is strictly used for restrictions for routing definitions.

5.9.1 Segment of the road

Routing data – when declared in DBF file – as well as all the additional attributes for roads

– are referring to a ‘segment of road’. Segment is basically a part of road starting at certain http://cgpsmapper.com/ 58 of 130

cGPSmapper Manual point index of the road (where index 0 refers to a starting point of the road) and ending at the point where next segment starts or at the end of the road.

Let assume – we have a following data in the DBF file :

NodeID RoadID Node LeftStart LeftEnd

1 100 0 10 12

2 100 2 14 20

100 5 0 0

3 100 7 22 28

That define first segment of road (road id = 100) starting at the beginning of the road up to point with index 2 – there (as in above example) road numbers will change from 10 (at point index 0) up to 12 (at point index 2). Next segment of this road is starting at point index 2 and ends at point index 5…

As seen in above example, segment definitions does not really needs to be aligned to the routable notes (even if that’s most common).

It is not required that data in the input file are sorted in any specific way.

5.9.2 Defining routing data in [DEFINITIONS]

General rule is that each row in the DBF file used in the [DEFINITIONS] section corresponds to single NODID point definition.

For a proper NODID point definition – in the input DBF file must exists fields which will at least define :

NODEID ID of the routable node (Second parameter in the NodX of the MP format NODEID)

ROADID

NODE

ID of the road (RoadID in the MP format)

Index of the point in line definition. Starting point has index

0 (First parameter in the NodX of the MP format)

Optional fields are :

BOUND Entry / Exit point of the map -

5.9.3 Defining attributes of road segments in [DEFINITIONS]

Same DBF file which define routing data can hold also following additional data – City /

Region / Country information for each segment of the road (for left and right side of the road), zip code information and house numbering along the road. http://cgpsmapper.com/ 59 of 130

cGPSmapper Manual

Each segment is defined by the NODE field – which defines at which point of the road segment definition starts. Segment definition is valid till next definition of segment or up to end of the road.

City / Region / Country information definition require definitions of the following fields :

LEFTCITYNAME Field holding city name on the left side of the segment

RIGHTCITYNAME

LEFTREGIONNAME

RIGHTREGIONNAME

Field holding city name on the right side of the segment

Field holding region name on the left side of the segment

Field holding region name on the right side of the segment

RIGHTCOUNTRYNAME Field holding country name on the right side of the segment

5.9.4 Defining restriction data in [DEFINITIONS]

Restriction data needs to be defined in a different DBF file than all the other attributes

(routing definition, other road attributes)

Each single restriction is defined in a single row of data in the DBF file. Following fields are required in order to define restriction data:

RESTRICTIONS Name of the DBF file with restrictions

NODEID1

NODEID2

NODEID3

NODEID4

First NODEID point of restriction

Second NODEID point of restriction

Third NODEID point of restriction

Fourth (only for 4-points restrictions) NODEID point of restriction

ROADID2

ROADID3

VEHICLEE

VEHICLED

VEHICLEC

VEHICLEB

VEHICLET

VEHICLEP

VEHICLEI http://cgpsmapper.com/

Second road ID of the restriction

Third (only for 4-points restrictions) road ID of the restriction

Optional, field holding Boolean value (1,0) whether restriction should apply to emergency vehicles

Optional, field holding Boolean value (1,0) whether restriction should apply to delivery vehicles

Optional, field holding Boolean value (1,0) whether restriction should apply to cars

Optional, field holding Boolean value (1,0) whether restriction should apply to buses

Optional, field holding Boolean value (1,0) whether restriction should apply to taxis

Optional, field holding Boolean value (1,0) whether restriction should apply to pedestrians

Optional, field holding Boolean value (1,0) whether restriction should apply to bicycles

60 of 130

cGPSmapper Manual

VEHICLER Optional, field holding Boolean value (1,0) whether restriction should apply to trucks

5.9.5 Secton [DEFINITIONS]

[DEFINITIONS]

Routing data, house numbers and restrictions section identifier.

Routing and road attributes part

Routing=file_name

Name of the DBF files with extension for routing and attribute definition.

This should be the full or relative path for the DBF file.

Bound=field_name

0 normal NodeID definition

1 bound point NodeID definition – this point will be used as entry/exit point of the map – connection to other separate IMG files

Default =

0

NodeID=field_name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the NodeID

RoadID=field_name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the RoadID

Node=field_name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the NODE

LeftCityName=field

_name

RightCityName=fiel

Name of the field - in the associated .dbf file - from which cGPSmapper will get the City name on left side of the road for the current segment d_name

LeftRegionName=fie ld_name

RightRegionName=fi

Name of the field - in the associated .dbf file - from which cGPSmapper will get the Region name on left side of the road for the current segment eld_name

LeftCountryName=fi eld_name

RightCountryName=f

Name of the field - in the associated .dbf file - from which cGPSmapper will get the Country name on left side of the road for the current segment ield_name

LeftZipName=field_ name

RightZipName=field

Name of the field - in the associated .dbf file - from which cGPSmapper will get the Zip code on left side of the road for the current segment

_name http://cgpsmapper.com/ 61 of 130

cGPSmapper Manual

LeftType=field_nam e

RightType=field_na

Name of the field - in the associated .dbf file - from which cGPSmapper will get the numbering type for the left side of the road. This field is optional – as type can be determined from LeftStart and LeftEnd fields.

0 No numbers

1 Even numbers only

2 Odd numbers only

3 Even and odd numbers on this side of the street me

LeftStart=field_na me

RightStart=field_n ame

LeftEnd=field_name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the ending number for the left side of

RightEnd=field_nam the road. e

Name of the field - in the associated .dbf file - from which cGPSmapper will get the starting number for the left side of the road.

Restrictions part

Restrictions=file_ name

Name of the DBF files with extension for restrictions

This should be the full or relative path for the DBF file.

NodeID1=field_name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the first point (NodeID) of the restriction

NodeID2=field_name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the second point (NodeID) of the restriction

NodeID3=field_name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the third point (NodeID) of the restriction

NodeID4=field_name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the fourth (optional – for 4-point restrictions only) point (NodeID) of the restriction

RoadID1=field_name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the first road (Road ID) of the restriction

RoadID2=field_name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the second road (Road ID) of the restriction

RoadID3=field_name

Name of the field - in the associated .dbf file - from which cGPSmapper will get the third (optional – for 4-points

VehicleE=field_nam e restrictions only) road (Road ID) of the restriction

If from defined field TRUE or larger than 0 value is taken – then restriction apply to emergency vehicles. http://cgpsmapper.com/ 62 of 130

cGPSmapper Manual

VehicleD=field_nam e

VehicleC=field_nam e

VehicleB=field_nam e

VehicleT=field_nam e

VehicleP=field_nam e

VehicleI=field_nam e

VehicleR=field_nam e

If from defined field TRUE or larger than 0 value is taken – then restriction apply to delivery vehicles

If from defined field TRUE or larger than 0 value is taken – then restriction apply to cars

If from defined field TRUE or larger than 0 value is taken – then restriction apply to buses

If from defined field TRUE or larger than 0 value is taken – then restriction apply to taxis

If from defined field TRUE or larger than 0 value is taken – then restriction apply to pedestrians

If from defined field TRUE or larger than 0 value is taken – then restriction apply only to bicycles

If from defined field TRUE or larger than 0 value is taken – then restriction apply only to trucks http://cgpsmapper.com/ 63 of 130

cGPSmapper Manual

6 National characters - indexing

Garmin map format allows to use several different character coding schema, 6-bit coding which allow to use only basic character set, 8-bit coding and 2 bytes coding. There are however some important constrains when selecting coding schema.

6.1 Codepages

Only 8-bit coding and 2-byte coding allows to use specific codepages. Map format allow to use following codepages:

Codepage Name

932 Japanes

949 Korean

874 Thai

1251 Cyrilic

1256 Arabic

1257 Baltic

1253 Greek

1254 Turkish

1255 Hebrew

It is important to know however that the only codepage fully supported by all (or most of) receivers is 1252 – Western European. It is possible to use other codepages – but then national characters may not be shown correctly.

The only fully supported codepage is 1252 – Western European, only with this codepage it is possible to use lowercase characters

Codepage 1252 is the only one that allows using full character set – including lowercase characters. No other codepage is capable to show lowercase characters. While using any other codepage – in the input MP file – all labels should be uppercase – or they will not be correctly presented in receiver.

For every codepage except 1252 All labels must be written in CAPITALS

6.2 Indexing

http://cgpsmapper.com/ 64 of 130

cGPSmapper Manual

With certain versions of cGPSmapper it is possible to create indexes that allow searching for certain POI, city or road. With more advanced version it is possible to create global index which collect information from several separate IMG files.

When creating global index, it is possible to index in a simply way (whole labels) or multibody (if label consist of more than one word, each word is indexed separately).

6-bit coding does not allow to create multi-body indexes.

At the moment cGPSmapper starting from version 0.94 is capable to create maps which handles correctly for indexing only following codepages:

Codepage Name

1251 Cyrilic

1256 Arabic

1257 Baltic

More codepages will be implemented in the future.

6.3 Preparing maps for indexing

When maps are indented to support ‘find’ functionality – by city name, region and country

– it is very important to use consistent information when preparing source data for compilation. cGPSmapper starting from version 0.95 during normal IMG file generation is also creating additional IDX file which is used later by cpreview program. IDX file contain index information of objects which is normally lost during conversion from MP format to final

IMG format.

After index generation with use of cpreview program, all IDX files can be removed.

It is important to define CODEPAGE in every MP file in the section [IMG ID] – to assure that indexing will work correctly.

By intention there is a special meaning of opening bracket ‘{‘ – if first character of street name is such opening bracket – street will not be indexed.

If opening bracket will be not used as a first character – then street will be indexed.

Whenever multi word indexing is used – all words within the label will be indexed except words after opening bracket.

6.4 Multi attributes assignment

http://cgpsmapper.com/ 65 of 130

cGPSmapper Manual

Single street can be assigned to more than one city (region) – what is useful whenever we want to make possibility of searching by city name and (for example) by quarter name.

Program can handle up to 3 names assigned to a single street.

[RGN40]

Label=road 1

[email protected]

RegionName=region

CountryName=country

Data0=…

[END-RGN40]

In above example street will be searchable by both names – city1 and city2 – both belonging to region.

[RGN40]

Label=road 1

[email protected]@city3

[email protected]

CountryName=country

Data0=…

[END-RGN40]

Above example shows how to use multi city and multi region configuration. cGPSmapper will assign city1 to region1 and both - city2, city3 to region2.

Depreciated format with CityIdx is supported as well:

[RGN40]

Label=road 1

[email protected]

Data0=…

[END-RGN40]

So the road will belongs to both cities – with index 2 and 3.

6.5 Indexing with cpreview program

Indexes for global search are prepared by cpreview external program. Cpreview program accepts same preview control file as one used by cgpsmapper with ‘pv’ command.

Cgpsmapper preview generation from now is considered as obsolete – however still available.

As for indexing it is important that a proper sort order – dependant of the codepage – is used, it is important that a proper codepage is defined in the control preview file. http://cgpsmapper.com/ 66 of 130

cGPSmapper Manual

[MAP]

CodePage=1252

FID=..

ProductCode=..

ID=..

The ID key defines map ID value of the preview IMG file. Usually it has to be set to 1. For the meaning of rest of the keys – please see next chapter.

Cpreview program should be used (same as cgpsmapper) from command line – windows shell: pv.txt

Where pv.txt is a control file for preview generation. As the result following files will be generated:

[name].mp

[name].tdb

[name].reg

And – with the version of the program able to generate global indexes:

[name].MDX

[name]_MDR.IMG

Global index file can be generated only with use of the Routable, Personal or Pro version of cGPSmapper.

If option ‘-r’ is used:

Cpreview pv.txt -r

Then first selection when searching for address is for region – instead country.

Refer to chapter on preparing preview files for rest of details.

If option ‘-m’ is used:

Cpreview pv.txt -m

Then each separate word in street name will be indexed. For example – Albert Einstein street can be found by ‘Albert’ and ‘Einstein’.

7 Protecting IMG files - locking

7.1 Responsibility

http://cgpsmapper.com/ 67 of 130

cGPSmapper Manual

It must be understood that author of the cGPSmapper did not implement locking mechanism by reverse engineering of any of the Garmin original software. All the work has been done basing on 3 rd

party software not coming originally from Garmin.

THERE IS NO RESPONSIBILITY ON THE AUTHOR SIDE FOR USING THE LOCK

TECHNOLOGY – END USER DECIDE ON OWN RESPONSIBILITY TO USE IT

KNOWING THAT THIS TOOL WAS NOT APPROVED BY GARMIN AND GARMIN

MAY NOT ACCEPT SITUATION THAT 3

RD

PARTIES ARE CREATING LOCKED

MAPS.

7.2 Technology

Starting from the version 0.91 of the cGPSmapper it is possible to prepare locked IMG files. Such files can be used with GPS device only with unique unlock key generated exclusively for the given device. Special registration of cGPSmapper is required.

Locked IMG contains some portion of the data crypt – this data is used by the device to decide whether the end user pose rights to use the map or not. Locking base on using several user defined values – some of them cannot be changed while some of them can.

Each IMG file is locked using 3 values:

FID

– Family ID value – unique identifier for map creator. FID value is hard-coded into the cGPSmapper registration – to ensure that each map creator is using unique value. Some registrations are holding range of allowed FID values – then this value has to be defined in the header of map.

Product Code

- Unique value for product identification – maximum allowed value is 60 therefore map creator can create up to 60 separate products.

Region Code

- Each product can consist from several separate regions. There could be up to

255 regions within single product, each region can have its own unlock code as well as it is possible to generate universal unlock key for every region within a product. It is worth to note that single map set can be build from several different regions – allowing to unlock only specific part of the whole map.

In order to use map in device – it is necessary to use 4 th

value – GPS ID of the device. This ensure that each sold copy of the map requires unique unlock key. GPS ID value can be usually found in GPS menu under system entry.

It is not possible to use unlock key generated for different GPS ID. The exception is

MapSource – which allow to see the map with any valid unlock key – not important for what GPS ID generated. http://cgpsmapper.com/ 68 of 130

cGPSmapper Manual

Starting from cGPSmapper version 0.94 it is possible to generate unlock keys in 2 forms – basing on GPS ID value or locking map to SD card. For that a special key generator is delivered which is working only on Pocket PC platform.

7.3 Locking maps with cGPSmapper

Locking with cGPSmapper is as easy as adding few more entries into the [IMG ID] section.

This is:

[IMG ID]

Lock=Y

ProductCode=

RegionID=

FID=

[END]

Lock=Y

ProductCode=

RegionID=

FID= this will turn on generation of the locked IMG file value within a range of 1 up to 60 value within a range of 1 up to 255 key valid only with multi-FID registrations

IMG created with such additional keys will be locked – meaning – useless without a proper unlock key.

FID value defines general identification of the whole mapset – it has to be unique within all maps uploaded to GPS / used with MapSource.

ProductCode value defines product ID within one FID. Each product is visible as a separate map in MapSource / GPS – however all maps with same FID are sharing the same global index file (MDR file) – therefore it is very important to build a common index file for all the products within the FID.

RegionID value defines a single region within map – which might be unlocked separately.

It means that map can be unlocked only in a part – not the whole map at once. Please note – when preparing unlock key – if RegionID is set to 0 (zero) – then it will unlock all regions in the map at once.

7.4 Creating preview – mapset

As locking introduces several new possibilities of creating products, it is important to understand differences. http://cgpsmapper.com/ 69 of 130

cGPSmapper Manual

As it has been mentioned already – single product (mapset) can contain several different regions. Each region may be unlocked separately or end user can use universal unlock key.

To achieve that – there are some changes in the preview control file.

First of all – section [MAP]

[MAP]

Lock=Y

ProductCode=

FID=

Lock=Y this will turn on generation of the preview for locked IMG files

ProductCode= value within a range of 1 up to 60 – must be consistent with detail

IMG files – all IMG files must belongs to same product

FID=

Unique map creator identification, if value used is inconsistent with the one defined by the cGPSmapper registration – it is automatically fixed

Section [FILES]

[Files] region=1,region1 img=10002011.img img=10002012.img img=10002013.img region=2,region2 img=10003011.img

...

[END-Files]

It is important to note one new key – region – which is used to define to which region belong following IMG files. In the example above – files 10002011, 10002012, 10002013 belongs to region ID = 1 with name ‘region1’. File 10003011 belongs to region ID = 2 with region name ‘region2’.

It is important to ensure that region ID and product code values are consistent with IMG files itself – as during creation of the IMG file in the [IMG ID] such values are defined.

Failure to do so will result in not working mapsets! http://cgpsmapper.com/ 70 of 130

cGPSmapper Manual

7.5 Unlock codes

Along with cGPSmapper there is another program – cGPSmapperKey – which is used to generate unlock codes for products. Program can work in a batch mode or user enter mode.

To check how it can work in a batch mode just start the program and examine the help screen.

To generate unlock key following information needs to be provided:

FID

ProductCode

RegionID

GPSID

Expiration date (if exist)

Note on RegionID – to generate universal unlock code working for every region within a given Poduct Code put ‘0’.

Note on Expiration date – if unlock code shall not expire – then put ‘0’

7.6 Unlocking maps on SD card

Second method of unlocking maps is to distribute them on SD memory cards with

GMAPSUPP.UNL file.

Whole process of distributing maps should be similar – create locked detailed IMG files, prepare appropriate preview files and at the end – creation of GMAPSUPP.IMG file. This file should be then placed in a GARMIN folder at SD card.

In order to enable the map on this particular card, unlock code specific to the card has to be created (in opposite to unlock code specific to the GPS ID value). For that SDLock tool has to be used. This tool is able to retrieve SD serial ID value and generate GMAPSUPP.UNL file that will unlock map on a particular SD card.

SDLock tool – as an optional part of cGPSmapper package – is a Windows Mobile software running on a PocketPC. This special platform requirement comes from the fact that usual PC is not able to read the serial ID value of SD card – while all PocketPC devices have access to this value (of course when the SD slot is built-in into device).

SD card can be processed with SDLock tool before or after putting on the card

GMAPSUPP.IMG file. If GARMIN folder is not yet existing on the card – it will be created automatically by the tool.

In addition to the GMAPSUPP.UNL file – SDLocker will create also id.txt file which contains serial ID value of SD card. This file is only for information.

8 Creating custom type file

cGPSmapper creates custom TYP files when invoked with the ‘typ’ switch. For example, http://cgpsmapper.com/ 71 of 130

cGPSmapper Manual cGPSmapper.exe typ MyCustomTypes.txt

Your custom .TYP file may be combined with .IMG files into GMAPSUPP.IMG for uploading into a compatible Garmin GPSr using SendMap 2.0 v3.3 or later, available at

http://cgpsmapper.com/en/buy.htm. We believe that any Garmin receiver which works with Garmin’s POILoader may have custom type definitions installed with your .IMG file.

Installed .TYP files do not affect the rendering of Garmin maps – only GMAPSUPP.IMG files uploaded by SendMap.

The generated .TYP file may also be added to your Windows registry enabling MapSource to display your custom types. All installed mapsets are rendered with your .TYP file. This is useful for quickly testing and evaluating your custom types under development.

8.1 Creating the source file

The custom type input file is a simple text file. At this time we recommend using the .TXT extension so it will open with your default text editor.

[_ID] Section

The [_ID] section defines the Family ID (FID) that associates this custom type file with your map file. Product Code should be 1; your FID should match the FID declared in the

[MAP] section of your preview source file. This definition is used when viewing your custom types in MapSource.

[_id]

ProductCode=1

FID=888

CodePage=1252

[End]

[_drawOrder] Section

At a minimum, your input file must define the draw order for ALL polygon types – not just your custom ones. Even if you don’t define any custom polygon types in your source file, this section is mandatory. If a polygon type is not defined in the [_drawOrder] section, it will not be rendered on your GPSr. If a polygon type is not showing up, check to make sure that it is listed in your [_drawOrder] section, and that it has a higher priority number than any other overlapping polygons.

Each statement in the [_drawOrder] section includes the hex ID of the defined polygon type and its relative draw order. Higher numbers are rendered later. Therefore, a polygon defined with a priority of 1 will be drawn first, and overwritten by an overlapping polygon defined with a higher number (2-8). Priority numbers are between 1 and 8. For example, http://cgpsmapper.com/ 72 of 130

cGPSmapper Manual in the [_drawOrder] section below, a Shopping center (Type 8, priority 3) will be shown on top of a large urban area (Type 0x01, priority 1). http://cgpsmapper.com/ 73 of 130

cGPSmapper Manual

[_drawOrder]

;Type=POLYGON_CODE(HEX),PRIORITY

Type=0x01,1 ; Large urban area >200k

Type=0x02,1

Type=0x03,1

Type=0x04,1

Type=0x05,1

Type=0x06,1

; Small urban area <200k

; Rural housing area

; Military base

; Parking lot

; Parking garage

Type=0x08,3 ; Shopping center

Type=0x0c,2

Type=0x0e,2

Type=0x13,2

Type=0x14,2

Type=0x15,2

Type=0x16,2

Type=0x17,3

Type=0x18,3

Type=0x19,3

Type=0x1e,2

Type=0x1f,2

Type=0x20,2

; Industrial complex

; Airport runway

; Building/Man-made area

; National park

; National park

; National park

; City park

; Golf course

; Sports complex

; State park

; State park

; State park

Type=0x3c,8

Type=0x3d,8

Type=0x3e,8

Type=0x3f,8

Type=0x40,8

Type=0x41,8

Type=0x42,8

Type=0x43,8

Type=0x44,4

Type=0x46,2

Type=0x47,2

Type=0x48,3

Type=0x49,4

Type=0x4c,5

; Large lake (250-600 km2)

; Large lake (77-250 km2)

; Medium lake (25-77 km2)

; Medium lake (11-25 km2)

; Small lake (0.25-11 km2)

; Small lake (<0.25 km2)

; Major lake (>3.3tkm2)

; Major lake (1.1-3.3tkm2)

; Large lake (0.6-1.1tkm2)

; Major river (>1km)

; Large river (200m-1km)

; Medium river (20-200km)

; Small river (<40m)

; Intermittent water http://cgpsmapper.com/ 74 of 130

cGPSmapper Manual

Type=0x53,5

[end]

; Sand/tidal/mud flat

8.2 Custom Type Definition

Your custom type definitions will replace the default imagery on your GPSr or Mapsource.

All other objects will be rendered with their default imagery.

[_point] Definitions

Points (POIs) define your replacement bitmap for the associated POI type using the XPM format. For example,

[_point]

Type=0x01

Dayxpm=”16 16 2 1”

"XXXXXXXXXXXXXXXX"

"X X"

"X X"

"X X"

"X X"

"X X"

"X X"

"X X"

"X X"

"X X"

"X X"

"X X"

"X X"

"X X"

"X X"

"XXXXXXXXXXXXXXXX"

[end] defines a daytime replacement image for POI type 0x01 (Large city). The rendered image will be a 16 pixel square rectangle with a 1 pixel black border and a transparent interior, as shown in the rendering above.

Extended / marine types can be customized using full, 3-byte type definition :

Type=0x010402 (wreck) http://cgpsmapper.com/ 75 of 130

cGPSmapper Manual

In addition, you may also specify up to four language strings defining the default name for the POI category. This is the name displayed when the cursor is over an unlabeled object.

For example, string1=0x04,Large city string2=0x08,Ciudad grande

; 0x04 = English

; 0x08 = Spanish defines the string ‘Large city’ when the GPSr is set for English, and ‘Ciudad grande’ when the GPSr is set for Spanish. Refer to

section 12.3.4 (Custom types name substitution), on page 122 for more information about supported language types.

Point bitmap definitions may be up to 24 x 24 pixels and 254 colors. There may be different definitions for the daytime bitmap and the nighttime bitmap. For nighttime definitions, use Nightxpm=. If you do not plan to use Nightxpm, it is better to use xpm=

for a single bitmap definition which will be used in both day and night modes. The first line of the definition describes the bitmap dimensions, number of colors, and number of ASCII characters used to represent each pixel. We will use the following simple definition to describe the individual parts of the definition:

[_point]

Type=0x01

Dayxpm=”4 4 2 1”

"XXXX"

"X X"

"X X"

"XXXX"

[end]

Dayxpm=”4 4 2 1” declares that the definition is 4 pixels wide x 4 pixels tall, with 2 defined colors, and 1 character representing each pixel in the bitmap.

Bitmap colors are defined using hex RGB values. Each color should be declared explicitly

– cGPSmapper does not support reserved literals representing standard colors. The only literal allowed is ‘None’ for transparent pixels.

“ c None” color

;Special declaration for transparent

“X c #000000” ;Black

The first character is the ASCII character used to represent the associated color in the bitmap. In this example, we are using a space to represent transparent pixels and an ‘X’ to represent black pixels. Next is a tab, then the letter ‘c’ which indicates a color definition, followed by a space, ‘#’, then the hex RGB color value. http://cgpsmapper.com/ 76 of 130

cGPSmapper Manual

Following the color declarations is the bitmap description.

"XXXX"

"X X"

"X X"

"XXXX"

This definition describes a 4x4 rectangle with a black 1-pixel border and a transparent center.

Refer to

section 12.3.5 (How do I create XPM definitions?), on page 123 for a

discussion of how to create XPM descriptions using a graphics editor and conversion tools. http://cgpsmapper.com/ 77 of 130

cGPSmapper Manual

[_line] Definitions

Line definitions are used to replace the standard polyline types, including roads. There are two ways to define a line. You may either declare the line’s color and thickness attributes for its interior and border, or you may provide a custom bitmap. Both methods allow transparency in the definitions.

Line declaration method 1: Declare a line thickness and border thickness.

[_line]

Type=0x01

LineWidth=5

BorderWidth=1 xpm="0 0 4 0"

"1 c #20c818"

"2 c #309838"

"3 c #20c818"

"4 c #086808" string1=0x04,Toll Road string2=0x08,Carretera de pago

[end]

This definition specifies a replacement for polyline 0x01, Major highway. LineWidth is specified as 5 pixels, BorderWidth is specified as 1 pixel. xpm="0 0 4 0" ; Define both day and night colors

(4)

This line indicates that there is no pixel bitmap, only color definitions. There are 4 colors defined, 2 for daytime, and 2 for nighttime.

"1 c #20c818" ; Daytime interior color

"2 c #309838" ; Daytime border color

"3 c #20c818"

"4 c #086808"

; Nighttime interior color

; Nighttime border color

When describing lines using LineWidth and BorderWidth, note that the color declarations use a different format. The first character represents either daytime interior (1), daytime border (2), nighttime interior (3) or nighttime border (4).

As with POIs and polygons, you may use up to four language substitution strings for the generic type description. http://cgpsmapper.com/ 78 of 130

cGPSmapper Manual

Line declaration method 2: Describe a bitmap using XPM.

[_line]

Type=0x0a

Xpm="32 5 4 1"

"= c #b0b0b0"

" c none"

"3 c #585858"

"4 c none"

"================================"

" ======= ======= "

" ======= ======= "

" ======= ======= "

"================================"

;12345678901234567890123456789012 string1=0x04,Unpaved string2=0x08,Camino revistida

[end]

The first line of the xpm declaration indicates a definition 32 pixels wide, 5 pixels tall, with

4 colors, using 1 character for the pixel representations in the bitmap. This declaration uses a transparent background, represented by the space character in the ASCII bitmap. In the image above, notice that the transparency reveals whatever texture is underneath the line.

[_polygon] Definitions

Polygon definitions are limited to 32x32 xpm bitmaps using using 2 colors each for the daytime and nighttime definitions. They are tiled when rendered. http://cgpsmapper.com/ 79 of 130

cGPSmapper Manual

In this screen capture from a Garmin nüvi, four polygon types are shown. The one on the left is a custom definition (described below), and the following three are standard type

0x4F, 0x50 and 0x51. The black boxes show 32x32 tiles. Notice that the leftmost tile uses two colors, while the next three tiles use transparency. When defining a polygon bitmap, transparency may be used in either the foreground or background color position.

You may define 2 colors, which will be used for both day and night rendering, or 4 colors with colors 3 and 4 used for nighttime rendering. http://cgpsmapper.com/ 80 of 130

cGPSmapper Manual

[_polygon]

Type=0x4e string1=0x04,Wilderness string1=0x08,Yermo xpm="32 32 4 1"

"! #faf889" ;

"# #77c1c2" ;

"3 #77c1c2" ;

"4 Nighttime

"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

"#!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!"

"#!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!"

"!!!!##!!!!!!!!!!!!!!!!!!!#!!!!!!"

"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

"!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!"

"#!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!"

"!!!##!!!!!!!!!!!!!!!!!!#!!!!!!!!"

"!!!!#!!!##!!!!!!!!!!!!!#!!!!#!!!"

"!!!!!!!!##!!!!!!!!!!!!!!!!!!!!!!"

"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

"!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!"

"!!!!!!!!!!!!!!!!!!!!!!##!!!!!!!!"

"!!!!!!!#!!!!!!!!!!!!!!#!!!!#!!!!"

"!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!!"

"!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!"

"!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!"

"!!!!!##!!!!!!!!!!!!!##!!!!!!!!!!"

"!!!!!!#!!!##!!!!!!!!!!!!!!!!!!!!"

"!!!!!!!!!!##!!!!!!!!!!!!!!!!!!#!"

"!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!"

"##!!!!!!!!!!!!!!!!!##!!!!!!!!!!!"

"!!!!##!!!!!!!!!!!!!!#!!!!!!!!!!!"

"!!!!!#!!!!!!!!!!!!!!!!!!!!!!!#!!"

"!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!"

"!!!!!!!!!!!!!!#!!!##!!!!!!!!!!!!"

"!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!"

"!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!"

"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

"!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!"

"!!#!!!!!!!!!!!!!!!!!!!#!!!!!!!!!"

[end] http://cgpsmapper.com/ 81 of 130

cGPSmapper Manual

8.3 Putting it all together

If you are serious about creating custom types, I recommend that you prepare a small Polish format test file so that you can quickly check your work. Once you have things the way you want them, then you should apply your TYP file to your larger maps.

I use MapSource to test my work in progress, as it is much quicker than making a

GMAPSUPP.IMG file and downloading it to the unit. Once I’m satisfied with the appearance in MapSource, then I proceed to do the download and inspect the results on the

GPSr. Working with small files makes this process much, much easier.

I’ve also created a template .MP file formatted to fill the nuvi screen exactly. This makes it easy to compose test images that won’t be blocked by the menu and on-screen zoom buttons. It’s fairly simple to create such a template for your specific unit, and it will save you a lot of time in the long run. I recommend it.

Workflow

• Create a .MP file with the object types you are customizing. See CustomDemo.mp for an example. Select all of the objects in the file and drag them a location near where your GPSr thinks it is. When you look at your files on the GPSr, you’ll only have to drag the map a little bit to see the results. Compile your .MP file.

• Create a .TXT file with your custom type definitions. Use CustomTypesDemo.txt as a starting point to create your own variations.

• Compile your custom type file with cGPSmapper, using the typ switch: cGPSmapper typ CustomTypesDemo.txt

• Use Sendmap 2.0 v 3.3 to assemble your .img file and your .typ file into a single

GMAPSUPP.IMG.

• Download GMAPSUPP.IMG into your GPSr. Turn off any loaded mapsets other than your .IMG file to make it easier to find and view your work.

• Repeat. http://cgpsmapper.com/ 82 of 130

cGPSmapper Manual

Sample screens from MapEdit of CustomDemo.mp:

http://cgpsmapper.com/ 83 of 130

cGPSmapper Manual

Sample screen from MapSource of CustomDemo.img:

http://cgpsmapper.com/ 84 of 130

cGPSmapper Manual

Sample screens from nüvi:

Standard roads and cities Custom roads and cities

Standard Scrub, camping, mountain range Custom scrub, camping, mountain range http://cgpsmapper.com/ 85 of 130

cGPSmapper Manual

9 MapSource

MapSource is Garmin's Windows (and only Windows!) PC based GPS interface program.

As with most similar programs, it allows upload and download of waypoints, routes and tracks.

Of more interest to us, is the fact that it is also capable of displaying vector-based mapping on the PC, and also uploading the map data to mapping-capable GPS units.

The MapSource program is included with maps bought from Garmin. The same program is shared between the various map sets that Garmin supplies. Recently, Garmin have been supplying MapSource 'Trip and Waypoint manager' free with their mapping GPS units.

This program can also be configured to read custom maps.

It was largely the fact that MapSource has to be able to read these maps, that enabled cGPSmapper to be written because the developer was able to use MapSource as a diagnostic tool.

9.1 Installing maps to be used with MapSource

With the most recent version of cGPSmapper sample installation script for Gdansk

Routable map is distributed. It requires use of Inno Setup. It simplify installation of map to be used by MapSource to the following steps:

- Build detailed IMG files with use of cGPSmapper

- Build preview files with use of cpreview

- Build preview IMG file from MP file created by cpreview using cGPSmapper

- Prepare installation setup using prepared Inno Setup script

- Distribute map

Below topics are still valid – to be aware of issues when installing maps to be used by

MapSource – however in most of the cases use of installation script will be just enough.

The only thing to take care is to update FID value in the script as well as names of files to be installed.

9.2 MapSource Data structure

MapSource arranges its map sets as 'products'. Each product - such as 'Metroguide Europe' or 'U.S. Topo' has a top-level 'preview' map, and several/many 'detail' maps. The detail maps can be graphically selected with the program, for upload to the GPS.

Internally, these map sets are configured using data in the Windows registry. Each product requires three registry entries. One entry points at the preview map, one at a 'tdb' file, and one at the location of the detail maps. If you wish to install a custom map set into

MapSource, you will need to (a) create the preview map and the tdb file, and (b) create the registry entries to tell MapSource where your files are located.

More recent map products, with routing information - such as Metroguide - are registered in a slightly different way. http://cgpsmapper.com/ 86 of 130

cGPSmapper Manual

9.3 Creating preview map files

To create the preview and tdb file, you will need to run cpreviw program responsible for creating all the control files required by MapSource software.

From version 0.98 of cGPSmapper it is no longer possible to use cGPSmapper program to generate preview files. Only cpreview program can be used.

C:\mymaps> cpreview mypv.mp

It is important to note that cpreview does not generate final preview IMG file – instead it does create an MP preview file which has to be converted to IMG file using cGPSmapper.

The main gain is that now it is possible to edit / change the preview IMG file – doing all the edits in the MP generated file.

It is required to compile MP file created by cpreview in order to get IMG file. As IMG file used for preview usually is named by name – not by numbers, preferred method of compilation is:

C:\mymaps> cgpsmapper mymap.mp

From version 0.99 of cGPSmapper, cpreview program does allow to create ‘empty preview’ files – all the detailed IMG files are processed without reading details – no spatial data are processed, only generic boundary is taken. No index file is created. Option ‘-x’ will switch cpreview into such generic mode.

C:\mymaps> cpreview mypv.mp –x

9.4 PFM format of preveiw control file

The preview control file – used with cpreview program is a text file with two sections inside – [MAP] section which defines general attributes of the map-set to be generated and

[FILES] – variable length section which lists all the detailed IMG files to be included into the map-set.

Cpreview program after processing the control file will generate at least following files –

MP file and TDB file – that’s are extension of the created files, because exact naming depends of the [MAP] configuration section.

For further details of index creation see section 6, on page 64 which explain more about

global index file creation done by cpreview.

9.4.1 Structure of the preview control file.

The basic structure of the preview control file is shown below: http://cgpsmapper.com/ 87 of 130

cGPSmapper Manual

[MAP]

FileName=..

MapSetName=..

ProductCode=..

ID=00000001

Levels=..

Level0=..

[END-MAP]

[FILES] img=.. img=..

..

[END-FILES]

Exact format of the preview control file -

[MAP]

FileName=xxxxxx x

MapsourceName=x xxxxxx

MapSetName=xxxx xxx

CDSetName=xxxxx xx

Name of the filename to be created – excluding extension, which is added automatically – TDB, MDX. Cannot use period ‘.’ as well as it is strongly recommended to not to use space character.

Example:

FileName=MyMaps

The Product name. This field is not displayed on the GPS unit. This field is displayed on the product menu bar and product menu in the MapSource software.

The Area name. This field is the second field displayed on the GPS unit under the "Map Information" section. It is displayed in the MapSource software on the "maps" tab when the map is selected and in the Map Properties window.

The CD Set Name. This field is not displayed on the GPS unit. This field is displayed in the MapSource software when displaying the Product Information. http://cgpsmapper.com/ 88 of 130

cGPSmapper Manual

MapVersion=nnn

The software version of the CDSetName. This field is not displayed on the GPS unit. This field is displayed in the

MapSource software when displaying the Product

Information. It will be displayed as n.nn.

For example:

MapVersion=153 will be displayed as

Data Version 1.53

Copy1=xxxxxx

This field can only contain numeric characters and must be three characters long (i.e. 000 through 999).

The first line of the copyright text associated with the

CDSetName. This field is not displayed on the GPS unit.

This field is displayed in the MapSource software when displaying the Product Information.

Copy2=xxxxxx

If you wish to include a copyright symbol ("©") in your text, you can do in your favourite text editor. Hold down the ALT key, type the numbers 0169 on the numeric keypad and then release the ALT key. You must use the numbers on the numeric keypad as opposed to the numbers across the top of the keyboard. You must also have Num Lock turned on.

The second line of the copyright text associated with the

CDSetName. See above.

Copy3=xxxxxx

CodePage=nnn

LblCoding=n

FID=n

ProductCode=n

The third line of the copyright text associated with the

CDSetName. See above.

Code page for the index files. Has to be consistent with coding in all IMG files included into map-set. Important when global index file is created.

Refer to section 6 (on page 64) for details.

Label coding for the index files. Has to be consistent with coding in all IMG files included into map-set. Important when global index file is created.

Refer to section 6 (on page 64) for details.

FID identifier used for map-set. Has to be consistent with coding in all IMG files included into map-set. Important when using lock feature of cGPSmapper.

Refer to section 7 (on page 67) for details.

Product code of the map-set. Allow creating several separate products (map-sets) within one FID. This value cannot be higher than 60. Has to be consistent with coding in all IMG files included into map-set. http://cgpsmapper.com/ 89 of 130

cGPSmapper Manual

ID=n

ID value of the preview IMG file. It is strongly recommended to set this value always to 1

Example:

ID=1

HeightProfile=x

Allow to see height profile under MapSource. Height profile is defined by use of contour lines – types 0x20, 0x21, 0x22.

Levels=n

Definition of basic parameters for the preview IMG file. For the preview files it is recommended to use only 2 layers maps.

Example:

Levels=1

Level#=g

Level0=14

Level1=13

Refer to section 4.2.1 (on page 9) for details.

Grid size for layer # (layer 0 is the most detailed one). It is very important to set the levels setting to lower details than the most generic (lowest detail) layer of any of the IMG file included into the map-set.

It means that, if header of the detailed IMG file defines levels as below:

[IMG ID]

..

Levels=4

Level0=24

Level1=22

Level2=20

Level3=19

Then the highest allowed level setting for level0 of the preview map is 18

Levels=1

Level0=18

Level1=17

Refer to section 4.2.1 (on page 9) for details.

Second required section is a list of IMG files to be included into the map-set. Section

[FILES] contains references (filenames) of all the IMG files to be used to create a complete map-set. If available – cpreview file will build a complete global index for all the IMG files included. http://cgpsmapper.com/ 90 of 130

cGPSmapper Manual

There must be at least one input file.

It is required that detail IMG files are named with DIGITS only and extension .IMG

This limitation is not valid for preview IMG file only.

Due to MapSource special requirements, it is forbidden to use name 00000008.img for any detailed IMG map file.

[FILES]

IMG=xxxxxxx

Full filename of the IMG file to be included into the map-set.

Can be defined as relative path or absolute path name.

Example – list of included IMG files with absolute paths

[FILES]

IMG=c:\myMaps\imgs\00000021.img

IMG=c:\myMaps\imgs\00000022.img

IMG=c:\myMaps\imgs\00000023.img

Example – list of included IMG files with relative paths

[FILES]

IMG=.\..\img\00000021.img

IMG=00000022.img

IMG=00000023.img

Relative paths are processed according to execution of the cpreview program from the command line.

9.5 Making the registry entries

To make the registry entries, you can use 3 different methods:-

1. Use the windows registry editor ( Start/run/regedit ) to directly edit the registry - take EXTREME care doing this, as you can completely destroy your PC configuration if you do something silly.

2. Create or edit a registry file, which you can simply double-click to create your entries. You can get a template for this file by doing a registry export. Note that you need double slashes in filenames. If you are distributing your maps to others, this is the simplest way to get them to make the necessary registry changes.

3. Use a GUI program such as MapManager - http://vip.hyperusa.com/~dougs/GPSSM/index.html#GPSMM

The entries are stored in the registry under:

HKEY_LOCAL_MACHINE\SOFTWARE\Garmin\MapSource\Products\## http://cgpsmapper.com/ 91 of 130

cGPSmapper Manual

Where ## is the unique product ID, and must correlate with the number you specified with

ProductCode=##

in your mypv.mp file.

The 3 entries are;

• Tdb : the name of the tdb file

• Bmap : the name of the preview img file

• Loc : the directory where the detail img files are stored.

An example registry file:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Garmin\MapSource\Products\6

67]

"Loc"="D:\\maps\\garmin\\NZ Topo\\"

"Bmap"="D:\\maps\\garmin\\NZ Topo\\NZTopo.img"

"Tdb"="D:\\maps\\garmin\\NZ Topo\\NZTopo.tdb"

You only need to do this registration once - for each 'product' that you create. As you edit or create more detail maps, and/or update your preview maps, as long as they stay in the same place on your disk, you do not need to do anything to your registry. http://cgpsmapper.com/ 92 of 130

cGPSmapper Manual

9.6 Loading the maps into the GPS

1. Choose the map(s)

Once in MapSource, the map(s) to be loaded in the GPS must be chosen first.

This is done via any of the following methods:

Under Switch to Product, in the View menu.

Via the corresponding combo located in the View Toolbar.

The quantity of maps available will vary depending on the maps installed. http://cgpsmapper.com/ 93 of 130

cGPSmapper Manual

2. Select the map(s)

The map(s) to be loaded in the GPS must be selected.

This is done via any of the following methods:

Under Map, in the Tools menu.

Via the respective button located in the Tools Toolbar.

Once this is done, the map to be selected must be clicked (in order to select it).

The maps to be transferred to the GPS (and the bytes they occupy) will be shown to the left of the screen.

3. Send the map(s) to the GPS

This is done via any of the following methods:

Under Send To Device, in the Transfers menu.

Via the respective button located in the Transfer Toolbar.

Once the transfer is done, the program will confirm the map(s) transfer finished successfully. http://cgpsmapper.com/ 94 of 130

cGPSmapper Manual

10 FAQs

10.1 Name variables and where they show up

10.1.1 Introduction

There are three locations where the names of maps, map sets, and related information

("name data") are specified:

• the PFM file;

• the PFM Preview file; and

sendmap options.

There are various locations where the name data is displayed both on the GPS unit and in

the Garmin MapSource software. Figure 4 shows the relationship between where the name

data is specified and where it is displayed.

11.2.2 Sendmap

The name data specified when using Sendmap is used to describe a collection of PFM files.

The name data is specified as command line options.

Sendmap –M

The Area name. This field is the second field displayed on

"MapSetName" filename1.img

[filename2.img] […] the GPS unit under the "Map Information" section. Sendmap is not used with the MapSource software. http://cgpsmapper.com/ 95 of 130

cGPSmapper Manual

Figure 4: How name variables are shown

10.2 Activation of maps in the GPS

1. Activation of the map(s) in the GPS

If the map image is not shown in the GPS, check that the map is selected to be shown.

The method for doing this depends on the GPS model. For example you may find it on the MapSource Info screen, accessed from the unit's main menu or on the information page of the Setup Map screen. Consult your unit's documentation to find out how to access this screen display. http://cgpsmapper.com/ 96 of 130

cGPSmapper Manual

2. Activation / Deactivation of the GPS' base map

Loaded maps usually have more detail of the zone than the base map (which comes from the factory with the GPS).

Some GPS models allow you to deactivate the base map in the GPS (so that zoom levels do not mix up with the other loaded maps). Depending on the GPS model, this is done via the option Basemap in the Map tab, in the Setup Map menu (which can be accessed by pressing the key Menu once in the map page).

Note that you can also use the Transparent= line in your PFM file header section.

Refer to section 4.2.4.1 (on page 19) for details.

10.3 Saving Objects as [RGNx0] vs. [POI], [POLYGON], [POLYLINE]

10.3.1 Equivalences

Notation 1 Notation 2

[POLYLINE] [RGN40]

[POLYGON] [RGN80]

[POI]

City=Y

[RGN20]

...

[END]

[POI]

City=N

(or no city key)

...

[RGN10]

[END]

[POI] covers both [RGN10] and [RGN20]. The difference is made with the 'City=y' key.

10.3.2 Impact of saving objects in one format or the other

There is no impact. [POI], [POLYGON], [POLYLINE] are more understandable to the human reader.

10.3.3 Preferred method

There is no preferred method. http://cgpsmapper.com/ 97 of 130

cGPSmapper Manual

10.4 Relationship between levels in the detail maps and the preview maps

The lowest zoom level in the PV should be the smaller at least by one from the highest in the detailed map.

The preview is displayed up to this switch over point.

When you zoom in more in MapSource the GPS detail map is displayed.

Example

In your detail IMG file:

Level0=24

Level1=22

...

Level4=18

Zoom0=0

Zoom1=1

..

Zoom4=4

And in the preview file:

;Smaller by one from the top level in the detailed map – which is Level4=18

Level0=17

Level1=16

Zoom0=5

Zoom1=6

(Does not overlap with detail IMG file)

10.5 Filling (Gas) Stations not showing in the find function of the GPS

Use 0x2F01 (instead of 0x4400) if you want to show it in the find function of your GPS receiver.

10.6 Islands and Clearings

Islands, clearings, etc. are created by defining polygons with "holes" in them. For example, a hole in a polygon representing a lake or the sea will be displayed on your GPS as an island. For this reason, the following technique is often referred to loosely as creating an island. However the same technique may also be used for creating holes in other polygon types. For example, a hole in a wood would represent a clearing and so on.

A hole can be defined in any region by including a second or subsequent Data#= line with the same level, or layer, number as the enclosing polygon. The Data# line defining the hole should come after the Data#= line for the enclosing polygon and should define a polygon which is wholly contained within the enclosing polygon.

For example, here is a definition of a simple wood containing a clearing: http://cgpsmapper.com/ 98 of 130

cGPSmapper Manual

[RGN80]

Type=80

Label=Some Wood

Levels=3

Data0=(52.636651,2.189029),(52.844893,4.709805),(51.465289,5.

707034),(49.799352,4.128087),

(50.033624,2.853849),(51.283077,1.524209)

Data0=(51.595440,2.604541),(52.272227,3.961882),(50.762472,4.

405095),(50.710411,3.906480)

[END] http://cgpsmapper.com/ 99 of 130

cGPSmapper Manual

11 Glossary

♣ This section will be further documented in a future version of this manual.

Term

Vector Map

cGPSmapper

sendmap

PFM

Definition

Map compiler.

Polish Format is a convenient, text based, format used for saving map information on a computer and transferring map information between computer programs. Polish format map files cannot be sent directly to a GPS unit. First they must be converted into a format which is understandable to your GPS receiver. A program that performs this conversion is called a "map compiler". http://cgpsmapper.com/ 100 of 130

cGPSmapper Manual

12 Appendices

12.1 cGPSmapper compilation Errors and Warnings

The table below contains a list of the different errors and warnings that could occur at compilation time. Codes starting with either "E" or "R" apply only to routable maps. Codes starting with "W" are warnings. Although the compilation will stop after an error occurs, it will not stop when a warning message occurs.

♣ This section will be further documented in a future version of this manual.

V Code Warning / Error Text

W001 Could not open include file.

W002 No zip codes file defined.

W003 No highways file defined.

Description / Workaround

W004 Cannot determine type of element, type cannot be defined before RGNTYPE.

W005 Error reading data.

W006 Null exit facility name for

RGN10 element.

W007 Wrong coordinates. E.g. incorrectly separated coordinates like

(2.2,3.2),,(2.2,2.3)

W008 Element spans more than 10 degrees!

W009 Invalid [WPT] section -

RGNTYPE is not defined.

W010 ELEVATION parameter is depreciated.

W011 Invalid [PLT] section -

RGNTYPE is not defined.

W012 - no longer used

W013 TRESIZE smaller than 100.

W014 RGNLIMIT should not be smaller than 500.

W015 TRESIZE larger than 5000 -

TRESIZE is fixed (i.e. the

TRESIZE is automatically changed to 5000).

W016 - no longer used

W017 - no longer used

A small RGNLIMIT derives in the creation of a bigger map, with no gain in speed.

When the TreSize value in [IMG ID] is too big - the resulting map IMG file renders more and more slowly on a GPS receiver. This value should never be higher than 5000. If the value is larger than

5000, it is internally changed to 5000 and the warning is shown.

Note that for a preview map, this warning won't be shown. There is a new key in [IMG ID] to specify that a preview map is created ('Preview=Y'). http://cgpsmapper.com/ 101 of 130

cGPSmapper Manual

V Code Warning / Error Text

W018 ID of map should be larger than 0x10000 (65536) or may not work in MapSource.

W019 More than ONE background object defined - switching to full manual background creation mode.

W020 Object has more than 255 nodes - it is allowed only for the PREVIEW map - did you forget to add 'Preview=Y' in

[IMG ID]?.

Missing section - polygons may not be visible.

Description / Workaround

This error means that more than one

[BACKGROUND] object is defined. Defining more than one background object is not recommended. between 0 and 31.

W023 Wrong index information.

Search by city / region / country will NOT work.

Each city which is intended to be used as attribute for POI or road must has its representation as object

(RGN20) object – otherwise index for search functionality will not work

W24 Type of element should not be 0.

E001 Could not open file with country name definitions.

E002 Invalid name for Country

Field in [DEFINITIONS].

E003 Could not open file with region name definitions.

E004 Invalid name for Region

Field in [DEFINITIONS].

E005 Invalid name for Region

Country Idx in

[DEFINITIONS].

E006 Could not open file with city name definitions.

E007 Invalid name for City Field in

[DEFINITIONS].

E008 Invalid name for City Region

Idx in [DEFINITIONS].

E009 Invalid name for ZipCode

Field in [DEFINITIONS].

E010 Invalid name for Highway

Region Idx in

[DEFINITIONS]. http://cgpsmapper.com/ 102 of 130

cGPSmapper Manual

V Code Warning / Error Text

E011 Invalid name for Highway

Field in [DEFINITIONS].

E012 Invalid sequence in

[COUNTRIES].

E013 Invalid sequence in

[REGIONS].

E014 Invalid sequence in

[CITIES].

E015 Invalid sequence in

[ZIPCODES].

E016 Invalid sequence in

[HIGHWAYS].

Description / Workaround

E017 Cannot parse coordinates.

E018 Type of element for

RGN40/RGN80 cannot be higher than 128.

₪ E019 Street cannot intersect with itself! Split this element!

E020 No more than 8 active layers allowed. e.g. (2.3.4,2.2)

Only applies to a routable map.

E021 Grid definition for layers must be descending (check

Level# keys in [IMG ID]).

E022 STREETNUMBERSSTART and

STREETNUMBERSEND keys are no longer supported

- use ROADID instead.

E023 Layer detail level too high to cover non-splittable objects from lower layer - decrease detail level (use higher

Level#).

This error is similar to error E024, but this error applies to preview maps.

The maximum size of any object strictly depends on the bit resolution. For resolution 24, the maximum size ≈ 1.5 metre * 65535. Similarly, for resolution 23, the maximum size ≈ 3 metre *

65535. This means that if the object is too big to fit into the given layer of the map, the bit resolution of this layer needs to be decreased so the layer can accept bigger objects. http://cgpsmapper.com/ 103 of 130

cGPSmapper Manual

V Code Warning / Error Text

E024 Top layer detail level too high to cover entire map - decrease detail level of the less detail layer (use higher

Level#).

E025 Zoom definition for layers must be ascending (check

Zoom# keys in [IMG ID]).

E026 More than 65535 Tre regions were created in a single layer

- use bigger TRESIZE and

RGNLIMIT or split your map.

E027 Timeout limit - compilation interrupted because of the timeout set by administrator

E028

E029 ID of map is not an integer value.

E030 Name of the file for preview must be composed always from 8 digits

E031 For the preview creation name '00000008.img' is not permitted

E032 Layer 0 of the map cannot be empty

E033 Less than 2 layers not allowed

E034 Not enough columns for

XPM bitmap definition

Description / Workaround

This error needs a little more explanation since it is often a source of confusion.

The last layer (the empty one) must always have one 'tre region'. The maximum size of this region is

65535/2 * resolution (grid). If the map covers a large area, the selected grid may be too low to allow the desired 'tre region' to be created.

The maximum size of any object strictly depends on the bit resolution. For resolution 24, the maximum size ≈ 1.5 metre * 65535. Similarly, for resolution 23, the maximum size ≈ 3 meter *

65535. This means that if the object is too big to fit into the given layer of the map, the bit resolution of this layer needs to be decreased so the layer can accept bigger objects.

Used only in the Mapcenter special version

Region and Country information defined by

HIGHWAY is not consistent with definition of

CITY

Most detailed layer of the map cannot be empty http://cgpsmapper.com/ 104 of 130

cGPSmapper Manual

V Code Warning / Error Text Description / Workaround

definition

E036 ID of map cannot be higher than 268435455

(0x0FFFFFFF)

E037 City index beyond the number of defined cities.

E038

₪ R001 Cannot find segment for routing.

₪ R002 Routing between same points.

₪ R003 Routable object cannot be filtered - check your

[DICTIONARY] section.

₪ R004 Removing element which can be routable.

₪ R005 Maximum allowed NODID value is 1048575.

₪ R008 Too short road to be routable

- coordinates were aligned to same place

₪ R010 No data for routing - remove

'ROUTING=Y' from [IMG

ID] for non routable maps!

₪ R011 NODID points cannot be closer than 5.4 meter!

₪ R012 NODID point defined for non existing point of the road!

₪ R013 Restriction defined for non existing NODID

₪ R014 Several DataX key for routable road is not permitted

12.2 Exits

12.2.1 Valid exit facility types

Mnemonic Description

0x00 Truck/Lorry Stop / 24-hour Diesel Fuel With Restaurant

0x01 HGV / Diesel Fuel With Large Vehicle Clearance

0x02 Fuel http://cgpsmapper.com/ 105 of 130

cGPSmapper Manual

Mnemonic Description

0x03 Food / Restaurant

0x04

0x05

0x06

0x07

0x08

Lodging / Hotel / Motel

Auto service / Vehicle Repair and Service

Auto service / Diesel Engine Service

Auto service / Commercial Vehicle Wash

Camp / Campground and RV Service

0x09

0x0a

0x0b

0x0c

Hospital / Medical Facilities

Store / Automated Teller Machines

Park / Forest, Park, Preserve, or Lake

Point Of Interest / Useful Services, Sites, or Attractions

12.2.2 Directions

Mnemonic Description

I

O

B

EMPTY

Inner Side of

Outer Side of

Both Sides of

12.2.3 Facilities

Facilities can be combined - i.e. facility with Car Wash + Open 24 Hours is 0x48

Mnemonic Description

0x40 Open 24 Hours

12.3 cGPSmapper object types list

The list below contains the map element types and their associated codes in both hexadecimal and decimal format. This list is distributed with cGPSmapper in two formats: a text file (RGNtype.txt), and an Excel spreadsheet (RGNtype.xls). Both of these files can be found in the cGPSmapper installation directory. The Excel spreadsheet contains a graphical representation of many of the element types. http://cgpsmapper.com/ 106 of 130

cGPSmapper Manual

When a "Y" is present in the marine column (represented with a ), it indicates that the element is only valid when either: in the

[IMG ID]

section, there is a definition

Marine=Y in the element definition section (

[POI]

/

[POLYLINE]

/

[POLYGON]

), there is a definition

Marine=Y

12.3.1 [POI] types

Code

Code (Hex)

(Decimal)

N 0x0100-0x0500 256-1280

N 0x0600-0x0A00 1536-2560

N 0x0B00 2816

Filter Find

(Dec.)

1-5

6-10

11

(GPS)

N 0x0C00

N 0x0D00

3072

3328

12

13

N 0x0E00-0x1100 3584-4352 14-17

N 0x1400-0x153F 5120-5439 20-21

N 0x1E00-0x1E3F 7680-7743 30

N 0x2000-0x203F 8192-8255 32

N 0x210F 8463

N 0x2100-0x213F 8448-8511

N 0x2200-0x223F 8704-8767

N 0x2300-0x233F 8960-9023

N 0x2400-0x243F 9216-9279

N 0x2500-0x253F 9472-9535

33

33

34

35

36

37

N 0x2600-0x263F 9728-9791 38

N 0x2700-0x273F 9984-10047 39

N 0x2800-0x283F 10240-10303 40

N 0x2A00

N 0x2A01

10752

10753

42

42

N 0x2A02

N 0x2A03

N 0x2A04

N 0x2A05

N 0x2A06

N 0x2A07

N 0x2A08

N 0x2A09

N 0x2A0A

N 0x2A0B

N 0x2A0C

N 0x2A0D

N 0x2A0E

N 0x2A0F

N 0x2A10

10754

10755

10756

10757

10758

10759

10760

10761

10762

10763

10764

10765

10766

10767

10768

42

42

42

42

42

42

42

42

42

42

42

42

42

42

42

Description

City name (Point, fat, big)

City name (Point, big)

City name (Point, small)

City name (Point, small)

City name (Point, small)

City name (Point, big)

Region name (no Point, middle)

Exit

Exit (with facilities)

Exit (Restroom)

Exit (Convenience Store)

Exit (Weight Station)

Exit (Toll Booth)

Exit (Information)

Exit

Region name (no Point, small)

Dining (Other)

Dining (American)

Dining (Asian)

Dining (Barbecue)

Dining (Chinese)

Dining (Deli/Bakery)

Dining (International)

Dining (Italian)

Dining (Mexican)

Dining (Pizza)

Dining (Steak/Grill)

Dining (Bagel/Donut)

Dining (Cafe/Diner)

Dining (French)

Dining (German) http://cgpsmapper.com/ 107 of 130

cGPSmapper Manual

Code (Hex)

N 0x2A11

N 0x2B00

N 0x2B01

N 0x2B02

N 0x2B03

N 0x2B04

N 0x2C01

N 0x2C02

N 0x2C03

N 0x2C04

N 0x2C05

N 0x2C06

N 0x2C07

N 0x2C08

N 0x2C09

N 0x2C0A

N 0x2C0B

N 0x2C0C

N 0x2D01

N 0x2D02

N 0x2D03

N 0x2D04

N 0x2D05

N 0x2D06

N 0x2D07

N 0x2D08

N 0x2D09

N 0x2D0A

N 0x2D0B

N 0x2E01

N 0x2E02

N 0x2E03

N 0x2E04

N 0x2E05

N 0x2E06

N 0x2E07

N 0x2E08

N 0x2E09

N 0x2E0a

N 0x2E0b

N 0x2F00

N 0x2F01

Code

(Decimal)

10769

11008

11009

11010

11011

11012

11265

11266

11267

11268

11269

11270

11271

11272

11273

11274

11275

11276

11521

11522

11523

11524

11525

11526

11527

11528

11529

11530

11531

11777

11778

11779

11780

11781

11782

11783

11784

11785

11786

11787

12032

12033 http://cgpsmapper.com/

Filter Find

(Dec.)

42

43

(GPS)

43

43

43

43

44

44

44

44

44

44

44

44

44

44

44

44

45

45

45

45

45

45

45

45

45

45

45

46

46

46

46

46

46

46

46

46

46

46

47

47

Description

Dining (British Isles)

Hotel (Other)

Hotel/Motel

Bed & Breakfast inn

Camping/RV-Park

Resort

Museum/History

Library

School

Park

Zoo

Sport spark, Stadium (point)

Fair, Conference (point)

Place of Worship

Theatre

Bar

Cinema

Casino

Golf

Bowling

Ice/Sporting

Swimming

Sport Airport

Grocery

Pharmacy

Apparel

House and Garden

Computer/Software

Generic Service

Fuel/Gas

108 of 130

cGPSmapper Manual

Code Filter Find

Code (Hex)

N 0x2F02

N 0x2F03

N 0x2F04

N 0x2F05

N 0x2F06

N 0x2F07

N 0x2F08

N 0x2F09

N 0x2F0A

N 0x2F0B

N 0x2F0C

N 0x2F0D

N 0x2F0E

N 0x2F0F

N 0x2F10

N 0x2F11

N 0x2F12

N 0x2F13

N 0x2F14

(Decimal)

12034

12035

12036

12037

12038

12039

12040

12041

12042

12043

12044

12045

12046

12047

12048

12049

12050

12051

12052

N 0x2F15

N 0x2F16

N 0x3000

N 0x3001

N 0x3002

12053

12054

12288

12289

12290

47

47

48

48

48

N 0x3003

N 0x3004

N 0x3005

N 0x3006

12291

12292

12293

12294

48

48

48

48

N 0x4000-0x403F 16384-16447 64

N 0x4100-0x413F 16640-16703 65

N 0x4200-0x423F 16896-16959 66

N 0x4300-0x433F 17152-17215 67

N 0x4400-0x443F 17408-17471 68

N 0x4500-0x453F 17664-17727 69

N 0x4600-0x463F 17920-17983 70

N 0x4700-0x473F 18176-18239 71

N 0x4800-0x483F 18432-18495 72

N 0x4900-0x493F 18688-18751 73

N 0x4A00-0x4A3F 18944-19007 74

N 0x4B00-0x4B3F 19200-19263 75

N 0x4C00-0x4C3F 19456-19519 76

N 0x4D00-0x4D3F 19712-19775 77

(Dec.) (GPS)

47

47

47

47

47

47

47

47

47

47

47

47

47

47

47

47

47

47

47

Description

Airport

Bank

Marina

Parking

Restroom

Communication

Utility

Truck/Lorry Stop

Hospital

Justice

Concert hall (point)

Border Station (point)

Golf

Fish

Wreck

Marina

Gas

Restaurant

Bar

Camping

Park

Hospital

Information

Parking http://cgpsmapper.com/ 109 of 130

cGPSmapper Manual

N 0x6400

N 0x6401

N 0x6402

N 0x6403

N 0x6404

N 0x6405

N 0x6406

N 0x6407

N 0x6408

N 0x6409

N 0x640A

N 0x640B

N 0x640C

N 0x640D

N 0x640E

N 0x640F

N 0x6410

N 0x6411

N 0x6412

N 0x6413

N 0x6414

N 0x6415

Code Filter Find

Code (Hex)

(Decimal) (Dec.) (GPS)

N 0x4E00-0x4E3F 19968-20031 78

N 0x4F00-0x4F3F 20224-20287 79

N 0x5000-0x503F 20480-20543 80

N 0x5100-0x513F 20736-20799 81

N 0x5200-0x523F 20992-21055 82

N 0x5300-0x533F 21248-21311 83

N 0x5400-0x543F 21504-21567 84

N 0x5500-0x553F 21760-21823 85

N 0x5700-0x573F 22272-22335 87

N 0x5800-0x583F 22528-22591 88

N 0x5900

N 0x5901

N 0x5902

22784

22785

22786

89

89

89

N 0x5903

N 0x5904

22787

22788

89

89

N 0x5905-0x593F 22789-22847 89

N 0x5D00-0x5D3F 23808-23871 93

N 0x5E00-0x5E3F 24064-24127 94

N 0x6200 25088 98

N 0x6300

25344 99

25600

25601

25602

25603

25604

25605

25606

25607

25608

25609

25610

25611

25612

25613

25614

25615

25616

25617

25618

25619

25620

25621

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

Description

Restroom

Shower

Telephone

Skiing

Swimming

Dam

Generic Airport

Medium Airport

Small Airport

Heliport

Airport

Daymark, Green Square

Daymark, Red Triangle

Depth with point one decimal place

Height without point no decimal place

Bridge

Building

Cemetery

Church

Civil

Crossing

Dam

Hospital

Levee

Locale

Military

Mine

Park

Post

School

Tower

Trail

Tunnel

Ghost Town http://cgpsmapper.com/ 110 of 130

cGPSmapper Manual

Code (Hex)

N 0x6416

N 0x6500

N 0x6501

N 0x6502

N 0x6503

N 0x6504

N 0x6505

N 0x6506

N 0x6507

N 0x6508

N 0x6509

N 0x650A

N 0x650B

N 0x650C

N 0x650D

N 0x650E

N 0x650F

N 0x6510

N 0x6511

N 0x6512

N 0x6513

N 0x6600

N 0x6601

N 0x6602

N 0x6603

N 0x6604

N 0x6605

N 0x6606

N 0x6607

N 0x6608

N 0x6609

N 0x660A

N 0x660B

N 0x660C

N 0x660D

N 0x660E

N 0x660F

N 0x6610

N 0x6611

N 0x6612

N 0x6613

N 0x6614

Code

(Decimal)

25622

25856

25857

25858

25859

25860

25861

25862

25863

25864

25865

25866

25867

25868

25869

25870

25871

25872

25873

25874

25875

26112

26113

26114

26115

26116

26117

26118

26119

26120

26121

26122

26123

26124

26125

26126

26127

26128

26129

26130

26131

26132 http://cgpsmapper.com/

Filter Find

(Dec.) (GPS)

100

101

101

101

101

101

101

101

101

101

101

101

101

101

101

101

101

101

101

101

101

102

102

102

102

102

102

102

102

102

102

102

102

102

102

102

102

102

102

102

102

102

Description

Subdivision

Arroyo

Bay

Bend

Canal

Channel

Cove

Falls

Geyser

Glacier

Harbour

Island

Lake

Rapids

Reservoir

Sea

Spring

Stream

Swamp

Arch

Area

Basin

Beach

Bench

Cape

Cliff

Crater

Flat

Forest

Gap

Gut

Isthmus

Lava

Pillar

Plain

Range

Reserve

Ridge

Rock

111 of 130

cGPSmapper Manual

Code (Hex)

N 0x6615

N 0x6616

N 0x6617

N 0x6618

N 0x1C00

N 0x1C01

N 0x1C02

N 0x1C03

N 0x1C04

N 0x1C05

N 0x1C06

N 0x1C07

N 0x1C08

N 0x1C09

N 0x1C0A

N 0x1C0B

N 0x1D01

N 0x1B01

N 0x1A01

N 0x1901

N 0x1801

N 0x1701

N 0x1601

N 0x1B02

N 0x1A02

N 0x1902

N 0x1802

N 0x1702

N 0x1602

N 0x1B03

N 0x1A03

N 0x1903

N 0x1803

N 0x1703

N 0x1603

N 0x1B04

N 0x1A04

N 0x1904

N 0x1804

N 0x1704

N 0x1604

N 0x1B05

Code

7172

7173

7174

7175

7176

7177

7178

7179

7425

6913

6657

(Decimal)

26133

26134

26135

26136

7168

7169

7170

7171

6401

6145

5889

5633

6914

6658

6402

6146

5890

5634

6915

6659

6403

6147

5891

5635

6916

6660

6404

6148

5892

5636

6917 http://cgpsmapper.com/

Filter Find

(Dec.) (GPS)

102

102

102

102

28

28

28

28

28

28

28

28

28

28

28

28

29

27

26

25

24

23

22

27

26

25

24

23

22

27

26

25

24

23

22

27

26

25

24

23

22

27

Description

Slope

Summit

Valley

Woods

Wreck

Submerged Wreck, dangerous

Submerged Wreck, non-dangerous

Wreck, cleared by Wire-drag

Obstruction, visible at high Water

Obstruction, cleared by Wire-drag

Rock, submerged at low Water

Sounding

Racon

Racon

Racon

Racon

Racon

Racon

112 of 130

cGPSmapper Manual

Code (Hex)

N 0x1A05

N 0x1905

N 0x1805

N 0x1705

N 0x1605

N 0x1B06

N 0x1A06

N 0x1906

N 0x1806

N 0x1706

N 0x1606

N 0x1B07

N 0x1A07

N 0x1907

N 0x1807

N 0x1707

N 0x1607

N 0x1B08

N 0x1A08

N 0x1908

N 0x1808

N 0x1708

N 0x1608

N 0x1B09

N 0x1A09

N 0x1909

N 0x1809

N 0x1709

N 0x1609

N 0x1B0A

N 0x1A0A

N 0x190A

N 0x180A

N 0x170A

N 0x160A

N 0x1B0B

N 0x1A0B

N 0x190B

N 0x180B

N 0x170B

N 0x160B

N 0x1B0C

Code

6150

5894

5638

6919

6663

6407

6151

5895

5639

6920

6664

(Decimal)

6661

6405

6149

5893

5637

6918

6662

6406

6408

6152

5896

5640

6921

6665

6409

6153

5897

5641

6922

6666

6410

6154

5898

5642

6923

6667

6411

6155

5899

5643

6924 http://cgpsmapper.com/

Filter Find

(Dec.) (GPS)

26

25

24

23

22

27

26

25

25

24

23

22

27

26

24

23

22

27

26

26

25

24

23

22

27

26

25

24

23

22

27

25

24

23

22

27

26

25

24

23

22

27

Description

unlit Navaid, white unlit Navaid, white unlit Navaid, white unlit Navaid, white unlit Navaid, white unlit Navaid, white unlit Navaid, red unlit Navaid, red unlit Navaid, red unlit Navaid, red unlit Navaid, red unlit Navaid, red unlit Navaid, green unlit Navaid, green unlit Navaid, green unlit Navaid, green unlit Navaid, green unlit Navaid, green unlit Navaid, black unlit Navaid, black unlit Navaid, black unlit Navaid, black unlit Navaid, black unlit Navaid, black unlit Navaid, yellow or amber unlit Navaid, yellow or amber unlit Navaid, yellow or amber unlit Navaid, yellow or amber unlit Navaid, yellow or amber unlit Navaid, yellow or amber unlit Navaid, orange

113 of 130

cGPSmapper Manual

Code (Hex)

N 0x1A0C

N 0x190C

N 0x180C

N 0x170C

N 0x160C

N 0x1B0D

N 0x1A0D

N 0x190D

N 0x180D

N 0x170D

N 0x160D

N 0x1B0E

N 0x1A0E

N 0x190E

N 0x180E

N 0x170E

N 0x160E

N 0x1B0F

N 0x1A0F

N 0x190F

N 0x180F

N 0x170F

N 0x160F

N 0x1B10

N 0x1A10

N 0x1910

N 0x1810

N 0x1710

N 0x1610

N 0x1B11

N 0x1A11

N 0x1911

N 0x1811

N 0x1711

N 0x1611

N 0x1B12

N 0x1A12

N 0x1912

N 0x1812

N 0x1712

N 0x1612

N 0x1B13

Code

6157

5901

5645

6926

6670

6414

6158

5902

5646

6927

6671

(Decimal)

6668

6412

6156

5900

5644

6925

6669

6413

6415

6159

5903

5647

6928

6672

6416

6160

5904

5648

6929

6673

6417

6161

5905

5649

6930

6674

6418

6162

5906

5650

6931 http://cgpsmapper.com/

Filter Find

(Dec.)

26

25

24

23

22

27

26

25

24

23

22

27

26

25

24

23

22

27

26

(GPS)

26

25

24

23

22

27

26

25

24

23

22

27

25

24

23

22

27

26

25

24

23

22

27

Description

unlit Navaid, orange unlit Navaid, orange unlit Navaid, orange unlit Navaid, orange unlit Navaid, orange unlit Navaid, multi coloured unlit Navaid, multi coloured unlit Navaid, multi coloured unlit Navaid, multi coloured unlit Navaid, multi coloured unlit Navaid, multi coloured lighted Navaid, white lighted Navaid, white lighted Navaid, white lighted Navaid, white lighted Navaid, white lighted Navaid, white lighted Navaid, red lighted Navaid, red lighted Navaid, red lighted Navaid, red lighted Navaid, red lighted Navaid, red lighted Navaid, green lighted Navaid, green lighted Navaid, green lighted Navaid, green lighted Navaid, green lighted Navaid, green lighted Navaid, yellow or amber lighted Navaid, yellow or amber lighted Navaid, yellow or amber lighted Navaid, yellow or amber lighted Navaid, yellow or amber lighted Navaid, yellow or amber lighted Navaid, orange

114 of 130

cGPSmapper Manual

Code (Hex)

N 0x1A13

N 0x1913

N 0x1813

N 0x1713

N 0x1613

N 0x1B14

N 0x1A14

N 0x1914

N 0x1814

N 0x1714

N 0x1614

N 0x1B15

N 0x1A15

N 0x1915

N 0x1815

N 0x1715

N 0x1615

N 0x1B16

N 0x1A16

N 0x1916

N 0x1816

N 0x1716

N 0x1616

Y 0x0100

Y 0x0102

Y 0x0103

Y 0x0104

Y 0x0105

Y 0x0106

Y 0x0107

Y 0x0108

Y 0x0109

Y 0x010a

Y 0x0200

Y 0x0201

Y 0x0202

Y 0x0203

Y 0x0204

Y 0x0205

Y 0x0206

Y 0x0207

Y 0x0208

Code

6164

5908

5652

6933

6677

6421

6165

5909

5653

6934

6678

(Decimal)

6675

6419

6163

5907

5651

6932

6676

6420

6422

6166

5910

5654

256

258

259

260

261

262

263

264

265

266

512

513

514

515

516

517

518

519

520 http://cgpsmapper.com/

Filter

24

23

22

27

26

25

24

23

22

27

26

(Dec.)

26

25

24

23

22

27

26

25

1

1

1

2

2

2

1

1

1

1

1

1

25

24

23

22

1

2

2

2

2

2

2

Find

(GPS)

Description

lighted Navaid, orange lighted Navaid, orange lighted Navaid, orange lighted Navaid, orange lighted Navaid, orange lighted Navaid, violet lighted Navaid, violet lighted Navaid, violet lighted Navaid, violet lighted Navaid, violet lighted Navaid, violet lighted Navaid, blue lighted Navaid, blue lighted Navaid, blue lighted Navaid, blue lighted Navaid, blue lighted Navaid, blue lighted Navaid, multi coloured lighted Navaid, multi coloured lighted Navaid, multi coloured lighted Navaid, multi coloured lighted Navaid, multi coloured lighted Navaid, multi coloured

N Light

N

N

N

N

N

N

Light with north topmark

Light with south topmark

Light with east topmark

Light with west topmark

Isolated danger light

Port hand light

N

N

Starboard hand light

Special purpose light

N Safe water light

N Buoy

N Buoy

N Buoy with north topmark

N

N

Buoy with south topmark

Buoy with east topmark

N Buoy with west topmark

N Beacon

N Spar

N Isolated danger buoy

115 of 130

cGPSmapper Manual

Code (Hex)

Y 0x0209

Y 0x020a

Y 0x020b

Y 0x020c

Y 0x020d

Y 0x020e

Y 0x020f

Y 0x0210

Y 0x0211

Y 0x0212

Y 0x0213

Y 0x0214

Y 0x0215

Y 0x0216

Y 0x0217

Y 0x0218

Y 0x0300

Y 0x0301

Y 0x0302

Y 0x0303

Y 0x0304

Y 0x0305

Y 0x0306

Y 0x0307

Y 0x0308

Y 0x0309

Y 0x030a

Y 0x030b

Y 0x0400

Y 0x0401

Y 0x0402

Y 0x0403

Y 0x0404

Y 0x0405

Y 0x0406

Y 0x0407

Y 0x0408

Y 0x0409

Y 0x040a

Y 0x040b

Y 0x040c

Y 0x040d

Code

529

530

531

532

533

534

535

536

768

769

770

(Decimal)

521

522

523

524

525

526

527

528

771

772

773

774

775

776

777

778

779

1024

1025

1026

1027

1028

1029

1030

1031

1032

1033

1034

1035

1036

1037 http://cgpsmapper.com/

Filter

2

2

2

2

2

2

2

2

3

3

3

(Dec.)

2

2

2

2

2

2

2

2

4

4

4

4

4

4

3

3

3

3

4

4

3

3

3

3

3

4

4

4

4

4

4

N

N

N

N

Find

Description

(GPS)

N

N

N

N

Port hand buoy

Starboard hand buoy

Special purpose buoy

Safe water buoy

N Platform

N Beacon with north topmark

Beacon with south north topmark

Beacon with east topmark

Beacon with west topmark

Isolated danger beacon

N

N

N

Port hand beacon

Starboard hand beacon

Special purpose beacon

N Mooring

N Fixed

N Pole

N Depth

N Depth invisible

N Depth underscore

N Spot

N Building

N Chimney

N Church

N Tanks

N Tower

N Rock

N Triangulation

N Radio

Y Isolated

Y Obstruction

Y Wreck

Y Exposed

Y Well

Y Foul

Y Explosive

Y Fish

Y Obstruction covers

Y Marine

Y Dangerous

Y No found

Y Exposed

Y Dangerous

116 of 130

cGPSmapper Manual

Code (Hex)

Y 0x040e

Y 0x040f

Y 0x0500

Y 0x0600

Y 0x0700

Y 0x0701

Y 0x0702

Y 0x0703

Y 0x0704

Y 0x0705

Y 0x0706

Y 0x0707

Y 0x0708

Y 0x0709

Y 0x070a

Y 0x070b

Y 0x070c

Y 0x0801

Y 0x0901

Y 0x0902

Y 0x0903

Code

(Decimal)

1038

1039

1280

1536

1792

1793

1794

1795

1796

1797

1798

1799

1800

1801

1802

1803

1804

2049

2305

2306

2307

Filter

7

7

7

7

7

(Dec.)

4

4

5

6

7

7

7

7

7

7

7

7

8

9

9

9

Find

Description

(GPS)

Y Underwater rock (non-dangerous rock)

Y Shoal

N Label

N Centred

N Miscellaneous

Y Recommended

N Pilot boarding place

N Yacht

N Pile

Y Anchoring

Y Fishing

Y Precautionary

N Radio report point

N Anchorage

N Rescue

N Fishing

N Airport

N Information

N Bottom

N Fishing

N Facility

N 0x01

N 0x02

N 0x03

N 0x04

N 0x05

N 0x06

N 0x07

N 0x08

N 0x09

N 0x0a

N 0x0b

N 0x0c

N 0x14

N 0x15

N 0x16

N 0x18

N 0x19

12.3.2 [POLYLINE] types

Code (Hex)

Code

10

11

12

20

21

22

24

25

(Decimal)

1

2

3

4

5

6

7

8

9

Description

Road-thin

Alley-thick

Ramp

Ramp

Major Highway Connector-thick

Roundabout

Railroad

Shoreline

Track/Trail

Stream-thin

Time-Zone http://cgpsmapper.com/ 117 of 130

cGPSmapper Manual

Code (Hex)

N 0x1a

N 0x1b

N 0x1c

N 0x1d

N 0x1e

N 0x1f

N 0x20

N 0x21

N 0x22

N 0x23

N 0x24

N 0x25

N 0x26

N 0x27

N 0x28

N 0x29

N 0x2a

N 0x2b

Y 0x0100

Y 0x0101

Y 0x0102

Y 0x0103

Y 0x0104

Y 0x0105

Y 0x0106

Y 0x0107

Y 0x0108

Y 0x0109

Y 0x0300

Y 0x0301

Y 0x0307

Y 0x0400

Y 0x0401

Y 0x0402

Y 0x0403

Y 0x0404

Y 0x0405

Y 0x0406

Y 0x0407

Y 0x0408

Y 0x0409

Y 0x040a

Code

34

35

36

37

38

39

40

41

42

43

256

(Decimal)

26

27

28

29

30

31

32

33

257

258

259

260

261

262

263

264

265

768

769

775

1024

1025

1026

1027

1028

1029

1030

1031

1032

1033

1034

Description

Ferry

Ferry

River

Land Contour (thin)

Land Contour (medium)

Land Contour (thick)

Depth Contour (thin)

Depth Contour (medium)

Depth Contour (thick)

Pipeline

Marine Boundary (no line)

Marine Hazard (no line)

Line

Road

Bridge

Depth contour value

Intertidal zone border

Supply pipeline area

Submarine cable area

Explosive dumping ground http://cgpsmapper.com/ 118 of 130

cGPSmapper Manual

Code (Hex)

Y 0x040b

Y 0x040c

Y 0x0500

Y 0x0501

Y 0x0502

Y 0x0503

Y 0x0504

Y 0x0505

Y 0x0506

Y 0x0507

Y 0x0508

Y 0x0600

Y 0x0601

Y 0x0602

Y 0x0603

Y 0x0604

Y 0x0605

Y 0x0606

Y 0x0607

Y 0x0608

Y 0x0609

Y 0x060a

Y 0x060b

Y 0x060c

Y 0x060d

Y 0x060e

Y 0x060f

Y 0x0610

Y 0x0611

Y 0x0701

Y 0x0702

...

Y 0x0706

Code

1286

1287

1288

1536

1537

1538

1539

1540

1541

1542

1543

(Decimal)

1035

1036

1280

1281

1282

1283

1284

1285

1544

1545

1546

1547

1548

1549

1550

1551

1552

1553

1793

1794

1798

Description

Pier/jetty

Restriction

Military practice area

Anchoring and fishing prohibited

Limit of nature reservation

Minefield

Traffic separation line

Straight territorial sea baseline

Seaward limit of territorial sea

Quarantine anchorage area

Traffic separation zone

Limit of exclusive economic zone

Inadequately surveyed area

Limit of traffic lane

12.3.3 [POLYGON] types

Code (Hex)

N 0x01

N 0x02

N 0x03

N 0x04

N 0x05

Code

(Decimal)

1

2

3

4

5

Description

City

City

City

Military

Car Park (Parking Lot) http://cgpsmapper.com/ 119 of 130

cGPSmapper Manual

Code (Hex)

N 0x06

N 0x07

N 0x08

N 0x09

N 0x0a

N 0x0b

N 0x0c

N 0x0d

N 0x0e

N 0x13

N 0x14

N 0x15

N 0x16

N 0x17

N 0x18

N 0x19

N 0x1a

N 0x1e

N 0x1f

N 0x28

N 0x3b

N 0x32

N 0x3b

N 0x3c

N 0x3d

N 0x3e

N 0x3f

N 0x40

N 0x41

N 0x42

N 0x43

N 0x44

N 0x45

N 0x46

N 0x47

N 0x48

N 0x49

N 0x4b

N 0x4c

N 0x4d

N 0x4e

N 0x4f

Code

14

19

20

21

22

23

24

25

26

30

31

(Decimal)

6

7

8

9

10

11

12

13

40

59

50

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

75

76

77

78

79

Description

Airport

Marina

University

Hospital

Industrial

Reservation

Man made area

City Park

Golf

Sport

Cemetery

Ocean

Blue-Unknown

Sea

Blue-Unknown

Lake

Lake

Lake

Lake

Lake

Lake

Lake

Lake

Lake

Blue-Unknown

River

River

River

River

Background

Glacier

Orchard or plantation

Scrub http://cgpsmapper.com/ 120 of 130

cGPSmapper Manual

Code (Hex)

N 0x50

N 0x51

N 0x52

N 0x53

Y 0x0100

Y 0x0101

Y 0x0102

Y 0x0103

Y 0x0104

Y 0x0105

Y 0x0300

Y 0x0301

Y 0x0302

Y 0x0303

Y 0x0304

Y 0x0305

Y 0x0306

Y 0x0307

Y 0x0400

Y 0x0401

Y 0x0402

Y 0x0403

Y 0x0404

Y 0x0405

Y 0x0406

Y 0x0407

Y 0x0408

Y 0x0409

Y 0x040a

Y 0x040b

Y 0x040c

Y 0x0500

Y 0x0501

Y 0x0502

Y 0x0503

Y 0x0504

Y 0x0505

Y 0x0506

Y 0x0507

Y 0x0508

Y 0x0600

Y 0x0601

Code

260

261

768

769

770

771

772

773

774

775

1024

(Decimal)

80

81

82

83

256

257

258

259

1025

1026

1027

1028

1029

1030

1031

1032

1033

1034

1035

1036

1280

1281

1282

1283

1284

1285

1286

1287

1288

1536

1537

Description

Woods

Wetland

Tundra

Flats

Land - white

Land - non-urban

Land - urban

Chart exclusion area

Bridge

Depth area - white 1

Depth area - blue 1

Depth area - blue 2

Depth area - blue 3

Depth area - blue 4

Depth area - blue 5

Depth area - white

Submarine cable (invisible)

Submarine pipeline (invisible)

Pile barrier (invisible)

Supply pipeline area/line (invisible)

Submarine cable area/line (invisible)

Dumping ground (invisible)

Explosive dumping ground (invisible)

Overhead cable (invisible)

Submerged construction (invisible)

Restriction area/line (invisible)

Anchoring prohibited (invisible)

Fishing prohibited (invisible)

Prohibited area (invisible)

Military practice area (invisible)

Anchoring and fishing prohibited (invisible)

Limit of nature reservation (invisible)

Restricted area (invisible) http://cgpsmapper.com/ 121 of 130

cGPSmapper Manual

Code (Hex)

Y 0x0602

Y 0x0603

Y 0x0604

Y 0x0605

Y 0x0606

Y 0x0607

Y 0x0608

Y 0x0609

Y 0x060a

Y 0x060b

Y 0x060c

Y 0x0701

Y 0x0702

Y 0x0703

Y 0x0704

Code

(Decimal)

1538

1539

1540

1541

1542

1543

1544

1545

1546

1547

1548

1793

1794

1795

1796

Description

Traffic separation area

Straight territorial sea baseline

Seaward limit of territorial sea

Quarantine anchorage area

Traffic separation zone

Limit of exclusive economic zone

Fishing Hot Spots chart

12.3.4 Custom types name substitution

You may create up to 4 default names in different languages to be used if the object does not have a label. For example:

[_line]

Type=0x01

String1=0x01,Route ;

String2=0x02,Landstraße ;

String4=0x08,Carretera ;

LineWidth=5

BorderWidth=1 xpm="0 0 4 0" colors (4)

"1 c #20c818"

"2 c #309838"

"3 c #20c818"

"4 c #086808"

; Define both day and night

; Daytime interior color

; Daytime border color

; Nighttime interior color

; Nighttime border color

[end]

Code Language Code Language

0x00 Unspecified

0x01 French

0x12

0x13

Czech

Croatian

0x02 German

0x03 Dutch

0x04 English

0x05 Italian

0x14

0x15

0x16

0x17

Hungarian

Polish

Turkish

Greek http://cgpsmapper.com/ 122 of 130

cGPSmapper Manual

0x06 Finnish

0x07 Swedish

0x08 Spanish

0x09 Basque

0x0a Catalan

0x0b Galican

0x0c Welsh

0x0d Gaelic

0x0e Danish

0x0f Norwegian

0x10 Portuguese

0x11 Slovak

0x18

0x19

0x1a

0x1b

0x1c

0x1d

0x1e

0x1f

0x20

0x21

0x22

Slovenian

Russian

Estonian

Latvian

Romanian

Albanian

Bosnian

Lithuanian

Serbian

Macedonian

Bulgarian

12.3.5 How do I create XPM definitions?

If you want to create any other than the simplest shapes for your POIs, you will want to use graphics tools to manage your source bitmaps and ultimate XPM definition. Here’s a description of one approach using Photoshop Elements,

IconXP and Microsoft Word; this is certainly not the only way.

Photoshop steps:

Create the original full-color image. You may find it easier to edit the image at a multiple of its target size. For example, 96x96 is a good size, as it scales well to 24x24, 16x16, 12x12 and 8x8 nicely. Or, you can edit at the

• target dimensions.

Create your transparent areas as desired.

Resize as needed to your target dimensions.

Save in PNG-24 format with transparency.

IconXP steps:

Go to http://www.aha-soft.com/iconxp/index.htm

to download a trial version of IconXP. (The registered version is $20US)

Open your .PNG file from Photoshop.

Export As .XPM

Microsoft Word steps:

Open the .xpm file.

Look for any instances of color definitions using ‘black’ or ‘white’; replace them with #000000 or #FFFFFF. cGPSmapper does not support these

• literals.

Copy the definition into your source file, starting with the quotation mark before the first line of the declaration, all the way to the closing brace.

Notepad steps:

Add the necessary header, type, strings and [end] statement. http://cgpsmapper.com/ 123 of 130

cGPSmapper Manual

12.4 cGPSmapper versions

The table below lists the various versions of cGPSmapper and illustrates the main differences between each of the versions. For more information, including the latest prices, visit http://www.cgpsmapper.com/ .

Version

φ

Freeware

σ

Shareware

π

Pro

• No city or POI indexing

• No additional city information

• No additional POI information

• No map copyright

• Maps created with this version should not be sold

• Direct support for ESRI shape format

• City and POI indexing is limited to 100 cities and

POIs in standard maps. Indexing means that cities and POIs may be searched using the GPS receiver's

"Find by name" function (subject to the receiver limitations).

• City and POI indexing is limited to 65,500 cities and

POIs in so-called POI maps, i.e. maps containing only cities and POIs, with no dimensional objects

(such as roads or forests) (maps created with '-i' switch)

• Additional POI information: country, region, city, and description (displayed in the details window), but no phone number and full address

• Additional city information: country and region

• The purchased copy is registered permanently to the purchaser's name and e-mail address (this information is displayed by the receiver in the map copyright section)

• Maps created with this version should not be sold

• Building numbering

• Additional city, region and country information for roads and POI

• Search by address - street name, house number and optionally zip code and city

• Search for intersection

• City and POI indexes are not limited, creation of global indexing (multi IMG mapsets)

• Full POI address and additional descriptions

• 'lock on road' feature

• User defined copyright text

• Limited support http://cgpsmapper.com/ 124 of 130

cGPSmapper Manual

Version

Routable Personal Edition This version has full scope of functionality – including creation of routable maps - with the following exceptions

• Hardcoded copyright string 'name surname [email protected], cGPSmapper personal edition'

• No support for creating routable maps! Only basic support regarding the input data format

• No permission for commercial use

₪ Routable Fully routable maps - find fastest or shortest route, support for all kinds of restrictions and time limited restrictions

12.5 cGPSmapper files

♣ This section will be further documented in a future version of this manual.

The table below lists the contents of the main files that are distributed with the compiler.

File Contents

cGPSmapper-Help .txt

How to obtain further details to use the compiler. cgpsmapper.exe

Datum_List.txt cGPSmapper compiler binary executable.

Full list of supported datums to be used in the

Datum

Readme.first

Readme0080.txt

RGNtype.txt

RGNtype.xls

Strings.txt

Test_Map

Licence.txt element.

Refer to section 4.2.1 (on page 9) for details.

Description of the sample files provided and how to obtain further details to use the compiler.

Release notes with details on the improvements made to the compiler. cGPSmapper element types list in plain text format.

Refer to section 12.3 (on page 106) for details.

cGPSmapper element types list in Excel format. Contains the graphical representation of many of the element types.

Refer to section 12.3 (on page 106) for details.

Character coding documentation.

Refer to section ♣ (on page ♣) for details.

Directory containing a sample map.

Terms of use of the free version of cGPSmapper http://cgpsmapper.com/ 125 of 130

cGPSmapper Manual

13 Index and Tables

13.1 Table of Figures

F

IGURE

1:

LESS DETAIL MAP EXAMPLE

................................................................................... 43

F

IGURE

2:

MORE DETAIL MAP EXAMPLE

................................................................................. 43

F

IGURE

3: M

AP

D

ETAIL

S

ETUP

.............................................................................................. 47

F

IGURE

4: H

OW NAME VARIABLES ARE SHOWN

..................................................................... 96

13.2 Version Control Log

Ver# Date Edited by Section Changes

1.0 2005-04-01 M. Zalba - Initial Release

1.1 2005-04-04 H.Scheffler 2.4 Removed some author names as requested

1.2 2005-05-23 H.Scheffler

2.0 2005-07-08 M. Zalba

-

-

PDF with higher resolution images

Added marine documentation and updated ESRI documentation.

Added [CHART INFO] section to the end of the Declarations section.

4.2.1 Header

"Marine" element added.

"DrawPriority" element added.

Chart

New section.

4.2.4.2

4.2.4.3

Interest, Polygons and Polylines.

Section updated.

New section.

8.1 cGPSmapper compilation Errors and

Warnings

Changed W014

Added: R010, R011, R012

8.3 cGPSmapper object types list

Note about the marine objects added.

8.3.2

8.3.3 added.

"Find" (GPS) feature added.

Marine version added.

2.1 2006-10-10 G.Rikker 5 Custom file http://cgpsmapper.com/ 126 of 130

cGPSmapper Manual

Ver# Date Edited by Section Changes

4.0 2006-12-01 S.Kozicki - Locking with cGPSmapper

Corrections

Codepages

4.4.4 2008

4.5 2009

Added [DEFINITIONS] section description

Routing

13.3 Index

[

[_drawOrder] ........................................ 72

[_ID] ..................................................... 72

[_line] ................................................... 78

[_point] ................................................. 75

[_polygon] ............................................ 79

[CHART INFO].................................... 16

[CITIES] ............................................... 16

[COUNTRIES] ..................................... 15

[DEFINITIONS]................................... 61

[DICTIONARY]............................. 18, 48

[FILE] ................................................... 30

[FILES]........................................... 87, 91

[IMG ID] ................................................ 9

[MAP]............................................. 87, 88

[PLT] .................................................... 25

[POI] ..................................................... 19 types................................................ 107

[POLYGON] ........................................ 21 types................................................ 119

[POLYLINE]........................................ 23 types................................................ 117

[REGIONS] .......................................... 15

[RESTRICT]......................................... 57

[RGN10]

..................................See [POI]

[RGN20]

..................................See [POI]

[RGN40]

.....................See [POLYLINE]

[RGN80]

..................... See [POLYGON]

[RGNx0] ............................................... 97

[SHP] .................................................... 25

[SIGN] .................................................. 58

[WPT] ................................................... 24

{

{ 65 http://cgpsmapper.com/

A

Addressing ............................................ 31

AlignMethod ......................................... 14

Appendices.......................................... 101

B

Background ..................................... 18, 22

BlockSize .............................................. 14

Border Width......................................... 78

Bound.................................................... 61

Bound point..................................... 55, 61

C

CDSetName .......................................... 88 cGPSmapper ........................................... 5 files.................................................. 125 versions ........................................... 124 versions notation ................................. 6 cGPSmapperKey................................... 71

Cities ..................................................... 16

City.................................................. 16, 19

CityName .................................. 21, 24, 26

Clearings ............................................... 98

Codepage......................................... 10, 64

CodePage .............................................. 89

Color ............................................... 28, 36

Copy1.................................................... 89

Copy2.................................................... 89

Copy3.................................................... 89

CopyRight ....................................... 11, 95

CopyWrite....................................... 11, 95

Correction.............................................. 17

Countries ............................................... 15

Country ................................................. 15

CountryIdx ............................................ 15

CountryName ...................... 11, 21, 24, 27

127 of 130

cGPSmapper Manual cpreview ......................................... 66, 87

Custom Type Definiton ........................ 75

Custom type file ................................... 71

D

Data#................................... 20, 23, 35, 98

Datum ........................................... 10, 125

Dayxpm .......................................... 75, 76

Declarations

Advanced.......................................... 18

DefaultCityCountry .............................. 11

DefaultRegionCountry ......................... 12

DefaultType.......................................... 26

Definitions ............................................ 18

DeltaSN ................................................ 16

DeltaWE ............................................... 16

Depth .............................................. 28, 37

DepthFlag ....................................... 29, 38

DepthUnit ....................................... 28, 37

Dictionary ....................................... 18, 47

Using................................................. 48

DirIndicator .......................................... 25

Document Conventions .......................... 5

DoubleLights .................................. 30, 42

DoubleLightsHorizontal ................. 30, 42

DrawPriority ......................................... 14

Driving side .......................................... 15

E

Edition .................................................. 17

Elevation......................................... 30, 33

EndLevel....................... 22, 24, 25, 26, 35

Errors .................................................. 101

Exists valid exit facility types ................... 105

Exit ....................................................... 58

Exit# ..................................................... 21

Exits.................................................... 105

F

FacilityPoint ................................... 30, 42

FID........................................................ 89

File........................................................ 30

File#................................................ 24, 25

FileName .............................................. 88 files shipped with cGPSmapper ............. 125

FoundationColor............................. 29, 38 http://cgpsmapper.com/

G

Gas Stations .......................................... 98

Global index.......................................... 65

Glossary .............................................. 100

H

Header ..................................................... 9

Height.............................................. 28, 37

HeightAboveDatum ........................ 29, 41

HeightAboveDatumUnit ................. 29, 41

HeightAboveFoundation................. 29, 41

HeightAboveFoundationUnit.......... 29, 41

HeightProfile......................................... 90

HeightUnit....................................... 28, 37

Highway................................................ 20

Highways .............................................. 18

HouseNumber ................................. 20, 27

I

IALA ..................................................... 16

ID ...................................................... 9, 90

IDX........................................................ 65 img ........................................................ 91

Index.................................................... 127

Indexing ................................................ 64

Indexing words...................................... 67

InternationalDesignator................... 29, 41

Islands ................................................... 98

L

Label........................ 19, 22, 23, 25, 32, 35

Label2.................................................... 23

Label2Field ........................................... 26

LabelField ............................................. 26

LblCoding ............................................. 89

LBLcoding ........................................ 9, 32

LeadingAngle.................................. 29, 41

LeftCityName........................................ 61

LeftCountryName ................................. 61

LeftEnd.................................................. 62

LeftRegionName................................... 61

LeftStart ................................................ 62

LeftType................................................ 62

LeftZipName......................................... 61

Level.......................................... 14, 26, 90

Level#RGNnn ....................................... 18

LevelFill................................................ 14

LevelLimit............................................. 14

128 of 130

cGPSmapper Manual levels..................................................... 98

Levels ....................................... 14, 42, 90

Using................................................. 45

Light ............................................... 29, 39

LightType ....................................... 29, 40

LineWidth............................................. 78

LocalDesignator ............................. 29, 41

Locked IMG ......................................... 68

Locking................................................. 67

M

Manual

Notation .... See Document Conventions map activation in the GPS ........................ 96 creating preview files........................ 87 creation ............................................... 8 loading into the GPS......................... 93 project ................................................. 8

Mapcenter ........................................... 104

MapDecode........................................... 30

MapSetName ........................................ 88

MapSource............................................ 86

MapsourceName................................... 88

MapVersion .......................................... 89

Marine........................... 14, 19, 22, 23, 34

Marine Charts ....................................... 34

MG........................................................ 10

Multi city street..................................... 65

N

Name..................................... 9, 16, 25, 30

Name substitution............................... 122

Node ..................................................... 61

NodeID ........................................... 52, 61

NodeID1 ............................................... 62

NodeID2 ............................................... 62

NodeID3 ............................................... 62

NodeID4 ............................................... 62

Note ................................................ 29, 40

NT......................................................... 15

Number ................................................. 16

Numbering............................................ 10

Numbers ......................................... 24, 31

O

OneWay................................................ 28

Onto ...................................................... 58 http://cgpsmapper.com/ opening bracket..................................... 65

Origin# ...................................... 20, 23, 35

OvernightParking.................................. 20

OziExplorer

Point Of Interest................................ 24

Polyline or Polygon........................... 25

P

PFM......................................................... 5

PhoneNumber........................................ 27

PMF............................................ See PFM

Pocket PC.............................................. 69

POIIndex ............................................... 11

POINumberFirst.................................... 11

POIOnly ................................................ 11

POIZipFirst ........................................... 11

Position ........................................... 28, 37

PreProcess ............................................. 13

Preview............................................ 69, 87

Print....................................................... 16

ProductCode.......................................... 89

Projection .............................................. 16

Published............................................... 16

R

Racon .............................................. 30, 41

ReferenceEllipsoid................................ 17

Region ................................................... 15

RegionIdx.............................................. 16

RegionName........................ 12, 21, 24, 27

Regions ................................................. 15

Restriction ............................................. 55

Restriction DBF .................................... 57

Restrictions............................................ 62

RestrParam............................................ 57

RgnLimit ............................................... 12

RgnType.......................................... 24, 25

RightCityName ..................................... 61

RightCountryName ............................... 61

RightEnd ............................................... 62

RightRegionName................................. 61

RightStart .............................................. 62

RightType.............................................. 62

RightZipName....................................... 61

Road class ............................................. 53

Road sign .............................................. 57

RoadClass ............................................. 28

RoadID............................................ 27, 61

129 of 130

cGPSmapper Manual

RoadID1 ............................................... 62

RoadID2 ............................................... 62

RoadID3 ............................................... 62

Routing ..................................... 11, 51, 61

Routing attributes ................................. 54

Routing ESRI........................................ 58

S

Scale ..................................................... 16

SD card map locking ............................ 69

SDlock .................................................. 71

Segment ................................................ 58

sendmap ............................................ 5, 95

Shapes................................................... 25

SignParam............................................. 58

SignPoints............................................. 58

SignRoads............................................. 58

Speed .................................................... 53

SpeedType ............................................ 27

StreetDesc................................. 20, 23, 27

Style................................................ 28, 36

SubType.............................. 19, 21, 23, 35

SubTypeField ....................................... 26

T

Table of Contents ................................... 2

Table of Figures.................................. 126

TDB ...................................................... 87

Text................................................. 17, 35

TextEnd ................................................ 28

TextFile..................................... 17, 28, 35

TextFileLines........................................ 28

TextStart ............................................... 28

Toll ....................................................... 28

Toward.................................................. 58

TraffPoints............................................ 57

TraffRoads ............................................ 57

Transparent...................................... 10, 14

TreSize .................................................. 12

TYP file................................................. 75

Type .................. 19, 21, 23, 24, 25, 26, 34

TypeField .............................................. 26

U

Unlock key ............................................ 68

V

vector map............................................... 5

VehicleB.......................................... 28, 63

VehicleC.......................................... 28, 63

VehicleD ......................................... 28, 63

VehicleE.......................................... 28, 62

VehicleI........................................... 28, 63

VehicleP.......................................... 28, 63

VehicleR.......................................... 28, 63

VehicleT.......................................... 28, 63

Version Control Log ........................... 126

W

Warnings ............................................. 101

Windows registry .................................. 91

WorldMap ............................................. 14

X

XPM ................................................ 75, 79

Z

Zip ......................................................... 27

ZIP................................................... 21, 24

Codes................................................. 18 zoom.......................................... 14, 42, 43

Hardware Zoom Level ................ 43, 44 levels ........................................... 43, 44

Map Zoom Level................................ 44 http://cgpsmapper.com/ 130 of 130

Was this manual useful for you? Yes No
Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project