From 682b308d8a7804d0ae2b2606b3ba0ff8814c1473 Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Thu, 10 Oct 2019 23:59:38 +0200 Subject: Initial release --- .gitignore | 5 + README.txt | 34 +++ download.sh | 63 +++++ generate.sh | 88 +++++++ lists/europe-mtb.txt | 48 ++++ lists/europe-velo.txt | 47 ++++ lists/local-velo.txt | 1 + lists/mkgmap.txt | 685 ++++++++++++++++++++++++++++++++++++++++++++++++ lists/mountains-mtb.txt | 1 + lists/ussr-mtb.txt | 5 + lists/world-mtb.txt | 2 + process.sh | 18 ++ rename.sh | 8 + 13 files changed, 1005 insertions(+) create mode 100644 .gitignore create mode 100644 README.txt create mode 100755 download.sh create mode 100755 generate.sh create mode 100644 lists/europe-mtb.txt create mode 100644 lists/europe-velo.txt create mode 100644 lists/local-velo.txt create mode 100644 lists/mkgmap.txt create mode 100644 lists/mountains-mtb.txt create mode 100644 lists/ussr-mtb.txt create mode 100644 lists/world-mtb.txt create mode 100755 process.sh create mode 100755 rename.sh 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 " + 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 + + + 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= + mkgmap:exit_hint_name= + mkgmap:exit_hint_exit_to= + 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 -- cgit v1.2.1