summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@suren.me>2019-10-10 23:59:38 +0200
committerSuren A. Chilingaryan <csa@suren.me>2019-10-10 23:59:38 +0200
commit682b308d8a7804d0ae2b2606b3ba0ff8814c1473 (patch)
tree9a191e0b4f963668fa60cabdd9ee33694886f35e
downloadopenmtbmap-682b308d8a7804d0ae2b2606b3ba0ff8814c1473.tar.gz
openmtbmap-682b308d8a7804d0ae2b2606b3ba0ff8814c1473.tar.bz2
openmtbmap-682b308d8a7804d0ae2b2606b3ba0ff8814c1473.tar.xz
openmtbmap-682b308d8a7804d0ae2b2606b3ba0ff8814c1473.zip
Initial release
-rw-r--r--.gitignore5
-rw-r--r--README.txt34
-rwxr-xr-xdownload.sh63
-rwxr-xr-xgenerate.sh88
-rw-r--r--lists/europe-mtb.txt48
-rw-r--r--lists/europe-velo.txt47
-rw-r--r--lists/local-velo.txt1
-rw-r--r--lists/mkgmap.txt685
-rw-r--r--lists/mountains-mtb.txt1
-rw-r--r--lists/ussr-mtb.txt5
-rw-r--r--lists/world-mtb.txt2
-rwxr-xr-xprocess.sh18
-rwxr-xr-xrename.sh8
13 files changed, 1005 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..90a9e7d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+downloads
+maps
+current-*.txt
+cookies.jar
+.pass
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..cd99abb
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,34 @@
+Problems
+========
+ - On GPSMapp 66 (and as I heard 64 also) there is a problem with OSM Unicode
+ maps. Device complains "cannot authenticate map". It seems Garmin requires
+ all Unicode maps to be signed. Non-Unicode maps (from openmtbmap project) work
+ well
+
+
+Note
+====
+(Of course you could also define the .img files by folder, and you probably
+have to add the path wo mkgmap) This will create a gmapsupp.img file, that
+you can upload to your GPS in USB mode (place it into /garmin folder on GPS
+internal memory or memory card)
+
+Note that all 6*.img have to be from the same openmtbmap country file -
+otherwise only one "country" will show in proper colours. You can instead of
+deleting all but one typfile replace *.TYP with e.g. clas*.TYP or the full
+name like clasde.TYP.
+
+-–family-id should be the same number as the first 4 digits of the maps (if
+- you use a different number, you have to adjust the FID inside the
+- .TYP-file). Note every map on your gps needs a different family-id (else
+- they won't be shown).
+
+-–family-name can be set to any value (only use letters and numbers, no
+- Umlauts or symbols) and will be shown as mapname on the GPS maplist.
+
+2 b) if you want to have contourlines (altitude lines) included too, just
+change the above command from "6*.img" to "6*.img 7*.img" and put the *.img
+from the contourline download into the same folder before running the above
+command.
+
+ \ No newline at end of file
diff --git a/download.sh b/download.sh
new file mode 100755
index 0000000..2631ec7
--- /dev/null
+++ b/download.sh
@@ -0,0 +1,63 @@
+#! /bin/bash
+
+# cat list.html | cut -d '"' -f 6 > list.txt
+# Need to clean
+
+if [ -z "$1" ]; then
+ echo "$0 <list_name>"
+ exit -1
+fi
+
+list="$1"
+listname="$(basename $list .txt)"
+if [ ! -f "$list" ]; then
+ echo "List "$list" is not found"
+ exit -1
+fi
+
+if [[ "$list" =~ "velo" ]]; then
+ url_nonu="http://openmtbmap.org/?s2member_file_download=odbl/nonunicode/english"
+ url="http://ftp5.gwdg.de/pub/misc/openstreetmap/openmtbmap/odbl/velomap"
+else
+ url_nonu="http://openmtbmap.org/?s2member_file_download=odbl/nonunicode/english"
+ url="http://ftp5.gwdg.de/pub/misc/openstreetmap/openmtbmap/odbl"
+fi
+
+
+if [ ! -f "cookies.jar" ]; then
+ curl -d log="csa7fff" -d pwd="$(cat .pass)" -d rememberme="forever" --cookie-jar ./cookies.jar https://openmtbmap.org/wp-login.php &> /dev/null
+ [ $? -ne 0 ] && { echo "Login failed"; exit 1; }
+fi
+
+
+mkdir -p downloads
+for name in $(cat $list); do
+ [ -f downloads/$name ] && continue
+
+ # Try first non-unicode
+ fail=0
+ curl -L --cookie cookies.jar "$url_nonu/$name" -o "downloads/$name" &> /dev/null
+ if [ $? -ne 0 ]; then
+ fail=1
+ else
+ size=$(du -sm "downloads/$name" | awk '{ print $1 }')
+ [ $size -lt 2 ] && fail=1
+ fi
+
+ if [ $fail -ne 0 ]; then
+ rm -f downloads/$name
+
+ fail=0
+ curl -o downloads/$name $url/$name &> /dev/null
+ if [ $? -ne 0 ]; then
+ fail=1
+ else
+ size=$(du -sm "downloads/$name" | awk '{ print $1 }')
+ [ $size -lt 2 ] && fail=1
+ fi
+ [ $fail -ne 0 ] && echo "*** Failed ***: $name"
+ [ $fail -eq 0 ] && echo "Unicode version: $name"
+ else
+ echo "Non-unicode version downloaded: $name"
+ fi
+done
diff --git a/generate.sh b/generate.sh
new file mode 100755
index 0000000..721e09d
--- /dev/null
+++ b/generate.sh
@@ -0,0 +1,88 @@
+#! /bin/bash
+
+function prepare {
+ rm -rf work
+ mkdir work
+ mkdir -p maps
+ 7z x -owork $1 &> /dev/null
+ [ $? -ne 0 ] && 7z x -owork $1
+
+ for file_name in `find work -maxdepth 1 -name "???"`; do mv $file_name/* work/ ; done
+}
+
+function clean {
+ rm -rf work
+}
+
+if [ -z "$1" ]; then
+ echo "Usage: $1 [map_file.exe]"
+ exit 1
+fi
+
+file=$1
+
+echo "====> Generating Garmin maps for $file"
+
+if [[ "$file" =~ "velo" ]]; then
+ typ=velo*.TYP
+ name=`basename $file .exe | cut -c 5-`
+ img=maps/velo-$name.img
+else
+ typ=thin*.TYP
+ name=`basename $file .exe | cut -c 4-`
+ img=maps/mtb-$name.img
+fi
+
+if [ -f $img ]; then
+ echo "Already existing, skipping..."
+ exit 0
+fi
+
+prepare $file
+
+if [ ! -f work/$typ ]; then
+ echo "Type file is not found, failing out..."
+ exit 1
+fi
+
+id=`ls work/6*.img | head -n 1 | cut -c 6-9`
+if [ $? -ne 0 ]; then
+ echo "No image files in $file, failing out..."
+ exit 1
+fi
+
+date=`date +%d.%m.%Y`
+(
+ cd work
+
+# java -Xmx2048M -jar /usr/share/mkgmap/lib/mkgmap.jar \
+
+ if [ -f velo*.TYP ]; then
+ mkgmap \
+ --route --index --unicode \
+ --family-id=$id --family-name=velo-$name --series-name=velo-$name --area-name=$name --country-name="$name" --region-name="$name" --description="$name [velo $date]" \
+ --gmapsupp 6*.img $typ
+ else
+ mkgmap \
+ --route --index --unicode \
+ --family-id=$id --family-name=$name --series-name=$name --area-name=$name --country-name="$name" --region-name="$name" --description="$name [mtb $date]" \
+ --gmapsupp 6*.img $typ
+ fi
+)
+
+exit_code=$?
+if [ $exit_code -ne 0 ]; then
+ echo "mkgmap failed with code $exit_code, failing out..."
+ exit $exit_code
+fi
+
+if [ ! -f work/gmapsupp.img ]; then
+ echo "mkgmap failed to produce Garmin image, failing out..."
+ exit 1
+fi
+
+mv work/gmapsupp.img $img
+
+echo "====> $img done"
+
+clean
diff --git a/lists/europe-mtb.txt b/lists/europe-mtb.txt
new file mode 100644
index 0000000..470da9e
--- /dev/null
+++ b/lists/europe-mtb.txt
@@ -0,0 +1,48 @@
+mtbalbania.exe
+mtbandorra.exe
+mtbaustria.exe
+mtbazores.exe
+mtbbelarus.exe
+mtbbelgium.exe
+mtbbosnia-herzegovina.exe
+mtbbulgaria.exe
+mtbcroatia.exe
+mtbcyprus.exe
+mtbczech-republic.exe
+mtbdenmark.exe
+mtbestonia.exe
+mtbfaroe-islands.exe
+mtbfinland.exe
+mtbfrance.exe
+mtbgermany.exe
+mtbgreat-britain.exe
+mtbgreece.exe
+mtbhungary.exe
+mtbiceland.exe
+mtbireland.exe
+mtbisle-of-man.exe
+mtbitaly.exe
+mtbkosovo.exe
+mtblatvia.exe
+mtblegend.exe
+mtbliechtenstein.exe
+mtblithuania.exe
+mtbluxembourg.exe
+mtbmacedonia.exe
+mtbmalta.exe
+mtbmoldova.exe
+mtbmonaco.exe
+mtbmontenegro.exe
+mtbnetherlands.exe
+mtbnorway.exe
+mtbpoland.exe
+mtbportugal.exe
+mtbromania.exe
+mtbserbia.exe
+mtbslovakia.exe
+mtbslovenia.exe
+mtbspain.exe
+mtbsweden.exe
+mtbswitzerland.exe
+mtbturkey.exe
+mtbukraine.exe
diff --git a/lists/europe-velo.txt b/lists/europe-velo.txt
new file mode 100644
index 0000000..8f3f21e
--- /dev/null
+++ b/lists/europe-velo.txt
@@ -0,0 +1,47 @@
+veloalbania.exe
+veloandorra.exe
+veloaustria.exe
+veloazores.exe
+velobelarus.exe
+velobelgium.exe
+velobosnia-herzegovina.exe
+velobulgaria.exe
+velocroatia.exe
+velocyprus.exe
+veloczech-republic.exe
+velodenmark.exe
+veloestonia.exe
+velofaroe-islands.exe
+velofinland.exe
+velofrance.exe
+velogermany.exe
+velogreat-britain.exe
+velogreece.exe
+velohungary.exe
+veloiceland.exe
+veloireland.exe
+veloisle-of-man.exe
+veloitaly.exe
+velokosovo.exe
+velolatvia.exe
+veloliechtenstein.exe
+velolithuania.exe
+veloluxembourg.exe
+velomacedonia.exe
+velomalta.exe
+velomoldova.exe
+velomonaco.exe
+velomontenegro.exe
+velonetherlands.exe
+velonorway.exe
+velopoland.exe
+veloportugal.exe
+veloromania.exe
+veloserbia.exe
+veloslovakia.exe
+veloslovenia.exe
+velospain.exe
+velosweden.exe
+veloswitzerland.exe
+veloturkey.exe
+veloukraine.exe
diff --git a/lists/local-velo.txt b/lists/local-velo.txt
new file mode 100644
index 0000000..268cec4
--- /dev/null
+++ b/lists/local-velo.txt
@@ -0,0 +1 @@
+velogermany.exe
diff --git a/lists/mkgmap.txt b/lists/mkgmap.txt
new file mode 100644
index 0000000..db3376d
--- /dev/null
+++ b/lists/mkgmap.txt
@@ -0,0 +1,685 @@
+Time started: Tue Jul 07 04:39:25 CEST 2015
+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.
+
+--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.
+
+-c filename
+--read-config=filename
+ The given file is opened and each line is an option setting of
+ the form option=value, any option that could be used on the command
+ line can be used, however you omit the leading '--'. The short
+ option names with a single '-' cannot be used, simply use the
+ long name instead.
+
+--output-dir=filename
+ 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 named by 8 digit
+ numbersList. 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
+ Sets 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. Use "--description" in
+ splitter.jar to change the description in the template.args file.
+
+--country-name=name
+ Sets the map's country name. The default is "COUNTRY".
+
+--country-abbr=abbreviation
+ Sets the map's abbreviated country name. The default is "ABC".
+
+--region-name=name
+ Sets the map's region name. By default, the map has no region name.
+
+--region-abbr=abbreviation
+ Sets the map's abbreviated region name. By default, the map has
+ no abbreviated region name.
+
+Label options:
+
+--latin1
+ This is equivalent to --code-page=1252.
+
+--unicode
+ This is equivalent to --code-page=65001. Note that only newer devices support Unicode.
+
+--code-page=number
+ This option enables the use of international characters. Only 8 bit
+ character sets are supported and 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.
+
+--charset=name
+ This option is obsolete. Change the character set with the --code-page
+ option.
+
+--lower-case
+ Allow labels to contain lower case letters. Note that most or all
+ Garmin devices are not able to display lower case letters at an angle
+ so this option is not generally useful.
+
+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 instead the --tdbfile option is given then the index consists
+ of two files named osmmap.mdx and osmmap_mdr.img which can be used
+ with mapsource. (For compatibility, you do not need the tdbfile
+ option if gmapsupp is not given).
+
+ If both the --gmapsupp and --tdbfile options are given alongside
+ the --index option, then both indexes will be created. Note that
+ this will require roughly twice as much memory.
+
+ The --overview-mapname option can be used to change these names. If
+ the mapset is sent to the device from 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.
+
+--x-split-name-index
+ A temporary option to enable indexing each part of a street name separately.
+ So 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.
+
+ Note that this option is still experimental and there may be problems. If you find
+ any let us know!
+
+--bounds=directory|zipfile
+ A directory or a 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
+ 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.
+
+--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=file
+ 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.
+
+--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=levels code
+ Change the way that the levels on the map correspond to the zoom
+ levels in the device. See customisation help. The default is:
+ "0:24, 1:22, 2:20, 3:18, 4:16", although each style can have
+ its own default. Up to 8 levels may be specified.
+
+--name-tag-list
+ Get the tag that will be used to supply the name. Useful for
+ language variations. You can supply a list and the first one
+ will be used. e.g. --name-tag-list=name:en,int_name,name
+
+--map-features=file
+ This option is ignored; use the --style-file option instead.
+
+Product description options:
+
+--family-id
+ This is an integer that identifies a family of products.
+ Range: [1..9999]
+ Mkgmap default: 6324
+
+--family-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
+ This is an integer that identifies a product within a family.
+ It is often just 1, which is the default.
+
+--product-version
+ The version of the product. Default value is 1.
+
+--series-name
+ This name will be displayed in MapSource in the map selection
+ drop-down. The default is "OSM map".
+
+--area-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=note
+ Specify a copyright message for files that do not contain one.
+
+--copyright-file=file
+ 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.
+
+--license-file=file
+ Specify a file which content will be added as license.
+ 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 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=limits code
+ Allows 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 skip the size filter.
+ Note that in resolution 24 the filter is not used.
+
+Miscellaneous options:
+
+--max-jobs[=number]
+ When number is specified, allow that number of maps to be
+ processed concurrently. If number is not specified, the limit
+ is set equal to the number of CPU cores. If this option is not
+ given at all, the limit is 1 (i.e., the maps are processed
+ sequentially).
+
+--keep-going
+ Don't quit whole application if an exception occurs while
+ processing a map - continue to process the other maps.
+
+--block-size=number
+ 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
+ Obsolete, use --route instead.
+
+--route
+ Create maps that support routing.
+
+--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.
+
+--drive-on-left
+--drive-on-right
+ Deprecated: Use drive-on instead.
+ The options are translated to drive-on=left|right.
+
+--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.
+
+--check-roundabout-flares
+ Sanity check roundabout flare roads - warn if they don't point
+ in the correct direction or if they are not one-way or if they
+ 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-maxspeeds
+ Now ignored, former usage:
+ When reading OSM files, ignore any "maxspeed" tags.
+
+--ignore-builtin-relations
+ 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.
+
+--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]
+ 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
+
+--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.
+
+--road-name-pois[=GarminCode]
+ Now ignored, 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.
+
+--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[=taglist]
+ A semicolon separated list of tag=value definitions. 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 the POI index (not yet useful).
+
+--nsis
+ Write a .nsi file that can be used with the Nullsoft Scriptable Install System
+ (NSIS) to create a Windows Mapsource Installer.
+
+--make-all-cycleways
+ Deprecated, use --make-opposite-cycleways instead. Former meaning:
+ Turn on all of the options that make cycleways.
+
+--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).
+
+--make-cycleways
+ Now ignored, 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).
+
+--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, and primary_link
+ ways tagged with destination into two or three parts where
+ the second part is additionally tagged with mkgmap:dest_hint=true.
+ 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 and primary_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
+ # or ; are ignored. All tag/value pairs in the OSM input are
+ compared with these patterns and those that match are deleted.
+
+--tdbfile
+ Write files that are essential to running with MapSource, a .tdb file and
+ an overview map.
+
+--show-profiles=1
+ Sets a flag in tdb file which marks set mapset as having contour
+ lines and allows showing profile in MapSource. Default is 0
+ which means disabled.
+
+--draw-priority=25
+ When two maps cover the same area, this option controls what
+ order they are drawn in and therefore which map is on top of
+ which. Higher priorities are drawn "on top" of lower
+ priorities.
+
+--transparent
+ Make the map transparent, so that if two maps are loaded that
+ cover the same area, you can see through this map and see the
+ lower map too. Useful for contour line maps among other
+ things.
+
+--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.
+Number of MapFailedExceptions: 0
+Number of ExitExceptions: 0
+Time finished: Tue Jul 07 04:39:25 CEST 2015
+Total time taken: 57ms
diff --git a/lists/mountains-mtb.txt b/lists/mountains-mtb.txt
new file mode 100644
index 0000000..6d81f82
--- /dev/null
+++ b/lists/mountains-mtb.txt
@@ -0,0 +1 @@
+mtbalps.exe
diff --git a/lists/ussr-mtb.txt b/lists/ussr-mtb.txt
new file mode 100644
index 0000000..6a8903c
--- /dev/null
+++ b/lists/ussr-mtb.txt
@@ -0,0 +1,5 @@
+mtbrussia.exe
+mtbkyrgyzstan.exe
+mtbkazakhstan.exe
+mtbarmenia.exe
+mtbgeorgia.exe
diff --git a/lists/world-mtb.txt b/lists/world-mtb.txt
new file mode 100644
index 0000000..96738ba
--- /dev/null
+++ b/lists/world-mtb.txt
@@ -0,0 +1,2 @@
+mtbiran.exe
+mtbsouth-america.exe
diff --git a/process.sh b/process.sh
new file mode 100755
index 0000000..06bba28
--- /dev/null
+++ b/process.sh
@@ -0,0 +1,18 @@
+#! /bin/bash
+
+for name in `ls downloads/*.exe`; do
+ if [[ "$name" =~ "velo" ]]; then
+ mapname=`basename $name .exe | cut -c 5-`
+ img=maps/velo-$mapname.img
+ else
+ mapname=`basename $name .exe | cut -c 4-`
+ img=maps/mtb-$mapname.img
+ fi
+
+ [ -f $img ] && continue
+
+ ./generate.sh $name
+ if [ $? -ne 0 ]; then
+ break
+ fi
+done
diff --git a/rename.sh b/rename.sh
new file mode 100755
index 0000000..eb2d1b1
--- /dev/null
+++ b/rename.sh
@@ -0,0 +1,8 @@
+#! /bin/bash
+
+suffix=$(date "+%Y%m")
+for fullname in maps/*.img; do
+ name=$(basename "$fullname" .img)
+ mv "$fullname" "maps/$name-$suffix.img"
+done
+ \ No newline at end of file