Garmin Typ Filter

Overview

This setting can be found in ‘Menu-Option-Preferences’, section ‘Garmin Map’, field ‘Typ filter’.

A map is made of items represented by geometrical shapes. The basic shapes ‘polygon’, ‘polyline’ and ‘point’ are called type classes.

Every single map item is defined by its type class, a type identifier, the map zoom level it appears and its position on the map. So called TYP-files define color, outline and texture for every type in a binary format.

Example: A parking lot is depicted by an item of type class ‘polygon’, has the type id 0x05 and is only visible in zoom level 0. The TYP file contains an entry for the polygon 0x05 where the texture is defined for the parking lot.

In order to find out the type identifier hover over a map item. The appearing title tip lists the type identifier in brackets.

The current zoom level (0-15) is indicated in the map status bar.

By default all map items are visible. With the help of the filter expression described here particular map items can be made visible or invisible.

Filter Syntax

<rule> [,<rule>] [,<rule>]
<rule>  -> (PGN|PLN|POI): [NOT] <typeidfrom>-<typeidto> [(<levelfrom>-<levelto>,...)]

PGN     -> Polygon
PLN     -> Polyline
POI     -> Point of interest
NOT     -> The optional keyword excludes the map item
level   -> Zoom level (0..15)

The section below contains the precise grammar for the filter expressions in Backus-Naur form (BNF).

<start>             ::= <typclass> ":" <signedtyprangedef> <typblocklist> | E
<typblocklist>      ::= "," <typblock> <typblocklist> | E
<typblock>          ::= <typclass> ":" <signedtyprangedef> | <signedtyprangedef>
<signedtyprangedef> ::= "NOT" " "+ <typrangedef> | <typrangedef>
<typrangedef>       ::= <typrange> <lvldef>
<typrange>          ::= "-" <typnum> | <typnum> <typrangeto>
<typrangeto>        ::= "-" <typrangeend> | E
<typrangeend>       ::= <typnum> | E
<lvldef>            ::= "(" <lvldeflist> ")" | E
<lvldeflist>        ::= <lvlrange> <morelvlranges>
<morelvlranges>     ::= "," <lvldeflist> | E
<lvlrange>          ::= "-" <lvlnum> | <lvlnum> <lvlrangeto>
<lvlrangeto>        ::= "-" <lvlrangeend> | E
<lvlrangeend>       ::= <lvlnum> | E
<typclass>          ::= "POI" | "PGN" | "PLN"
<typnum>            ::= <digit>+ | "0x" <xdigit> <xdigit>? <xdigit>? <xdigit>? <xdigit>? <xdigit>? <xdigit>? <xdigit>?
<digit>             ::= [0-9]
<xdigit>            ::= [0-9] | [a-f] | [A-F]
<lvlnum>            ::= <dlvl> | <xlvl>
<dlvl>             	::= "0"* ([0-9] | "1" [0-5])
<xlvl>             	::= "0x" "0"* ([0-9] | [a-f])

C- and C++ comments (/*…*/ and //) are allowed at any position.

Examples

POI:     0x2f08 (2-)      //includes all Ground Transportation symbols in zoom level 2 and above
POI: NOT 0x0000 - 0xFFFF  //completely disables points of interest in all zoom levels
PGN:     0x4a,0x4b        //includes definition area and background polygons to map
PLN: NOT 0x1c-0x1e(2-4,6-)//excludes state-, country- and international borders from zoom levels 2..4 and 6..15
PGN:     0x4a,0x4b, PLN: 0x1c-0x1e(2-4, 6-), POI: 0x1600-0x1700, 0x2f08(2-),0x2f0b(-1) //complex scenario

Filter Expression Details

The type identifier is determined by one or more comma-separated range statements. The first type range must be preceded by a type class statement, all other type ranges rely to the class statement before. A class statement applies to all the following type ranges until a new class statement.

An optional level range list can follow the type range statement. The level range specifies the zoom level it applies to.

All the rules will be processed from left to right, one after another. If the first rule is an “include” the filter includes only the specified map items of the rule before the filter proceeds to the next box. If the first rule is an “exclude” the filter starts with all items, excludes the items specified by the rule and proceeds to the next rule.