Index: doc/index.txt
===================================================================
--- doc/index.txt	(revision 4278)
+++ doc/index.txt	(working copy)
@@ -1,4 +1,18 @@
+== Background ==
 
+The mkgmap program is distributed in Java archive format compiled for use under
+the Java Runtime Environment 8. You will need the Java SE Runtime Environment 8
+installed on your system in order to run mkgmap.
+
+Garmin maps consist of a series of .img files, with each file containing the
+data for one tile of the map. Unless you intend to build a very small map, you
+will need to use the accompanying splitter program to split your map into
+smaller tiles. The individual tiles can be joined together to produce a single
+gmapsupp.img file which contains the whole map and can be copied into the
+/Garmin folder of an SD card for use by a GPS device. If you want to create more
+than one map for use on your GPS, the gmapsupp.img files can be renamed to be
+unique, for example gmapsupp1.img, gmapsupp2.img.
+
 == Documentation ==
 The documentation that is currently available on this site is listed
 below.
Index: doc/options.txt
===================================================================
--- doc/options.txt	(revision 4278)
+++ doc/options.txt	(working copy)
@@ -1,892 +1,998 @@
-Note that option order is significant: An option only 
-applies to subsequent input files. So if you are using splitter, you probably 
-want to put most of your options before '-c template.args'.
-
-
-=== General options ===
-
-;--help=topic
-: 	Print help on the given topic.  If the topic is omitted then a
-list of all the help topics is printed instead.
-
-;--version 
-: 	Output program version to stderr.
-
-=== File options ===
-
-;--input-file=filename
-: 	Read input data from the give file.  This option (or just a
-filename) may be given more than once. Make sure to set all 
-wanted options before using this.
-
-;--gmapsupp
-: 	Create a gmapsupp.img file that can be uploaded to a Garmin or
-placed in "/Garmin" in a microSD card (such as by mounting the
-device in USB mass storage mode).  It can be used on ready
-compiled img files, if the input files are not already compiled
-then they are compiled first and then the gmapsupp is created.
-
-;--gmapi
-: 	Create a directory in the "gmapi" format required by Mac applications. Can 
-also be used for Windows programs.
-
-;-c filename
-;--read-config=filename
-: 	Each line of the named file contains a command option in the form
-option=value or option:value.  The options are included as arguments of
-the executed command as if they had been specified on the command line.
-Lines beginning with a # character are ignored and can be used as
-comments.  Any command line option can be specified, however the
-leading '--' must be omitted.  The short option names with a single
-'-' cannot be used, simply use the long name instead. 
-<p>
-;--output-dir=directory
-:	Specify the directory in which all output files are written. It defaults
-to the current working directory, i.e. the directory the command is
-executed from.
-<p>
-;-n name
-;--mapname=name
-: 	Set the name of the map. Garmin maps are identified by an 8 digit
-number.  The default is 63240001.  It is best to use a different
-name if you are going to be making a map for others to use so
-that it is unique and does not clash with others.
-<p>
-;--description=text
-: 	Set the descriptive text for the map. This may be displayed in
-QLandkarte, MapSource or on a GPS, where it is normally shown
-below the family name. Example: --description="Germany, Denmark"
-Please note: if you use splitter.jar to build a template.args file
-and use -c template.args, then that file may contain a
-"description" that will override this option for each single
-tile. Make sure to set the description for the gmapsupp.img after
-"-c template.args".
-<p>
-;--country-name=name
-: 	Set the map's country name. The default is "COUNTRY".
-<p>
-;--country-abbr=abbreviation
-: 	Set the map's abbreviated country name. The default is "ABC".
-<p>
-;--region-name=name
-: 	Set the map's region name. By default, the map has no region name.
-<p>
-;--region-abbr=abbreviation
-: 	Set the map's abbreviated region name. By default, the map has
-no abbreviated region name.
-<p>
-=== Label options ===
-
-;--code-page=number
-:     Specify which international character set is to be used. Only 8 bit
-character sets are supported so you have to specify which code page you
-want to use.
-It is entirely dependent on the device firmware which code pages are
-supported.
-<p>
-;--latin1
-: 	This is equivalent to --code-page=1252.
-<p>
-;--unicode
-: 	This is equivalent to --code-page=65001. Note that some devices don't support 
-Unicode maps produced by mkgmap.
-<p>
-;--lower-case
-: 	Allow labels to contain lower case letters.  Note that many
-Garmin devices are not able to display lower case letters at an angle.
-<p>
-=== Address search options ===
-;--index
-: 	Generate a global address search index. If the --gmapsupp option is
-also given, then the index is generated within the resulting
-gmapsupp.img file so that address search will work on a GPS
-device.
-<p>
-If both the --gmapsupp and any of --tdbfile, --gmapi, or --nsis options 
-are given alongside the --index option, then both indexes will be created.
-Note that this will require roughly twice as much memory.
-<p>
-If the map is sent to the device by MapSource, it will enable
-find by name and address search on the GPS.
-
-: The address fields are assigned by special mkgmap address
-tags using the style file:
-
-  mkgmap:country
-  mkgmap:region
-  mkgmap:city
-  mkgmap:postal_code
-  mkgmap:street
-  mkgmap:housenumber
-  mkgmap:phone
-  (mkgmap:is_in - used by location-autofill=is_in)
-
-: If the index is created from previously compiled .img files, then the
-same code page and sorting options (e.g. --code-page, --latin1) must
-be used as were used to compile the individual map tiles.
-
-;--split-name-index
-:     Index each part of a street name separately.
-For example, if the street is "Aleksandra Gryglewskiego" then you will be able to
-search for it as both "Aleksandra" and "Gryglewskiego".  It will also increase the
-size of the index.  Useful in countries where searching for the first word in name
-is not the right thing to do. Words following an opening bracket '(' are ignored. 
-:	See also option road-name-config.  
-<p>
-;--road-name-config=filename
-:	Provide the name of a file containing commonly used road name prefixes
-and suffixes.
-This option handles the problem that some countries have road names which 
-often start or end with very similar words, e.g. in France the first word
-is very often 'Rue', often followed by a preposition like 'de la' or 'des'.
-This leads to rather long road names like 'Rue de la Concorde' where only
-the word 'Concorde' is really interesting. In the USA, you often have names
-like 'West Main Street' where only the word 'Main' is important.  
-Garmin software has some tricks to handle this problem. It allows the use
-of special characters in the road labels to mark the beginning and end of 
-the important part. In combinarion with option split-name-index
-only the words in the important part are indexed.
-<p>
-:There are two effects of this option:
-::	- On the PC, when zooming out, the name 'Rue de la Concorde' is only
-rendered as 'Concorde'.
-::	- The index for road names only contains the important part of the name.
-You can search for road name Conc to find road names like 'Rue de la Concorde'.
-However, a search for 'Rue' will not list 'Rue de la Concorde' or
-'Rue du Moulin'. It may list 'Rueben Brookins Road' if that is in the map.
-Only MapSource shows a corresponding hint.
-<p>
-::	Another effect is that the index is smaller. 
-:	See comments in the sample roadNameConfig.txt for further details.
-<p>
-;--mdr7-excl=name[,name...]
-:	Specify words which should be omitted from the road index.
-It was added before option road-name-config and is probably no longer needed.
-:	Example usage: --x-mdr7-excl="Road, Street, Straße, Weg"
-<p>
-;--mdr7-del=name[,name...]
-:	Use this option if your style adds strings to the labels of roads which you
-want to see in the map but which should not appear in the result list
-of a road name / address search. The list is used like this:
-For each road label, mkgmap searches for the last blank. If one is found, it checks
-if the word after it appears in the given list. If so, the word is removed
-and the search is repeated. The remaining string is used to create the index.
-:	Example: Assume your style adds surface attributes like 'pav.' or 'unp.' to a road
-label. You can use --mdr7-del="pav.,unp." to remove these suffixes from the index.
-<p>
-;--poi-excl-index=poi[-poi][,poi[-poi]...]
-:	By default, mkgmap indexes the following POI types with a non-empty label:
-::	- 0x00 .. 0x0f (cities, sub type 0, type <= 0xf)
-::	- 0x2axx..0x30xx (Food & Drink, Lodging, ...)
-::	- 0x28xx (no category ?)
-::	- 0x64xx .. 0x66xx (attractions)   
-:	This option allows the exclusion of POI types from the index. 
-The excluded types are not indexed, but may still be searchable on a device 
-as some devices seem to ignore most of the index, e.g. an Oregon 600 with 
-firmware 5.00 only seems to use it for city search.
-If your device finds a POI name like 'Planet' when you search for 'Net',
-it doesn't use the index because the index created by mkgmap cannot help for 
-that search.
-<p> 
-:	So, this option may help when you care about the size of the index or the
-memory that is needed to calculate it.    
-The option expects a comma separated list of types or type ranges. A range is 
-given with from-type-to-type, e.g. 0x6400-0x6405. First and last type are both 
-excluded.  A range can span multiple types, e.g. 0x6400-0x661f.  
-:	Examples for usage: 
-::	- Assume your style adds a POI with type 0x2800 for each addr:housenumber.
-It is not useful to index those numbers, so you can use --poi-excl-index=0x2800
-to exclude this.
-::	- For the mentioned Oregon you may use --poi-excl-index=0x2a00-0x661f
-to reduce the index size.
-<p>
-;--bounds=directory|zipfile
-:     Specify a directory or zip file containing the preprocessed bounds files. 
-Bounds files in a zip file must be located in the zip file's root directory.
-<p>
-The preprocessed boundaries are used to add special tags to all elements 
-(points, lines and polygons) containing the elements location information.
-The style file can be used to assign the address tags mkgmap:country,
-mkgmap:region etc. using these values.
-<p>
-The following special tags are added:          
-<pre>
-  mkgmap:admin_level2 : Name of the admin_level=2 boundary 
-  mkgmap:admin_level3 : Name of the admin_level=3 boundary
-  ..
-  mkgmap:admin_level11
-  mkgmap:postcode : the postal_code value
-</pre>
-Preprocessed bounds can be created with the following command:
-<pre>
-  java -cp mkgmap.jar 
-    uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor
-    <inputfile> <boundsdir>
-</pre>
-The input file must contain the boundaries that should be preprocessed. 
-It can have OSM, PBF or O5M file format. It is recommended that it 
-contains the boundary data only to avoid very high memory usage.
-The boundsdir gives the directory where the processed files are stored.
-This directory can be used as --bounds parameter with mkgmap.               
-<p>
-;--location-autofill=[option1,[option2]]
-: 	Controls how the address fields for country, region, city and zip info 
-are gathered automatically if the fields are not set by using the special 
-mkgmap address tags (e.g. mkgmap:city - see option index).
-Warning: automatic assignment of address fields is somehow a best guess.
-:;is_in
-::     The is_in tag is analyzed for country and region information.
-<p>
-:;nearest
-::	The city/hamlet points that are closest to the element are used 
-to assign the missing address fields. Beware that cities located 
-in the same tile are used only. So the results close to a tile 
-border have less quality.  
-
-;--housenumbers
-:   Enables house number search for OSM input files. 
-All nodes and polygons having addr:housenumber set are matched 
-to streets. A match between a house number element and a street is created if
-the street is located within a radius of 150m and the addr:street tag value of 
-the house number element equals the mgkmap:street tag value of the street. 
-The mkgmap:street tag must be added to the street in the style file.
-For optimal results, the tags mkgmap:city and mkgmap:postal_code should be
-set for the housenumber element. If a street connects two or more cities
-this allows to find all addresses along the road, even they have the same
-number.
-: Example for given street name: 
-:: Node -  addr:street=Main Street addr:housenumber=2
-:: Way 1 - name=Main Street
-:: Way 2 - name=Main Street, mkgmap:street=Main Street
-:: Way 3 - mkgmap:street=Mainstreet
-:: Way 4 - name=Main Street [A504]
-: The node matches to Way 2. It has mkgmap:street set with a value equal to
-the addr:street tag value of the house number node.
-<p>
-If the street is not given with addr:housenumber, mkgmap uses heuristics
-to find the best match.
-
-=== Overview map options ===
-;--overview-mapname=name
-: 	If --tdbfile is enabled, this gives the name of the overview
-.img and .tdb files. The default map name is osmmap.
-<p>
-;--overview-mapnumber=8 digit number
-: 	If --tdbfile is enabled, this gives the internal 8 digit
-number used in the overview map and tdb file.  The default
-number is 63240000.
-<p>
-;--overview-levels=level:resolution[,level:resolution...]
-:   Like levels, specifies additional levels that are to be written to the
-overview map. Counting of the levels should continue. Up to 8 additional 
-levels may be specified, but the lowest usable resolution with MapSource 
-seems to be 11. The hard coded default is empty.
-:	See also option --overview-dem-dist.      
-<p>
-;--remove-ovm-work-files
-:   If overview-levels is used, mkgmap creates one additional file 
-with the prefix ovm_ for each map (*.img) file. 
-These files are used to create the overview map.
-With option --remove-ovm-work-files=true the files are removed 
-after the overview map was created. The default is to keep the files.  
-<p>
-=== Style options ===
-;--style-file=filename
-: 	Specify an external file to obtain the style from.  "file" can
-be a directory containing files such as info, lines, options
-(see resources/styles/default for an example).  The directory
-path must be absolute or relative to the current working
-directory when mkgmap is invoked.
-<p>
-The file can be a zip file containing the files instead of a
-directory.
-<p>
-The files can be at the top level or contained in a folder within
-the zip file.  If the zip file contains more than one top level
-folder then each folder is the name of a style that can be selected
-with the --style option.
-<p>
-The argument can also be a URL that specifies the location of a
-style file.
-<p>
-;--style=name
-: 	Specify a style name. Must be used if --style-file points to a 
-directory or zip file containing multiple styles. If --style-file 
-is not used, it selects one of the built-in styles. 
-<p>
-;--style-option=tag[=value][;tag[=value]...]
-: 	Provide a semicolon separated list of tags which can be used in the style.
-The intended use is to make a single style more flexible, e.g.
-you may want to use a slightly different set of rules for a map of
-a whole continent. The tags given will be prefixed with "mkgmap:option:".
-If no value is provided the default "true" is used.  
-This option allows to use rules like
-mkgmap:option:light=true & landuse=farmland {remove landuse}
-Example: -- style-option=light;routing=car
-will add the tags mkgmap:option:light=true and mkgmap:option:routing=car
-to each element before style processing happens. 
-<p>                                                            
-;--list-styles
-: 	List the available styles. If this option is preceded by a style-file
-option then it lists the styles available within that file.
-<p>
-;--check-styles
-: 	Perform some checks on the available styles. If this option is 
-preceded by a style-file option then it checks the styles 
-available within that file. If it is also preceded by the style
-option it will only check that style.
-<p>
-;--levels=level:resolution[,level:resolution...]
-: 	Change the way that the levels on the map correspond to the zoom
-levels in the device. See customisation help. The hard coded default is:
-"0:24, 1:22, 2:20, 3:18, 4:16", although each style can have
-its own default. The default style for example overwrites it with
-"0:24, 1:22, 2:20, 3:18". Up to 8 levels may be specified.
-<p>
-;--name-tag-list=tag[,tag...]
-: 	Specify the tag that will be used to supply the name.  Useful for
-language variations.  You can supply a list of tags and the first one
-found will be used.  e.g. --name-tag-list=name:en,int_name,name
-<p>
-===Product description options===
-
-;--family-id=integer
-: 	This is an integer that identifies a family of products.
-Range: [1..9999]
-Mkgmap default: 6324
-<p>
-;--family-name=name
-: 	If you build several maps, this option describes the
-family name of all of your maps. Garmin will display this
-in the map selection screen.
-<p>
-Example: --family-name="OpenStreetmap mkgmap XL 2019"
-<p>
-;--product-id=integer
-: 	This is an integer that identifies a product within a family.
-It is often just 1, which is the default.
-<p>
-;--product-version=integer
-: 	The version of the product. Default value is 100 which means version 1.00.
-<p>
-;--series-name=name
-: 	This name will be displayed in MapSource in the map selection
-drop-down. The default is "OSM map".
-<p>
-;--area-name=name
-:   Area name is displayed on Garmin units (or at least on eTrex) as the second 
-part of the mapname in the list of the individual maps.
-<p>
-;--copyright-message=text
-: 	Specify a copyright message for files that do not contain one.
-<p>
-;--copyright-file=filename
-: 	Specify copyright messages from a file.
-Note that the first copyright message is not displayed on a device, but is 
-shown in BaseCamp. The copyright file must include at least two lines and
-be UTF-8 encoded. The following symbols will be substituted by mkgmap:
-$MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and $TIME$.
-Time and date substitutions use the local date and time formats.
-<p>
-;--license-file=filename
-: 	Specify a file which content will be added as license.
-The license file must be UTF-8 encoded.
-The following symbols will be substituted by mkgmap:
-$MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and $TIME$.
-Time and date substitutions use the local date and time formats.
-All entries of all maps will be merged in the overview map.
-<p>
-=== Optimization options ===
-
-;--reduce-point-density=NUM
-: 	Simplifies the ways with the Douglas Peucker algorithm.
-NUM is the maximal allowed error distance, by which the resulting
-way may differ from the original one.
-This distance gets shifted with lower zoom levels. 
-Recommended setting is 4, this should lead to only small differences
-(Default is 2.6, which should lead to invisible changes)
-<p>
-;--reduce-point-density-polygon=NUM
-: 	Allows you to set the maximal allowed error distance for the DP algorithm
-to be applied against polygons. Recommended setting is 8.
-<p>
-;--merge-lines
-: 	Try to merge lines. This helps the simplify filter to straighten out
-longer chunks at lower zoom levels. Decreases file size more.
-Increases paint speed at low zoom levels.
-Default is enabled, use --no-merge-lines to disable.
-<p>
-;--min-size-polygon=NUM
-:   Removes all polygons smaller than NUM from the map.
-This reduces map size and speeds up redrawing of maps. 
-Recommended value is 8 to 15, default is 8.
-:	See also polygon-size-limits.
-<p>
-;--polygon-size-limits=resolution:value[,resolution:value...]
-:   Allows you to specify different min-size-polygon values for each resolution.
-Sample:  
---polygon-size-limits="24:12, 18:10, 16:8, 14:4, 12:2, 11:0"
-If a resolution is not given, mkgmap uses the value for the next higher 
-one. For the given sample, resolutions 19 to 24 will use value 12,
-resolution 17 and 18 will use 10, and so on.
-Value 0 means to not apply the size filter. 
-Note that in resolution 24 the filter is not used.
-The following options are equivalent:
- --min-size-polygon=12
- --polygon-size-limits=24:12
- --polygon-size-limits=24:0,23:12
- --polygon-size-limits=24:0,23:12,22:12,21:12,16:12
-<p>
-=== Hill Shading (DEM) options ===
-:   Hill Shading is rendered by PC programs (MapSource or BaseCamp) or GPS devices 
-when the map includes a Digital Elevation Model (DEM). Use the following options 
-to add a DEM to the map and control its characteristics. DEM creation requires 
-files containing height information for the area covered by the map, the so 
-called hgt files, which typically cover 1 degree latitude * 1 degree longitude 
-and are named by the coordinates of their bottom left corner (eg. N53E009). They 
-contain height information in a grid of points. Typical hgt files contain either 
-1'' or 3'' data. 3'' files have 1201 * 1201 points, which gives 
-2 * 1201 * 1201 = 2.884.802 bytes. 1'' files have 3601 * 3601 points, which gives 
-2 * 3601 * 3601 = 25.934.402 bytes. Other files are supported as long as the 
-formular sqrt(size/2) gives an integer value.
-<p>
-;--dem=path[,path...]
-:   The option expects a comma separated list of paths to directories or zip 
-files containing *.hgt files. Directories are searched for *.hgt files 
-and also for *.hgt.zip and *.zip files
-:   The list is searched in the given order, so if you want to use 1'' files 
-make sure that they are found first. There are different sources for *.hgt 
-files, some have so called voids which are areas without data. Those should be 
-avoided.
-<p>
-;--dem-dists=number[,number...]
-:   If given, the option specifies the resolution(s) or zoom level for the DEM 
-data. If not given, mkgmap tries to determine a reasonable value based on the 
-resolution found in the *.hgt files. For desktop programs like MapSource or 
-Basecamp you only need one zoom level, for GPS devices you need one for each 
-resolution given with the --levels option. The actual values are given as 
-distance between two DEM points and should be a multiple or submultiple of the 
-distance between two points in the hgt file, that is 3314 for 1'' and 9942 for 
-3''. Higher distances mean lower resolution and thus fewer bytes in the map. 
-Reasonable values for the highest resolution should not be much smaller than 
-50% hgt resolution, that is somewhere between 1648 and 5520 for 1'' hgt input 
-files (3312 is often used), and 5520 to 9942 for 3'' hgt input files.
-:	Example which should work with levels="0:24, 1:22, 2:20, 3:18":
-:	--dem-dists=3312,13248,26512,53024
-:	This was found in a Garmin Demo map for transalpin data created 2009.
-<p>
-;--dem-interpolation=auto|bicubic|bilinear
-:   Use this option to specify the method that is used to interpolate data from 
-hgt raster to the DEM raster. The value bicubic gives the highest precision 
-but is slower, bilinear is faster but less precise, it tends to smooth the 
-profile and thus also reduces DEM size compared to bicubic. The value auto 
-means that bicubic is used where is seems appropriate according to hgt 
-resolution and dem-dist value, else bilinear is used. The default is auto.
-<p>
-;--dem-poly=filename
-:   If given, the filename should point to a *.poly file in osmosis polygon 
-file format. The polygon described in the file is used to determine the area
-for which DEM data should be added to the map. If not given, the DEM data will
-cover the full tile area.
-<p>   
-;--overview-dem-dist=integer
-:   If given, the option specifies the resolution(s) for the DEM data in the
-overview map. If not given or 0, mkgmap will not add DEM to the overview map.
-Reasonable values depend on the size of the area and the lowest resolution
-used for the single tiles, good compromises are somewhere between 55000 
-and 276160.  
-<p>
-=== Miscellaneous options ===
-
-;--max-jobs[=integer]
-: 	Specify the number of threads to be used for concurrent processing.
-Increasing max-jobs will reduce the execution time, providing sufficient
-memory is available and the value is not greater than the number of cores
-in the CPU. If no value is specified, the limit is set to the number of CPU
-cores. The default is for the limit to be automatically set to a reasonable
-value based on the amount of memory allocated to the Java runtime and the
-amount used in processing the first tile. To optimise mkgmap to use all
-available CPU cores, you may need to use the Java -Xmx option to increase
-the amount of available heap storage.
-<p>
-;--keep-going
-: 	Don't quit whole application if an exception occurs while
-processing a map - continue to process the other maps.
-<p>
-;--block-size=integer
-: 	Changes the block size that is used in the generated map. This
-option is not usually needed, but sometimes an error message
-will ask you to try a value for this option.
-<p>     
-;--net
-: 	Tells mkgmap to write NET data, which is needed for address search
-and routing. Use this option if you want full address search, but do
-not need a map that supports routing.
-<p>                                                            
-;--route
-: 	Tells mkgmap to write NET and NOD data, which are needed in maps 
-that support routing. If you specify this option, you do not need
-to specify --net.
-<p>
-;--add-boundary-nodes-at-admin-boundaries=NUM	
-: 	This option controls how mkgmap calculates special routing nodes which
-are needed by Garmin software to allow routing between different map tiles.
-These nodes are written to section 3 and 4 in the NOD file.
-When a road crosses the tile boundary (bbox), the road is split at this
-point and such a special node is written. This allows routing between
-one set of tiles produced by splitter.jar. However, if you create a map
-from different sets of tiles, those tiles are likely to overlap.
-For the overlapping tiles, none of the entries in NOD3 match and thus
-routing across tile border doesn't work when the route is not fully
-covered by one of the tiles.
-The option tells mkgmap to add special nodes whereever a road touches or
-crosses an administratve boundary. The NUM parameter specifies a filter
-for the admin_level. Boundaries with a higher admin_level value are ignored.
-The default value is 2 (country borders). Another reasonable value might
-be 4. A value less or equal to 0 tells mkgmap to ignore intersections at 
-administrative boundaries.
-<p>	
-;--drive-on=left|right|detect|detect,left|detect,right
-: 	Explicitly specify which side of the road vehicles are
-expected to drive on. 
-If the first option is detect, the program tries 
-to find out the proper flag. If that detection
-fails, the second value is used (or right if none is given).
-With OSM data as input, the detection tries to find out  
-the country each road is in and compares the number
-of drive-on-left roads with the rest.
-Use the --bounds option to make sure that the detection 
-finds the correct country. 
-<p>
-
-;--check-roundabouts
-: 	Check that roundabouts have the expected direction (clockwise
-when vehicles drive on the left). Roundabouts that are complete
-loops and have the wrong direction are reversed. Also checks
-that the roundabouts do not fork or overlap other roundabouts
-and that no more than one connecting highway joins at each node.
-<p>
-;--check-roundabout-flares
-: 	Check that roundabout flare roads point in the correct
-direction, are one-way and don't extend too far.
-<p>
-;--max-flare-length-ratio=NUM
-: 	When checking flare roads, ignore roads whose length is
-greater than NUM (an integer) times the distance between the
-nodes on the roundabout that the flare roads connect to. Using
-this option with a value of at least 5 will cut down the
-number of legitimate roads that are flagged as flare road
-problems. Default value is 0 (disabled) because it's not a
-completely reliable heuristic.
-<p>
-;--ignore-turn-restrictions
-: 	When reading OSM files, ignore any "restriction" relations.
-<p>
-;--ignore-osm-bounds
-: 	When reading OSM files, ignore any "bounds" elements.
-With this option selected generate-sea sometimes works better,
-but routing across tiles will not work.
-<p>
-;--preserve-element-order
-: 	Process the map elements (nodes, ways, relations) in the order
-in which they appear in the OSM input. Without this option,
-the order in which the elements are processed is not defined.
-<p>
-Optional BITMASK (default value 3) allows you to specify which
-adjustments are to be made (where necessary):
-<p>
-:* 1 = increase angle between side road and outgoing main road
-:* 2 = increase angle between side road and incoming main road
-<p>
-;--cycle-map
-: 	Tells mkgmap that the map is for cyclists. This assumes that
-different vehicles are different kinds of bicycles, e.g. a way
-with mkgmap:car=yes and mkgmap:bicycle=no may be a road that is 
-good for racing bikes, but not for other cyclists.
-This allows the optimisation of sharp angles at junctions of those roads. 
-Don't use with the default style as that is a general style!
-<p>
-;--report-similar-arcs
-: 	Issue a warning when more than one arc connects two nodes and
-the ways that the arcs are derived from contain identical
-points. It doesn't make sense to use this option at the same
-time as using the cycleway creating options.
-<p>
-;--report-dead-ends=LEVEL
-: 	Set the dead end road warning level. The value of LEVEL (which
-defaults to 1 if this option is not specified) determines
-those roads to report: 0 = none, 1 = multiple one-way roads
-that join together but go nowhere, 2 = individual one-way roads
-that go nowhere.
-<p>
-;--add-pois-to-lines
-: 	Generate POIs for lines. For each line (must not be closed) POIs are
-created at several points of the line. Each POI is tagged with the
-same tags like the line and additional tags added by mkgmap:
-mkgmap:line2poi=true and tag mkgmap:line2poitype having
-the following values:
-:* start  - The first point of the line
-:* end    - The last point of the line
-:* inner  - Each point of the line except the first and the last 
-:* mid    - The middle point
-;--add-pois-to-areas
-: 	Generate a POI for each polygon and multipolygon. The POIs are created 
-after the relation style but before the other styles are applied. Each 
-POI is tagged with the same tags of 
-the area/multipolygon. Additionally the tag mkgmap:area2poi=true is 
-set so that it is possible to use that information in the points style
-file. Artifical polygons created by multipolyon processing are not used.
-The POIs are created at the following positions (first rule that applies):
-:;polygons: 
-::First rule that applies of
-::* the first node tagged with a tag defined by the pois-to-areas-placement option
-::* the centre point  
-:; multipolygons:
-::First rule that applies of
-::* the node with role=label
-::* the centre point of the biggest area
-;--pois-to-areas-placement=tag=value[;tag=value...]
-:     A POI is placed at the first node of the polygon tagged with the first tag/value
-pair. If none of the nodes are tagged with the first tag-value pair the first node
-tagged with the second tag-value pair is used and so on. If none of the tag-value pairs
-matches or the taglist is empty, the centre of the polygon is used.
-It is possible to define wildcards for tag values like entrance=*.
-<p>Default: entrance=main;entrance=yes;building=entrance
-<p>
-;--precomp-sea=directory|zipfile
-:     Defines the directory or a zip file that contains precompiled sea tiles. 
-Sea files in a zip file must be located in the zip file's root directory or in 
-a sub directory sea. When this option is defined all natural=coastline tags 
-from the input OSM tiles are removed and the precompiled data is used instead. 
-This option can be combined with the generate-sea options multipolygon, polygons 
-and land-tag. The coastlinefile option is ignored if precomp-sea is set.      
-<p>
-;--coastlinefile=filename[,filename...]
-: 	Defines a comma separated list of files that contain coastline 
-data. The coastline data from the input files is removed if 
-this option is set. Files must have OSM or PBF fileformat.	
-<p>
-;--generate-sea[=ValueList]
-: 	Generate sea polygons. ValueList is an optional comma
-separated list of values:
-<p>
-:;multipolygon
-:: generate the sea using a multipolygon (the default behaviour so this really doesn't need to be specified).
-
-:;polygons | no-mp
-:: don't generate the sea using a multipolygon - instead,
-generate a background sea polygon plus individual land
-polygons with tag natural=land. This requires a
-suitable land polygon type to be defined in the style
-file (suggested type is 0x010100) and the polygon must
-be defined in the TYP file as having a higher drawing
-level than the sea polygon type.
-
-:;no-sea-sectors
-:: disable the generation of "sea sectors" when the
-coastline fails to reach the tile's boundary.
-:;extend-sea-sectors
-:: same as no-sea-sectors. Additional adds a point so coastline reaches the nearest tile boundary.
-
-:;land-tag=TAG=VAL
-:: tag to use for land polygons (default natural=land).
-:;close-gaps=NUM
-:: close gaps in coastline that are less than this distance (metres)
-
-:;floodblocker 
-:: enable the flood blocker that prevents a flooding of
-land by checking if the sea polygons contain streets
-(works only with multipolygon processing)		
-
-:;fbgap=NUM           
-:: flood blocker gap in metre (default 40)
-points that are closer to the sea polygon do not block 
-:;fbthres=NUM
-:: at least so many highway points must be contained in 
-a sea polygon so that it may be removed by the flood
-blocker (default 20)
-
-:; fbratio=NUM
-:: only sea polygons with a higher ratio 
-(highway points * 100000 / polygon size) are removed 
-(default 0.5)
-
-:; fbdebug
-:: switches on the debugging of the flood blocker
-generates GPX files for each polygon checked by
-the flood blocker
-
-;--make-poi-index
-:	Generate a POI index in each map tile. Probably not used by modern devices,
-but still supported.
-<p>
-;--nsis
-: 	Write a .nsi file that can be used with the Nullsoft Scriptable Install System
-(NSIS) to create a Windows Mapsource Installer.
-<p>
-;--make-opposite-cycleways
-: 	Some one-way streets allow bicycle traffic in the reverse
-direction and this option makes a way with the same points as
-the original that allows bicycle traffic (in both directions).
-;--link-pois-to-ways
-:     This option may copy some specific attributes of a POI 
-to a small part of the way the POI is located on. This can be used
-to let barriers block a way or to lower the calculated speed
-around traffic signals.
-POIs with the tags highway=* (e.g. highway=traffic_signals)  
-or barrier=* (e.g. barrier=cycle_barrier) are supported.
-The style developer must add at least one of the access tags
-(mkgmap:foot, mkgmap:car etc.), mkgmap:road-speed and/or 
-mkgmap:road-class to the POI. 
-The access tags are ignored if they have no effect for the way, 
-else a route restriction is added at the POI so that only 
-allowed vehicles are routed through it. 
-The tags mkgmap:road-speed and/or mkgmap:road-class are 
-applied to a small part of the way around the POI, typically
-to the next junction or a length of ~25 m. The tags
-are ignored for pedestrian-only ways.      
-<p>
-;--process-destination
-: 	Splits all motorway_link, trunk_link, primary_link, secondary_link,
-and tertiary_link ways tagged with destination into two or three parts where 
-the second part is additionally tagged with mkgmap:dest_hint=*.
-The code checks for the tags destination, destination:lanes, 
-destination:street and some variants with :forward/:backward like
-destination:forward or destination:lanes:backward. If a value for
-destination is found, the special tag mkgmap:dest_hint is set to  
-it  and the way is split.
-This happens before the style rules are processed.
-This allows to use any routable Garmin type (except 0x08 and 0x09)
-for that part so that the Garmin device tells the name of
-this part as hint which destination to follow.
-:	See also --process-exits.
-<p>
-;--process-exits
-:     Usual Garmin devices do not tell the name of the exit on motorways 
-while routing with mkgmap created maps. This option splits each
-motorway_link, trunk_link, primary_link, secondary_link, and 
-tertiary_link way into three parts. 
-All parts are tagged with the original tags of the link. 
-Additionally the middle part is tagged with the following tags:
-<pre>
-  mkgmap:exit_hint=true
-  mkgmap:exit_hint_ref=<ref tag value of the exit>
-  mkgmap:exit_hint_name=<name tag value of the exit>
-  mkgmap:exit_hint_exit_to=<exit_to tag value of the exit>
-</pre>
-Adding a rule checking the mkgmap:exit_hint=true makes it possible
-to use any routable Garmin type (except 0x08 and 0x09) for the middle 
-part so that the Garmin device tells the name of this middle part as 
-hint where to leave the motorway/trunk.
-The first part must have type 0x08 or 0x09 so that Garmin uses the hint. 
-
-;--delete-tags-file=filename
-: 	Names a file that should contain one or more lines of the form
-TAG=VALUE or TAG=*. Blank lines and lines that start with
-a # or ; are ignored. All tag/value pairs in the OSM input are
-compared with these patterns and those that match are deleted.
-<p>
-;--ignore-fixme-values
-: 	Ignore all tags for which the value matches the pattern "(?i)fix[ _]?+me".	
-<p>
-;--tdbfile
-: 	Write files that are essential to running with MapSource, a .tdb file and
-an overview map. The options --nsis and --gmapi imply --tdbfile.
-<p>
-;--show-profiles=1
-: 	Sets a flag in tdb file. The meaning depends on the availability of DEM 
-data (see "Hill Shading (DEM) options"). 
-: 	Without DEM data the flag enables profile calculation in MapSource or 
-Basecamp based on information from contour lines. 
-: 	If DEM data is available the profile is calculated with that 
-information and the flag only changes the status line to show the height when 
-you hover over an area with valid DEM data. 
-: 	The default is show-profiles=0.
-<p>
-;--transparent
-: 	Make the map transparent, so that if two maps covering the same area are
-loaded, you can see through this map to see details from the other map too.
-Typically used for maps containing just contour lines. See --draw-priority
-as well.
-<p>
-;--draw-priority=integer
-: 	When two maps cover the same area and both are enabled in the device, this
-option controls the order in which they are drawn in and therefore which map
-is on top.  Higher priorities are drawn "on top" of lower priorities.
-The map drawn on top must be transparent for the one underneath to be seen.
-The default value is 25.
-<p>
-;--custom
-: 	Write a different TRE header. With this option, mkgmap writes the bytes
-0x170401 instead of the default 0x110301 at offset 43. Useful for marine maps.	
-<p>
-;--hide-gmapsupp-on-pc
-: 	Set a bit in the gmapsupp.img that tells PC software that the file is
-already installed on the PC and therefore there is no need to read it 
-from the device.
-<p>
-;--poi-address
-: 	Enable address / phone information to POIs. Address info is
-read according to the "Karlsruhe" tagging schema. Automatic
-filling of missing information could be enabled using the
-"location-autofill" option.
-Default is enabled, use --no-poi-address to disable.
-<p>
-;--verbose
-: 	Makes some operations more verbose. Mostly used with --list-styles.
-<p>
-;--order-by-decreasing-area
-:	Puts area/polygons into the map in decreasing size order, so
-that smaller features are rendered over larger ones
-(assuming _drawOrder is equal).
-The tag mkgmap:drawLevel can be used to override the
-natural area of a polygon, so forcing changes to the rendering order. 
-
-=== Deprecated and Obsolete Options ===
-<p>
-;--drive-on-left
-;--drive-on-right
-: 	Deprecated; use drive-on instead.
-The options are translated to drive-on=left|right. 
-<p>
-;--make-all-cycleways
-:   Deprecated; use --make-opposite-cycleways instead. Former meaning: 
-<div class=preserve><nowiki>
-Turn on all of the options that make cycleways.
-</nowiki></div>
-<p>
-;--charset=name
-: 	Obsolete; use --code-page instead.
-<p>
-;--map-features=filename
-: 	Obsolete; use --style-file instead.
-<p>
-;--ignore-maxspeeds
-: 	Obsolete; former usage:
-When reading OSM files, ignore any "maxspeed" tags.
-<p>
-;--ignore-builtin-relations
-: 	Obsolete; former usage:
-When reading OSM files, skip the built-in processing of
-relations. This speeds up the processing non-routable map
-layers that do not contain multipolygons. This implies
---ignore-turn-restrictions.
-<p>
-;--road-name-pois[=GarminCode]
-: 	Obsolete; former usage:
-Generate a POI for each named road. By default, the POIs'
-Garmin type code is 0x640a. If desired, a different type code
-can be specified with this option.  This is a workaround for not
-being able to search for roads.
-0x2f15: a blue dot in the middle of the road, and if you select,
-or 'hover' over it, the street name appears.
-<p>
-;--make-cycleways
-:   Obsolete; former meaning:
-<div class=preserve><nowiki>
-Some streets have a separate cycleway track/lane just for
-bicycle traffic and this option makes a way with the same
-points as the original that allows bicycle traffic. Also,
-bicycle traffic is prohibited from using the original way
-(unless that way's bicycle access has been defined).
-</nowiki></div>
+﻿=== Command line ===
+
+The command line is of the format:
+
+:	java.exe [java-options] –jar mkgmap.jar [mkgmap-options]
+
+A typical simple example using both splitter and mkgmap:
+
+:	java.exe -Xmx2g -jar splitter.jar england-latest.o5m
+	java.exe -jar mkgmap.jar --gmapsupp -c template.args
+
+The first command splits the Open Street Map data into smaller files
+with each file containing the data for one tile of the map. It also
+produces a file named template.args that contains the names of all
+the generated files.
+
+The second command takes as input all the individual files listed
+in the template.args file generated by splitter, produces a .img
+file for each tile, then merges all the tiles together into a
+single gmapsupp.img file.
+
+=== Java options ===
+
+Details of the Java options are available at docs.oracle.com.
+The most likely options you may need to use are:
+
+;-Xmx<size>[g|G|m|M|k|K]
+:	Use this option to set the maximum Java heap size in GB, MB, KB or
+bytes. Mkgmap allows the use of multiple CPU cores, and the amount of
+heap memory required increases proportionally with the number of CPU
+cores being used. The default value may not be sufficient to allow
+mkgmap to use all the available CPU cores, which will cause the run time
+to be longer than necessary. To allow mkgmap to run optimally, you may
+need to use this option to allow more memory to be allocated to the Java
+heap. Typically, mkgmap requires about 500MB per core, so an 8-core
+processor might need to specify –Xmx4g – note there is no space or
+equals sign in the option.  
+
+;-enableassertions
+:	Causes an error to be thrown if an assertion written in the mkgmap
+code is evaluated as not true. This is useful in detecting bugs in the
+mkgmap code.
+
+;-Dlog.config=filename
+:	Specifies a logging configuration file that allows you to enable and
+disable specific logging messages. This is useful if you want to see
+certain types of message that are not logged by default or choose where
+the messages should be written. The configuration file contains details
+of the handler(s) used to write the messages, parameters used to format
+the messages and the severity of messages that should be logged at Java
+package or class level, plus a default value. An example file is:
+
+# The default level FINE, WARNING, INFO, SEVERE 
+.level=SEVERE
+#handlers: java.util.logging.ConsoleHandler 
+handlers: java.util.logging.FileHandler java.util.logging.ConsoleHandler 
+# package or class name with .level appended and then the level
+uk.me.parabola.imgfmt.level=INFO
+uk.me.parabola.mkgmap.build.level=INFO
+uk.me.parabola.mkgmap.main.Main.level=INFO
+uk.me.parabola.mkgmap.main.MapMaker.level=INFO
+uk.me.parabola.mkgmap.general.RoadNetwork.level=INFO
+uk.me.parabola.mkgmap.general.MapLine.level=INFO
+uk.me.parabola.mkgmap.osmstyle.level=INFO
+uk.me.parabola.mkgmap.reader.osm.level=INFO
+uk.me.parabola.mkgmap.reader.osm.xml.level=INFO
+uk.me.parabola.mkgmap.reader.osm.RestrictionRelation.level=FINE
+uk.me.parabola.mkgmap.reader.osm.Restriction.level=FINE
+# For ConsoleHandler
+java.util.logging.ConsoleHandler.level=WARNING
+java.util.logging.ConsoleHandler.formatter=uk.me.parabola.log.UsefulFormatter
+# For FileHandler
+java.util.logging.FileHandler.level=FINE
+java.util.logging.FileHandler.encoding=UTF-8
+java.util.logging.FileHandler.formatter=uk.me.parabola.log.UsefulFormatter
+java.util.logging.FileHandler.limit=20000000
+java.util.logging.FileHandler.count=4
+java.util.logging.FileHandler.pattern=mkgmap.log
+java.util.logging.FileHandler.append=false
+
+=== Mkgmap options ===
+
+The order of the options is significant in that options only apply
+to subsequent input files. If you are using splitter, you probably 
+will need to put most of your options before '-c template.args'
+(this file is generated by splitter).
+
+=== General options ===
+
+;--help=topic
+: 	Print help on the given topic.  If the topic is omitted then a
+list of all the help topics is printed instead.
+
+;--version 
+: 	Output program version to stderr.
+
+=== File options ===
+
+filename
+;--input-file=filename
+: 	Read input data from the given file.  This option (or just a
+filename) may be specified more than once. Make sure you set all 
+wanted options before using this.
+
+;--gmapsupp
+: 	Create a gmapsupp.img file that can be uploaded to a Garmin or
+placed in "/Garmin" in a microSD card (such as by mounting the
+device in USB mass storage mode).  It can be used on ready
+compiled img files, if the input files are not already compiled
+then they are compiled first and then the gmapsupp is created.
+
+;--gmapi
+: 	Create a directory in the "gmapi" format required by Mac applications.
+Can also be used for Windows programs.
+
+;-c filename
+;--read-config=filename
+: 	Each line of the named file contains a command option in the form
+option=value or option:value.  The options are included as arguments of
+the executed command as if they had been specified on the command line.
+Lines beginning with a # character are ignored and can be used as
+comments.  Any command line option can be specified, however the
+leading '--' must be omitted.  The short option names with a single
+'-' cannot be used, simply use the long name instead. 
+<p>
+;--output-dir=directory
+:	Specify the directory in which all output files are written. It defaults
+to the current working directory, i.e. the directory the command is
+executed from.
+<p>
+;-n name
+;--mapname=name
+: 	Set the name of the map. Garmin maps are identified by an 8 digit
+number.  The default is 63240001.  It is best to use a different
+name if you are going to be making a map for others to use so
+that it is unique and does not clash with others.
+<p>
+;--description=text
+: 	Set the descriptive text for the map. This may be displayed in
+QLandkarte, MapSource or on a GPS, where it is normally shown
+below the family name. Example: --description="Germany, Denmark"
+Please note: if you use splitter.jar to build a template.args file
+and use -c template.args, then that file may contain a
+"description" that will override this option for each single
+tile. Make sure to set the description for the gmapsupp.img after
+"-c template.args".
+<p>
+;--country-name=name
+: 	Set the map's country name. The default is "COUNTRY".
+<p>
+;--country-abbr=abbreviation
+: 	Set the map's abbreviated country name. The default is "ABC".
+<p>
+;--region-name=name
+: 	Set the map's region name. By default, the map has no region name.
+<p>
+;--region-abbr=abbreviation
+: 	Set the map's abbreviated region name. By default, the map has
+no abbreviated region name.
+
+=== Label options ===
+
+;--code-page=number
+:     Specify which international character set is to be used. Only 8 bit
+character sets are supported so you have to specify which code page you
+want to use.
+It is entirely dependent on the device firmware which code pages are
+supported.
+<p>
+;--latin1
+: 	This is equivalent to --code-page=1252.
+<p>
+;--unicode
+: 	This is equivalent to --code-page=65001. Note that some devices don't
+support Unicode maps produced by mkgmap.
+<p>
+;--lower-case
+: 	Allow labels to contain lower case letters.  Note that many Garmin
+devices are not able to display lower case letters at an angle.
+
+=== Address search options ===
+
+;--index
+: 	Generate a global address search index. If the --gmapsupp option is
+also given, then the index is generated within the resulting
+gmapsupp.img file so that address search will work on a GPS
+device.
+<p>
+If both the --gmapsupp and any of --tdbfile, --gmapi, or --nsis options 
+are given alongside the --index option, then both indexes will be
+created. Note that this will require roughly twice as much memory.
+<p>
+If the map is sent to the device by MapSource, it will enable
+find by name and address search on the GPS.
+
+: The address fields are assigned by special mkgmap address
+tags using the style file:
+
+::  mkgmap:country
+::  mkgmap:region
+::  mkgmap:city
+::  mkgmap:postal_code
+::  mkgmap:street
+::  mkgmap:housenumber
+::  mkgmap:phone
+::  (mkgmap:is_in - used by location-autofill=is_in)
+
+: If the index is created from previously compiled .img files, then the
+same code page and sorting options (e.g. --code-page, --latin1) must
+be used as were used to compile the individual map tiles.
+
+;--split-name-index
+:	Index each part of a street name separately.
+	For example, if the street is "Aleksandra Gryglewskiego" then you will
+	be able to search for it as both "Aleksandra" and "Gryglewskiego".  It
+	will also increase the size of the index.  Useful in countries where
+	searching for the first word in name is not the right thing to do. Words
+	following an opening bracket '(' are ignored. See also option 
+	--road-name-config.  
+<p>
+;--road-name-config=filename
+:	Provide the name of a file containing commonly used road name prefixes
+and suffixes. This option handles the problem that some countries have
+road names which often start or end with very similar words, e.g. in
+France the first word is very often 'Rue', often followed by a
+preposition like 'de la' or 'des'. This leads to rather long road names
+like 'Rue de la Concorde' where only the word 'Concorde' is really
+interesting. In the USA, you often have names like 'West Main Street'
+where only the word 'Main' is important. Garmin software has some tricks
+to handle this problem. It allows the use of special characters in the
+road labels to mark the beginning and end of the important part. In
+combination with option split-name-index only the words in the important
+part are indexed.
+<p>
+:There are two main effects of this option:
+::	- On the PC, when zooming out, the name 'Rue de la Concorde' is
+only rendered as 'Concorde'.
+::	- The index for road names only contains the important part of
+the name. You can search for road name Conc to find road names
+like 'Rue de la Concorde'. However, a search for 'Rue' will not
+list 'Rue de la Concorde' or 'Rue du Moulin'. It may list
+'Rueben Brookins Road' if that is in the map. Only MapSource
+shows a corresponding hint.
+<p>
+::	Another effect is that the index is smaller. 
+:	See comments in the sample roadNameConfig.txt for further details.
+<p>
+;--mdr7-excl=name[,name...]
+:	Specify words which should be omitted from the road index. It was
+added before option road-name-config and is probably no longer needed.
+:	Example usage: --x-mdr7-excl="Road, Street, Straße, Weg"
+<p>
+;--mdr7-del=name[,name...]
+:	Use this option if your style adds strings to the labels of roads which
+you want to see in the map but which should not appear in the result
+list of a road name / address search. The list is used like this:
+For each road label, mkgmap searches for the last blank. If one is
+found, it checks if the word after it appears in the given list. If so,
+the word is removed and the search is repeated. The remaining string is
+used to create the index.
+:	Example: Assume your style adds surface attributes like 'pav.' or 'unp.'
+to a road label. You can use --mdr7-del="pav.,unp." to remove these
+suffixes from the index.
+<p>
+;--poi-excl-index=poi[-poi][,poi[-poi]...]
+:	By default, mkgmap indexes the following POI types with a non-empty
+label:
+::	- 0x00 .. 0x0f (cities, sub type 0, type <= 0xf)
+::	- 0x2axx..0x30xx (Food & Drink, Lodging, ...)
+::	- 0x28xx (no category ?)
+::	- 0x64xx .. 0x66xx (attractions)   
+:	This option allows the exclusion of POI types from the index. 
+The excluded types are not indexed, but may still be searchable on a
+device, as some devices seem to ignore most of the index, e.g. an Oregon
+600 with firmware 5.00 only seems to use it for city search.
+If your device finds a POI name like 'Planet' when you search for 'Net',
+it doesn't use the index because the index created by mkgmap cannot help
+for that search.
+<p>
+:	So, this option may help when you care about the size of the index or
+the memory that is needed to calculate it.    
+The option expects a comma separated list of types or type ranges. A
+range is given with from-type-to-type, e.g. 0x6400-0x6405. First and
+last type are both excluded.  A range can span multiple types, e.g.
+0x6400-0x661f.  
+:	Examples for usage: 
+::	- Assume your style adds a POI with type 0x2800 for each
+addr:housenumber. It is not useful to index those numbers, so
+you can use --poi-excl-index=0x2800 to exclude this.
+::	- For the aforementioned Oregon you may use
+	--poi-excl-index=0x2a00-0x661f to reduce the index size.
+<p>
+;--bounds=directory|zipfile
+:     Specify a directory or zip file containing the preprocessed bounds
+files. Bounds files in a zip file must be located in the zip file's root
+directory.
+<p>
+The preprocessed boundaries are used to add special tags to all elements 
+(points, lines and polygons) containing the elements location
+information. The style file can be used to assign the address tags
+mkgmap:country, mkgmap:region etc. using these values.
+<p>
+The following special tags are added:          
+::mkgmap:admin_level2 : Name of the admin_level=2 boundary 
+  mkgmap:admin_level3 : Name of the admin_level=3 boundary
+  ..
+  mkgmap:admin_level11
+  mkgmap:postcode : the postal_code value
+
+:Preprocessed bounds can be created with the following command:
+
+::  java -cp mkgmap.jar uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor <inputfile> <boundsdir>
+
+:The input file must contain the boundaries that should be preprocessed. 
+It can have OSM, PBF or O5M file format. It is recommended that it 
+contains the boundary data only to avoid very high memory usage.
+The boundsdir gives the directory where the processed files are stored.
+This directory can be used as --bounds parameter with mkgmap.               
+<p>
+;--location-autofill=[option1,[option2]]
+: 	Controls how the address fields for country, region, city and zip info 
+are gathered automatically if the fields are not set by using the
+special mkgmap address tags (e.g. mkgmap:city - see option index).
+Warning: automatic assignment of address fields is somehow a best guess.
+:;is_in
+::     The is_in tag is analyzed for country and region information.
+<p>
+:;nearest
+::	The city/hamlet points that are closest to the element are used 
+to assign the missing address fields. Beware that cities located 
+in the same tile are used only. So the results close to a tile 
+border have less quality.  
+
+;--housenumbers
+:   Enables house number search for OSM input files. 
+All nodes and polygons having addr:housenumber set are matched 
+to streets. A match between a house number element and a street is
+created if the street is located within a radius of 150m and the
+addr:street tag value of the house number element equals the
+mgkmap:street tag value of the street. The mkgmap:street tag must be
+added to the street in the style file. For optimal results, the tags
+mkgmap:city and mkgmap:postal_code should be set for the housenumber
+element. If a street connects two or more cities this allows all
+addresses along the road to be found, even they have the same number.
+: Example for given street name: 
+:: Node -  addr:street=Main Street addr:housenumber=2
+:: Way 1 - name=Main Street
+:: Way 2 - name=Main Street, mkgmap:street=Main Street
+:: Way 3 - mkgmap:street=Mainstreet
+:: Way 4 - name=Main Street [A504]
+: The node matches to Way 2. It has mkgmap:street set with a value equal
+to the addr:street tag value of the house number node.
+<p>
+If the street is not given with addr:housenumber, mkgmap uses heuristics
+to find the best match.
+
+=== Overview map options ===
+
+;--overview-mapname=name
+: 	If --tdbfile is enabled, this gives the name of the overview
+.img and .tdb files. The default map name is osmmap.
+<p>
+;--overview-mapnumber=8 digit number
+: 	If --tdbfile is enabled, this gives the internal 8 digit
+number used in the overview map and tdb file.  The default
+number is 63240000.
+<p>
+;--overview-levels=level:resolution[,level:resolution...]
+:   Like levels, specifies additional levels that are to be written to the
+overview map. Counting of the levels should continue. Up to 8 additional 
+levels may be specified, but the lowest usable resolution with MapSource 
+seems to be 11. The hard coded default is empty.
+:	See also option --overview-dem-dist.      
+<p>
+;--remove-ovm-work-files
+:   If overview-levels is used, mkgmap creates one additional file 
+with the prefix ovm_ for each map (*.img) file. 
+These files are used to create the overview map.
+With option --remove-ovm-work-files=true the files are removed 
+after the overview map was created. The default is to keep the files.  
+
+=== Style options ===
+
+;--style-file=filename
+: 	Specify an external file to obtain the style from.  "file" can
+be a directory containing files such as info, lines, options
+(see resources/styles/default for an example).  The directory
+path must be absolute or relative to the current working
+directory when mkgmap is invoked.
+<p>
+The file can be a zip file containing the files instead of a
+directory.
+<p>
+The files can be at the top level or contained in a folder within
+the zip file.  If the zip file contains more than one top level
+folder then each folder is the name of a style that can be selected
+with the --style option.
+<p>
+The argument can also be a URL that specifies the location of a
+style file.
+<p>
+;--style=name
+: 	Specify a style name. Must be used if --style-file points to a 
+directory or zip file containing multiple styles. If --style-file 
+is not used, it selects one of the built-in styles. 
+<p>
+;--style-option=tag[=value][;tag[=value]...]
+: 	Provide a semicolon separated list of tags which can be used in the
+style. The intended use is to make a single style more flexible, e.g.
+you may want to use a slightly different set of rules for a map of a
+whole continent. The tags given will be prefixed with "mkgmap:option:".
+If no value is provided the default "true" is used.  
+This option allows to use rules like
+mkgmap:option:light=true & landuse=farmland {remove landuse}
+Example: -- style-option=light;routing=car
+will add the tags mkgmap:option:light=true and mkgmap:option:routing=car
+to each element before style processing happens. 
+<p>
+;--list-styles
+: 	List the available styles. If this option is preceded by a style-file
+option then it lists the styles available within that file.
+<p>
+;--check-styles
+: 	Perform some checks on the available styles. If this option is 
+preceded by a style-file option then it checks the styles 
+available within that file. If it is also preceded by the style
+option it will only check that style.
+<p>
+;--levels=level:resolution[,level:resolution...]
+: 	Change the way that the levels on the map correspond to the zoom
+levels in the device. See customisation help. The hard coded default is:
+"0:24, 1:22, 2:20, 3:18, 4:16", although each style can have
+its own default. The default style for example overwrites it with
+"0:24, 1:22, 2:20, 3:18". Up to 8 levels may be specified.
+<p>
+;--name-tag-list=tag[,tag...]
+: 	Specify the tag that will be used to supply the name.  Useful for
+language variations.  You can supply a list of tags and the first one
+found will be used.  e.g. --name-tag-list=name:en,int_name,name
+
+=== Product description options ===
+
+;--family-id=integer
+: 	This is an integer that identifies a family of products.
+Range: [1..9999]
+Mkgmap default: 6324
+<p>
+;--family-name=name
+: 	If you build several maps, this option describes the
+family name of all of your maps. Garmin will display this
+in the map selection screen.
+<p>
+Example: --family-name="OpenStreetmap mkgmap XL 2019"
+<p>
+;--product-id=integer
+: 	This is an integer that identifies a product within a family.
+It is often just 1, which is the default.
+<p>
+;--product-version=integer
+: 	The version of the product. Default value is 100 which means version
+1.00.
+<p>
+;--series-name=name
+: 	This name will be displayed in MapSource in the map selection
+drop-down. The default is "OSM map".
+<p>
+;--area-name=name
+:   Area name is displayed on Garmin units (or at least on eTrex) as the
+second part of the mapname in the list of the individual maps.
+<p>
+;--copyright-message=text
+: 	Specify a copyright message for files that do not contain one.
+<p>
+;--copyright-file=filename
+: 	Specify copyright messages from a file.
+Note that the first copyright message is not displayed on a device, but
+is shown in BaseCamp. The copyright file must include at least two lines
+and be UTF-8 encoded. The following symbols will be substituted by
+mkgmap: $MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$,
+$SHORT_DATE$ and $TIME$. Time and date substitutions use the local date
+and time formats.
+<p>
+;--license-file=filename
+: 	Specify a file which content will be added as license.
+The license file must be UTF-8 encoded.
+The following symbols will be substituted by mkgmap:
+$MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and
+$TIME$. Time and date substitutions use the local date and time formats.
+All entries of all maps will be merged in the overview map.
+
+=== Optimization options ===
+
+;--reduce-point-density=NUM
+: 	Simplifies the ways with the Douglas Peucker algorithm.
+NUM is the maximal allowed error distance, by which the resulting
+way may differ from the original one.
+This distance gets shifted with lower zoom levels. 
+Recommended setting is 4, this should lead to only small differences
+(Default is 2.6, which should lead to invisible changes)
+<p>
+;--reduce-point-density-polygon=NUM
+: 	Allows you to set the maximal allowed error distance for the DP
+algorithm to be applied against polygons. Recommended setting is 8.
+<p>
+;--merge-lines
+: 	Try to merge lines. This helps the simplify filter to straighten out
+longer chunks at lower zoom levels. Decreases file size more.
+Increases paint speed at low zoom levels.
+Default is enabled, use --no-merge-lines to disable.
+<p>
+;--min-size-polygon=NUM
+:   Removes all polygons smaller than NUM from the map.
+This reduces map size and speeds up redrawing of maps. 
+Recommended value is 8 to 15, default is 8.
+:	See also polygon-size-limits.
+<p>
+;--polygon-size-limits=resolution:value[,resolution:value...]
+:   Allows you to specify different min-size-polygon values for each
+resolution.
+Sample:  
+--polygon-size-limits="24:12, 18:10, 16:8, 14:4, 12:2, 11:0"
+If a resolution is not given, mkgmap uses the value for the next higher 
+one. For the given sample, resolutions 19 to 24 will use value 12,
+resolution 17 and 18 will use 10, and so on.
+Value 0 means to not apply the size filter. 
+Note that in resolution 24 the filter is not used.
+The following options are equivalent:
+ --min-size-polygon=12
+ --polygon-size-limits=24:12
+ --polygon-size-limits=24:0,23:12
+ --polygon-size-limits=24:0,23:12,22:12,21:12,16:12
+
+=== Hill Shading (DEM) options ===
+
+:   Hill Shading is rendered by PC programs (MapSource or BaseCamp) or GPS
+devices when the map includes a Digital Elevation Model (DEM). Use the
+following options to add a DEM to the map and control its
+characteristics. DEM creation requires files containing height
+information for the area covered by the map, the so called hgt files,
+which typically cover 1 degree latitude * 1 degree longitude and are
+named by the coordinates of their bottom left corner (eg. N53E009).
+They contain height information in a grid of points. Typical hgt files
+contain either 1'' or 3'' data. 3'' files have 1201 * 1201 points,
+which gives 2 * 1201 * 1201 = 2.884.802 bytes. 1'' files have 3601 *
+3601 points, which gives 2 * 3601 * 3601 = 25.934.402 bytes. Other
+files are supported as long as the formular sqrt(size/2) gives an
+integer value.
+<p>
+;--dem=path[,path...]
+:   The option expects a comma separated list of paths to directories or zip 
+files containing *.hgt files. Directories are searched for *.hgt files 
+and also for *.hgt.zip and *.zip files.
+:   The list is searched in the given order, so if you want to use 1'' files 
+make sure that they are found first. There are different sources for
+*.hgt files, some have so called voids which are areas without data.
+Those should be avoided.
+<p>
+;--dem-dists=number[,number...]
+:   If given, the option specifies the resolution(s) or zoom level for
+the DEM data. If not given, mkgmap tries to determine a reasonable value
+based on the resolution found in the *.hgt files. For desktop programs
+like MapSource or Basecamp you only need one zoom level, for GPS
+devices you need one for each resolution given with the --levels option.
+The actual values are given as distance between two DEM points and
+should be a multiple or submultiple of the distance between two points
+in the hgt file, that is 3314 for 1'' and 9942 for 3''. Higher distances
+mean lower resolution and thus fewer bytes in the map. Reasonable values
+for the highest resolution should not be much smaller than 50% hgt
+resolution, that is somewhere between 1648 and 5520 for 1'' hgt input 
+files (3312 is often used), and 5520 to 9942 for 3'' hgt input files.
+:	Example which should work with levels="0:24, 1:22, 2:20, 3:18":
+:	--dem-dists=3312,13248,26512,53024
+:	This was found in a Garmin Demo map for transalpin data created 2009.
+<p>
+;--dem-interpolation=auto|bicubic|bilinear
+:   Use this option to specify the method that is used to interpolate data
+from hgt raster to the DEM raster. The value bicubic gives the highest
+precision but is slower, bilinear is faster but less precise, it tends
+to smooth the profile and thus also reduces DEM size compared to
+bicubic. The value auto means that bicubic is used where is seems
+appropriate according to hgt resolution and dem-dist value, else
+bilinear is used. The default is auto.
+<p>
+;--dem-poly=filename
+:   If given, the filename should point to a *.poly file in osmosis polygon 
+file format. The polygon described in the file is used to determine the
+area for which DEM data should be added to the map. If not given, the
+DEM data will cover the full tile area.
+<p>   
+;--overview-dem-dist=integer
+:   If given, the option specifies the resolution(s) for the DEM data in the
+overview map. If not given or 0, mkgmap will not add DEM to the overview
+map. Reasonable values depend on the size of the area and the lowest
+resolution used for the single tiles, good compromises are somewhere
+between 55000 and 276160.  
+
+=== Miscellaneous options ===
+
+;--max-jobs[=integer]
+: 	Specify the number of threads to be used for concurrent processing.
+Increasing max-jobs will reduce the execution time, providing sufficient
+memory is available and the value is not greater than the number of
+cores in the CPU. If no value is specified, the limit is set to the
+number of CPU cores. The default is for the limit to be automatically
+set to a reasonable value based on the amount of memory allocated to
+the Java runtime and the amount used in processing the first tile.
+To optimise mkgmap to use all available CPU cores, you may need to
+use the Java -Xmx option to increase the amount of available heap
+storage.
+<p>
+;--keep-going
+: 	Don't quit whole application if an exception occurs while
+processing a map - continue to process the other maps.
+<p>
+;--block-size=integer
+: 	Changes the block size that is used in the generated map. This
+option is not usually needed, but sometimes an error message
+will ask you to try a value for this option.
+<p>
+;--net
+: 	Tells mkgmap to write NET data, which is needed for address search
+and routing. Use this option if you want full address search, but do
+not need a map that supports routing.
+<p>
+;--route
+: 	Tells mkgmap to write NET and NOD data, which are needed in maps 
+that support routing. If you specify this option, you do not need
+to specify --net.
+<p>
+;--add-boundary-nodes-at-admin-boundaries=NUM	
+: 	This option controls how mkgmap calculates special routing nodes which
+are needed by Garmin software to allow routing between different map
+tiles. These nodes are written to section 3 and 4 in the NOD file.
+When a road crosses the tile boundary (bbox), the road is split at this
+point and such a special node is written. This allows routing between
+one set of tiles produced by splitter.jar. However, if you create a map
+from different sets of tiles, those tiles are likely to overlap.
+For the overlapping tiles, none of the entries in NOD3 match and thus
+routing across tile border doesn't work when the route is not fully
+covered by one of the tiles.
+The option tells mkgmap to add special nodes whereever a road touches or
+crosses an administratve boundary. The NUM parameter specifies a filter
+for the admin_level. Boundaries with a higher admin_level value are
+ignored. The default value is 2 (country borders). Another reasonable
+value might be 4. A value less or equal to 0 tells mkgmap to ignore
+intersections at administrative boundaries.
+<p>
+;--drive-on=left|right|detect|detect,left|detect,right
+: 	Explicitly specify which side of the road vehicles are
+expected to drive on. 
+If the first option is detect, the program tries 
+to find out the proper flag. If that detection
+fails, the second value is used (or right if none is given).
+With OSM data as input, the detection tries to find out  
+the country each road is in and compares the number
+of drive-on-left roads with the rest.
+Use the --bounds option to make sure that the detection 
+finds the correct country. 
+<p>
+
+;--check-roundabouts
+: 	Check that roundabouts have the expected direction (clockwise
+when vehicles drive on the left). Roundabouts that are complete
+loops and have the wrong direction are reversed. Also checks
+that the roundabouts do not fork or overlap other roundabouts
+and that no more than one connecting highway joins at each node.
+<p>
+;--check-roundabout-flares
+: 	Check that roundabout flare roads point in the correct direction,
+are one-way and don't extend too far.
+<p>
+;--max-flare-length-ratio=NUM
+: 	When checking flare roads, ignore roads whose length is
+greater than NUM (an integer) times the distance between the
+nodes on the roundabout that the flare roads connect to. Using
+this option with a value of at least 5 will cut down the
+number of legitimate roads that are flagged as flare road
+problems. Default value is 0 (disabled) because it's not a
+completely reliable heuristic.
+<p>
+;--ignore-turn-restrictions
+: 	When reading OSM files, ignore any "restriction" relations.
+<p>
+;--ignore-osm-bounds
+: 	When reading OSM files, ignore any "bounds" elements.
+With this option selected generate-sea sometimes works better,
+but routing across tiles will not work.
+<p>
+;--preserve-element-order
+: 	Process the map elements (nodes, ways, relations) in the order
+in which they appear in the OSM input. Without this option,
+the order in which the elements are processed is not defined.
+<p>
+Optional BITMASK (default value 3) allows you to specify which
+adjustments are to be made (where necessary):
+<p>
+:* 1 = increase angle between side road and outgoing main road
+:* 2 = increase angle between side road and incoming main road
+<p>
+;--cycle-map
+: 	Tells mkgmap that the map is for cyclists. This assumes that
+different vehicles are different kinds of bicycles, e.g. a way
+with mkgmap:car=yes and mkgmap:bicycle=no may be a road that is 
+good for racing bikes, but not for other cyclists.
+This allows the optimisation of sharp angles at junctions of those
+roads. Don't use with the default style as that is a general style!
+<p>
+;--report-similar-arcs
+: 	Issue a warning when more than one arc connects two nodes and
+the ways that the arcs are derived from contain identical
+points. It doesn't make sense to use this option at the same
+time as using the cycleway creating options.
+<p>
+;--report-dead-ends=LEVEL
+: 	Set the dead end road warning level. The value of LEVEL (which
+defaults to 1 if this option is not specified) determines
+those roads to report: 0 = none, 1 = multiple one-way roads
+that join together but go nowhere, 2 = individual one-way roads
+that go nowhere.
+<p>
+;--add-pois-to-lines
+: 	Generate POIs for lines. For each line (must not be closed) POIs are
+created at several points of the line. Each POI is tagged with the
+same tags like the line and additional tags added by mkgmap:
+mkgmap:line2poi=true and tag mkgmap:line2poitype having
+the following values:
+:* start  - The first point of the line
+:* end    - The last point of the line
+:* inner  - Each point of the line except the first and the last 
+:* mid    - The middle point
+;--add-pois-to-areas
+: 	Generate a POI for each polygon and multipolygon. The POIs are created 
+after the relation style but before the other styles are applied. Each 
+POI is tagged with the same tags of the area/multipolygon. Additionally
+the tag mkgmap:area2poi=true is set so that it is possible to use that
+information in the points style file. Artifical polygons created by
+multipolyon processing are not used. The POIs are created at the
+following positions (first rule that applies):
+:;polygons: 
+::First rule that applies of
+::* the first node tagged with a tag defined by the
+pois-to-areas-placement option
+::* the centre point  
+:; multipolygons:
+::First rule that applies of
+::* the node with role=label
+::* the centre point of the biggest area
+;--pois-to-areas-placement=tag=value[;tag=value...]
+:     A POI is placed at the first node of the polygon tagged with the first
+tag/value pair. If none of the nodes are tagged with the first tag-value
+pair the first node tagged with the second tag-value pair is used and so
+on. If none of the tag-value pairs matches or the taglist is empty, the
+centre of the polygon is used. It is possible to define wildcards for
+tag values like entrance=*.
+<p>
+Default: entrance=main;entrance=yes;building=entrance
+<p>
+;--precomp-sea=directory|zipfile
+:     Defines the directory or a zip file that contains precompiled sea tiles. 
+Sea files in a zip file must be located in the zip file's root directory
+or in a sub directory sea. When this option is defined all
+natural=coastline tags from the input OSM tiles are removed and the
+precompiled data is used instead. This option can be combined with the
+generate-sea options multipolygon, polygons and land-tag. The
+coastlinefile option is ignored if precomp-sea is set.      
+<p>
+;--coastlinefile=filename[,filename...]
+: 	Defines a comma separated list of files that contain coastline 
+data. The coastline data from the input files is removed if 
+this option is set. Files must have OSM or PBF fileformat.	
+<p>
+;--generate-sea[=ValueList]
+: 	Generate sea polygons. ValueList is an optional comma
+separated list of values:
+<p>
+:;multipolygon
+:: generate the sea using a multipolygon (the default behaviour so
+this really doesn't need to be specified).
+
+:;polygons | no-mp
+:: don't generate the sea using a multipolygon - instead,
+generate a background sea polygon plus individual land
+polygons with tag natural=land. This requires a
+suitable land polygon type to be defined in the style
+file (suggested type is 0x010100) and the polygon must
+be defined in the TYP file as having a higher drawing
+level than the sea polygon type.
+
+:;no-sea-sectors
+:: disable the generation of "sea sectors" when the
+coastline fails to reach the tile's boundary.
+:;extend-sea-sectors
+:: same as no-sea-sectors. Additional adds a point so coastline
+reaches the nearest tile boundary.
+
+:;land-tag=TAG=VAL
+:: tag to use for land polygons (default natural=land).
+:;close-gaps=NUM
+:: close gaps in coastline that are less than this distance
+(metres)
+
+:;floodblocker 
+:: enable the flood blocker that prevents a flooding of
+land by checking if the sea polygons contain streets
+(works only with multipolygon processing)		
+
+:;fbgap=NUM           
+:: flood blocker gap in metre (default 40)
+points that are closer to the sea polygon do not block
+
+:;fbthres=NUM
+:: at least so many highway points must be contained in 
+a sea polygon so that it may be removed by the flood
+blocker (default 20)
+
+:;fbratio=NUM
+:: only sea polygons with a higher ratio 
+(highway points * 100000 / polygon size) are removed 
+(default 0.5)
+
+:;fbdebug
+:: switches on the debugging of the flood blocker
+generates GPX files for each polygon checked by
+the flood blocker
+
+;--make-poi-index
+:	Generate a POI index in each map tile. Probably not used by modern
+devices, but still supported.
+<p>
+;--nsis
+: 	Write a .nsi file that can be used with the Nullsoft Scriptable Install
+System (NSIS) to create a Windows Mapsource Installer.
+<p>
+;--make-opposite-cycleways
+: 	Some one-way streets allow bicycle traffic in the reverse
+direction and this option makes a way with the same points as
+the original that allows bicycle traffic (in both directions).
+
+;--link-pois-to-ways
+:     This option may copy some specific attributes of a POI 
+to a small part of the way the POI is located on. This can be used
+to let barriers block a way or to lower the calculated speed
+around traffic signals.
+POIs with the tags highway=* (e.g. highway=traffic_signals)  
+or barrier=* (e.g. barrier=cycle_barrier) are supported.
+The style developer must add at least one of the access tags
+(mkgmap:foot, mkgmap:car etc.), mkgmap:road-speed and/or 
+mkgmap:road-class to the POI. 
+The access tags are ignored if they have no effect for the way, 
+else a route restriction is added at the POI so that only 
+allowed vehicles are routed through it. 
+The tags mkgmap:road-speed and/or mkgmap:road-class are 
+applied to a small part of the way around the POI, typically
+to the next junction or a length of ~25 m. The tags
+are ignored for pedestrian-only ways.      
+<p>
+;--process-destination
+: 	Splits all motorway_link, trunk_link, primary_link, secondary_link,
+and tertiary_link ways tagged with destination into two or three parts
+where the second part is additionally tagged with mkgmap:dest_hint=*.
+The code checks for the tags destination, destination:lanes, 
+destination:street and some variants with :forward/:backward like
+destination:forward or destination:lanes:backward. If a value for
+destination is found, the special tag mkgmap:dest_hint is set to  
+it  and the way is split.
+This happens before the style rules are processed.
+This allows to use any routable Garmin type (except 0x08 and 0x09)
+for that part so that the Garmin device tells the name of
+this part as hint which destination to follow.
+:	See also --process-exits.
+<p>
+;--process-exits
+:     Usual Garmin devices do not tell the name of the exit on motorways 
+while routing with mkgmap created maps. This option splits each
+motorway_link, trunk_link, primary_link, secondary_link, and 
+tertiary_link way into three parts. 
+All parts are tagged with the original tags of the link. 
+Additionally the middle part is tagged with the following tags:
+
+::mkgmap:exit_hint=true
+  mkgmap:exit_hint_ref=<ref tag value of the exit>
+  mkgmap:exit_hint_name=<name tag value of the exit>
+  mkgmap:exit_hint_exit_to=<exit_to tag value of the exit>
+
+:Adding a rule checking the mkgmap:exit_hint=true makes it possible
+to use any routable Garmin type (except 0x08 and 0x09) for the middle 
+part so that the Garmin device tells the name of this middle part as 
+hint where to leave the motorway/trunk.
+The first part must have type 0x08 or 0x09 so that Garmin uses the hint. 
+
+;--delete-tags-file=filename
+: 	Names a file that should contain one or more lines of the form
+TAG=VALUE or TAG=*. Blank lines and lines that start with
+a # or ; are ignored. All tag/value pairs in the OSM input are
+compared with these patterns and those that match are deleted.
+<p>
+;--ignore-fixme-values
+: 	Ignore all tags for which the value matches the pattern
+"(?i)fix[ _]?+me".	
+<p>
+;--tdbfile
+: 	Write files that are essential to running with MapSource, a .tdb file
+and an overview map. The options --nsis and --gmapi imply --tdbfile.
+<p>
+;--show-profiles=1
+: 	Sets a flag in tdb file. The meaning depends on the availability of DEM 
+data (see "Hill Shading (DEM) options"). 
+: 	Without DEM data the flag enables profile calculation in MapSource or 
+Basecamp based on information from contour lines. 
+: 	If DEM data is available the profile is calculated with that 
+information and the flag only changes the status line to show the height
+when you hover over an area with valid DEM data. 
+: 	The default is show-profiles=0.
+<p>
+;--transparent
+: 	Make the map transparent, so that if two maps covering the same area are
+loaded, you can see through this map to see details from the other map
+too. Typically used for maps containing just contour lines. See
+--draw-priority as well.
+<p>
+;--draw-priority=integer
+: 	When two maps cover the same area and both are enabled in the device,
+this option controls the order in which they are drawn in and therefore
+which map is on top.  Higher priorities are drawn "on top" of lower
+priorities. The map drawn on top must be transparent for the one
+underneath to be seen. The default value is 25.
+<p>
+;--custom
+: 	Write a different TRE header. With this option, mkgmap writes the bytes
+0x170401 instead of the default 0x110301 at offset 43. Useful for marine
+maps.	
+<p>
+;--hide-gmapsupp-on-pc
+: 	Set a bit in the gmapsupp.img that tells PC software that the file is
+already installed on the PC and therefore there is no need to read it 
+from the device.
+<p>
+;--poi-address
+: 	Enable address / phone information to POIs. Address info is
+read according to the "Karlsruhe" tagging schema. Automatic
+filling of missing information could be enabled using the
+"location-autofill" option.
+Default is enabled, use --no-poi-address to disable.
+<p>
+;--verbose
+: 	Makes some operations more verbose. Mostly used with --list-styles.
+<p>
+;--order-by-decreasing-area
+:	Puts area/polygons into the map in decreasing size order, so
+that smaller features are rendered over larger ones
+(assuming _drawOrder is equal).
+The tag mkgmap:drawLevel can be used to override the
+natural area of a polygon, so forcing changes to the rendering order. 
+
+=== Deprecated and Obsolete Options ===
+
+;--drive-on-left
+;--drive-on-right
+: 	Deprecated; use drive-on instead.
+The options are translated to drive-on=left|right. 
+<p>
+;--make-all-cycleways
+:   Deprecated; use --make-opposite-cycleways instead. Former meaning: 
+Turn on all of the options that make cycleways.
+<p>
+;--charset=name
+: 	Obsolete; use --code-page instead.
+<p>
+;--map-features=filename
+: 	Obsolete; use --style-file instead.
+<p>
+;--ignore-maxspeeds
+: 	Obsolete; former usage:
+When reading OSM files, ignore any "maxspeed" tags.
+<p>
+;--ignore-builtin-relations
+: 	Obsolete; former usage:
+When reading OSM files, skip the built-in processing of
+relations. This speeds up the processing non-routable map
+layers that do not contain multipolygons. This implies
+--ignore-turn-restrictions.
+<p>
+;--road-name-pois[=GarminCode]
+: 	Obsolete; former usage:
+Generate a POI for each named road. By default, the POIs'
+Garmin type code is 0x640a. If desired, a different type code
+can be specified with this option.  This is a workaround for not
+being able to search for roads.
+0x2f15: a blue dot in the middle of the road, and if you select,
+or 'hover' over it, the street name appears.
+<p>
+;--make-cycleways
+:   Obsolete; former meaning:
+Some streets have a separate cycleway track/lane just for
+bicycle traffic and this option makes a way with the same
+points as the original that allows bicycle traffic. Also,
+bicycle traffic is prohibited from using the original way
+(unless that way's bicycle access has been defined).
Index: options/buildoptions/main.java
===================================================================
--- options/buildoptions/main.java	(revision 0)
+++ options/buildoptions/main.java	(working copy)
@@ -0,0 +1,64 @@
+package buildoptions;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+
+public class main {
+
+	public static void main(String[] args) {
+		File inputFile = new File("doc\\options.txt");
+		File outputFile = new File("resources\\help\\en\\options");
+		try {
+			FileReader fr = new FileReader (inputFile);
+			BufferedReader br = new BufferedReader(fr);
+			FileWriter fw = new FileWriter(outputFile);
+			BufferedWriter bw = new BufferedWriter(fw);
+			String line;
+			int indent = 0;
+			while((line = br.readLine()) != null){
+				if (line.length() > 0) {
+					if (line.startsWith(";-")) {
+						line = line.substring(1);
+						indent = 0;
+					}
+					else if (line.charAt(0) == ':') {
+						indent = 1;
+						line = line.substring(1);
+						while (line.charAt(0) == ':') {
+							indent++;
+							line = line.substring(1);
+						}
+						if (line.charAt(0) == ';')
+							line = line.substring(1);
+					}
+					else if (line.trim().compareToIgnoreCase("<p>") == 0)
+						line = "";
+					line = line.trim();
+					int length = line.length();
+					if (length > 0) {
+						for (int i = 0; i < indent; i++) {
+							length += 8;
+							line = "\t" + line;
+						}
+					}
+				    bw.write(line);
+				    if (length > 80)
+				    	System.out.println("Line too long at " + length + " characters. " + line);
+				}
+				else indent = 0;
+			    bw.newLine();
+			}
+			br.close();
+			fr.close();
+			bw.close();
+			fw.close();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+	}
+
+}
Index: options/buildoptions/main.java
===================================================================
--- options/buildoptions/main.java	(revision 0)
+++ options/buildoptions/main.java	(working copy)
@@ -0,0 +1,64 @@
+package buildoptions;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+
+public class main {
+
+	public static void main(String[] args) {
+		File inputFile = new File("doc\\options.txt");
+		File outputFile = new File("resources\\help\\en\\options");
+		try {
+			FileReader fr = new FileReader (inputFile);
+			BufferedReader br = new BufferedReader(fr);
+			FileWriter fw = new FileWriter(outputFile);
+			BufferedWriter bw = new BufferedWriter(fw);
+			String line;
+			int indent = 0;
+			while((line = br.readLine()) != null){
+				if (line.length() > 0) {
+					if (line.startsWith(";-")) {
+						line = line.substring(1);
+						indent = 0;
+					}
+					else if (line.charAt(0) == ':') {
+						indent = 1;
+						line = line.substring(1);
+						while (line.charAt(0) == ':') {
+							indent++;
+							line = line.substring(1);
+						}
+						if (line.charAt(0) == ';')
+							line = line.substring(1);
+					}
+					else if (line.trim().compareToIgnoreCase("<p>") == 0)
+						line = "";
+					line = line.trim();
+					int length = line.length();
+					if (length > 0) {
+						for (int i = 0; i < indent; i++) {
+							length += 8;
+							line = "\t" + line;
+						}
+					}
+				    bw.write(line);
+				    if (length > 80)
+				    	System.out.println("Line too long at " + length + " characters. " + line);
+				}
+				else indent = 0;
+			    bw.newLine();
+			}
+			br.close();
+			fr.close();
+			bw.close();
+			fw.close();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+	}
+
+}
Index: options/buildoptions/main.java
===================================================================
--- options/buildoptions/main.java	(revision 0)
+++ options/buildoptions/main.java	(working copy)
@@ -0,0 +1,64 @@
+package buildoptions;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+
+public class main {
+
+	public static void main(String[] args) {
+		File inputFile = new File("doc\\options.txt");
+		File outputFile = new File("resources\\help\\en\\options");
+		try {
+			FileReader fr = new FileReader (inputFile);
+			BufferedReader br = new BufferedReader(fr);
+			FileWriter fw = new FileWriter(outputFile);
+			BufferedWriter bw = new BufferedWriter(fw);
+			String line;
+			int indent = 0;
+			while((line = br.readLine()) != null){
+				if (line.length() > 0) {
+					if (line.startsWith(";-")) {
+						line = line.substring(1);
+						indent = 0;
+					}
+					else if (line.charAt(0) == ':') {
+						indent = 1;
+						line = line.substring(1);
+						while (line.charAt(0) == ':') {
+							indent++;
+							line = line.substring(1);
+						}
+						if (line.charAt(0) == ';')
+							line = line.substring(1);
+					}
+					else if (line.trim().compareToIgnoreCase("<p>") == 0)
+						line = "";
+					line = line.trim();
+					int length = line.length();
+					if (length > 0) {
+						for (int i = 0; i < indent; i++) {
+							length += 8;
+							line = "\t" + line;
+						}
+					}
+				    bw.write(line);
+				    if (length > 80)
+				    	System.out.println("Line too long at " + length + " characters. " + line);
+				}
+				else indent = 0;
+			    bw.newLine();
+			}
+			br.close();
+			fr.close();
+			bw.close();
+			fw.close();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+	}
+
+}
Index: resources/help/en/options
===================================================================
--- resources/help/en/options	(revision 4278)
+++ resources/help/en/options	(working copy)
@@ -1,904 +1,998 @@
-Note that option order is significant:  An option only applies to
-subsequent input files.  (So if you are using splitter, you probably
-want to put most of your options before '-c template.args'.)
-
-General options:
-
---help=topic
-	Print help on the given topic.  If the topic is omitted then a
-	list of all the help topics is printed instead.
-
---version 
-	Output program version to stderr.
-
-filename
---input-file=filename
-	Read input data from the give file.  This option (or just a
-	filename) may be given more than once. Make sure to set all 
-	wanted options before using this.
-
---gmapsupp
-	Create a gmapsupp.img file that can be uploaded to a Garmin or
-	placed in "/Garmin" in a microSD card (such as by mounting the
-	device in USB mass storage mode).  It can be used on ready
-	compiled img files, if the input files are not already compiled
-	then they are compiled first and then the gmapsupp is created.
-
---gmapi
-	Create a directory in the "gmapi" format required by Mac
-	applications. Can also be used for Windows programs.
-
--c filename
---read-config=filename
-	Each line of the named file contains a command option in the form
-	option=value or option:value.  The options are included as arguments of
-	the executed command as if they had been specified on the command line.
-	Lines beginning with a # character are ignored and can be used as
-	comments.  Any command line option can be specified, however the
-	leading '--' must be omitted.  The short option names with a single
-	'-' cannot be used, simply use the long name instead. 
-
---output-dir=directory
-	Specify the directory in which all output files are written. It defaults
-	to the current working directory, i.e. the directory the command is
-	executed from.
-
--n name
---mapname=name
-	Set the name of the map. Garmin maps are identified by an 8 digit
-	number.  The default is 63240001.  It is best to use a different
-	name if you are going to be making a map for others to use so
-	that it is unique and does not clash with others.
-
---description=text
-	Set the descriptive text for the map. This may be displayed in
-	QLandkarte, MapSource or on a GPS, where it is normally shown
-	below the family name. Example: --description="Germany, Denmark"
-	Please note: if you use splitter.jar to build a template.args file
-	and use -c template.args, then that file may contain a
-	"description" that will override this option for each single
-	tile. Make sure to set the description for the gmapsupp.img after
-	"-c template.args".    
-
---country-name=name
-	Set the map's country name. The default is "COUNTRY".
-
---country-abbr=abbreviation
-	Set the map's abbreviated country name. The default is "ABC".
-
---region-name=name
-	Set the map's region name. By default, the map has no region name.
-
---region-abbr=abbreviation
-	Set the map's abbreviated region name. By default, the map has
-	no abbreviated region name.
-	
-Label options:
-
---code-page=number
-	Specify which international character set is to be used. Only 8 bit
-	character sets are supported so you have to specify which code page you
-	want to use.
-
-	It is entirely dependent on the device firmware which code pages are
-	supported.
-	
---latin1
-	This is equivalent to --code-page=1252.
-
---unicode
-	This is equivalent to --code-page=65001. Note that  
-	some devices don't support Unicode maps produced by mkgmap.
-
---lower-case
-	Allow labels to contain lower case letters.  Note that many Garmin
-	devices are not able to display lower case letters at an angle.
-
-Address search options:
---index
-	Generate a global address search index. If the --gmapsupp option is
-	also given, then the index is generated within the resulting
-	gmapsupp.img file so that address search will work on a GPS
-	device.
-
-	If both the --gmapsupp and any of --tdbfile, --gmapi, or --nsis options 
-	are given alongside the --index option, then both indexes will be created. 
-	Note that this will require roughly twice as much memory.
-
-	If the map is sent to the device by MapSource, it will enable
-	find by name and address search on the GPS.
-	
-	The address fields are assigned by special mkgmap address
-	tags using the style file:
-	  mkgmap:country
-	  mkgmap:region
-	  mkgmap:city
-	  mkgmap:postal_code
-	  mkgmap:street
-	  mkgmap:housenumber
-	  mkgmap:phone
-	  (mkgmap:is_in - used by location-autofill=is_in)
-
-	If the index is created from previously compiled .img files, then the
-	same code page and sorting options (e.g. --code-page, --latin1) must
-	be used as were used to compile the individual map tiles.
-
---split-name-index
-	Index each part of a street name separately.
-	For example, if the street is "Aleksandra Gryglewskiego" then you will be able to
-	search for it as both "Aleksandra" and "Gryglewskiego".  It will also increase the
-	size of the index.  Useful in countries where searching for the first word in name
-	is not the right thing to do. Words following an opening bracket '(' are ignored. 
-	See also option road-name-config.  
-
---road-name-config=filename
-	Provide the name of a file containing commonly used road name prefixes
-	and suffixes.
-	This option handles the problem that some countries have road names which 
-	often start or end with very similar words, e.g. in France the first word
-	is very often 'Rue', often followed by a preposition like 'de la' or 'des'.
-	This leads to rather long road names like 'Rue de la Concorde' where only
-	the word 'Concorde' is really interesting. In the USA, you often have names
-	like 'West Main Street' where only the word 'Main' is important.  
-	Garmin software has some tricks to handle this problem. It allows the use
-	of special characters in the road labels to mark the beginning and end of 
-	the important part. In combination with option split-name-index
-	only the words in the important part are indexed.
-
-	There are two effects of this option:
-	- On the PC, when zooming out, the name 'Rue de la Concorde' is only
-		rendered as 'Concorde'.
-	- The index for road names only contains the important part of the name.
-		You can search for road name Conc to find road names like 'Rue de la Concorde'.
-		However, a search for 'Rue' will not list 'Rue de la Concorde' or
-		'Rue du Moulin'. It may list 'Rueben Brookins Road' if that is in the map.
-		Only MapSource shows a corresponding hint.
-		
-	Another effect is that the index is smaller. 
-	See comments in the sample roadNameConfig.txt for further details.
- 
---mdr7-excl=name[,name...]
-	Specify words which should omitted from the road index.
-	It was added before option road-name-config and is probably no longer needed.
-	Example usage: --x-mdr7-excl="Road, Street, Straße, Weg"
- 
---mdr7-del=name[,name...]
-	Use this option if your style adds strings to the labels of roads which you
-	want to see in the map but which should not appear in the result list
-	of a road name / address search. The list is used like this:
-	For each road label, mkgmap searches for the last blank. If one is found, it checks
-	if the word after it appears in the given list. If so, the word is removed
-	and the search is repeated. The remaining string is used to create the index.
-	Example: Assume your style adds surface attributes like 'pav.' or 'unp.' to a road
-	label. You can use --mdr7-del="pav.,unp." to remove these suffixes from the index.
-	  
---poi-excl-index=poi[-poi][,poi[-poi]...]
-	By default, mkgmap indexes the following POI types with a non-empty label:
-	- 0x00 .. 0x0f (cities, sub type 0, type <= 0xf)
-	- 0x2axx..0x30xx (Food & Drink, Lodging, ...)
-	- 0x28xx (no category ?)
-	- 0x64xx .. 0x66xx (attractions)   
-	This option allows the exclusion of POI types from the index. 
-	The excluded types are not indexed but may still be searchable on a device, 
-	as some devices seem to ignore most of the index, e.g. an Oregon 600 with 
-	firmware 5.00 only seems to use it for city search.
-	If your device finds a POI name like 'Planet' when you search for 'Net',
-	it doesn't use the index because the index created by mkgmap cannot help for 
-	that search. 
-	So, this option may help when you care about the size of the index or the
-	memory that is needed to calculate it.    
-	The option expects a comma separated list of types or type ranges. A range is 
-	given with from-type-to-type, e.g. 0x6400-0x6405. First and last type are both 
-	excluded.  A range can span multiple types, e.g. 0x6400-0x661f.  
-	Examples for usage: 
-	- Assume your style adds a POI with type 0x2800 for each addr:housenumber.
-		It is not useful to index those numbers, so you can use 
-		--poi-excl-index=0x2800
-		to exclude this.
-	- For the mentioned Oregon you may use --poi-excl-index=0x2a00-0x661f
-		to reduce the index size.
-
---bounds=directory|zipfile
-	Specify a directory or zip file containing the preprocessed bounds files. 
-	Bounds files in a zip file must be located in the zip file's root directory.
-
-	The preprocessed boundaries are used to add special tags to all elements 
-	(points, lines and polygons) containing the elements location information.
-	The style file can be used to assign the address tags mkgmap:country,
-	mkgmap:region etc. using these values.
-
-	The following special tags are added:          
-			  mkgmap:admin_level2 : Name of the admin_level=2 boundary 
-			  mkgmap:admin_level3 : Name of the admin_level=3 boundary
-			  ..
-			  mkgmap:admin_level11
-			  mkgmap:postcode : the postal_code value
-			  
-	Preprocessed bounds can be created with the following command:
-	   java -cp mkgmap.jar 
-		  uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor
-		  <inputfile> <boundsdir>
-
-	The input file must contain the boundaries that should be preprocessed. 
-	It can have OSM, PBF or O5M file format. It is recommended that it 
-	contains the boundary data only to avoid very high memory usage.
-	The boundsdir gives the directory where the processed files are stored.
-	This directory can be used as --bounds parameter with mkgmap.               
-    
---location-autofill=[option1,[option2]]
-	Controls how the address fields for country, region, city and zip info 
-	are gathered automatically if the fields are not set by using the special 
-	mkgmap address tags (e.g. mkgmap:city - see option index).
-	Warning: automatic assignment of address fields is somehow a best guess.
-
-	is_in     The is_in tag is analyzed for country and region information.
-              
-	nearest   The city/hamlet points that are closest to the element are used 
-              to assign the missing address fields. Beware that cities located 
-              in the same tile are used only. So the results close to a tile 
-              border have less quality.  
-
---housenumbers
-	Enables house number search for OSM input files. 
-	All nodes and polygons having addr:housenumber set are matched 
-	to streets. A match between a house number element and a street is created if
-	the street is located within a radius of 150m and the addr:street tag value of 
-	the house number element equals the mgkmap:street tag value of the street. 
-	The mkgmap:street tag must be added to the street in the style file.
-	For optimal results, the tags mkgmap:city and mkgmap:postal_code should be
-	set for the housenumber element. If a street connects two or more cities
-	this allows to find all addresses along the road, even they have the same
-	number.
-	Example for given street name: 
-	 Node -  addr:street=Main Street addr:housenumber=2
-	 Way 1 - name=Main Street
-	 Way 2 - name=Main Street, mkgmap:street=Main Street
-	 Way 3 - mkgmap:street=Mainstreet
-	 Way 4 - name=Main Street [A504]
-	The node matches to Way 2. It has mkgmap:street set with a value equal to
-	the addr:street tag value of the house number node.
-	If the street is not given with addr:housenumber, mkgmap uses heuristics
-	to find the best match.
-
-Overview map options:
---overview-mapname=name
-If --tdbfile is enabled, this gives the name of the overview
-.img and .tdb files. The default map name is osmmap.
-
---overview-mapnumber=8 digit number
-	If --tdbfile is enabled, this gives the internal 8 digit
-	number used in the overview map and tdb file.  The default
-	number is 63240000.
-
---overview-levels=level:resolution[,level:resolution...]
-	Like levels, specifies additional levels that are to be written to the
-	overview map. Counting of the levels should continue. Up to 8 additional 
-	levels may be specified, but the lowest usable resolution with MapSource 
-	seems to be 11. The hard coded default is empty.
-	See also option --overview-dem-dist.      
-
---remove-ovm-work-files
-	If overview-levels is used, mkgmap creates one additional file 
-	with the prefix ovm_ for each map (*.img) file. 
-	These files are used to create the overview map.
-	With option --remove-ovm-work-files=true the files are removed 
-	after the overview map was created. The default is to keep the files.  
-
-Style options:
---style-file=filename
-	Specify an external file to obtain the style from.  "file" can
-	be a directory containing files such as info, lines, options
-	(see resources/styles/default for an example).  The directory
-	path must be absolute or relative to the current working
-	directory when mkgmap is invoked.
-
-	The file can be a zip file containing the files instead of a
-	directory.
-
-	The files can be at the top level or contained in a folder within
-	the zip file.  If the zip file contains more than one top level
-	folder then each folder is the name of a style that can be selected
-	with the --style option.
-
-	The argument can also be a URL that specifies the location of a
-	style file.
-
---style=name
-	Specify a style name. Must be used if --style-file points to a 
-	directory or zip file containing multiple styles. If --style-file 
-	is not used, it selects one of the built-in styles. 
-
---style-option=tag[=value][;tag[=value]...]
-	Provide a semicolon separated list of tags which can be used in the style.
-	The intended use is to make a single style more flexible, e.g.
-	you may want to use a slightly different set of rules for a map of
-	a whole continent. The tags given will be prefixed with "mkgmap:option:".
-	If no value is provided the default "true" is used.  
-	This option allows to use rules like
-	mkgmap:option:light=true & landuse=farmland {remove landuse}
-	Example: -- style-option=light;routing=car
-	will add the tags mkgmap:option:light=true and mkgmap:option:routing=car
-	to each element before style processing happens. 
-
---list-styles
-	List the available styles. If this option is preceded by a style-file
-	option then it lists the styles available within that file.
-
---check-styles
-	Perform some checks on the available styles. If this option is 
-	preceded by a style-file option then it checks the styles 
-	available within that file. If it is also preceded by the style
-	option it will only check that style.
-
---levels=level:resolution[,level:resolution...]
-	Change the way that the levels on the map correspond to the zoom
-	levels in the device. See customisation help. The hard coded default is:
-	"0:24, 1:22, 2:20, 3:18, 4:16", although each style can have
-	its own default. The default style for example overwrites it with
-	"0:24, 1:22, 2:20, 3:18". Up to 8 levels may be specified.
-
---name-tag-list=tag[,tag...]
-	Specify the tag that will be used to supply the name.  Useful for
-	language variations.  You can supply a list of tags and the first one
-	found will be used.  e.g. --name-tag-list=name:en,int_name,name
-
-Product description options:
-
---family-id=integer
-	This is an integer that identifies a family of products.
-	Range: [1..9999]
-	Mkgmap default: 6324
-
---family-name=name
-	If you build several maps, this option describes the
-	family name of all of your maps. Garmin will display this
-	in the map selection screen.
-	Example: --family-name="OpenStreetmap mkgmap XL 2019"
-
---product-id=integer
-	This is an integer that identifies a product within a family.
-	It is often just 1, which is the default.
-
---product-version=integer
-	The version of the product. Default value is 100 which means version 1.00.
-
---series-name=name
-	This name will be displayed in MapSource in the map selection
-	drop-down. The default is "OSM map".
-
---area-name=name
-	Area name is displayed on Garmin units (or at least on eTrex) as the second 
-	part of the mapname in the list of the individual maps.
-
---copyright-message=text
-	Specify a copyright message for files that do not contain one.
-
---copyright-file=filename
-	Specify copyright messages from a file.
-	Note that the first copyright message is not displayed on a device, but is 
-	shown in BaseCamp. The copyright file must include at least two lines and
-	be UTF-8 encoded. The following symbols will be substituted by mkgmap:
-	$MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and $TIME$.
-	Time and date substitutions use the local date and time formats.
-
---license-file=filename
-	Specify a file which content will be added as license.
-	The license file must be UTF-8 encoded.
-	The following symbols will be substituted by mkgmap:
-	$MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and $TIME$.
-	Time and date substitutions use the local date and time formats.
-	All entries of all maps will be merged in the overview map.
-
-Optimization options:
-
---reduce-point-density=NUM
-	Simplifies the ways with the Douglas Peucker algorithm.
-	NUM is the maximal allowed error distance, by which the resulting
-	way may differ from the original one.
-	This distance gets shifted with lower zoom levels. 
-	Recommended setting is 4, this should lead to only small differences
-	(Default is 2.6, which should lead to invisible changes)
-
---reduce-point-density-polygon=NUM
-	Allows you to set the maximal allowed error distance for the DP algorithm
-	to be applied against polygons. Recommended setting is 8.
-
---merge-lines
-	Try to merge lines. This helps the simplify filter to straighten out
-	longer chunks at lower zoom levels. Decreases file size more.
-	Increases paint speed at low zoom levels.
-	Default is enabled, use --no-merge-lines to disable.
-	
---min-size-polygon=NUM
-	Removes all polygons smaller than NUM from the map.
-	This reduces map size and speeds up redrawing of maps. 
-	Recommended value is 8 to 15, default is 8.
-	See also polygon-size-limits.
-
---polygon-size-limits=resolution:value[,resolution:value...]
-	Allows you to specify different min-size-polygon values for each resolution.
-	Sample:  
-	--polygon-size-limits="24:12, 18:10, 16:8, 14:4, 12:2, 11:0"
-	If a resolution is not given, mkgmap uses the value for the next higher 
-	one. For the given sample, resolutions 19 to 24 will use value 12,
-	resolution 17 and 18 will use 10, and so on.
-	Value 0 means to not apply the size filter. 
-	Note that in resolution 24 the filter is not used.  
-	The following options are equivalent:
-		--min-size-polygon=12
-		--polygon-size-limits=24:12
-		--polygon-size-limits=24:0,23:12
-		--polygon-size-limits=24:0,23:12,22:12,21:12,16:12
-
-Hill Shading (DEM) options:
-	Hill Shading is rendered by PC programs (MapSource or BaseCamp) or GPS devices 
-when the map includes a Digital Elevation Model (DEM). Use the following options 
-to add a DEM to the map and control its characteristics. DEM creation requires 
-files containing height information for the area covered by the map, the so 
-called hgt files, which typically cover 1 degree latitude * 1 degree longitude 
-and are named by the coordinates of their bottom left corner (eg. N53E009). They 
-contain height information in a grid of points. Typical hgt files contain either 
-1'' or 3'' data. 3'' files have 1201 * 1201 points, which gives 
-2 * 1201 * 1201 = 2.884.802 bytes. 1'' files have 3601 * 3601 points, which gives 
-2 * 3601 * 3601 = 25.934.402 bytes. Other files are supported as long as the 
-formular sqrt(size/2) gives an integer value.
-
---dem=path[,path...]
-	The option expects a comma separated list of paths to directories or zip 
-	files containing *.hgt files. Directories are searched for *.hgt files and 
-	also for *.hgt.zip and *.zip files. 
-	The list is searched in the given order, so if you want to use 1'' files 
-	make sure that they are found first. There are different sources for *.hgt 
-	files, some have so called voids which are areas without data.
-	Those should be avoided.  
- 
---dem-dists=number[,number...]
-	If given, the option specifies the resolution(s) or zoom level for the DEM 
-	data. If not given, mkgmap tries to determine a reasonable value based on 
-	the resolution found in the *.hgt files. For desktop programs like MapSource or 
-	Basecamp you only need one zoom level, for GPS devices you need one for each 
-	resolution given with the --levels option. The actual values are given as 
-	distance between two DEM points and should be a multiple or submultiple of
-	the distance between two points in the hgt file, that is 3314 for 1'' and 9942
-	for 3''. Higher distances mean lower resolution and thus fewer bytes in the 
-	map. Reasonable values for the highest resolution should not be much smaller 
-	than 50% hgt resolution, that is somewhere between 1648 and 5520 for 1'' hgt 
-	input files (3312 is often used), and 5520 to 9942 for 3'' hgt input files.
-	Example which should work with levels="0:24, 1:22, 2:20, 3:18":
-	--dem-dists=3312,13248,26512,53024
-	This was found in a Garmin Demo map for transalpin data created 2009.
-
---dem-interpolation=auto|bicubic|bilinear
-	Use this option to specify the method that is used to interpolate 
-	data from hgt raster to the DEM raster. The value bicubic gives the 
-	highest precision but is slower, bilinear is faster but less precise,
-	it tends to smooth the profile and thus also reduces DEM size compared to 
-	bicubic. The value auto means that bicubic is used where is seems 
-	appropriate according to hgt resolution and dem-dist value, else bilinear
-	is used. If not given, the default is auto.
-
---dem-poly=filename
-	If given, the filename should point to a *.poly file in osmosis polygon 
-	file format. The polygon described in the file is used to determine the area
-	for which DEM data should be added to the map. If not given, the DEM data 
-	will cover the full tile area.
-  
---overview-dem-dist=integer
-	If given, the option specifies the resolution(s) for the DEM data in the
-	overview map. If not given or 0, mkgmap will not add DEM to the 
-	overview map. Reasonable values depend on the size of the area and the 
-	lowest resolution used for the single tiles, good compromises are 
-	somewhere between 55000 and 276160.  
-
-Miscellaneous options:
-
---max-jobs[=integer]
-	Specify the number of threads to be used for concurrent processing.
-	Increasing max-jobs will reduce the execution time, providing sufficient
-	memory is available and the value is not greater than the number of cores
-	in the CPU. If no value is specified, the limit is set to the number of CPU
-	cores. The default is for the limit to be automatically set to a reasonable
-	value based on the amount of memory allocated to the Java runtime and the
-	amount used in processing the first tile. To optimise mkgmap to use all
-	available CPU cores, you may need to use the Java -Xmx option to increase
-	the amount of available heap storage.
-
---keep-going
-	Don't quit whole application if an exception occurs while
-	processing a map - continue to process the other maps.
-
---block-size=integer
-	Changes the block size that is used in the generated map. This
-	option is not usually needed, but sometimes an error message
-	will ask you to try a value for this option.
-
---net
-	Tells mkgmap to write NET data, which is needed for address search  
-	and routing. Use this option if you want full address search, but do
-	not need a map that supports routing.
-
---route
-	Tells mkgmap to write NET and NOD data, which are needed in maps 
-	that support routing. If you specify this option, you do not need
-	to specify --net.
-
---drive-on=left|right|detect|detect,left|detect,right
-	Explicitly specify which side of the road vehicles are
-	expected to drive on. 
-	If the first option is detect, the program tries 
-	to find out the proper flag. If that detection
-	fails, the second value is used (or right if none is given).
-	With OSM data as input, the detection tries to find out  
-	the country each road is in and compares the number
-	of drive-on-left roads with the rest.
-	Use the --bounds option to make sure that the detection 
-	finds the correct country. 
-
---add-boundary-nodes-at-admin-boundaries=NUM	
-	This option controls how mkgmap calculates special routing nodes which
-	are needed by Garmin software to allow routing between different map tiles.
-	These nodes are written to section 3 and 4 in the NOD file.
-	When a road crosses the tile boundary (bbox), the road is split at this 
-	point and such a special node is written. This allows routing between
-	one set of tiles produced by splitter.jar. However, if you create a map
-	from different sets of tiles, those tiles are likely to overlap.
-	For the overlapping tiles, none of the entries in NOD3 match and thus
-	routing across tile border doesn't work when the route is not fully 
-	covered by one of the tiles. 
-	The option tells mkgmap to add special nodes whereever a road touches or
-	crosses an administratve boundary. The NUM parameter specifies a filter
-	for the admin_level. Boundaries with a higher admin_level value are ignored. 
-	The default value is 2 (country borders). Another reasonable value might 
-	be 4. A value less or equal to 0 tells mkgmap to ignore intersections at 
-	administrative boundaries.   
-	
---check-roundabouts
-	Check that roundabouts have the expected direction (clockwise
-	when vehicles drive on the left). Roundabouts that are complete
-	loops and have the wrong direction are reversed. Also checks
-	that the roundabouts do not fork or overlap other roundabouts
-	and that no more than one connecting highway joins at each node.
-
---check-roundabout-flares
-	Check that roundabout flare roads point in the correct direction,
-	are one-way and don't extend too far.
-
---max-flare-length-ratio=NUM
-	When checking flare roads, ignore roads whose length is
-	greater than NUM (an integer) times the distance between the
-	nodes on the roundabout that the flare roads connect to. Using
-	this option with a value of at least 5 will cut down the
-	number of legitimate roads that are flagged as flare road
-	problems. Default value is 0 (disabled) because it's not a
-	completely reliable heuristic.
-
---ignore-turn-restrictions
-	When reading OSM files, ignore any "restriction" relations.
-
---ignore-osm-bounds
-	When reading OSM files, ignore any "bounds" elements.
-	With this option selected generate-sea sometimes works better,
-	but routing across tiles will not work.
-
---preserve-element-order
-	Process the map elements (nodes, ways, relations) in the order
-	in which they appear in the OSM input. Without this option,
-	the order in which the elements are processed is not defined.
-
---remove-short-arcs[=MinLength]
-  	Now ignored, former usage:	
-	Merge nodes to remove short arcs that can cause routing
-	problems. If MinLength is specified (in metres), arcs shorter
-	than that length will be removed. If a length is not
-	specified, only zero-length arcs will be removed.
-
---adjust-turn-headings[=BITMASK]
-	Now ignored, former usage:	
-	Where possible, ensure that turns off to side roads change
-	heading sufficiently so that the GPS believes that a turn is
-	required rather than a fork. This also avoids spurious
-	instructions to "keep right/left" when the road doesn't
-	actually fork.
-
-	Optional BITMASK (default value 3) allows you to specify which
-	adjustments are to be made (where necessary):
-
-	1 = increase angle between side road and outgoing main road
-	2 = increase angle between side road and incoming main road
-
---cycle-map
-	Tells mkgmap that the map is for cyclists. This assumes that
-	different vehicles are different kinds of bicycles, e.g. a way
-	with mkgmap:car=yes and mkgmap:bicycle=no may be a road that is 
-	good for racing bikes, but not for other cyclists.
-	This allows the optimisation of sharp angles at junctions of those roads. 
-	Don't use with the default style as that is a general style!
-	
---report-similar-arcs
-	Issue a warning when more than one arc connects two nodes and
-	the ways that the arcs are derived from contain identical
-	points. It doesn't make sense to use this option at the same
-	time as using the cycleway creating options.
-
---report-dead-ends=LEVEL
-	Set the dead end road warning level. The value of LEVEL (which
-	defaults to 1 if this option is not specified) determines
-	those roads to report: 0 = none, 1 = multiple one-way roads
-	that join together but go nowhere, 2 = individual one-way roads
-	that go nowhere.
-
---add-pois-to-lines
-	Generate POIs for lines. For each line (must not be closed) POIs are
-	created at several points of the line. Each POI is tagged with the
-	same tags like the line and additional tags added by mkgmap:
-	mkgmap:line2poi=true and tag mkgmap:line2poitype having
-	the following values:
-	   * start  - The first point of the line
-	   * end    - The last point of the line
-	   * inner  - Each point of the line except the first and the last 
-	   * mid    - The middle point
-
---add-pois-to-areas
-	Generate a POI for each polygon and multipolygon. The POIs are created 
-	after the relation style but before the other styles are applied. Each 
-	POI is tagged with the same tags of 
-	the area/multipolygon. Additionally the tag mkgmap:area2poi=true is 
-	set so that it is possible to use that information in the points style
-	file. Artifical polygons created by multipolyon processing are not used.
-	The POIs are created at the following positions (first rule that applies):
-	   polygons: 
-	       * the first node tagged with a tag defined by the pois-to-areas-placement 
-	         option
-	       * the centre point  
-	   multipolygons:
-	       * the node with role=label
-	       * the centre point of the biggest area
-
---pois-to-areas-placement=tag=value[;tag=value...]
-	A POI is placed at the first node of the polygon tagged with the first tag/value
-	pair. If none of the nodes are tagged with the first tag-value pair the first node
-	tagged with the second tag-value pair is used and so on. If none of the tag-value pairs
-	matches or the taglist is empty, 	the centre of the polygon is used.
-	It is possible to define wildcards for tag values like entrance=*.
-	Default: entrance=main;entrance=yes;building=entrance
-
---precomp-sea=directory|zipfile
-	Defines the directory or a zip file that contains precompiled sea tiles. 
-	Sea files in a zip file must be located in the zip file's root directory or in 
-	a sub directory sea. When this option is defined all natural=coastline tags 
-	from the input OSM tiles are removed and the precompiled data is used instead. 
-	This option can be combined with the generate-sea options multipolygon, polygons 
-	and land-tag. The coastlinefile option is ignored if precomp-sea is set.      
-
---coastlinefile=filename[,filename...]
-	Defines a comma separated list of files that contain coastline 
-	data. The coastline data from the input files is removed if 
-	this option is set. Files must have OSM or PBF fileformat.	
-
---generate-sea[=ValueList]
-	Generate sea polygons. ValueList is an optional comma
-	separated list of values:
-
-	multipolygon
-		generate the sea using a multipolygon (the default
-		behaviour so this really doesn't need to be specified).
-
-	polygons | no-mp
-		don't generate the sea using a multipolygon - instead,
-		generate a background sea polygon plus individual land
-		polygons with tag natural=land. This requires a
-		suitable land polygon type to be defined in the style
-		file (suggested type is 0x010100) and the polygon must
-		be defined in the TYP file as having a higher drawing
-		level than the sea polygon type.
-
-	no-sea-sectors
-		disable the generation of "sea sectors" when the
-		coastline fails to reach the tile's boundary.
-		
-	extend-sea-sectors
-	  same as no-sea-sectors. Additional adds a point so 
-	  coastline reaches the nearest tile boundary.
-
-	land-tag=TAG=VAL
-		tag to use for land polygons (default natural=land).
-
-	close-gaps=NUM
-		close gaps in coastline that are less than this
-		distance (metres)
-
-	floodblocker 
-		enable the flood blocker that prevents a flooding of
-		land by checking if the sea polygons contain streets
-		(works only with multipolygon processing)		
-
-	fbgap=NUM           
-		flood blocker gap in metre (default 40)
-		points that are closer to the sea polygon do not block 
-
-	fbthres=NUM
-		at least so many highway points must be contained in 
-		a sea polygon so that it may be removed by the flood
-		blocker (default 20)
-
-	fbratio=NUM
-		only sea polygons with a higher ratio 
-		(highway points * 100000 / polygon size) are removed 
-		(default 0.5)
-		
-	fbdebug
-		switches on the debugging of the flood blocker
-		generates GPX files for each polygon checked by
-		the flood blocker
-
---make-poi-index
-	Generate a POI index in each map tile. Probably not used by modern devices,
-	but still supported.
-
---nsis
-	Write a .nsi file that can be used with the Nullsoft Scriptable Install System
-	(NSIS) to create a Windows Mapsource Installer.
-
---make-opposite-cycleways
-	Some one-way streets allow bicycle traffic in the reverse
-	direction and this option makes a way with the same points as
-	the original that allows bicycle traffic (in both directions).
-
---link-pois-to-ways
-	This option may copy some specific attributes of a POI 
-	to a small part of the way the POI is located on. This can be used
-	to let barriers block a way or to lower the calculated speed
-	around traffic signals.
-	POIs with the tags highway=* (e.g. highway=traffic_signals)  
-	or barrier=* (e.g. barrier=cycle_barrier) are supported.
-	The style developer must add at least one of the access tags
-	(mkgmap:foot, mkgmap:car etc.), mkgmap:road-speed and/or 
-	mkgmap:road-class to the POI. 
-	The access tags are ignored if they have no effect for the way, 
-	else a route restriction is added at the POI so that only 
-	allowed vehicles are routed through it. 
-	The tags mkgmap:road-speed and/or mkgmap:road-class are 
-	applied to a small part of the way around the POI, typically
-	to the next junction or a length of ~25 m. The tags
-	are ignored for pedestrian-only ways.      
-
---process-destination
-	Splits all motorway_link, trunk_link, primary_link, secondary_link,
-	and tertiary_link ways tagged with destination into two or three parts where 
-	the second part is additionally tagged with mkgmap:dest_hint=*.
-	The code checks for the tags destination, destination:lanes, 
-	destination:street and some variants with :forward/:backward like
-	destination:forward or destination:lanes:backward. If a value for
-	destination is found, the special tag mkgmap:dest_hint is set to 
-	it and the way is split. This happens before the style rules are processed.
-	This allows to use any routable Garmin type (except 0x08 and 0x09)
-	for that part so that the Garmin device tells the name of
-	this part as hint which destination to follow.     
-	See also --process-exits.
-	
---process-exits
-	Usual Garmin devices do not tell the name of the exit on motorways 
-	while routing with mkgmap created maps. This option splits each
-	motorway_link, trunk_link, primary_link, secondary_link, and tertiary_link 
-		way into three parts. 
-		All parts are tagged with the original tags of the link. 
-		Additionally the middle part is tagged with the following tags:
-	  mkgmap:exit_hint=true
-	  mkgmap:exit_hint_ref=<ref tag value of the exit>
-	  mkgmap:exit_hint_name=<name tag value of the exit>
-	  mkgmap:exit_hint_exit_to=<exit_to tag value of the exit>
-	Adding a rule checking the mkgmap:exit_hint=true makes it possible
-	to use any routable Garmin type (except 0x08 and 0x09) for the middle 
-	part so that the Garmin device tells the name of this middle part as 
-	hint where to leave the major road.
-	The first part must have type 0x08 or 0x09 so that Garmin uses the hint. 
-	
---delete-tags-file=filename
-	Names a file that should contain one or more lines of the form
-	TAG=VALUE or TAG=*. Blank lines and lines that start with
-	a # or ; are ignored. All tag/value pairs in the OSM input are
-	compared with these patterns and those that match are deleted.
-	
---ignore-fixme-values
-	Ignore all tags for which the value matches the pattern "(?i)fix[ _]?+me".	
-
---tdbfile
-	Write files that are essential to running with MapSource, a .tdb file and
-	an overview map. The options --nsis and --gmapi imply --tdbfile.
-
---show-profiles=1
-	Sets a flag in tdb file. The meaning depends on the availability of DEM 
-	data (see "Hill Shading (DEM) options"). 
-	Without DEM data the flag enables profile calculation in MapSource or 
-	Basecamp based on information from contour lines.
-	If DEM data is available the profile is calculated with that information and
-	the flag only changes the status line to show the height when you hover over 
-	an area with valid DEM data.
-	The default is show-profiles=0.
-
---transparent
-	Make the map transparent, so that if two maps covering the same area are
-	loaded, you can see through this map to see details from the other map too.
-	Typically used for maps containing just contour lines. See --draw-priority
-	as well.
-
---draw-priority=integer
-	When two maps cover the same area and both are enabled in the device, this
-	option controls the order in which they are drawn in and therefore which map
-	is on top.  Higher priorities are drawn "on top" of lower priorities.
-	The map drawn on top must be transparent for the one underneath to be seen.
-	The default value is 25.
-
---custom
-	Write a different TRE header. With this option, mkgmap writes the bytes
-	0x170401 instead of the default 0x110301 at offset 43. Useful for marine 
-	maps.
-	
---hide-gmapsupp-on-pc
-	Set a bit in the gmapsupp.img that tells PC software that the file is
-	already installed on the PC and therefore there is no need to read it 
-	from the device.
-
---poi-address
-	Enable address / phone information to POIs. Address info is
-	read according to the "Karlsruhe" tagging schema. Automatic
-	filling of missing information could be enabled using the
-	"location-autofill" option.
-	Default is enabled, use --no-poi-address to disable.
-
---verbose
-	Makes some operations more verbose. Mostly used with --list-styles.
-
---order-by-decreasing-area
-	Puts polygons/areas into the map in decreasing size order, so that
-	smaller features are rendered over larger ones (assuming _drawOrder
-	is equal). The tag mkgmap:drawLevel can be used to override the
-	natural area of a polygon, so forcing changes to the rendering order. 
-
-Deprecated and Obsolete Options
-
---drive-on-left
---drive-on-right
-	Deprecated; use drive-on instead.
-	The options are translated to drive-on=left|right. 
-
---make-all-cycleways
-	Deprecated, use --make-opposite-cycleways instead. Former meaning: 
-	Turn on all of the options that make cycleways.
-
---charset=name
-	Obsolete; use --code-page instead.
-	option.
-
---map-features=filename
-	Obsolete; use --style-file instead.
-
---ignore-maxspeeds
-	Obsolete; former usage:
-	When reading OSM files, ignore any "maxspeed" tags.
-
---ignore-builtin-relations
-	Obsolete; former usage:
-	When reading OSM files, skip the built-in processing of
-	relations. This speeds up the processing non-routable map
-	layers that do not contain multipolygons. This implies
-	--ignore-turn-restrictions.
-
---road-name-pois[=GarminCode]
-	Obsolete; former usage:
-	Generate a POI for each named road. By default, the POIs'
-	Garmin type code is 0x640a. If desired, a different type code
-	can be specified with this option.  This is a workaround for not
-	being able to search for roads.
-	0x2f15: a blue dot in the middle of the road, and if you select,
-	or 'hover' over it, the street name appears.
-
---make-cycleways
-	Obsolete; former meaning:
-	Some streets have a separate cycleway track/lane just for
-	bicycle traffic and this option makes a way with the same
-	points as the original that allows bicycle traffic. Also,
-	bicycle traffic is prohibited from using the original way
-	(unless that way's bicycle access has been defined).
-
-
+﻿=== Command line ===
+
+The command line is of the format:
+
+	java.exe [java-options] –jar mkgmap.jar [mkgmap-options]
+
+A typical simple example using both splitter and mkgmap:
+
+	java.exe -Xmx2g -jar splitter.jar england-latest.o5m
+	java.exe -jar mkgmap.jar --gmapsupp -c template.args
+
+The first command splits the Open Street Map data into smaller files
+with each file containing the data for one tile of the map. It also
+produces a file named template.args that contains the names of all
+the generated files.
+
+The second command takes as input all the individual files listed
+in the template.args file generated by splitter, produces a .img
+file for each tile, then merges all the tiles together into a
+single gmapsupp.img file.
+
+=== Java options ===
+
+Details of the Java options are available at docs.oracle.com.
+The most likely options you may need to use are:
+
+-Xmx<size>[g|G|m|M|k|K]
+	Use this option to set the maximum Java heap size in GB, MB, KB or
+	bytes. Mkgmap allows the use of multiple CPU cores, and the amount of
+	heap memory required increases proportionally with the number of CPU
+	cores being used. The default value may not be sufficient to allow
+	mkgmap to use all the available CPU cores, which will cause the run time
+	to be longer than necessary. To allow mkgmap to run optimally, you may
+	need to use this option to allow more memory to be allocated to the Java
+	heap. Typically, mkgmap requires about 500MB per core, so an 8-core
+	processor might need to specify –Xmx4g – note there is no space or
+	equals sign in the option.
+
+-enableassertions
+	Causes an error to be thrown if an assertion written in the mkgmap
+	code is evaluated as not true. This is useful in detecting bugs in the
+	mkgmap code.
+
+-Dlog.config=filename
+	Specifies a logging configuration file that allows you to enable and
+	disable specific logging messages. This is useful if you want to see
+	certain types of message that are not logged by default or choose where
+	the messages should be written. The configuration file contains details
+	of the handler(s) used to write the messages, parameters used to format
+	the messages and the severity of messages that should be logged at Java
+	package or class level, plus a default value. An example file is:
+
+# The default level FINE, WARNING, INFO, SEVERE
+.level=SEVERE
+#handlers: java.util.logging.ConsoleHandler
+handlers: java.util.logging.FileHandler java.util.logging.ConsoleHandler
+# package or class name with .level appended and then the level
+uk.me.parabola.imgfmt.level=INFO
+uk.me.parabola.mkgmap.build.level=INFO
+uk.me.parabola.mkgmap.main.Main.level=INFO
+uk.me.parabola.mkgmap.main.MapMaker.level=INFO
+uk.me.parabola.mkgmap.general.RoadNetwork.level=INFO
+uk.me.parabola.mkgmap.general.MapLine.level=INFO
+uk.me.parabola.mkgmap.osmstyle.level=INFO
+uk.me.parabola.mkgmap.reader.osm.level=INFO
+uk.me.parabola.mkgmap.reader.osm.xml.level=INFO
+uk.me.parabola.mkgmap.reader.osm.RestrictionRelation.level=FINE
+uk.me.parabola.mkgmap.reader.osm.Restriction.level=FINE
+# For ConsoleHandler
+java.util.logging.ConsoleHandler.level=WARNING
+java.util.logging.ConsoleHandler.formatter=uk.me.parabola.log.UsefulFormatter
+# For FileHandler
+java.util.logging.FileHandler.level=FINE
+java.util.logging.FileHandler.encoding=UTF-8
+java.util.logging.FileHandler.formatter=uk.me.parabola.log.UsefulFormatter
+java.util.logging.FileHandler.limit=20000000
+java.util.logging.FileHandler.count=4
+java.util.logging.FileHandler.pattern=mkgmap.log
+java.util.logging.FileHandler.append=false
+
+=== Mkgmap options ===
+
+The order of the options is significant in that options only apply
+to subsequent input files. If you are using splitter, you probably
+will need to put most of your options before '-c template.args'
+(this file is generated by splitter).
+
+=== General options ===
+
+--help=topic
+	Print help on the given topic.  If the topic is omitted then a
+	list of all the help topics is printed instead.
+
+--version
+	Output program version to stderr.
+
+=== File options ===
+
+filename
+--input-file=filename
+	Read input data from the given file.  This option (or just a
+	filename) may be specified more than once. Make sure you set all
+	wanted options before using this.
+
+--gmapsupp
+	Create a gmapsupp.img file that can be uploaded to a Garmin or
+	placed in "/Garmin" in a microSD card (such as by mounting the
+	device in USB mass storage mode).  It can be used on ready
+	compiled img files, if the input files are not already compiled
+	then they are compiled first and then the gmapsupp is created.
+
+--gmapi
+	Create a directory in the "gmapi" format required by Mac applications.
+	Can also be used for Windows programs.
+
+-c filename
+--read-config=filename
+	Each line of the named file contains a command option in the form
+	option=value or option:value.  The options are included as arguments of
+	the executed command as if they had been specified on the command line.
+	Lines beginning with a # character are ignored and can be used as
+	comments.  Any command line option can be specified, however the
+	leading '--' must be omitted.  The short option names with a single
+	'-' cannot be used, simply use the long name instead.
+
+--output-dir=directory
+	Specify the directory in which all output files are written. It defaults
+	to the current working directory, i.e. the directory the command is
+	executed from.
+
+-n name
+--mapname=name
+	Set the name of the map. Garmin maps are identified by an 8 digit
+	number.  The default is 63240001.  It is best to use a different
+	name if you are going to be making a map for others to use so
+	that it is unique and does not clash with others.
+
+--description=text
+	Set the descriptive text for the map. This may be displayed in
+	QLandkarte, MapSource or on a GPS, where it is normally shown
+	below the family name. Example: --description="Germany, Denmark"
+	Please note: if you use splitter.jar to build a template.args file
+	and use -c template.args, then that file may contain a
+	"description" that will override this option for each single
+	tile. Make sure to set the description for the gmapsupp.img after
+	"-c template.args".
+
+--country-name=name
+	Set the map's country name. The default is "COUNTRY".
+
+--country-abbr=abbreviation
+	Set the map's abbreviated country name. The default is "ABC".
+
+--region-name=name
+	Set the map's region name. By default, the map has no region name.
+
+--region-abbr=abbreviation
+	Set the map's abbreviated region name. By default, the map has
+	no abbreviated region name.
+
+=== Label options ===
+
+--code-page=number
+	Specify which international character set is to be used. Only 8 bit
+	character sets are supported so you have to specify which code page you
+	want to use.
+	It is entirely dependent on the device firmware which code pages are
+	supported.
+
+--latin1
+	This is equivalent to --code-page=1252.
+
+--unicode
+	This is equivalent to --code-page=65001. Note that some devices don't
+	support Unicode maps produced by mkgmap.
+
+--lower-case
+	Allow labels to contain lower case letters.  Note that many Garmin
+	devices are not able to display lower case letters at an angle.
+
+=== Address search options ===
+
+--index
+	Generate a global address search index. If the --gmapsupp option is
+	also given, then the index is generated within the resulting
+	gmapsupp.img file so that address search will work on a GPS
+	device.
+
+	If both the --gmapsupp and any of --tdbfile, --gmapi, or --nsis options
+	are given alongside the --index option, then both indexes will be
+	created. Note that this will require roughly twice as much memory.
+
+	If the map is sent to the device by MapSource, it will enable
+	find by name and address search on the GPS.
+
+	The address fields are assigned by special mkgmap address
+	tags using the style file:
+
+		mkgmap:country
+		mkgmap:region
+		mkgmap:city
+		mkgmap:postal_code
+		mkgmap:street
+		mkgmap:housenumber
+		mkgmap:phone
+		(mkgmap:is_in - used by location-autofill=is_in)
+
+	If the index is created from previously compiled .img files, then the
+	same code page and sorting options (e.g. --code-page, --latin1) must
+	be used as were used to compile the individual map tiles.
+
+--split-name-index
+	Index each part of a street name separately.
+	For example, if the street is "Aleksandra Gryglewskiego" then you will
+	be able to search for it as both "Aleksandra" and "Gryglewskiego".  It
+	will also increase the size of the index.  Useful in countries where
+	searching for the first word in name is not the right thing to do. Words
+	following an opening bracket '(' are ignored. See also option
+	--road-name-config.
+
+--road-name-config=filename
+	Provide the name of a file containing commonly used road name prefixes
+	and suffixes. This option handles the problem that some countries have
+	road names which often start or end with very similar words, e.g. in
+	France the first word is very often 'Rue', often followed by a
+	preposition like 'de la' or 'des'. This leads to rather long road names
+	like 'Rue de la Concorde' where only the word 'Concorde' is really
+	interesting. In the USA, you often have names like 'West Main Street'
+	where only the word 'Main' is important. Garmin software has some tricks
+	to handle this problem. It allows the use of special characters in the
+	road labels to mark the beginning and end of the important part. In
+	combination with option split-name-index only the words in the important
+	part are indexed.
+
+	There are two main effects of this option:
+		- On the PC, when zooming out, the name 'Rue de la Concorde' is
+		only rendered as 'Concorde'.
+		- The index for road names only contains the important part of
+		the name. You can search for road name Conc to find road names
+		like 'Rue de la Concorde'. However, a search for 'Rue' will not
+		list 'Rue de la Concorde' or 'Rue du Moulin'. It may list
+		'Rueben Brookins Road' if that is in the map. Only MapSource
+		shows a corresponding hint.
+
+		Another effect is that the index is smaller.
+	See comments in the sample roadNameConfig.txt for further details.
+
+--mdr7-excl=name[,name...]
+	Specify words which should be omitted from the road index. It was
+	added before option road-name-config and is probably no longer needed.
+	Example usage: --x-mdr7-excl="Road, Street, Straße, Weg"
+
+--mdr7-del=name[,name...]
+	Use this option if your style adds strings to the labels of roads which
+	you want to see in the map but which should not appear in the result
+	list of a road name / address search. The list is used like this:
+	For each road label, mkgmap searches for the last blank. If one is
+	found, it checks if the word after it appears in the given list. If so,
+	the word is removed and the search is repeated. The remaining string is
+	used to create the index.
+	Example: Assume your style adds surface attributes like 'pav.' or 'unp.'
+	to a road label. You can use --mdr7-del="pav.,unp." to remove these
+	suffixes from the index.
+
+--poi-excl-index=poi[-poi][,poi[-poi]...]
+	By default, mkgmap indexes the following POI types with a non-empty
+	label:
+		- 0x00 .. 0x0f (cities, sub type 0, type <= 0xf)
+		- 0x2axx..0x30xx (Food & Drink, Lodging, ...)
+		- 0x28xx (no category ?)
+		- 0x64xx .. 0x66xx (attractions)
+	This option allows the exclusion of POI types from the index.
+	The excluded types are not indexed, but may still be searchable on a
+	device, as some devices seem to ignore most of the index, e.g. an Oregon
+	600 with firmware 5.00 only seems to use it for city search.
+	If your device finds a POI name like 'Planet' when you search for 'Net',
+	it doesn't use the index because the index created by mkgmap cannot help
+	for that search.
+
+	So, this option may help when you care about the size of the index or
+	the memory that is needed to calculate it.
+	The option expects a comma separated list of types or type ranges. A
+	range is given with from-type-to-type, e.g. 0x6400-0x6405. First and
+	last type are both excluded.  A range can span multiple types, e.g.
+	0x6400-0x661f.
+	Examples for usage:
+		- Assume your style adds a POI with type 0x2800 for each
+		addr:housenumber. It is not useful to index those numbers, so
+		you can use --poi-excl-index=0x2800 to exclude this.
+		- For the aforementioned Oregon you may use
+		--poi-excl-index=0x2a00-0x661f to reduce the index size.
+
+--bounds=directory|zipfile
+	Specify a directory or zip file containing the preprocessed bounds
+	files. Bounds files in a zip file must be located in the zip file's root
+	directory.
+
+	The preprocessed boundaries are used to add special tags to all elements
+	(points, lines and polygons) containing the elements location
+	information. The style file can be used to assign the address tags
+	mkgmap:country, mkgmap:region etc. using these values.
+
+	The following special tags are added:
+		mkgmap:admin_level2 : Name of the admin_level=2 boundary
+		mkgmap:admin_level3 : Name of the admin_level=3 boundary
+		..
+		mkgmap:admin_level11
+		mkgmap:postcode : the postal_code value
+
+	Preprocessed bounds can be created with the following command:
+
+		java -cp mkgmap.jar uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor <inputfile> <boundsdir>
+
+	The input file must contain the boundaries that should be preprocessed.
+	It can have OSM, PBF or O5M file format. It is recommended that it
+	contains the boundary data only to avoid very high memory usage.
+	The boundsdir gives the directory where the processed files are stored.
+	This directory can be used as --bounds parameter with mkgmap.
+
+--location-autofill=[option1,[option2]]
+	Controls how the address fields for country, region, city and zip info
+	are gathered automatically if the fields are not set by using the
+	special mkgmap address tags (e.g. mkgmap:city - see option index).
+	Warning: automatic assignment of address fields is somehow a best guess.
+	is_in
+		The is_in tag is analyzed for country and region information.
+
+	nearest
+		The city/hamlet points that are closest to the element are used
+		to assign the missing address fields. Beware that cities located
+		in the same tile are used only. So the results close to a tile
+		border have less quality.
+
+--housenumbers
+	Enables house number search for OSM input files.
+	All nodes and polygons having addr:housenumber set are matched
+	to streets. A match between a house number element and a street is
+	created if the street is located within a radius of 150m and the
+	addr:street tag value of the house number element equals the
+	mgkmap:street tag value of the street. The mkgmap:street tag must be
+	added to the street in the style file. For optimal results, the tags
+	mkgmap:city and mkgmap:postal_code should be set for the housenumber
+	element. If a street connects two or more cities this allows all
+	addresses along the road to be found, even they have the same number.
+	Example for given street name:
+		Node -  addr:street=Main Street addr:housenumber=2
+		Way 1 - name=Main Street
+		Way 2 - name=Main Street, mkgmap:street=Main Street
+		Way 3 - mkgmap:street=Mainstreet
+		Way 4 - name=Main Street [A504]
+	The node matches to Way 2. It has mkgmap:street set with a value equal
+	to the addr:street tag value of the house number node.
+
+	If the street is not given with addr:housenumber, mkgmap uses heuristics
+	to find the best match.
+
+=== Overview map options ===
+
+--overview-mapname=name
+	If --tdbfile is enabled, this gives the name of the overview
+	.img and .tdb files. The default map name is osmmap.
+
+--overview-mapnumber=8 digit number
+	If --tdbfile is enabled, this gives the internal 8 digit
+	number used in the overview map and tdb file.  The default
+	number is 63240000.
+
+--overview-levels=level:resolution[,level:resolution...]
+	Like levels, specifies additional levels that are to be written to the
+	overview map. Counting of the levels should continue. Up to 8 additional
+	levels may be specified, but the lowest usable resolution with MapSource
+	seems to be 11. The hard coded default is empty.
+	See also option --overview-dem-dist.
+
+--remove-ovm-work-files
+	If overview-levels is used, mkgmap creates one additional file
+	with the prefix ovm_ for each map (*.img) file.
+	These files are used to create the overview map.
+	With option --remove-ovm-work-files=true the files are removed
+	after the overview map was created. The default is to keep the files.
+
+=== Style options ===
+
+--style-file=filename
+	Specify an external file to obtain the style from.  "file" can
+	be a directory containing files such as info, lines, options
+	(see resources/styles/default for an example).  The directory
+	path must be absolute or relative to the current working
+	directory when mkgmap is invoked.
+
+	The file can be a zip file containing the files instead of a
+	directory.
+
+	The files can be at the top level or contained in a folder within
+	the zip file.  If the zip file contains more than one top level
+	folder then each folder is the name of a style that can be selected
+	with the --style option.
+
+	The argument can also be a URL that specifies the location of a
+	style file.
+
+--style=name
+	Specify a style name. Must be used if --style-file points to a
+	directory or zip file containing multiple styles. If --style-file
+	is not used, it selects one of the built-in styles.
+
+--style-option=tag[=value][;tag[=value]...]
+	Provide a semicolon separated list of tags which can be used in the
+	style. The intended use is to make a single style more flexible, e.g.
+	you may want to use a slightly different set of rules for a map of a
+	whole continent. The tags given will be prefixed with "mkgmap:option:".
+	If no value is provided the default "true" is used.
+	This option allows to use rules like
+	mkgmap:option:light=true & landuse=farmland {remove landuse}
+	Example: -- style-option=light;routing=car
+	will add the tags mkgmap:option:light=true and mkgmap:option:routing=car
+	to each element before style processing happens.
+
+--list-styles
+	List the available styles. If this option is preceded by a style-file
+	option then it lists the styles available within that file.
+
+--check-styles
+	Perform some checks on the available styles. If this option is
+	preceded by a style-file option then it checks the styles
+	available within that file. If it is also preceded by the style
+	option it will only check that style.
+
+--levels=level:resolution[,level:resolution...]
+	Change the way that the levels on the map correspond to the zoom
+	levels in the device. See customisation help. The hard coded default is:
+	"0:24, 1:22, 2:20, 3:18, 4:16", although each style can have
+	its own default. The default style for example overwrites it with
+	"0:24, 1:22, 2:20, 3:18". Up to 8 levels may be specified.
+
+--name-tag-list=tag[,tag...]
+	Specify the tag that will be used to supply the name.  Useful for
+	language variations.  You can supply a list of tags and the first one
+	found will be used.  e.g. --name-tag-list=name:en,int_name,name
+
+=== Product description options ===
+
+--family-id=integer
+	This is an integer that identifies a family of products.
+	Range: [1..9999]
+	Mkgmap default: 6324
+
+--family-name=name
+	If you build several maps, this option describes the
+	family name of all of your maps. Garmin will display this
+	in the map selection screen.
+
+	Example: --family-name="OpenStreetmap mkgmap XL 2019"
+
+--product-id=integer
+	This is an integer that identifies a product within a family.
+	It is often just 1, which is the default.
+
+--product-version=integer
+	The version of the product. Default value is 100 which means version
+	1.00.
+
+--series-name=name
+	This name will be displayed in MapSource in the map selection
+	drop-down. The default is "OSM map".
+
+--area-name=name
+	Area name is displayed on Garmin units (or at least on eTrex) as the
+	second part of the mapname in the list of the individual maps.
+
+--copyright-message=text
+	Specify a copyright message for files that do not contain one.
+
+--copyright-file=filename
+	Specify copyright messages from a file.
+	Note that the first copyright message is not displayed on a device, but
+	is shown in BaseCamp. The copyright file must include at least two lines
+	and be UTF-8 encoded. The following symbols will be substituted by
+	mkgmap: $MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$,
+	$SHORT_DATE$ and $TIME$. Time and date substitutions use the local date
+	and time formats.
+
+--license-file=filename
+	Specify a file which content will be added as license.
+	The license file must be UTF-8 encoded.
+	The following symbols will be substituted by mkgmap:
+	$MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and
+	$TIME$. Time and date substitutions use the local date and time formats.
+	All entries of all maps will be merged in the overview map.
+
+=== Optimization options ===
+
+--reduce-point-density=NUM
+	Simplifies the ways with the Douglas Peucker algorithm.
+	NUM is the maximal allowed error distance, by which the resulting
+	way may differ from the original one.
+	This distance gets shifted with lower zoom levels.
+	Recommended setting is 4, this should lead to only small differences
+	(Default is 2.6, which should lead to invisible changes)
+
+--reduce-point-density-polygon=NUM
+	Allows you to set the maximal allowed error distance for the DP
+	algorithm to be applied against polygons. Recommended setting is 8.
+
+--merge-lines
+	Try to merge lines. This helps the simplify filter to straighten out
+	longer chunks at lower zoom levels. Decreases file size more.
+	Increases paint speed at low zoom levels.
+	Default is enabled, use --no-merge-lines to disable.
+
+--min-size-polygon=NUM
+	Removes all polygons smaller than NUM from the map.
+	This reduces map size and speeds up redrawing of maps.
+	Recommended value is 8 to 15, default is 8.
+	See also polygon-size-limits.
+
+--polygon-size-limits=resolution:value[,resolution:value...]
+	Allows you to specify different min-size-polygon values for each
+	resolution.
+	Sample:
+	--polygon-size-limits="24:12, 18:10, 16:8, 14:4, 12:2, 11:0"
+	If a resolution is not given, mkgmap uses the value for the next higher
+	one. For the given sample, resolutions 19 to 24 will use value 12,
+	resolution 17 and 18 will use 10, and so on.
+	Value 0 means to not apply the size filter.
+	Note that in resolution 24 the filter is not used.
+	The following options are equivalent:
+	--min-size-polygon=12
+	--polygon-size-limits=24:12
+	--polygon-size-limits=24:0,23:12
+	--polygon-size-limits=24:0,23:12,22:12,21:12,16:12
+
+=== Hill Shading (DEM) options ===
+
+	Hill Shading is rendered by PC programs (MapSource or BaseCamp) or GPS
+	devices when the map includes a Digital Elevation Model (DEM). Use the
+	following options to add a DEM to the map and control its
+	characteristics. DEM creation requires files containing height
+	information for the area covered by the map, the so called hgt files,
+	which typically cover 1 degree latitude * 1 degree longitude and are
+	named by the coordinates of their bottom left corner (eg. N53E009).
+	They contain height information in a grid of points. Typical hgt files
+	contain either 1'' or 3'' data. 3'' files have 1201 * 1201 points,
+	which gives 2 * 1201 * 1201 = 2.884.802 bytes. 1'' files have 3601 *
+	3601 points, which gives 2 * 3601 * 3601 = 25.934.402 bytes. Other
+	files are supported as long as the formular sqrt(size/2) gives an
+	integer value.
+
+--dem=path[,path...]
+	The option expects a comma separated list of paths to directories or zip
+	files containing *.hgt files. Directories are searched for *.hgt files
+	and also for *.hgt.zip and *.zip files.
+	The list is searched in the given order, so if you want to use 1'' files
+	make sure that they are found first. There are different sources for
+	*.hgt files, some have so called voids which are areas without data.
+	Those should be avoided.
+
+--dem-dists=number[,number...]
+	If given, the option specifies the resolution(s) or zoom level for
+	the DEM data. If not given, mkgmap tries to determine a reasonable value
+	based on the resolution found in the *.hgt files. For desktop programs
+	like MapSource or Basecamp you only need one zoom level, for GPS
+	devices you need one for each resolution given with the --levels option.
+	The actual values are given as distance between two DEM points and
+	should be a multiple or submultiple of the distance between two points
+	in the hgt file, that is 3314 for 1'' and 9942 for 3''. Higher distances
+	mean lower resolution and thus fewer bytes in the map. Reasonable values
+	for the highest resolution should not be much smaller than 50% hgt
+	resolution, that is somewhere between 1648 and 5520 for 1'' hgt input
+	files (3312 is often used), and 5520 to 9942 for 3'' hgt input files.
+	Example which should work with levels="0:24, 1:22, 2:20, 3:18":
+	--dem-dists=3312,13248,26512,53024
+	This was found in a Garmin Demo map for transalpin data created 2009.
+
+--dem-interpolation=auto|bicubic|bilinear
+	Use this option to specify the method that is used to interpolate data
+	from hgt raster to the DEM raster. The value bicubic gives the highest
+	precision but is slower, bilinear is faster but less precise, it tends
+	to smooth the profile and thus also reduces DEM size compared to
+	bicubic. The value auto means that bicubic is used where is seems
+	appropriate according to hgt resolution and dem-dist value, else
+	bilinear is used. The default is auto.
+
+--dem-poly=filename
+	If given, the filename should point to a *.poly file in osmosis polygon
+	file format. The polygon described in the file is used to determine the
+	area for which DEM data should be added to the map. If not given, the
+	DEM data will cover the full tile area.
+
+--overview-dem-dist=integer
+	If given, the option specifies the resolution(s) for the DEM data in the
+	overview map. If not given or 0, mkgmap will not add DEM to the overview
+	map. Reasonable values depend on the size of the area and the lowest
+	resolution used for the single tiles, good compromises are somewhere
+	between 55000 and 276160.
+
+=== Miscellaneous options ===
+
+--max-jobs[=integer]
+	Specify the number of threads to be used for concurrent processing.
+	Increasing max-jobs will reduce the execution time, providing sufficient
+	memory is available and the value is not greater than the number of
+	cores in the CPU. If no value is specified, the limit is set to the
+	number of CPU cores. The default is for the limit to be automatically
+	set to a reasonable value based on the amount of memory allocated to
+	the Java runtime and the amount used in processing the first tile.
+	To optimise mkgmap to use all available CPU cores, you may need to
+	use the Java -Xmx option to increase the amount of available heap
+	storage.
+
+--keep-going
+	Don't quit whole application if an exception occurs while
+	processing a map - continue to process the other maps.
+
+--block-size=integer
+	Changes the block size that is used in the generated map. This
+	option is not usually needed, but sometimes an error message
+	will ask you to try a value for this option.
+
+--net
+	Tells mkgmap to write NET data, which is needed for address search
+	and routing. Use this option if you want full address search, but do
+	not need a map that supports routing.
+
+--route
+	Tells mkgmap to write NET and NOD data, which are needed in maps
+	that support routing. If you specify this option, you do not need
+	to specify --net.
+
+--add-boundary-nodes-at-admin-boundaries=NUM
+	This option controls how mkgmap calculates special routing nodes which
+	are needed by Garmin software to allow routing between different map
+	tiles. These nodes are written to section 3 and 4 in the NOD file.
+	When a road crosses the tile boundary (bbox), the road is split at this
+	point and such a special node is written. This allows routing between
+	one set of tiles produced by splitter.jar. However, if you create a map
+	from different sets of tiles, those tiles are likely to overlap.
+	For the overlapping tiles, none of the entries in NOD3 match and thus
+	routing across tile border doesn't work when the route is not fully
+	covered by one of the tiles.
+	The option tells mkgmap to add special nodes whereever a road touches or
+	crosses an administratve boundary. The NUM parameter specifies a filter
+	for the admin_level. Boundaries with a higher admin_level value are
+	ignored. The default value is 2 (country borders). Another reasonable
+	value might be 4. A value less or equal to 0 tells mkgmap to ignore
+	intersections at administrative boundaries.
+
+--drive-on=left|right|detect|detect,left|detect,right
+	Explicitly specify which side of the road vehicles are
+	expected to drive on.
+	If the first option is detect, the program tries
+	to find out the proper flag. If that detection
+	fails, the second value is used (or right if none is given).
+	With OSM data as input, the detection tries to find out
+	the country each road is in and compares the number
+	of drive-on-left roads with the rest.
+	Use the --bounds option to make sure that the detection
+	finds the correct country.
+
+
+--check-roundabouts
+	Check that roundabouts have the expected direction (clockwise
+	when vehicles drive on the left). Roundabouts that are complete
+	loops and have the wrong direction are reversed. Also checks
+	that the roundabouts do not fork or overlap other roundabouts
+	and that no more than one connecting highway joins at each node.
+
+--check-roundabout-flares
+	Check that roundabout flare roads point in the correct direction,
+	are one-way and don't extend too far.
+
+--max-flare-length-ratio=NUM
+	When checking flare roads, ignore roads whose length is
+	greater than NUM (an integer) times the distance between the
+	nodes on the roundabout that the flare roads connect to. Using
+	this option with a value of at least 5 will cut down the
+	number of legitimate roads that are flagged as flare road
+	problems. Default value is 0 (disabled) because it's not a
+	completely reliable heuristic.
+
+--ignore-turn-restrictions
+	When reading OSM files, ignore any "restriction" relations.
+
+--ignore-osm-bounds
+	When reading OSM files, ignore any "bounds" elements.
+	With this option selected generate-sea sometimes works better,
+	but routing across tiles will not work.
+
+--preserve-element-order
+	Process the map elements (nodes, ways, relations) in the order
+	in which they appear in the OSM input. Without this option,
+	the order in which the elements are processed is not defined.
+
+	Optional BITMASK (default value 3) allows you to specify which
+	adjustments are to be made (where necessary):
+
+	* 1 = increase angle between side road and outgoing main road
+	* 2 = increase angle between side road and incoming main road
+
+--cycle-map
+	Tells mkgmap that the map is for cyclists. This assumes that
+	different vehicles are different kinds of bicycles, e.g. a way
+	with mkgmap:car=yes and mkgmap:bicycle=no may be a road that is
+	good for racing bikes, but not for other cyclists.
+	This allows the optimisation of sharp angles at junctions of those
+	roads. Don't use with the default style as that is a general style!
+
+--report-similar-arcs
+	Issue a warning when more than one arc connects two nodes and
+	the ways that the arcs are derived from contain identical
+	points. It doesn't make sense to use this option at the same
+	time as using the cycleway creating options.
+
+--report-dead-ends=LEVEL
+	Set the dead end road warning level. The value of LEVEL (which
+	defaults to 1 if this option is not specified) determines
+	those roads to report: 0 = none, 1 = multiple one-way roads
+	that join together but go nowhere, 2 = individual one-way roads
+	that go nowhere.
+
+--add-pois-to-lines
+	Generate POIs for lines. For each line (must not be closed) POIs are
+	created at several points of the line. Each POI is tagged with the
+	same tags like the line and additional tags added by mkgmap:
+	mkgmap:line2poi=true and tag mkgmap:line2poitype having
+	the following values:
+	* start  - The first point of the line
+	* end    - The last point of the line
+	* inner  - Each point of the line except the first and the last
+	* mid    - The middle point
+--add-pois-to-areas
+	Generate a POI for each polygon and multipolygon. The POIs are created
+	after the relation style but before the other styles are applied. Each
+	POI is tagged with the same tags of the area/multipolygon. Additionally
+	the tag mkgmap:area2poi=true is set so that it is possible to use that
+	information in the points style file. Artifical polygons created by
+	multipolyon processing are not used. The POIs are created at the
+	following positions (first rule that applies):
+	polygons:
+		First rule that applies of
+		* the first node tagged with a tag defined by the
+		pois-to-areas-placement option
+		* the centre point
+	multipolygons:
+		First rule that applies of
+		* the node with role=label
+		* the centre point of the biggest area
+--pois-to-areas-placement=tag=value[;tag=value...]
+	A POI is placed at the first node of the polygon tagged with the first
+	tag/value pair. If none of the nodes are tagged with the first tag-value
+	pair the first node tagged with the second tag-value pair is used and so
+	on. If none of the tag-value pairs matches or the taglist is empty, the
+	centre of the polygon is used. It is possible to define wildcards for
+	tag values like entrance=*.
+
+	Default: entrance=main;entrance=yes;building=entrance
+
+--precomp-sea=directory|zipfile
+	Defines the directory or a zip file that contains precompiled sea tiles.
+	Sea files in a zip file must be located in the zip file's root directory
+	or in a sub directory sea. When this option is defined all
+	natural=coastline tags from the input OSM tiles are removed and the
+	precompiled data is used instead. This option can be combined with the
+	generate-sea options multipolygon, polygons and land-tag. The
+	coastlinefile option is ignored if precomp-sea is set.
+
+--coastlinefile=filename[,filename...]
+	Defines a comma separated list of files that contain coastline
+	data. The coastline data from the input files is removed if
+	this option is set. Files must have OSM or PBF fileformat.
+
+--generate-sea[=ValueList]
+	Generate sea polygons. ValueList is an optional comma
+	separated list of values:
+
+	multipolygon
+		generate the sea using a multipolygon (the default behaviour so
+		this really doesn't need to be specified).
+
+	polygons | no-mp
+		don't generate the sea using a multipolygon - instead,
+		generate a background sea polygon plus individual land
+		polygons with tag natural=land. This requires a
+		suitable land polygon type to be defined in the style
+		file (suggested type is 0x010100) and the polygon must
+		be defined in the TYP file as having a higher drawing
+		level than the sea polygon type.
+
+	no-sea-sectors
+		disable the generation of "sea sectors" when the
+		coastline fails to reach the tile's boundary.
+	extend-sea-sectors
+		same as no-sea-sectors. Additional adds a point so coastline
+		reaches the nearest tile boundary.
+
+	land-tag=TAG=VAL
+		tag to use for land polygons (default natural=land).
+	close-gaps=NUM
+		close gaps in coastline that are less than this distance
+		(metres)
+
+	floodblocker
+		enable the flood blocker that prevents a flooding of
+		land by checking if the sea polygons contain streets
+		(works only with multipolygon processing)
+
+	fbgap=NUM
+		flood blocker gap in metre (default 40)
+		points that are closer to the sea polygon do not block
+
+	fbthres=NUM
+		at least so many highway points must be contained in
+		a sea polygon so that it may be removed by the flood
+		blocker (default 20)
+
+	fbratio=NUM
+		only sea polygons with a higher ratio
+		(highway points * 100000 / polygon size) are removed
+		(default 0.5)
+
+	fbdebug
+		switches on the debugging of the flood blocker
+		generates GPX files for each polygon checked by
+		the flood blocker
+
+--make-poi-index
+	Generate a POI index in each map tile. Probably not used by modern
+	devices, but still supported.
+
+--nsis
+	Write a .nsi file that can be used with the Nullsoft Scriptable Install
+	System (NSIS) to create a Windows Mapsource Installer.
+
+--make-opposite-cycleways
+	Some one-way streets allow bicycle traffic in the reverse
+	direction and this option makes a way with the same points as
+	the original that allows bicycle traffic (in both directions).
+
+--link-pois-to-ways
+	This option may copy some specific attributes of a POI
+	to a small part of the way the POI is located on. This can be used
+	to let barriers block a way or to lower the calculated speed
+	around traffic signals.
+	POIs with the tags highway=* (e.g. highway=traffic_signals)
+	or barrier=* (e.g. barrier=cycle_barrier) are supported.
+	The style developer must add at least one of the access tags
+	(mkgmap:foot, mkgmap:car etc.), mkgmap:road-speed and/or
+	mkgmap:road-class to the POI.
+	The access tags are ignored if they have no effect for the way,
+	else a route restriction is added at the POI so that only
+	allowed vehicles are routed through it.
+	The tags mkgmap:road-speed and/or mkgmap:road-class are
+	applied to a small part of the way around the POI, typically
+	to the next junction or a length of ~25 m. The tags
+	are ignored for pedestrian-only ways.
+
+--process-destination
+	Splits all motorway_link, trunk_link, primary_link, secondary_link,
+	and tertiary_link ways tagged with destination into two or three parts
+	where the second part is additionally tagged with mkgmap:dest_hint=*.
+	The code checks for the tags destination, destination:lanes,
+	destination:street and some variants with :forward/:backward like
+	destination:forward or destination:lanes:backward. If a value for
+	destination is found, the special tag mkgmap:dest_hint is set to
+	it  and the way is split.
+	This happens before the style rules are processed.
+	This allows to use any routable Garmin type (except 0x08 and 0x09)
+	for that part so that the Garmin device tells the name of
+	this part as hint which destination to follow.
+	See also --process-exits.
+
+--process-exits
+	Usual Garmin devices do not tell the name of the exit on motorways
+	while routing with mkgmap created maps. This option splits each
+	motorway_link, trunk_link, primary_link, secondary_link, and
+	tertiary_link way into three parts.
+	All parts are tagged with the original tags of the link.
+	Additionally the middle part is tagged with the following tags:
+
+		mkgmap:exit_hint=true
+		mkgmap:exit_hint_ref=<ref tag value of the exit>
+		mkgmap:exit_hint_name=<name tag value of the exit>
+		mkgmap:exit_hint_exit_to=<exit_to tag value of the exit>
+
+	Adding a rule checking the mkgmap:exit_hint=true makes it possible
+	to use any routable Garmin type (except 0x08 and 0x09) for the middle
+	part so that the Garmin device tells the name of this middle part as
+	hint where to leave the motorway/trunk.
+	The first part must have type 0x08 or 0x09 so that Garmin uses the hint.
+
+--delete-tags-file=filename
+	Names a file that should contain one or more lines of the form
+	TAG=VALUE or TAG=*. Blank lines and lines that start with
+	a # or ; are ignored. All tag/value pairs in the OSM input are
+	compared with these patterns and those that match are deleted.
+
+--ignore-fixme-values
+	Ignore all tags for which the value matches the pattern
+	"(?i)fix[ _]?+me".
+
+--tdbfile
+	Write files that are essential to running with MapSource, a .tdb file
+	and an overview map. The options --nsis and --gmapi imply --tdbfile.
+
+--show-profiles=1
+	Sets a flag in tdb file. The meaning depends on the availability of DEM
+	data (see "Hill Shading (DEM) options").
+	Without DEM data the flag enables profile calculation in MapSource or
+	Basecamp based on information from contour lines.
+	If DEM data is available the profile is calculated with that
+	information and the flag only changes the status line to show the height
+	when you hover over an area with valid DEM data.
+	The default is show-profiles=0.
+
+--transparent
+	Make the map transparent, so that if two maps covering the same area are
+	loaded, you can see through this map to see details from the other map
+	too. Typically used for maps containing just contour lines. See
+	--draw-priority as well.
+
+--draw-priority=integer
+	When two maps cover the same area and both are enabled in the device,
+	this option controls the order in which they are drawn in and therefore
+	which map is on top.  Higher priorities are drawn "on top" of lower
+	priorities. The map drawn on top must be transparent for the one
+	underneath to be seen. The default value is 25.
+
+--custom
+	Write a different TRE header. With this option, mkgmap writes the bytes
+	0x170401 instead of the default 0x110301 at offset 43. Useful for marine
+	maps.
+
+--hide-gmapsupp-on-pc
+	Set a bit in the gmapsupp.img that tells PC software that the file is
+	already installed on the PC and therefore there is no need to read it
+	from the device.
+
+--poi-address
+	Enable address / phone information to POIs. Address info is
+	read according to the "Karlsruhe" tagging schema. Automatic
+	filling of missing information could be enabled using the
+	"location-autofill" option.
+	Default is enabled, use --no-poi-address to disable.
+
+--verbose
+	Makes some operations more verbose. Mostly used with --list-styles.
+
+--order-by-decreasing-area
+	Puts area/polygons into the map in decreasing size order, so
+	that smaller features are rendered over larger ones
+	(assuming _drawOrder is equal).
+	The tag mkgmap:drawLevel can be used to override the
+	natural area of a polygon, so forcing changes to the rendering order.
+
+=== Deprecated and Obsolete Options ===
+
+--drive-on-left
+--drive-on-right
+	Deprecated; use drive-on instead.
+	The options are translated to drive-on=left|right.
+
+--make-all-cycleways
+	Deprecated; use --make-opposite-cycleways instead. Former meaning:
+	Turn on all of the options that make cycleways.
+
+--charset=name
+	Obsolete; use --code-page instead.
+
+--map-features=filename
+	Obsolete; use --style-file instead.
+
+--ignore-maxspeeds
+	Obsolete; former usage:
+	When reading OSM files, ignore any "maxspeed" tags.
+
+--ignore-builtin-relations
+	Obsolete; former usage:
+	When reading OSM files, skip the built-in processing of
+	relations. This speeds up the processing non-routable map
+	layers that do not contain multipolygons. This implies
+	--ignore-turn-restrictions.
+
+--road-name-pois[=GarminCode]
+	Obsolete; former usage:
+	Generate a POI for each named road. By default, the POIs'
+	Garmin type code is 0x640a. If desired, a different type code
+	can be specified with this option.  This is a workaround for not
+	being able to search for roads.
+	0x2f15: a blue dot in the middle of the road, and if you select,
+	or 'hover' over it, the street name appears.
+
+--make-cycleways
+	Obsolete; former meaning:
+	Some streets have a separate cycleway track/lane just for
+	bicycle traffic and this option makes a way with the same
+	points as the original that allows bicycle traffic. Also,
+	bicycle traffic is prohibited from using the original way
+	(unless that way's bicycle access has been defined).
