Codebase list mkgmap / upstream/0.0.0+svn4433
New upstream version 0.0.0+svn4433 Bas Couwenberg 4 years ago
38 changed file(s) with 1806 addition(s) and 1508 deletion(s). Raw diff Collapse all Expand all
100100 <target name="download-ivy" unless="ivy.available" description="Downloads the ivy library from public repositories.">
101101 <delete dir="${ivy.jar.dir}"/>
102102 <mkdir dir="${ivy.jar.dir}" />
103 <get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"
103 <get src="https://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"
104104 dest="${ivy.jar.file}" usetimestamp="true"/>
105105 </target>
106106
0 == Background ==
1
2 The mkgmap program is distributed in Java archive format compiled for use under
3 the Java Runtime Environment 8. You will need the Java SE Runtime Environment 8
4 installed on your system in order to run mkgmap.
5
6 Garmin maps consist of a series of .img files, with each file containing the
7 data for one tile of the map. Unless you intend to build a very small map, you
8 will need to use the accompanying splitter program to split your map into
9 smaller tiles. The individual tiles can be joined together to produce a single
10 gmapsupp.img file which contains the whole map and can be copied into the
11 /Garmin folder of an SD card for use by a GPS device. If you want to create more
12 than one map for use on your GPS, the gmapsupp.img files can be renamed to be
13 unique, for example gmapsupp1.img, gmapsupp2.img.
14
15 A typical simple example using both splitter and mkgmap:
16
17 : java.exe -Xmx2g -jar splitter.jar england-latest.o5m
18 : java.exe -jar mkgmap.jar --gmapsupp -c template.args
19
20 The first command splits the Open Street Map data into smaller files
21 with each file containing the data for one tile of the map. It also
22 produces a file named template.args that contains the names of all
23 the generated files.
24
25 The second command takes as input all the individual files listed
26 in the template.args file generated by splitter, produces a .img
27 file for each tile, then merges all the tiles together into a
28 single gmapsupp.img file.
029
130 == Documentation ==
231 The documentation that is currently available on this site is listed
332 below.
433
534 [/doc/options '''Command line options''']
6 The possible command line options to mkgmap. This list is also available
7 using the command:
35 The mkgmap command line options. This is also available using the command:
836 mkgmap --help=options
937
1038 [/doc/pdf/style-manual.pdf '''Style Manual'''] [pdf]
1543 This documents the language that is accepted by the TYP compiler that
1644 is included within mkgmap.
1745
46 [/doc/options '''Logging''']
47 Instructions on how to control messages that are logged and to where
48 they are written.
49
1850 For other documentation go to the Open Street Map wiki for documentation
1951 [http://wiki.openstreetmap.org/wiki/Mkgmap here]
0 === Logging ===
1
2 You can configure logging by using the Java -Dlog.config=filename option.
3 This option uses a logging configuration file that allows you to enable and
4 disable specific logging messages. This is useful if you want to see
5 certain types of message that are not logged by default or choose where the
6 messages should be written. The configuration file contains details of the
7 handler(s) used to write the messages, parameters used to format the
8 messages and the severity of messages that should be logged at Java package
9 or class level, plus a default value. An example file is:
10
11 <pre>
12 # The default level FINE, WARNING, INFO, SEVERE
13 .level=SEVERE
14 #handlers: java.util.logging.ConsoleHandler
15 handlers: java.util.logging.FileHandler java.util.logging.ConsoleHandler
16 # package or class name with .level appended and then the level
17 uk.me.parabola.imgfmt.level=INFO
18 uk.me.parabola.mkgmap.build.level=INFO
19 uk.me.parabola.mkgmap.main.Main.level=INFO
20 uk.me.parabola.mkgmap.main.MapMaker.level=INFO
21 uk.me.parabola.mkgmap.general.RoadNetwork.level=INFO
22 uk.me.parabola.mkgmap.general.MapLine.level=INFO
23 uk.me.parabola.mkgmap.osmstyle.level=INFO
24 uk.me.parabola.mkgmap.reader.osm.level=INFO
25 uk.me.parabola.mkgmap.reader.osm.xml.level=INFO
26 uk.me.parabola.mkgmap.reader.osm.RestrictionRelation.level=FINE
27 uk.me.parabola.mkgmap.reader.osm.Restriction.level=FINE
28 # For ConsoleHandler
29 java.util.logging.ConsoleHandler.level=WARNING
30 java.util.logging.ConsoleHandler.formatter=uk.me.parabola.log.UsefulFormatter
31 # For FileHandler
32 java.util.logging.FileHandler.level=FINE
33 java.util.logging.FileHandler.encoding=UTF-8
34 java.util.logging.FileHandler.formatter=uk.me.parabola.log.UsefulFormatter
35 java.util.logging.FileHandler.limit=20000000
36 java.util.logging.FileHandler.count=4
37 java.util.logging.FileHandler.pattern=mkgmap.log
38 java.util.logging.FileHandler.append=false
39 </pre>
40
41 The above example enables certain informational messages and sends them to a
42 log file, with warning and error messages being also sent to stdout.
43
44 Further information can be found at
45 https://docs.oracle.com/javase/8/docs/technotes/guides/logging/overview.html
46
0 Note that option order is significant: An option only
1 applies to subsequent input files. So if you are using splitter, you probably
2 want to put most of your options before '-c template.args'.
3
4
5 === General options ===
6
7 ;--help=topic
8 : Print help on the given topic. If the topic is omitted then a
9 list of all the help topics is printed instead.
0 The command line is of the format:
1
2 : java.exe [java-options] -jar mkgmap.jar [mkgmap-options]
3
4 === Java options ===
5
6 Details of the Java options are available at docs.oracle.com.
7 The most likely options you may need to use are:
8
9 ;-Xmx<size>[g|G|m|M|k|K]
10 : Use this option to set the maximum Java heap size in GB, MB, KB or
11 bytes. Mkgmap allows the use of multiple CPU cores, and the amount of
12 heap memory required increases proportionally with the number of CPU
13 cores being used. The default value may not be sufficient to allow
14 mkgmap to use all the available CPU cores, which will cause the run time
15 to be longer than necessary. To allow mkgmap to run optimally, you may
16 need to use this option to allow more memory to be allocated to the Java
17 heap. Typically, mkgmap requires about 500MB per core, so an 8-core
18 processor might need to specify -Xmx4g - note there is no space or
19 equals sign in the option.
20
21 ;-enableassertions
22 : Causes an error to be thrown if an assertion written in the mkgmap
23 code is evaluated as not true. This is useful in detecting bugs in the
24 mkgmap code.
25
26 ;-Dlog.config=filename
27 : Specifies a logging configuration file that allows you to enable and
28 disable specific logging messages. This is useful if you want to see
29 certain types of message that are not logged by default or choose where
30 the messages should be written.
31 === Mkgmap options ===
32
33 The order of the options is significant in that options only apply
34 to subsequent input files. If you are using splitter, you probably
35 will need to put most of your options before '-c template.args'
36 (this file is generated by splitter).
37
38 === Information options ===
39
40 These options provide information and do not require any input files.
41
42 ;--help[=help|options|links|copyright|logging]
43 : Display help on the given topic. If the topic is omitted then
44 general help information is displayed, the same as in help=help.
1045
1146 ;--version
12 : Output program version to stderr.
47 : Write program version to stderr.
1348
1449 === File options ===
1550
51 filename
1652 ;--input-file=filename
17 : Read input data from the give file. This option (or just a
18 filename) may be given more than once. Make sure to set all
19 wanted options before using this.
53 : Read input data from the given file. This option (or just a
54 filename) may be specified more than once. Make sure you set all
55 wanted options before this.
2056
2157 ;--gmapsupp
2258 : Create a gmapsupp.img file that can be uploaded to a Garmin or
2359 placed in "/Garmin" in a microSD card (such as by mounting the
24 device in USB mass storage mode). It can be used on ready
25 compiled img files, if the input files are not already compiled
60 device in USB mass storage mode). It can be used on already
61 compiled img files, or if the input files are not already compiled
2662 then they are compiled first and then the gmapsupp is created.
2763
2864 ;--gmapi
29 : Create a directory in the "gmapi" format required by Mac applications. Can
65 : Create a directory in the "gmapi" format required by Mac applications. Can
3066 also be used for Windows programs.
3167
3268 ;-c filename
4177 comments. Any command line option can be specified, however the
4278 leading '--' must be omitted. The short option names with a single
4379 '-' cannot be used, simply use the long name instead.
44 <p>
80
4581 ;--output-dir=directory
4682 : Specify the directory in which all output files are written. It defaults
4783 to the current working directory, i.e. the directory the command is
4884 executed from.
49 <p>
85
5086 ;-n name
5187 ;--mapname=name
5288 : Set the name of the map. Garmin maps are identified by an 8 digit
5389 number. The default is 63240001. It is best to use a different
5490 name if you are going to be making a map for others to use so
5591 that it is unique and does not clash with others.
56 <p>
92
5793 ;--description=text
5894 : Set the descriptive text for the map. This may be displayed in
5995 QLandkarte, MapSource or on a GPS, where it is normally shown
6096 below the family name. Example: --description="Germany, Denmark"
61 Please note: if you use splitter.jar to build a template.args file
62 and use -c template.args, then that file may contain a
63 "description" that will override this option for each single
64 tile. Make sure to set the description for the gmapsupp.img after
65 "-c template.args".
66 <p>
97 Please note: if you use splitter to build a template.args file
98 and pass it to mkgmap, then that file may contain a "description"
99 that will override this option. To prevent splitter from overriding
100 your description, place the --description option after "-c template.args".
101
67102 ;--country-name=name
68103 : Set the map's country name. The default is "COUNTRY".
69 <p>
104
70105 ;--country-abbr=abbreviation
71106 : Set the map's abbreviated country name. The default is "ABC".
72 <p>
107
73108 ;--region-name=name
74109 : Set the map's region name. By default, the map has no region name.
75 <p>
110
76111 ;--region-abbr=abbreviation
77112 : Set the map's abbreviated region name. By default, the map has
78113 no abbreviated region name.
79 <p>
114
80115 === Label options ===
81116
82117 ;--code-page=number
85120 want to use.
86121 It is entirely dependent on the device firmware which code pages are
87122 supported.
88 <p>
123
89124 ;--latin1
90125 : This is equivalent to --code-page=1252.
91 <p>
126
92127 ;--unicode
93 : This is equivalent to --code-page=65001. Note that some devices don't support
128 : This is equivalent to --code-page=65001. Note that some devices don't support
94129 Unicode maps produced by mkgmap.
95 <p>
130
96131 ;--lower-case
97132 : Allow labels to contain lower case letters. Note that many
98133 Garmin devices are not able to display lower case letters at an angle.
99 <p>
134
100135 === Address search options ===
136
101137 ;--index
102138 : Generate a global address search index. If the --gmapsupp option is
103139 also given, then the index is generated within the resulting
113149
114150 : The address fields are assigned by special mkgmap address
115151 tags using the style file:
116
152 <pre>
117153 mkgmap:country
118154 mkgmap:region
119155 mkgmap:city
122158 mkgmap:housenumber
123159 mkgmap:phone
124160 (mkgmap:is_in - used by location-autofill=is_in)
125
161 </pre>
126162 : If the index is created from previously compiled .img files, then the
127163 same code page and sorting options (e.g. --code-page, --latin1) must
128164 be used as were used to compile the individual map tiles.
129165
130166 ;--split-name-index
131 : Index each part of a street name separately.
167 : Index each part of a street name separately.
132168 For example, if the street is "Aleksandra Gryglewskiego" then you will be able to
133169 search for it as both "Aleksandra" and "Gryglewskiego". It will also increase the
134170 size of the index. Useful in countries where searching for the first word in name
135 is not the right thing to do. Words following an opening bracket '(' are ignored.
136 : See also option road-name-config.
137 <p>
171 is not the right thing to do. Words following an opening bracket '(' are ignored.
172 : See also option --road-name-config.
173
138174 ;--road-name-config=filename
139175 : Provide the name of a file containing commonly used road name prefixes
140176 and suffixes.
141 This option handles the problem that some countries have road names which
177 This option handles the problem that some countries have road names which
142178 often start or end with very similar words, e.g. in France the first word
143179 is very often 'Rue', often followed by a preposition like 'de la' or 'des'.
144180 This leads to rather long road names like 'Rue de la Concorde' where only
145181 the word 'Concorde' is really interesting. In the USA, you often have names
146 like 'West Main Street' where only the word 'Main' is important.
182 like 'West Main Street' where only the word 'Main' is important.
147183 Garmin software has some tricks to handle this problem. It allows the use
148 of special characters in the road labels to mark the beginning and end of
149 the important part. In combinarion with option split-name-index
184 of special characters in the road labels to mark the beginning and end of
185 the important part. In combination with option --split-name-index
150186 only the words in the important part are indexed.
151187 <p>
152 :There are two effects of this option:
188 :There are two main effects of this option:
153189 :: - On the PC, when zooming out, the name 'Rue de la Concorde' is only
154190 rendered as 'Concorde'.
155191 :: - The index for road names only contains the important part of the name.
160196 <p>
161197 :: Another effect is that the index is smaller.
162198 : See comments in the sample roadNameConfig.txt for further details.
163 <p>
199
164200 ;--mdr7-excl=name[,name...]
165201 : Specify words which should be omitted from the road index.
166202 It was added before option road-name-config and is probably no longer needed.
167 : Example usage: --x-mdr7-excl="Road, Street, Straße, Weg"
168 <p>
203 : Example usage: --x-mdr7-excl="Road, Street, Weg"
204
169205 ;--mdr7-del=name[,name...]
170206 : Use this option if your style adds strings to the labels of roads which you
171207 want to see in the map but which should not appear in the result list
172208 of a road name / address search. The list is used like this:
173209 For each road label, mkgmap searches for the last blank. If one is found, it checks
174 if the word after it appears in the given list. If so, the word is removed
210 whether the word after it appears in the given list. If so, the word is removed
175211 and the search is repeated. The remaining string is used to create the index.
176212 : Example: Assume your style adds surface attributes like 'pav.' or 'unp.' to a road
177213 label. You can use --mdr7-del="pav.,unp." to remove these suffixes from the index.
178 <p>
214
179215 ;--poi-excl-index=poi[-poi][,poi[-poi]...]
180216 : By default, mkgmap indexes the following POI types with a non-empty label:
181217 :: - 0x00 .. 0x0f (cities, sub type 0, type <= 0xf)
183219 :: - 0x28xx (no category ?)
184220 :: - 0x64xx .. 0x66xx (attractions)
185221 : This option allows the exclusion of POI types from the index.
186 The excluded types are not indexed, but may still be searchable on a device
187 as some devices seem to ignore most of the index, e.g. an Oregon 600 with
222 The excluded types are not indexed, but may still be searchable on a device,
223 as some devices seem to ignore most of the index, e.g. an Oregon 600 with
188224 firmware 5.00 only seems to use it for city search.
189225 If your device finds a POI name like 'Planet' when you search for 'Net',
190 it doesn't use the index because the index created by mkgmap cannot help for
226 it doesn't use the index because the index created by mkgmap cannot help for
191227 that search.
192 <p>
228 <p>
193229 : So, this option may help when you care about the size of the index or the
194230 memory that is needed to calculate it.
195 The option expects a comma separated list of types or type ranges. A range is
196 given with from-type-to-type, e.g. 0x6400-0x6405. First and last type are both
231 The option expects a comma separated list of types or type ranges. A range is
232 given with from-type-to-type, e.g. 0x6400-0x6405. First and last type are both
197233 excluded. A range can span multiple types, e.g. 0x6400-0x661f.
198234 : Examples for usage:
199235 :: - Assume your style adds a POI with type 0x2800 for each addr:housenumber.
200236 It is not useful to index those numbers, so you can use --poi-excl-index=0x2800
201237 to exclude this.
202 :: - For the mentioned Oregon you may use --poi-excl-index=0x2a00-0x661f
238 :: - For the aforementioned Oregon you may use --poi-excl-index=0x2a00-0x661f
203239 to reduce the index size.
204 <p>
240
205241 ;--bounds=directory|zipfile
206 : Specify a directory or zip file containing the preprocessed bounds files.
242 : Specify a directory or zip file containing the pre-processed bounds files.
207243 Bounds files in a zip file must be located in the zip file's root directory.
208244 <p>
209 The preprocessed boundaries are used to add special tags to all elements
245 The pre-processed boundaries are used to add special tags to all elements
210246 (points, lines and polygons) containing the elements location information.
211247 The style file can be used to assign the address tags mkgmap:country,
212248 mkgmap:region etc. using these values.
213249 <p>
214 The following special tags are added:
250 The following special tags are added:
215251 <pre>
216 mkgmap:admin_level2 : Name of the admin_level=2 boundary
252 ::mkgmap:admin_level2 : Name of the admin_level=2 boundary
217253 mkgmap:admin_level3 : Name of the admin_level=3 boundary
218254 ..
219255 mkgmap:admin_level11
220256 mkgmap:postcode : the postal_code value
221257 </pre>
222 Preprocessed bounds can be created with the following command:
258 Pre-processed bounds can be created with the following command:
223259 <pre>
224 java -cp mkgmap.jar
260 java -cp mkgmap.jar
225261 uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor
226262 <inputfile> <boundsdir>
227263 </pre>
228 The input file must contain the boundaries that should be preprocessed.
264 :The input file must contain the boundaries that should be pre-processed.
229265 It can have OSM, PBF or O5M file format. It is recommended that it
230266 contains the boundary data only to avoid very high memory usage.
231267 The boundsdir gives the directory where the processed files are stored.
232268 This directory can be used as --bounds parameter with mkgmap.
233 <p>
269
234270 ;--location-autofill=[option1,[option2]]
235271 : Controls how the address fields for country, region, city and zip info
236 are gathered automatically if the fields are not set by using the special
272 are gathered automatically if the fields are not set by using the special
237273 mkgmap address tags (e.g. mkgmap:city - see option index).
238274 Warning: automatic assignment of address fields is somehow a best guess.
239275 :;is_in
240 :: The is_in tag is analyzed for country and region information.
276 :: The is_in tag is analysed for country and region information.
241277 <p>
242278 :;nearest
243279 :: The city/hamlet points that are closest to the element are used
249285 : Enables house number search for OSM input files.
250286 All nodes and polygons having addr:housenumber set are matched
251287 to streets. A match between a house number element and a street is created if
252 the street is located within a radius of 150m and the addr:street tag value of
253 the house number element equals the mgkmap:street tag value of the street.
288 the street is located within a radius of 150m and the addr:street tag value of
289 the house number element equals the mgkmap:street tag value of the street.
254290 The mkgmap:street tag must be added to the street in the style file.
255291 For optimal results, the tags mkgmap:city and mkgmap:postal_code should be
256292 set for the housenumber element. If a street connects two or more cities
257 this allows to find all addresses along the road, even they have the same
258 number.
293 this allows all addresses along the road to be found, even when they have the
294 same number.
259295 : Example for given street name:
260296 :: Node - addr:street=Main Street addr:housenumber=2
261297 :: Way 1 - name=Main Street
268304 If the street is not given with addr:housenumber, mkgmap uses heuristics
269305 to find the best match.
270306 <p>
271 Tells mkgmap to write NET data. If you specify this option, you do not need to
307 Tells mkgmap to write NET data. If you specify this option, you do not need to
272308 specify --net and option -no-net is ignored.
273309
274310 === Overview map options ===
311
275312 ;--overview-mapname=name
276313 : If --tdbfile is enabled, this gives the name of the overview
277314 .img and .tdb files. The default map name is osmmap.
278 <p>
315
279316 ;--overview-mapnumber=8 digit number
280317 : If --tdbfile is enabled, this gives the internal 8 digit
281318 number used in the overview map and tdb file. The default
282319 number is 63240000.
283 <p>
320
284321 ;--overview-levels=level:resolution[,level:resolution...]
285322 : Like levels, specifies additional levels that are to be written to the
286323 overview map. Counting of the levels should continue. Up to 8 additional
287324 levels may be specified, but the lowest usable resolution with MapSource
288325 seems to be 11. The hard coded default is empty.
289326 : See also option --overview-dem-dist.
290 <p>
327
291328 ;--remove-ovm-work-files
292329 : If overview-levels is used, mkgmap creates one additional file
293330 with the prefix ovm_ for each map (*.img) file.
294331 These files are used to create the overview map.
295332 With option --remove-ovm-work-files=true the files are removed
296333 after the overview map was created. The default is to keep the files.
297 <p>
334
298335 === Style options ===
336
299337 ;--style-file=filename
300338 : Specify an external file to obtain the style from. "file" can
301339 be a directory containing files such as info, lines, options
313351 <p>
314352 The argument can also be a URL that specifies the location of a
315353 style file.
316 <p>
354
317355 ;--style=name
318356 : Specify a style name. Must be used if --style-file points to a
319357 directory or zip file containing multiple styles. If --style-file
320358 is not used, it selects one of the built-in styles.
321 <p>
359
322360 ;--style-option=tag[=value][;tag[=value]...]
323361 : Provide a semicolon separated list of tags which can be used in the style.
324362 The intended use is to make a single style more flexible, e.g.
330368 Example: -- style-option=light;routing=car
331369 will add the tags mkgmap:option:light=true and mkgmap:option:routing=car
332370 to each element before style processing happens.
333 <p>
371
334372 ;--list-styles
335373 : List the available styles. If this option is preceded by a style-file
336374 option then it lists the styles available within that file.
337 <p>
375
338376 ;--check-styles
339377 : Perform some checks on the available styles. If this option is
340378 preceded by a style-file option then it checks the styles
341379 available within that file. If it is also preceded by the style
342380 option it will only check that style.
343 <p>
381
344382 ;--levels=level:resolution[,level:resolution...]
345383 : Change the way that the levels on the map correspond to the zoom
346384 levels in the device. See customisation help. The hard coded default is:
347385 "0:24, 1:22, 2:20, 3:18, 4:16", although each style can have
348386 its own default. The default style for example overwrites it with
349387 "0:24, 1:22, 2:20, 3:18". Up to 8 levels may be specified.
350 <p>
388
351389 ;--name-tag-list=tag[,tag...]
352390 : Specify the tag that will be used to supply the name. Useful for
353391 language variations. You can supply a list of tags and the first one
354392 found will be used. e.g. --name-tag-list=name:en,int_name,name
355 <p>
356 ===Product description options===
393
394 === Product description options ===
357395
358396 ;--family-id=integer
359397 : This is an integer that identifies a family of products.
360398 Range: [1..9999]
361 Mkgmap default: 6324
362 <p>
399 Default: 6324
400
363401 ;--family-name=name
364402 : If you build several maps, this option describes the
365403 family name of all of your maps. Garmin will display this
366404 in the map selection screen.
367405 <p>
368406 Example: --family-name="OpenStreetmap mkgmap XL 2019"
369 <p>
407
370408 ;--product-id=integer
371409 : This is an integer that identifies a product within a family.
372410 It is often just 1, which is the default.
373 <p>
411
374412 ;--product-version=integer
375413 : The version of the product. Default value is 100 which means version 1.00.
376 <p>
414
377415 ;--series-name=name
378416 : This name will be displayed in MapSource in the map selection
379417 drop-down. The default is "OSM map".
380 <p>
418
381419 ;--area-name=name
382 : Area name is displayed on Garmin units (or at least on eTrex) as the second
420 : Area name is displayed on Garmin units (or at least on eTrex) as the second
383421 part of the mapname in the list of the individual maps.
384 <p>
422
385423 ;--copyright-message=text
386424 : Specify a copyright message for files that do not contain one.
387 <p>
425
388426 ;--copyright-file=filename
389427 : Specify copyright messages from a file.
390 Note that the first copyright message is not displayed on a device, but is
428 Note that the first copyright message is not displayed on a device, but is
391429 shown in BaseCamp. The copyright file must include at least two lines and
392430 be UTF-8 encoded. The following symbols will be substituted by mkgmap:
393431 $MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and $TIME$.
394432 Time and date substitutions use the local date and time formats.
395 <p>
433
396434 ;--license-file=filename
397435 : Specify a file which content will be added as license.
398436 The license file must be UTF-8 encoded.
400438 $MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and $TIME$.
401439 Time and date substitutions use the local date and time formats.
402440 All entries of all maps will be merged in the overview map.
403 <p>
441
404442 === Optimization options ===
405443
406444 ;--reduce-point-density=NUM
410448 This distance gets shifted with lower zoom levels.
411449 Recommended setting is 4, this should lead to only small differences
412450 (Default is 2.6, which should lead to invisible changes)
413 <p>
451
414452 ;--reduce-point-density-polygon=NUM
415453 : Allows you to set the maximal allowed error distance for the DP algorithm
416454 to be applied against polygons. Recommended setting is 8.
417 <p>
455
418456 ;--merge-lines
419457 : Try to merge lines. This helps the simplify filter to straighten out
420458 longer chunks at lower zoom levels. Decreases file size more.
421459 Increases paint speed at low zoom levels.
422460 Default is enabled, use --no-merge-lines to disable.
423 <p>
461
424462 ;--min-size-polygon=NUM
425463 : Removes all polygons smaller than NUM from the map.
426464 This reduces map size and speeds up redrawing of maps.
427465 Recommended value is 8 to 15, default is 8.
428466 : See also polygon-size-limits.
429 <p>
467
430468 ;--polygon-size-limits=resolution:value[,resolution:value...]
431 : Allows you to specify different min-size-polygon values for each resolution.
469 : Allows you to specify different min-size-polygon values for each resolution.
432470 Sample:
433 --polygon-size-limits="24:12, 18:10, 16:8, 14:4, 12:2, 11:0"
434 If a resolution is not given, mkgmap uses the value for the next higher
471 :: --polygon-size-limits="24:12, 18:10, 16:8, 14:4, 12:2, 11:0"
472 : If a resolution is not given, mkgmap uses the value for the next higher
435473 one. For the given sample, resolutions 19 to 24 will use value 12,
436474 resolution 17 and 18 will use 10, and so on.
437475 Value 0 means to not apply the size filter.
438476 Note that in resolution 24 the filter is not used.
439477 The following options are equivalent:
440 --min-size-polygon=12
441 --polygon-size-limits=24:12
442 --polygon-size-limits=24:0,23:12
443 --polygon-size-limits=24:0,23:12,22:12,21:12,16:12
444 <p>
478 :: --min-size-polygon=12
479 :: --polygon-size-limits=24:12
480 :: --polygon-size-limits=24:0,23:12
481 :: --polygon-size-limits=24:0,23:12,22:12,21:12,16:12
482
445483 === Hill Shading (DEM) options ===
446 : Hill Shading is rendered by PC programs (MapSource or BaseCamp) or GPS devices
447 when the map includes a Digital Elevation Model (DEM). Use the following options
448 to add a DEM to the map and control its characteristics. DEM creation requires
449 files containing height information for the area covered by the map, the so
450 called hgt files, which typically cover 1 degree latitude * 1 degree longitude
451 and are named by the coordinates of their bottom left corner (eg. N53E009). They
452 contain height information in a grid of points. Typical hgt files contain either
453 1'' or 3'' data. 3'' files have 1201 * 1201 points, which gives
454 2 * 1201 * 1201 = 2.884.802 bytes. 1'' files have 3601 * 3601 points, which gives
455 2 * 3601 * 3601 = 25.934.402 bytes. Other files are supported as long as the
456 formular sqrt(size/2) gives an integer value.
457 <p>
484
485 : Hill Shading is rendered by PC programs (MapSource or BaseCamp) or GPS devices
486 when the map includes a Digital Elevation Model (DEM). Use the following options
487 to add a DEM to the map and control its characteristics. DEM creation requires
488 files containing height information for the area covered by the map, the so
489 called hgt files, which typically cover 1 degree latitude * 1 degree longitude
490 and are named by the coordinates of their bottom left corner (e.g. N53E009). They
491 contain height information in a grid of points. Typical hgt files contain either
492 1'' or 3'' data. 3'' files have 1201 * 1201 points, which gives
493 2 * 1201 * 1201 = 2.884.802 bytes. 1'' files have 3601 * 3601 points, which gives
494 2 * 3601 * 3601 = 25.934.402 bytes. Other files are supported as long as the
495 formula sqrt(size/2) gives an integer value.
496
458497 ;--dem=path[,path...]
459498 : The option expects a comma separated list of paths to directories or zip
460499 files containing *.hgt files. Directories are searched for *.hgt files
461 and also for *.hgt.zip and *.zip files
500 and also for *.hgt.zip and *.zip files.
462501 : The list is searched in the given order, so if you want to use 1'' files
463 make sure that they are found first. There are different sources for *.hgt
464 files, some have so called voids which are areas without data. Those should be
502 make sure that they are found first. There are different sources for *.hgt
503 files, some have so called voids which are areas without data. Those should be
465504 avoided.
466 <p>
505
467506 ;--dem-dists=number[,number...]
468 : If given, the option specifies the resolution(s) or zoom level for the DEM
469 data. If not given, mkgmap tries to determine a reasonable value based on the
470 resolution found in the *.hgt files. For desktop programs like MapSource or
471 Basecamp you only need one zoom level, for GPS devices you need one for each
472 resolution given with the --levels option. The actual values are given as
473 distance between two DEM points and should be a multiple or submultiple of the
474 distance between two points in the hgt file, that is 3314 for 1'' and 9942 for
475 3''. Higher distances mean lower resolution and thus fewer bytes in the map.
476 Reasonable values for the highest resolution should not be much smaller than
507 : If given, the option specifies the resolution(s) or zoom level for the DEM
508 data. If not given, mkgmap tries to determine a reasonable value based on the
509 resolution found in the *.hgt files. For desktop programs like MapSource or
510 Basecamp you only need one zoom level, for GPS devices you need one for each
511 resolution given with the --levels option. The actual values are given as
512 distance between two DEM points and should be a multiple or submultiple of the
513 distance between two points in the hgt file, that is 3314 for 1'' and 9942 for
514 3''. Higher distances mean lower resolution and thus fewer bytes in the map.
515 Reasonable values for the highest resolution should not be much smaller than
477516 50% hgt resolution, that is somewhere between 1648 and 5520 for 1'' hgt input
478517 files (3312 is often used), and 5520 to 9942 for 3'' hgt input files.
479518 : Example which should work with levels="0:24, 1:22, 2:20, 3:18":
480519 : --dem-dists=3312,13248,26512,53024
481520 : This was found in a Garmin Demo map for transalpin data created 2009.
482 <p>
521
483522 ;--dem-interpolation=auto|bicubic|bilinear
484 : Use this option to specify the method that is used to interpolate data from
485 hgt raster to the DEM raster. The value bicubic gives the highest precision
486 but is slower, bilinear is faster but less precise, it tends to smooth the
487 profile and thus also reduces DEM size compared to bicubic. The value auto
488 means that bicubic is used where is seems appropriate according to hgt
523 : Use this option to specify the method that is used to interpolate data from
524 hgt raster to the DEM raster. The value bicubic gives the highest precision
525 but is slower, bilinear is faster but less precise, it tends to smooth the
526 profile and thus also reduces DEM size compared to bicubic. The value auto
527 means that bicubic is used where is seems appropriate according to hgt
489528 resolution and dem-dist value, else bilinear is used. The default is auto.
490 <p>
529
491530 ;--dem-poly=filename
492531 : If given, the filename should point to a *.poly file in osmosis polygon
493532 file format. The polygon described in the file is used to determine the area
494533 for which DEM data should be added to the map. If not given, the DEM data will
495534 cover the full tile area.
496 <p>
535
497536 ;--overview-dem-dist=integer
498537 : If given, the option specifies the resolution(s) for the DEM data in the
499538 overview map. If not given or 0, mkgmap will not add DEM to the overview map.
500539 Reasonable values depend on the size of the area and the lowest resolution
501 used for the single tiles, good compromises are somewhere between 55000
540 used for the single tiles, good compromises are somewhere between 55000
502541 and 276160.
503 <p>
542
504543 === Miscellaneous options ===
505544
506545 ;--max-jobs[=integer]
513552 amount used in processing the first tile. To optimise mkgmap to use all
514553 available CPU cores, you may need to use the Java -Xmx option to increase
515554 the amount of available heap storage.
516 <p>
555
517556 ;--keep-going
518557 : Don't quit whole application if an exception occurs while
519558 processing a map - continue to process the other maps.
520 <p>
559
521560 ;--block-size=integer
522561 : Changes the block size that is used in the generated map. This
523562 option is not usually needed, but sometimes an error message
524563 will ask you to try a value for this option.
525 <p>
564
526565 ;--net
527566 : Tells mkgmap to write NET data, which is needed for address search
528567 and routing. Use this option if you want address search, but do
529568 not need a map that supports routing or house number search.
530 <p>
569 <p>
531570 ;--route
532571 : Tells mkgmap to write NET and NOD data, which are needed in maps
533572 that support routing. If you specify this option, you do not need
534573 to specify --net and --no-net is ignored.
535 <p>
574
536575 ;--add-boundary-nodes-at-admin-boundaries=NUM
537576 : This option controls how mkgmap calculates special routing nodes which
538577 are needed by Garmin software to allow routing between different map tiles.
544583 For the overlapping tiles, none of the entries in NOD3 match and thus
545584 routing across tile border doesn't work when the route is not fully
546585 covered by one of the tiles.
547 The option tells mkgmap to add special nodes whereever a road touches or
548 crosses an administratve boundary. The NUM parameter specifies a filter
586 The option tells mkgmap to add special nodes wherever a road touches or
587 crosses an administrative boundary. The NUM parameter specifies a filter
549588 for the admin_level. Boundaries with a higher admin_level value are ignored.
550589 The default value is 2 (country borders). Another reasonable value might
551 be 4. A value less or equal to 0 tells mkgmap to ignore intersections at
590 be 4. A value less or equal to 0 tells mkgmap to ignore intersections at
552591 administrative boundaries.
553 <p>
592
554593 ;--drive-on=left|right|detect|detect,left|detect,right
555594 : Explicitly specify which side of the road vehicles are
556595 expected to drive on.
562601 of drive-on-left roads with the rest.
563602 Use the --bounds option to make sure that the detection
564603 finds the correct country.
565 <p>
566604
567605 ;--check-roundabouts
568606 : Check that roundabouts have the expected direction (clockwise
570608 loops and have the wrong direction are reversed. Also checks
571609 that the roundabouts do not fork or overlap other roundabouts
572610 and that no more than one connecting highway joins at each node.
573 <p>
611
574612 ;--check-roundabout-flares
575613 : Check that roundabout flare roads point in the correct
576614 direction, are one-way and don't extend too far.
577 <p>
615
578616 ;--check-routing-island-len=INTEGER
579617 : Routing islands are small road networks which are not connected to other
580618 roads. A typical case is a footway that is not connected to the main road
581 network, or a small set of ways on the inner courtyard of a large building
619 network, or a small set of ways on the inner courtyard of a large building.
582620 : These islands can cause problems if you try to calculate a route and the GPS
583621 selects a point on the island as a start or end. It will fail to calculate the
584622 route even if a major road is only a few steps away. If this option is
593631 a different tile.
594632 : See also option --add-boundary-nodes-at-admin-boundaries.
595633 : This option seems to cause routing problems in BaseCamp.
596 <p>
634
597635 ;--max-flare-length-ratio=NUM
598636 : When checking flare roads, ignore roads whose length is
599637 greater than NUM (an integer) times the distance between the
602640 number of legitimate roads that are flagged as flare road
603641 problems. Default value is 0 (disabled) because it's not a
604642 completely reliable heuristic.
605 <p>
643
606644 ;--ignore-turn-restrictions
607645 : When reading OSM files, ignore any "restriction" relations.
608 <p>
646
609647 ;--ignore-osm-bounds
610648 : When reading OSM files, ignore any "bounds" elements.
611649 With this option selected generate-sea sometimes works better,
612650 but routing across tiles will not work.
613 <p>
651
614652 ;--preserve-element-order
615653 : Process the map elements (nodes, ways, relations) in the order
616654 in which they appear in the OSM input. Without this option,
617655 the order in which the elements are processed is not defined.
618 <p>
619 Optional BITMASK (default value 3) allows you to specify which
620 adjustments are to be made (where necessary):
621 <p>
622 :* 1 = increase angle between side road and outgoing main road
623 :* 2 = increase angle between side road and incoming main road
624 <p>
656
625657 ;--cycle-map
626658 : Tells mkgmap that the map is for cyclists. This assumes that
627659 different vehicles are different kinds of bicycles, e.g. a way
628660 with mkgmap:car=yes and mkgmap:bicycle=no may be a road that is
629661 good for racing bikes, but not for other cyclists.
630 This allows the optimisation of sharp angles at junctions of those roads.
662 This allows the optimisation of sharp angles at junctions of those roads.
631663 Don't use with the default style as that is a general style!
632 <p>
664
633665 ;--report-similar-arcs
634666 : Issue a warning when more than one arc connects two nodes and
635667 the ways that the arcs are derived from contain identical
636668 points. It doesn't make sense to use this option at the same
637669 time as using the cycleway creating options.
638 <p>
670
639671 ;--report-dead-ends=LEVEL
640672 : Set the dead end road warning level. The value of LEVEL (which
641673 defaults to 1 if this option is not specified) determines
642674 those roads to report: 0 = none, 1 = multiple one-way roads
643675 that join together but go nowhere, 2 = individual one-way roads
644676 that go nowhere.
645 <p>
677
646678 ;--add-pois-to-lines
647679 : Generate POIs for lines. For each line (must not be closed) POIs are
648680 created at several points of the line. Each POI is tagged with the
656688 ;--add-pois-to-areas
657689 : Generate a POI for each polygon and multipolygon. The POIs are created
658690 after the relation style but before the other styles are applied. Each
659 POI is tagged with the same tags of
660 the area/multipolygon. Additionally the tag mkgmap:area2poi=true is
691 POI is tagged with the same tags of
692 the area/multipolygon. Additionally the tag mkgmap:area2poi=true is
661693 set so that it is possible to use that information in the points style
662 file. Artifical polygons created by multipolyon processing are not used.
694 file. Artificial polygons created by multipolyon processing are not used.
663695 The POIs are created at the following positions (first rule that applies):
664696 :;polygons:
665697 ::First rule that applies of
666 ::* the first node tagged with a tag defined by the pois-to-areas-placement option
698 ::* the first node tagged with a tag defined by the --pois-to-areas-placement option
667699 ::* the centre point
668 :; multipolygons:
700 :;multipolygons:
669701 ::First rule that applies of
670702 ::* the node with role=label
671703 ::* the centre point of the biggest area
675707 tagged with the second tag-value pair is used and so on. If none of the tag-value pairs
676708 matches or the taglist is empty, the centre of the polygon is used.
677709 It is possible to define wildcards for tag values like entrance=*.
678 <p>Default: entrance=main;entrance=yes;building=entrance
679 <p>
710 <p>
711 Default: entrance=main;entrance=yes;building=entrance
712
680713 ;--precomp-sea=directory|zipfile
681714 : Defines the directory or a zip file that contains precompiled sea tiles.
682 Sea files in a zip file must be located in the zip file's root directory or in
683 a sub directory sea. When this option is defined all natural=coastline tags
684 from the input OSM tiles are removed and the precompiled data is used instead.
685 This option can be combined with the generate-sea options multipolygon, polygons
686 and land-tag. The coastlinefile option is ignored if precomp-sea is set.
687 <p>
715 Sea files in a zip file must be located in the zip file's root directory or in
716 a sub directory sea. When this option is defined all natural=coastline tags
717 from the input OSM tiles are removed and the precompiled data is used instead.
718 This option can be combined with the generate-sea options multipolygon, polygons
719 and land-tag. The coastlinefile option is ignored if precomp-sea is set.
720
688721 ;--coastlinefile=filename[,filename...]
689722 : Defines a comma separated list of files that contain coastline
690723 data. The coastline data from the input files is removed if
691 this option is set. Files must have OSM or PBF fileformat.
692 <p>
724 this option is set. Files must have OSM or PBF file format.
725
693726 ;--generate-sea[=ValueList]
694727 : Generate sea polygons. ValueList is an optional comma
695728 separated list of values:
696 <p>
729
697730 :;multipolygon
698731 :: generate the sea using a multipolygon (the default behaviour so this really doesn't need to be specified).
699732
724757
725758 :;fbgap=NUM
726759 :: flood blocker gap in metre (default 40)
727 points that are closer to the sea polygon do not block
760 points that are closer to the sea polygon do not block
761
728762 :;fbthres=NUM
729763 :: at least so many highway points must be contained in
730764 a sea polygon so that it may be removed by the flood
731765 blocker (default 20)
732766
733 :; fbratio=NUM
767 :;fbratio=NUM
734768 :: only sea polygons with a higher ratio
735769 (highway points * 100000 / polygon size) are removed
736770 (default 0.5)
737771
738 :; fbdebug
772 :;fbdebug
739773 :: switches on the debugging of the flood blocker
740774 generates GPX files for each polygon checked by
741775 the flood blocker
743777 ;--make-poi-index
744778 : Generate a POI index in each map tile. Probably not used by modern devices,
745779 but still supported.
746 <p>
780
747781 ;--nsis
748782 : Write a .nsi file that can be used with the Nullsoft Scriptable Install System
749783 (NSIS) to create a Windows Mapsource Installer.
750 <p>
784
751785 ;--make-opposite-cycleways
752786 : Some one-way streets allow bicycle traffic in the reverse
753787 direction and this option makes a way with the same points as
754788 the original that allows bicycle traffic (in both directions).
789
755790 ;--link-pois-to-ways
756791 : This option may copy some specific attributes of a POI
757792 to a small part of the way the POI is located on. This can be used
767802 allowed vehicles are routed through it.
768803 The tags mkgmap:road-speed and/or mkgmap:road-class are
769804 applied to a small part of the way around the POI, typically
770 to the next junction or a length of ~25 m. The tags
805 to the next junction or a length of ~25m. The tags
771806 are ignored for pedestrian-only ways.
772 <p>
807
773808 ;--process-destination
774809 : Splits all motorway_link, trunk_link, primary_link, secondary_link,
775 and tertiary_link ways tagged with destination into two or three parts where
810 and tertiary_link ways tagged with destination into two or three parts where
776811 the second part is additionally tagged with mkgmap:dest_hint=*.
777812 The code checks for the tags destination, destination:lanes,
778813 destination:street and some variants with :forward/:backward like
784819 for that part so that the Garmin device tells the name of
785820 this part as hint which destination to follow.
786821 : See also --process-exits.
787 <p>
822
788823 ;--process-exits
789824 : Usual Garmin devices do not tell the name of the exit on motorways
790825 while routing with mkgmap created maps. This option splits each
792827 tertiary_link way into three parts.
793828 All parts are tagged with the original tags of the link.
794829 Additionally the middle part is tagged with the following tags:
795 <pre>
796 mkgmap:exit_hint=true
797 mkgmap:exit_hint_ref=<ref tag value of the exit>
798 mkgmap:exit_hint_name=<name tag value of the exit>
799 mkgmap:exit_hint_exit_to=<exit_to tag value of the exit>
800 </pre>
801 Adding a rule checking the mkgmap:exit_hint=true makes it possible
830
831 :: mkgmap:exit_hint=true
832 :: mkgmap:exit_hint_ref=<ref tag value of the exit>
833 :: mkgmap:exit_hint_name=<name tag value of the exit>
834 :: mkgmap:exit_hint_exit_to=<exit_to tag value of the exit>
835
836 : Adding a rule checking the mkgmap:exit_hint=true makes it possible
802837 to use any routable Garmin type (except 0x08 and 0x09) for the middle
803838 part so that the Garmin device tells the name of this middle part as
804839 hint where to leave the motorway/trunk.
809844 TAG=VALUE or TAG=*. Blank lines and lines that start with
810845 a # or ; are ignored. All tag/value pairs in the OSM input are
811846 compared with these patterns and those that match are deleted.
812 <p>
847
813848 ;--ignore-fixme-values
814 : Ignore all tags for which the value matches the pattern "(?i)fix[ _]?+me".
815 <p>
849 : Ignore all tags for which the value matches the regular expression pattern "(?i)fix[ _]?+me".
850
816851 ;--tdbfile
817852 : Write files that are essential to running with MapSource, a .tdb file and
818853 an overview map. The options --nsis and --gmapi imply --tdbfile.
819 <p>
854
820855 ;--show-profiles=1
821856 : Sets a flag in tdb file. The meaning depends on the availability of DEM
822857 data (see "Hill Shading (DEM) options").
823858 : Without DEM data the flag enables profile calculation in MapSource or
824859 Basecamp based on information from contour lines.
825860 : If DEM data is available the profile is calculated with that
826 information and the flag only changes the status line to show the height when
861 information and the flag only changes the status line to show the height when
827862 you hover over an area with valid DEM data.
828863 : The default is show-profiles=0.
829 <p>
864
830865 ;--transparent
831866 : Make the map transparent, so that if two maps covering the same area are
832867 loaded, you can see through this map to see details from the other map too.
833868 Typically used for maps containing just contour lines. See --draw-priority
834869 as well.
835 <p>
870
836871 ;--draw-priority=integer
837872 : When two maps cover the same area and both are enabled in the device, this
838873 option controls the order in which they are drawn in and therefore which map
839874 is on top. Higher priorities are drawn "on top" of lower priorities.
840875 The map drawn on top must be transparent for the one underneath to be seen.
841876 The default value is 25.
842 <p>
877
843878 ;--custom
844879 : Write a different TRE header. With this option, mkgmap writes the bytes
845880 0x170401 instead of the default 0x110301 at offset 43. Useful for marine maps.
846 <p>
881
847882 ;--hide-gmapsupp-on-pc
848883 : Set a bit in the gmapsupp.img that tells PC software that the file is
849884 already installed on the PC and therefore there is no need to read it
850885 from the device.
851 <p>
886
852887 ;--poi-address
853888 : Enable address / phone information to POIs. Address info is
854889 read according to the "Karlsruhe" tagging schema. Automatic
855890 filling of missing information could be enabled using the
856891 "location-autofill" option.
857892 Default is enabled, use --no-poi-address to disable.
858 <p>
893
859894 ;--verbose
860895 : Makes some operations more verbose. Mostly used with --list-styles.
861 <p>
896
862897 ;--order-by-decreasing-area
863898 : Puts area/polygons into the map in decreasing size order, so
864899 that smaller features are rendered over larger ones
865 (assuming _drawOrder is equal).
900 (assuming the draw order is equal).
866901 The tag mkgmap:drawLevel can be used to override the
867902 natural area of a polygon, so forcing changes to the rendering order.
868903
869904 === Deprecated and Obsolete Options ===
870 <p>
905
871906 ;--drive-on-left
872907 ;--drive-on-right
873908 : Deprecated; use drive-on instead.
874909 The options are translated to drive-on=left|right.
875 <p>
910
876911 ;--make-all-cycleways
877 : Deprecated; use --make-opposite-cycleways instead. Former meaning:
878 <div class=preserve><nowiki>
912 : Deprecated; use --make-opposite-cycleways instead. Former meaning:
879913 Turn on all of the options that make cycleways.
880 </nowiki></div>
881 <p>
914
882915 ;--charset=name
883916 : Obsolete; use --code-page instead.
884 <p>
917
885918 ;--map-features=filename
886919 : Obsolete; use --style-file instead.
887 <p>
920
888921 ;--ignore-maxspeeds
889922 : Obsolete; former usage:
890923 When reading OSM files, ignore any "maxspeed" tags.
891 <p>
924
892925 ;--ignore-builtin-relations
893926 : Obsolete; former usage:
894927 When reading OSM files, skip the built-in processing of
895928 relations. This speeds up the processing non-routable map
896929 layers that do not contain multipolygons. This implies
897930 --ignore-turn-restrictions.
898 <p>
931
899932 ;--road-name-pois[=GarminCode]
900933 : Obsolete; former usage:
901934 Generate a POI for each named road. By default, the POIs'
904937 being able to search for roads.
905938 0x2f15: a blue dot in the middle of the road, and if you select,
906939 or 'hover' over it, the street name appears.
907 <p>
940
908941 ;--make-cycleways
909942 : Obsolete; former meaning:
910 <div class=preserve><nowiki>
911943 Some streets have a separate cycleway track/lane just for
912944 bicycle traffic and this option makes a way with the same
913945 points as the original that allows bicycle traffic. Also,
914946 bicycle traffic is prohibited from using the original way
915947 (unless that way's bicycle access has been defined).
916 </nowiki></div>
948
949 ;--remove-short-arcs[=MinLength]
950 : Now ignored, former usage:
951 Merge nodes to remove short arcs that can cause routing
952 problems. If MinLength is specified (in metres), arcs shorter
953 than that length will be removed. If a length is not
954 specified, only zero-length arcs will be removed.
955
956 ;--adjust-turn-headings[=BITMASK]
957 : Now ignored, former usage:
958 Where possible, ensure that turns off to side roads change
959 heading sufficiently so that the GPS believes that a turn is
960 required rather than a fork. This also avoids spurious
961 instructions to "keep right/left" when the road doesn't
962 actually fork.
963
964 : Optional BITMASK (default value 3) allows you to specify which
965 adjustments are to be made (where necessary):
966
967 :: 1 = increase angle between side road and outgoing main road
968 :: 2 = increase angle between side road and incoming main road
00
11 Help is available on the following topics:
2
3 --help
4 General help.
25
36 --help=options
47 The command line options
58
69 --help=links
7 Browser links to more information about mkgmap
8 and Open Street Map.
10 Browser links to more information about mkgmap and Open Street Map.
911
1012 --help=copyright
11 Copyright information
13 Copyright information.
14
15 --help=logging
16 Information on how to control logging.
0 === Logging ===
1
2 You can configure logging by using the Java -Dlog.config=filename option.
3 This option uses a logging configuration file that allows you to enable and
4 disable specific logging messages. This is useful if you want to see
5 certain types of message that are not logged by default or choose where the
6 messages should be written. The configuration file contains details of the
7 handler(s) used to write the messages, parameters used to format the
8 messages and the severity of messages that should be logged at Java package
9 or class level, plus a default value. An example file is:
10
11 # The default level FINE, WARNING, INFO, SEVERE
12 .level=SEVERE
13 #handlers: java.util.logging.ConsoleHandler
14 handlers: java.util.logging.FileHandler java.util.logging.ConsoleHandler
15 # package or class name with .level appended and then the level
16 uk.me.parabola.imgfmt.level=INFO
17 uk.me.parabola.mkgmap.build.level=INFO
18 uk.me.parabola.mkgmap.main.Main.level=INFO
19 uk.me.parabola.mkgmap.main.MapMaker.level=INFO
20 uk.me.parabola.mkgmap.general.RoadNetwork.level=INFO
21 uk.me.parabola.mkgmap.general.MapLine.level=INFO
22 uk.me.parabola.mkgmap.osmstyle.level=INFO
23 uk.me.parabola.mkgmap.reader.osm.level=INFO
24 uk.me.parabola.mkgmap.reader.osm.xml.level=INFO
25 uk.me.parabola.mkgmap.reader.osm.RestrictionRelation.level=FINE
26 uk.me.parabola.mkgmap.reader.osm.Restriction.level=FINE
27 # For ConsoleHandler
28 java.util.logging.ConsoleHandler.level=WARNING
29 java.util.logging.ConsoleHandler.formatter=uk.me.parabola.log.UsefulFormatter
30 # For FileHandler
31 java.util.logging.FileHandler.level=FINE
32 java.util.logging.FileHandler.encoding=UTF-8
33 java.util.logging.FileHandler.formatter=uk.me.parabola.log.UsefulFormatter
34 java.util.logging.FileHandler.limit=20000000
35 java.util.logging.FileHandler.count=4
36 java.util.logging.FileHandler.pattern=mkgmap.log
37 java.util.logging.FileHandler.append=false
38
39 The above example enables certain informational messages and sends them to a
40 log file, with warning and error messages being also sent to stdout.
41
42 Further information can be found at
43 https://docs.oracle.com/javase/8/docs/technotes/guides/logging/overview.html
44
0 Note that option order is significant: An option only applies to
1 subsequent input files. (So if you are using splitter, you probably
2 want to put most of your options before '-c template.args'.)
3
4 General options:
5
6 --help=topic
7 Print help on the given topic. If the topic is omitted then a
8 list of all the help topics is printed instead.
9
10 --version
11 Output program version to stderr.
0 The command line is of the format:
1
2 java.exe [java-options] -jar mkgmap.jar [mkgmap-options]
3
4 === Java options ===
5
6 Details of the Java options are available at docs.oracle.com. The most likely
7 options you may need to use are:
8
9 -Xmx<size>[g|G|m|M|k|K]
10 Use this option to set the maximum Java heap size in GB, MB, KB or bytes.
11 Mkgmap allows the use of multiple CPU cores, and the amount of heap memory
12 required increases proportionally with the number of CPU cores being used.
13 The default value may not be sufficient to allow mkgmap to use all the
14 available CPU cores, which will cause the run time to be longer than
15 necessary. To allow mkgmap to run optimally, you may need to use this
16 option to allow more memory to be allocated to the Java heap. Typically,
17 mkgmap requires about 500MB per core, so an 8-core processor might need to
18 specify -Xmx4g - note there is no space or equals sign in the option.
19
20 -enableassertions
21 Causes an error to be thrown if an assertion written in the mkgmap code is
22 evaluated as not true. This is useful in detecting bugs in the mkgmap code.
23
24 -Dlog.config=filename
25 Specifies a logging configuration file that allows you to enable and
26 disable specific logging messages. This is useful if you want to see
27 certain types of message that are not logged by default or choose where the
28 messages should be written. === Mkgmap options ===
29
30 The order of the options is significant in that options only apply to
31 subsequent input files. If you are using splitter, you probably will need to
32 put most of your options before '-c template.args' (this file is generated by
33 splitter).
34
35 === Information options ===
36
37 These options provide information and do not require any input files.
38
39 --help[=help|options|links|copyright|logging]
40 Display help on the given topic. If the topic is omitted then general help
41 information is displayed, the same as in help=help.
42
43 --version
44 Write program version to stderr.
45
46 === File options ===
1247
1348 filename
1449 --input-file=filename
15 Read input data from the give file. This option (or just a
16 filename) may be given more than once. Make sure to set all
17 wanted options before using this.
50 Read input data from the given file. This option (or just a filename) may
51 be specified more than once. Make sure you set all wanted options before
52 this.
1853
1954 --gmapsupp
20 Create a gmapsupp.img file that can be uploaded to a Garmin or
21 placed in "/Garmin" in a microSD card (such as by mounting the
22 device in USB mass storage mode). It can be used on ready
23 compiled img files, if the input files are not already compiled
24 then they are compiled first and then the gmapsupp is created.
55 Create a gmapsupp.img file that can be uploaded to a Garmin or placed in
56 "/Garmin" in a microSD card (such as by mounting the device in USB mass
57 storage mode). It can be used on already compiled img files, or if the
58 input files are not already compiled then they are compiled first and then
59 the gmapsupp is created.
2560
2661 --gmapi
27 Create a directory in the "gmapi" format required by Mac
28 applications. Can also be used for Windows programs.
62 Create a directory in the "gmapi" format required by Mac applications. Can
63 also be used for Windows programs.
2964
3065 -c filename
3166 --read-config=filename
32 Each line of the named file contains a command option in the form
33 option=value or option:value. The options are included as arguments of
34 the executed command as if they had been specified on the command line with
35 one exception: a relative path given with option input-file is assumed to be
36 relative to the location of the file.
37 Lines beginning with a # character are ignored and can be used as
38 comments. Any command line option can be specified, however the
39 leading '--' must be omitted. The short option names with a single
40 '-' cannot be used, simply use the long name instead.
67 Each line of the named file contains a command option in the form
68 option=value or option:value. The options are included as arguments of the
69 executed command as if they had been specified on the command line with one
70 exception: a relative path given with option input-file is assumed to be
71 relative to the location of the file.
72
73 Lines beginning with a # character are ignored and can be used as
74 comments. Any command line option can be specified, however the leading
75 '--' must be omitted. The short option names with a single '-' cannot be
76 used, simply use the long name instead.
4177
4278 --output-dir=directory
43 Specify the directory in which all output files are written. It defaults
44 to the current working directory, i.e. the directory the command is
45 executed from.
79 Specify the directory in which all output files are written. It defaults to
80 the current working directory, i.e. the directory the command is executed
81 from.
4682
4783 -n name
4884 --mapname=name
49 Set the name of the map. Garmin maps are identified by an 8 digit
50 number. The default is 63240001. It is best to use a different
51 name if you are going to be making a map for others to use so
52 that it is unique and does not clash with others.
85 Set the name of the map. Garmin maps are identified by an 8 digit number.
86 The default is 63240001. It is best to use a different name if you are
87 going to be making a map for others to use so that it is unique and does
88 not clash with others.
5389
5490 --description=text
55 Set the descriptive text for the map. This may be displayed in
56 QLandkarte, MapSource or on a GPS, where it is normally shown
57 below the family name. Example: --description="Germany, Denmark"
58 Please note: if you use splitter.jar to build a template.args file
59 and use -c template.args, then that file may contain a
60 "description" that will override this option for each single
61 tile. Make sure to set the description for the gmapsupp.img after
62 "-c template.args".
91 Set the descriptive text for the map. This may be displayed in QLandkarte,
92 MapSource or on a GPS, where it is normally shown below the family name.
93 Example: --description="Germany, Denmark" Please note: if you use splitter
94 to build a template.args file and pass it to mkgmap, then that file may
95 contain a "description" that will override this option. To prevent splitter
96 from overriding your description, place the --description option after "-c
97 template.args".
6398
6499 --country-name=name
65 Set the map's country name. The default is "COUNTRY".
100 Set the map's country name. The default is "COUNTRY".
66101
67102 --country-abbr=abbreviation
68 Set the map's abbreviated country name. The default is "ABC".
103 Set the map's abbreviated country name. The default is "ABC".
69104
70105 --region-name=name
71 Set the map's region name. By default, the map has no region name.
106 Set the map's region name. By default, the map has no region name.
72107
73108 --region-abbr=abbreviation
74 Set the map's abbreviated region name. By default, the map has
75 no abbreviated region name.
76
77 Label options:
109 Set the map's abbreviated region name. By default, the map has no
110 abbreviated region name.
111
112 === Label options ===
78113
79114 --code-page=number
80 Specify which international character set is to be used. Only 8 bit
81 character sets are supported so you have to specify which code page you
82 want to use.
83
84 It is entirely dependent on the device firmware which code pages are
85 supported.
86
115 Specify which international character set is to be used. Only 8 bit
116 character sets are supported so you have to specify which code page you
117 want to use. It is entirely dependent on the device firmware which code
118 pages are supported.
119
87120 --latin1
88 This is equivalent to --code-page=1252.
121 This is equivalent to --code-page=1252.
89122
90123 --unicode
91 This is equivalent to --code-page=65001. Note that
92 some devices don't support Unicode maps produced by mkgmap.
124 This is equivalent to --code-page=65001. Note that some devices don't
125 support Unicode maps produced by mkgmap.
93126
94127 --lower-case
95 Allow labels to contain lower case letters. Note that many Garmin
96 devices are not able to display lower case letters at an angle.
97
98 Address search options:
128 Allow labels to contain lower case letters. Note that many Garmin devices
129 are not able to display lower case letters at an angle.
130
131 === Address search options ===
132
99133 --index
100 Generate a global address search index. If the --gmapsupp option is
101 also given, then the index is generated within the resulting
102 gmapsupp.img file so that address search will work on a GPS
103 device.
104
105 If both the --gmapsupp and any of --tdbfile, --gmapi, or --nsis options
106 are given alongside the --index option, then both indexes will be created.
107 Note that this will require roughly twice as much memory.
108
109 If the map is sent to the device by MapSource, it will enable
110 find by name and address search on the GPS.
111
112 The address fields are assigned by special mkgmap address
113 tags using the style file:
114 mkgmap:country
115 mkgmap:region
116 mkgmap:city
117 mkgmap:postal_code
118 mkgmap:street
119 mkgmap:housenumber
120 mkgmap:phone
121 (mkgmap:is_in - used by location-autofill=is_in)
122
123 If the index is created from previously compiled .img files, then the
124 same code page and sorting options (e.g. --code-page, --latin1) must
125 be used as were used to compile the individual map tiles.
134 Generate a global address search index. If the --gmapsupp option is also
135 given, then the index is generated within the resulting gmapsupp.img file
136 so that address search will work on a GPS device.
137
138 If both the --gmapsupp and any of --tdbfile, --gmapi, or --nsis options
139 are given alongside the --index option, then both indexes will be created.
140 Note that this will require roughly twice as much memory.
141
142 If the map is sent to the device by MapSource, it will enable find by name
143 and address search on the GPS.
144
145 The address fields are assigned by special mkgmap address tags using the
146 style file:
147 mkgmap:country
148 mkgmap:region
149 mkgmap:city
150 mkgmap:postal_code
151 mkgmap:street
152 mkgmap:housenumber
153 mkgmap:phone
154 (mkgmap:is_in - used by location-autofill=is_in)
155
156 If the index is created from previously compiled .img files, then the same
157 code page and sorting options (e.g. --code-page, --latin1) must be used as
158 were used to compile the individual map tiles.
126159
127160 --split-name-index
128 Index each part of a street name separately.
129 For example, if the street is "Aleksandra Gryglewskiego" then you will be able to
130 search for it as both "Aleksandra" and "Gryglewskiego". It will also increase the
131 size of the index. Useful in countries where searching for the first word in name
132 is not the right thing to do. Words following an opening bracket '(' are ignored.
133 See also option road-name-config.
161 Index each part of a street name separately. For example, if the street is
162 "Aleksandra Gryglewskiego" then you will be able to search for it as both
163 "Aleksandra" and "Gryglewskiego". It will also increase the size of the
164 index. Useful in countries where searching for the first word in name is
165 not the right thing to do. Words following an opening bracket '(' are
166 ignored.
167 See also option --road-name-config.
134168
135169 --road-name-config=filename
136 Provide the name of a file containing commonly used road name prefixes
137 and suffixes.
138 This option handles the problem that some countries have road names which
139 often start or end with very similar words, e.g. in France the first word
140 is very often 'Rue', often followed by a preposition like 'de la' or 'des'.
141 This leads to rather long road names like 'Rue de la Concorde' where only
142 the word 'Concorde' is really interesting. In the USA, you often have names
143 like 'West Main Street' where only the word 'Main' is important.
144 Garmin software has some tricks to handle this problem. It allows the use
145 of special characters in the road labels to mark the beginning and end of
146 the important part. In combination with option split-name-index
147 only the words in the important part are indexed.
148
149 There are two effects of this option:
150 - On the PC, when zooming out, the name 'Rue de la Concorde' is only
151 rendered as 'Concorde'.
152 - The index for road names only contains the important part of the name.
153 You can search for road name Conc to find road names like 'Rue de la Concorde'.
154 However, a search for 'Rue' will not list 'Rue de la Concorde' or
155 'Rue du Moulin'. It may list 'Rueben Brookins Road' if that is in the map.
156 Only MapSource shows a corresponding hint.
157
158 Another effect is that the index is smaller.
159 See comments in the sample roadNameConfig.txt for further details.
160
170 Provide the name of a file containing commonly used road name prefixes and
171 suffixes. This option handles the problem that some countries have road
172 names which often start or end with very similar words, e.g. in France the
173 first word is very often 'Rue', often followed by a preposition like 'de
174 la' or 'des'. This leads to rather long road names like 'Rue de la
175 Concorde' where only the word 'Concorde' is really interesting. In the USA,
176 you often have names like 'West Main Street' where only the word 'Main' is
177 important. Garmin software has some tricks to handle this problem. It
178 allows the use of special characters in the road labels to mark the
179 beginning and end of the important part. In combination with option
180 --split-name-index only the words in the important part are indexed.
181
182
183 There are two main effects of this option:
184 - On the PC, when zooming out, the name 'Rue de la Concorde' is only
185 rendered as 'Concorde'.
186 - The index for road names only contains the important part of the
187 name. You can search for road name Conc to find road names like 'Rue de
188 la Concorde'. However, a search for 'Rue' will not list 'Rue de la
189 Concorde' or 'Rue du Moulin'. It may list 'Rueben Brookins Road' if
190 that is in the map. Only MapSource shows a corresponding hint.
191
192
193 Another effect is that the index is smaller.
194 See comments in the sample roadNameConfig.txt for further details.
195
161196 --mdr7-excl=name[,name...]
162 Specify words which should omitted from the road index.
163 It was added before option road-name-config and is probably no longer needed.
164 Example usage: --x-mdr7-excl="Road, Street, Straße, Weg"
165
197 Specify words which should be omitted from the road index. It was added
198 before option road-name-config and is probably no longer needed.
199 Example usage: --x-mdr7-excl="Road, Street, Weg"
200
166201 --mdr7-del=name[,name...]
167 Use this option if your style adds strings to the labels of roads which you
168 want to see in the map but which should not appear in the result list
169 of a road name / address search. The list is used like this:
170 For each road label, mkgmap searches for the last blank. If one is found, it checks
171 if the word after it appears in the given list. If so, the word is removed
172 and the search is repeated. The remaining string is used to create the index.
173 Example: Assume your style adds surface attributes like 'pav.' or 'unp.' to a road
174 label. You can use --mdr7-del="pav.,unp." to remove these suffixes from the index.
175
202 Use this option if your style adds strings to the labels of roads which you
203 want to see in the map but which should not appear in the result list of a
204 road name / address search. The list is used like this: For each road
205 label, mkgmap searches for the last blank. If one is found, it checks
206 whether the word after it appears in the given list. If so, the word is
207 removed and the search is repeated. The remaining string is used to create
208 the index.
209 Example: Assume your style adds surface attributes like 'pav.' or 'unp.' to
210 a road label. You can use --mdr7-del="pav.,unp." to remove these suffixes
211 from the index.
212
176213 --poi-excl-index=poi[-poi][,poi[-poi]...]
177 By default, mkgmap indexes the following POI types with a non-empty label:
178 - 0x00 .. 0x0f (cities, sub type 0, type <= 0xf)
179 - 0x2axx..0x30xx (Food & Drink, Lodging, ...)
180 - 0x28xx (no category ?)
181 - 0x64xx .. 0x66xx (attractions)
182 This option allows the exclusion of POI types from the index.
183 The excluded types are not indexed but may still be searchable on a device,
184 as some devices seem to ignore most of the index, e.g. an Oregon 600 with
185 firmware 5.00 only seems to use it for city search.
186 If your device finds a POI name like 'Planet' when you search for 'Net',
187 it doesn't use the index because the index created by mkgmap cannot help for
188 that search.
189 So, this option may help when you care about the size of the index or the
190 memory that is needed to calculate it.
191 The option expects a comma separated list of types or type ranges. A range is
192 given with from-type-to-type, e.g. 0x6400-0x6405. First and last type are both
193 excluded. A range can span multiple types, e.g. 0x6400-0x661f.
194 Examples for usage:
195 - Assume your style adds a POI with type 0x2800 for each addr:housenumber.
196 It is not useful to index those numbers, so you can use
197 --poi-excl-index=0x2800
198 to exclude this.
199 - For the mentioned Oregon you may use --poi-excl-index=0x2a00-0x661f
200 to reduce the index size.
214 By default, mkgmap indexes the following POI types with a non-empty label:
215 - 0x00 .. 0x0f (cities, sub type 0, type <= 0xf)
216 - 0x2axx..0x30xx (Food & Drink, Lodging, ...)
217 - 0x28xx (no category ?)
218 - 0x64xx .. 0x66xx (attractions)
219 This option allows the exclusion of POI types from the index. The excluded
220 types are not indexed, but may still be searchable on a device, as some
221 devices seem to ignore most of the index, e.g. an Oregon 600 with firmware
222 5.00 only seems to use it for city search. If your device finds a POI name
223 like 'Planet' when you search for 'Net', it doesn't use the index because
224 the index created by mkgmap cannot help for that search.
225
226
227 So, this option may help when you care about the size of the index or the
228 memory that is needed to calculate it. The option expects a comma separated
229 list of types or type ranges. A range is given with from-type-to-type, e.g.
230 0x6400-0x6405. First and last type are both excluded. A range can span
231 multiple types, e.g. 0x6400-0x661f.
232 Examples for usage:
233 - Assume your style adds a POI with type 0x2800 for each
234 addr:housenumber. It is not useful to index those numbers, so you can
235 use --poi-excl-index=0x2800 to exclude this.
236 - For the aforementioned Oregon you may use
237 --poi-excl-index=0x2a00-0x661f to reduce the index size.
201238
202239 --bounds=directory|zipfile
203 Specify a directory or zip file containing the preprocessed bounds files.
204 Bounds files in a zip file must be located in the zip file's root directory.
205
206 The preprocessed boundaries are used to add special tags to all elements
207 (points, lines and polygons) containing the elements location information.
208 The style file can be used to assign the address tags mkgmap:country,
209 mkgmap:region etc. using these values.
210
211 The following special tags are added:
212 mkgmap:admin_level2 : Name of the admin_level=2 boundary
213 mkgmap:admin_level3 : Name of the admin_level=3 boundary
214 ..
215 mkgmap:admin_level11
216 mkgmap:postcode : the postal_code value
217
218 Preprocessed bounds can be created with the following command:
219 java -cp mkgmap.jar
220 uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor
221 <inputfile> <boundsdir>
222
223 The input file must contain the boundaries that should be preprocessed.
224 It can have OSM, PBF or O5M file format. It is recommended that it
225 contains the boundary data only to avoid very high memory usage.
226 The boundsdir gives the directory where the processed files are stored.
227 This directory can be used as --bounds parameter with mkgmap.
240 Specify a directory or zip file containing the pre-processed bounds files.
241 Bounds files in a zip file must be located in the zip file's root
242 directory.
243
244 The pre-processed boundaries are used to add special tags to all elements
245 (points, lines and polygons) containing the elements location information.
246 The style file can be used to assign the address tags mkgmap:country,
247 mkgmap:region etc. using these values.
248
249 The following special tags are added:
250 ::mkgmap:admin_level2 : Name of the admin_level=2 boundary
251 mkgmap:admin_level3 : Name of the admin_level=3 boundary
252 ..
253 mkgmap:admin_level11
254 mkgmap:postcode : the postal_code value
255 Pre-processed bounds can be created with the following command:
256 java -cp mkgmap.jar
257 uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor
258 <inputfile> <boundsdir>
228259
260 The input file must contain the boundaries that should be pre-processed. It
261 can have OSM, PBF or O5M file format. It is recommended that it contains
262 the boundary data only to avoid very high memory usage. The boundsdir gives
263 the directory where the processed files are stored. This directory can be
264 used as --bounds parameter with mkgmap.
265
229266 --location-autofill=[option1,[option2]]
230 Controls how the address fields for country, region, city and zip info
231 are gathered automatically if the fields are not set by using the special
232 mkgmap address tags (e.g. mkgmap:city - see option index).
233 Warning: automatic assignment of address fields is somehow a best guess.
234
235 is_in The is_in tag is analyzed for country and region information.
236
237 nearest The city/hamlet points that are closest to the element are used
238 to assign the missing address fields. Beware that cities located
239 in the same tile are used only. So the results close to a tile
240 border have less quality.
267 Controls how the address fields for country, region, city and zip info are
268 gathered automatically if the fields are not set by using the special
269 mkgmap address tags (e.g. mkgmap:city - see option index). Warning:
270 automatic assignment of address fields is somehow a best guess.
271 is_in
272 The is_in tag is analysed for country and region information.
273
274
275 nearest
276 The city/hamlet points that are closest to the element are used to
277 assign the missing address fields. Beware that cities located in the
278 same tile are used only. So the results close to a tile border have
279 less quality.
241280
242281 --housenumbers
243 Enables house number search for OSM input files.
244 All nodes and polygons having addr:housenumber set are matched
245 to streets. A match between a house number element and a street is created if
246 the street is located within a radius of 150m and the addr:street tag value of
247 the house number element equals the mgkmap:street tag value of the street.
248 The mkgmap:street tag must be added to the street in the style file.
249 For optimal results, the tags mkgmap:city and mkgmap:postal_code should be
250 set for the housenumber element. If a street connects two or more cities
251 this allows to find all addresses along the road, even they have the same
252 number.
253 Example for given street name:
254 Node - addr:street=Main Street addr:housenumber=2
255 Way 1 - name=Main Street
256 Way 2 - name=Main Street, mkgmap:street=Main Street
257 Way 3 - mkgmap:street=Mainstreet
258 Way 4 - name=Main Street [A504]
259 The node matches to Way 2. It has mkgmap:street set with a value equal to
260 the addr:street tag value of the house number node.
261 If the street is not given with addr:housenumber, mkgmap uses heuristics
262 to find the best match.
263 Tells mkgmap to write NET data. If you specify this option, you do not need
264 to specify --net and option -no-net is ignored.
265
266 Overview map options:
282 Enables house number search for OSM input files. All nodes and polygons
283 having addr:housenumber set are matched to streets. A match between a house
284 number element and a street is created if the street is located within a
285 radius of 150m and the addr:street tag value of the house number element
286 equals the mgkmap:street tag value of the street. The mkgmap:street tag
287 must be added to the street in the style file. For optimal results, the
288 tags mkgmap:city and mkgmap:postal_code should be set for the housenumber
289 element. If a street connects two or more cities this allows all addresses
290 along the road to be found, even when they have the same number.
291 Example for given street name:
292 Node - addr:street=Main Street addr:housenumber=2
293 Way 1 - name=Main Street
294 Way 2 - name=Main Street, mkgmap:street=Main Street
295 Way 3 - mkgmap:street=Mainstreet
296 Way 4 - name=Main Street [A504]
297 The node matches to Way 2. It has mkgmap:street set with a value equal to
298 the addr:street tag value of the house number node.
299
300 If the street is not given with addr:housenumber, mkgmap uses heuristics
301 to find the best match.
302
303 Tells mkgmap to write NET data. If you specify this option, you do not
304 need to specify --net and option -no-net is ignored.
305
306 === Overview map options ===
307
267308 --overview-mapname=name
268 If --tdbfile is enabled, this gives the name of the overview
269 .img and .tdb files. The default map name is osmmap.
309 If --tdbfile is enabled, this gives the name of the overview .img and .tdb
310 files. The default map name is osmmap.
270311
271312 --overview-mapnumber=8 digit number
272 If --tdbfile is enabled, this gives the internal 8 digit
273 number used in the overview map and tdb file. The default
274 number is 63240000.
313 If --tdbfile is enabled, this gives the internal 8 digit number used in the
314 overview map and tdb file. The default number is 63240000.
275315
276316 --overview-levels=level:resolution[,level:resolution...]
277 Like levels, specifies additional levels that are to be written to the
278 overview map. Counting of the levels should continue. Up to 8 additional
279 levels may be specified, but the lowest usable resolution with MapSource
280 seems to be 11. The hard coded default is empty.
281 See also option --overview-dem-dist.
317 Like levels, specifies additional levels that are to be written to the
318 overview map. Counting of the levels should continue. Up to 8 additional
319 levels may be specified, but the lowest usable resolution with MapSource
320 seems to be 11. The hard coded default is empty.
321 See also option --overview-dem-dist.
282322
283323 --remove-ovm-work-files
284 If overview-levels is used, mkgmap creates one additional file
285 with the prefix ovm_ for each map (*.img) file.
286 These files are used to create the overview map.
287 With option --remove-ovm-work-files=true the files are removed
288 after the overview map was created. The default is to keep the files.
289
290 Style options:
324 If overview-levels is used, mkgmap creates one additional file with the
325 prefix ovm_ for each map (*.img) file. These files are used to create the
326 overview map. With option --remove-ovm-work-files=true the files are
327 removed after the overview map was created. The default is to keep the
328 files.
329
330 === Style options ===
331
291332 --style-file=filename
292 Specify an external file to obtain the style from. "file" can
293 be a directory containing files such as info, lines, options
294 (see resources/styles/default for an example). The directory
295 path must be absolute or relative to the current working
296 directory when mkgmap is invoked.
297
298 The file can be a zip file containing the files instead of a
299 directory.
300
301 The files can be at the top level or contained in a folder within
302 the zip file. If the zip file contains more than one top level
303 folder then each folder is the name of a style that can be selected
304 with the --style option.
305
306 The argument can also be a URL that specifies the location of a
307 style file.
333 Specify an external file to obtain the style from. "file" can be a
334 directory containing files such as info, lines, options (see
335 resources/styles/default for an example). The directory path must be
336 absolute or relative to the current working directory when mkgmap is
337 invoked.
338
339 The file can be a zip file containing the files instead of a directory.
340
341 The files can be at the top level or contained in a folder within the zip
342 file. If the zip file contains more than one top level folder then each
343 folder is the name of a style that can be selected with the --style option.
344
345 The argument can also be a URL that specifies the location of a style
346 file.
308347
309348 --style=name
310 Specify a style name. Must be used if --style-file points to a
311 directory or zip file containing multiple styles. If --style-file
312 is not used, it selects one of the built-in styles.
349 Specify a style name. Must be used if --style-file points to a directory or
350 zip file containing multiple styles. If --style-file is not used, it
351 selects one of the built-in styles.
313352
314353 --style-option=tag[=value][;tag[=value]...]
315 Provide a semicolon separated list of tags which can be used in the style.
316 The intended use is to make a single style more flexible, e.g.
317 you may want to use a slightly different set of rules for a map of
318 a whole continent. The tags given will be prefixed with "mkgmap:option:".
319 If no value is provided the default "true" is used.
320 This option allows to use rules like
321 mkgmap:option:light=true & landuse=farmland {remove landuse}
322 Example: -- style-option=light;routing=car
323 will add the tags mkgmap:option:light=true and mkgmap:option:routing=car
324 to each element before style processing happens.
354 Provide a semicolon separated list of tags which can be used in the style.
355 The intended use is to make a single style more flexible, e.g. you may want
356 to use a slightly different set of rules for a map of a whole continent.
357 The tags given will be prefixed with "mkgmap:option:". If no value is
358 provided the default "true" is used. This option allows to use rules like
359 mkgmap:option:light=true & landuse=farmland {remove landuse} Example: --
360 style-option=light;routing=car will add the tags mkgmap:option:light=true
361 and mkgmap:option:routing=car to each element before style processing
362 happens.
325363
326364 --list-styles
327 List the available styles. If this option is preceded by a style-file
328 option then it lists the styles available within that file.
365 List the available styles. If this option is preceded by a style-file
366 option then it lists the styles available within that file.
329367
330368 --check-styles
331 Perform some checks on the available styles. If this option is
332 preceded by a style-file option then it checks the styles
333 available within that file. If it is also preceded by the style
334 option it will only check that style.
369 Perform some checks on the available styles. If this option is preceded by
370 a style-file option then it checks the styles available within that file.
371 If it is also preceded by the style option it will only check that style.
335372
336373 --levels=level:resolution[,level:resolution...]
337 Change the way that the levels on the map correspond to the zoom
338 levels in the device. See customisation help. The hard coded default is:
339 "0:24, 1:22, 2:20, 3:18, 4:16", although each style can have
340 its own default. The default style for example overwrites it with
341 "0:24, 1:22, 2:20, 3:18". Up to 8 levels may be specified.
374 Change the way that the levels on the map correspond to the zoom levels in
375 the device. See customisation help. The hard coded default is: "0:24, 1:22,
376 2:20, 3:18, 4:16", although each style can have its own default. The
377 default style for example overwrites it with "0:24, 1:22, 2:20, 3:18". Up
378 to 8 levels may be specified.
342379
343380 --name-tag-list=tag[,tag...]
344 Specify the tag that will be used to supply the name. Useful for
345 language variations. You can supply a list of tags and the first one
346 found will be used. e.g. --name-tag-list=name:en,int_name,name
347
348 Product description options:
381 Specify the tag that will be used to supply the name. Useful for language
382 variations. You can supply a list of tags and the first one found will be
383 used. e.g. --name-tag-list=name:en,int_name,name
384
385 === Product description options ===
349386
350387 --family-id=integer
351 This is an integer that identifies a family of products.
352 Range: [1..9999]
353 Mkgmap default: 6324
388 This is an integer that identifies a family of products. Range: [1..9999]
389 Default: 6324
354390
355391 --family-name=name
356 If you build several maps, this option describes the
357 family name of all of your maps. Garmin will display this
358 in the map selection screen.
359 Example: --family-name="OpenStreetmap mkgmap XL 2019"
392 If you build several maps, this option describes the family name of all of
393 your maps. Garmin will display this in the map selection screen.
394
395 Example: --family-name="OpenStreetmap mkgmap XL 2019"
360396
361397 --product-id=integer
362 This is an integer that identifies a product within a family.
363 It is often just 1, which is the default.
398 This is an integer that identifies a product within a family. It is often
399 just 1, which is the default.
364400
365401 --product-version=integer
366 The version of the product. Default value is 100 which means version 1.00.
402 The version of the product. Default value is 100 which means version 1.00.
367403
368404 --series-name=name
369 This name will be displayed in MapSource in the map selection
370 drop-down. The default is "OSM map".
405 This name will be displayed in MapSource in the map selection drop-down.
406 The default is "OSM map".
371407
372408 --area-name=name
373 Area name is displayed on Garmin units (or at least on eTrex) as the second
374 part of the mapname in the list of the individual maps.
409 Area name is displayed on Garmin units (or at least on eTrex) as the second
410 part of the mapname in the list of the individual maps.
375411
376412 --copyright-message=text
377 Specify a copyright message for files that do not contain one.
413 Specify a copyright message for files that do not contain one.
378414
379415 --copyright-file=filename
380 Specify copyright messages from a file.
381 Note that the first copyright message is not displayed on a device, but is
382 shown in BaseCamp. The copyright file must include at least two lines and
383 be UTF-8 encoded. The following symbols will be substituted by mkgmap:
384 $MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and $TIME$.
385 Time and date substitutions use the local date and time formats.
416 Specify copyright messages from a file. Note that the first copyright
417 message is not displayed on a device, but is shown in BaseCamp. The
418 copyright file must include at least two lines and be UTF-8 encoded. The
419 following symbols will be substituted by mkgmap: $MKGMAP_VERSION$,
420 $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and $TIME$. Time and date
421 substitutions use the local date and time formats.
386422
387423 --license-file=filename
388 Specify a file which content will be added as license.
389 The license file must be UTF-8 encoded.
390 The following symbols will be substituted by mkgmap:
391 $MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and $TIME$.
392 Time and date substitutions use the local date and time formats.
393 All entries of all maps will be merged in the overview map.
394
395 Optimization options:
424 Specify a file which content will be added as license. The license file
425 must be UTF-8 encoded. The following symbols will be substituted by mkgmap:
426 $MKGMAP_VERSION$, $JAVA_VERSION$, $YEAR$, $LONG_DATE$, $SHORT_DATE$ and
427 $TIME$. Time and date substitutions use the local date and time formats.
428 All entries of all maps will be merged in the overview map.
429
430 === Optimization options ===
396431
397432 --reduce-point-density=NUM
398 Simplifies the ways with the Douglas Peucker algorithm.
399 NUM is the maximal allowed error distance, by which the resulting
400 way may differ from the original one.
401 This distance gets shifted with lower zoom levels.
402 Recommended setting is 4, this should lead to only small differences
403 (Default is 2.6, which should lead to invisible changes)
433 Simplifies the ways with the Douglas Peucker algorithm. NUM is the maximal
434 allowed error distance, by which the resulting way may differ from the
435 original one. This distance gets shifted with lower zoom levels.
436 Recommended setting is 4, this should lead to only small differences
437 (Default is 2.6, which should lead to invisible changes)
404438
405439 --reduce-point-density-polygon=NUM
406 Allows you to set the maximal allowed error distance for the DP algorithm
407 to be applied against polygons. Recommended setting is 8.
440 Allows you to set the maximal allowed error distance for the DP algorithm
441 to be applied against polygons. Recommended setting is 8.
408442
409443 --merge-lines
410 Try to merge lines. This helps the simplify filter to straighten out
411 longer chunks at lower zoom levels. Decreases file size more.
412 Increases paint speed at low zoom levels.
413 Default is enabled, use --no-merge-lines to disable.
414
444 Try to merge lines. This helps the simplify filter to straighten out longer
445 chunks at lower zoom levels. Decreases file size more. Increases paint
446 speed at low zoom levels. Default is enabled, use --no-merge-lines to
447 disable.
448
415449 --min-size-polygon=NUM
416 Removes all polygons smaller than NUM from the map.
417 This reduces map size and speeds up redrawing of maps.
418 Recommended value is 8 to 15, default is 8.
419 See also polygon-size-limits.
450 Removes all polygons smaller than NUM from the map. This reduces map size
451 and speeds up redrawing of maps. Recommended value is 8 to 15, default is
452 8.
453 See also polygon-size-limits.
420454
421455 --polygon-size-limits=resolution:value[,resolution:value...]
422 Allows you to specify different min-size-polygon values for each resolution.
423 Sample:
424 --polygon-size-limits="24:12, 18:10, 16:8, 14:4, 12:2, 11:0"
425 If a resolution is not given, mkgmap uses the value for the next higher
426 one. For the given sample, resolutions 19 to 24 will use value 12,
427 resolution 17 and 18 will use 10, and so on.
428 Value 0 means to not apply the size filter.
429 Note that in resolution 24 the filter is not used.
430 The following options are equivalent:
431 --min-size-polygon=12
432 --polygon-size-limits=24:12
433 --polygon-size-limits=24:0,23:12
434 --polygon-size-limits=24:0,23:12,22:12,21:12,16:12
435
436 Hill Shading (DEM) options:
437 Hill Shading is rendered by PC programs (MapSource or BaseCamp) or GPS devices
438 when the map includes a Digital Elevation Model (DEM). Use the following options
439 to add a DEM to the map and control its characteristics. DEM creation requires
440 files containing height information for the area covered by the map, the so
441 called hgt files, which typically cover 1 degree latitude * 1 degree longitude
442 and are named by the coordinates of their bottom left corner (eg. N53E009). They
443 contain height information in a grid of points. Typical hgt files contain either
444 1'' or 3'' data. 3'' files have 1201 * 1201 points, which gives
445 2 * 1201 * 1201 = 2.884.802 bytes. 1'' files have 3601 * 3601 points, which gives
446 2 * 3601 * 3601 = 25.934.402 bytes. Other files are supported as long as the
447 formular sqrt(size/2) gives an integer value.
456 Allows you to specify different min-size-polygon values for each
457 resolution. Sample:
458 --polygon-size-limits="24:12, 18:10, 16:8, 14:4, 12:2, 11:0"
459 If a resolution is not given, mkgmap uses the value for the next higher
460 one. For the given sample, resolutions 19 to 24 will use value 12,
461 resolution 17 and 18 will use 10, and so on. Value 0 means to not apply the
462 size filter. Note that in resolution 24 the filter is not used. The
463 following options are equivalent:
464 --min-size-polygon=12
465 --polygon-size-limits=24:12
466 --polygon-size-limits=24:0,23:12
467 --polygon-size-limits=24:0,23:12,22:12,21:12,16:12
468
469 === Hill Shading (DEM) options ===
470
471 Hill Shading is rendered by PC programs (MapSource or BaseCamp) or GPS
472 devices when the map includes a Digital Elevation Model (DEM). Use the
473 following options to add a DEM to the map and control its characteristics.
474 DEM creation requires files containing height information for the area
475 covered by the map, the so called hgt files, which typically cover 1 degree
476 latitude * 1 degree longitude and are named by the coordinates of their
477 bottom left corner (e.g. N53E009). They contain height information in a
478 grid of points. Typical hgt files contain either 1'' or 3'' data. 3'' files
479 have 1201 * 1201 points, which gives 2 * 1201 * 1201 = 2.884.802 bytes. 1''
480 files have 3601 * 3601 points, which gives 2 * 3601 * 3601 = 25.934.402
481 bytes. Other files are supported as long as the formula sqrt(size/2) gives
482 an integer value.
448483
449484 --dem=path[,path...]
450 The option expects a comma separated list of paths to directories or zip
451 files containing *.hgt files. Directories are searched for *.hgt files and
452 also for *.hgt.zip and *.zip files.
453 The list is searched in the given order, so if you want to use 1'' files
454 make sure that they are found first. There are different sources for *.hgt
455 files, some have so called voids which are areas without data.
456 Those should be avoided.
457
485 The option expects a comma separated list of paths to directories or zip
486 files containing *.hgt files. Directories are searched for *.hgt files and
487 also for *.hgt.zip and *.zip files.
488 The list is searched in the given order, so if you want to use 1'' files
489 make sure that they are found first. There are different sources for *.hgt
490 files, some have so called voids which are areas without data. Those should
491 be avoided.
492
458493 --dem-dists=number[,number...]
459 If given, the option specifies the resolution(s) or zoom level for the DEM
460 data. If not given, mkgmap tries to determine a reasonable value based on
461 the resolution found in the *.hgt files. For desktop programs like MapSource or
462 Basecamp you only need one zoom level, for GPS devices you need one for each
463 resolution given with the --levels option. The actual values are given as
464 distance between two DEM points and should be a multiple or submultiple of
465 the distance between two points in the hgt file, that is 3314 for 1'' and 9942
466 for 3''. Higher distances mean lower resolution and thus fewer bytes in the
467 map. Reasonable values for the highest resolution should not be much smaller
468 than 50% hgt resolution, that is somewhere between 1648 and 5520 for 1'' hgt
469 input files (3312 is often used), and 5520 to 9942 for 3'' hgt input files.
470 Example which should work with levels="0:24, 1:22, 2:20, 3:18":
471 --dem-dists=3312,13248,26512,53024
472 This was found in a Garmin Demo map for transalpin data created 2009.
494 If given, the option specifies the resolution(s) or zoom level for the DEM
495 data. If not given, mkgmap tries to determine a reasonable value based on
496 the resolution found in the *.hgt files. For desktop programs like
497 MapSource or Basecamp you only need one zoom level, for GPS devices you
498 need one for each resolution given with the --levels option. The actual
499 values are given as distance between two DEM points and should be a
500 multiple or submultiple of the distance between two points in the hgt file,
501 that is 3314 for 1'' and 9942 for 3''. Higher distances mean lower
502 resolution and thus fewer bytes in the map. Reasonable values for the
503 highest resolution should not be much smaller than 50% hgt resolution, that
504 is somewhere between 1648 and 5520 for 1'' hgt input files (3312 is often
505 used), and 5520 to 9942 for 3'' hgt input files.
506 Example which should work with levels="0:24, 1:22, 2:20, 3:18":
507 --dem-dists=3312,13248,26512,53024
508 This was found in a Garmin Demo map for transalpin data created 2009.
473509
474510 --dem-interpolation=auto|bicubic|bilinear
475 Use this option to specify the method that is used to interpolate
476 data from hgt raster to the DEM raster. The value bicubic gives the
477 highest precision but is slower, bilinear is faster but less precise,
478 it tends to smooth the profile and thus also reduces DEM size compared to
479 bicubic. The value auto means that bicubic is used where is seems
480 appropriate according to hgt resolution and dem-dist value, else bilinear
481 is used. If not given, the default is auto.
511 Use this option to specify the method that is used to interpolate data from
512 hgt raster to the DEM raster. The value bicubic gives the highest precision
513 but is slower, bilinear is faster but less precise, it tends to smooth the
514 profile and thus also reduces DEM size compared to bicubic. The value auto
515 means that bicubic is used where is seems appropriate according to hgt
516 resolution and dem-dist value, else bilinear is used. The default is auto.
482517
483518 --dem-poly=filename
484 If given, the filename should point to a *.poly file in osmosis polygon
485 file format. The polygon described in the file is used to determine the area
486 for which DEM data should be added to the map. If not given, the DEM data
487 will cover the full tile area.
488
519 If given, the filename should point to a *.poly file in osmosis polygon
520 file format. The polygon described in the file is used to determine the
521 area for which DEM data should be added to the map. If not given, the DEM
522 data will cover the full tile area.
523
489524 --overview-dem-dist=integer
490 If given, the option specifies the resolution(s) for the DEM data in the
491 overview map. If not given or 0, mkgmap will not add DEM to the
492 overview map. Reasonable values depend on the size of the area and the
493 lowest resolution used for the single tiles, good compromises are
494 somewhere between 55000 and 276160.
495
496 Miscellaneous options:
525 If given, the option specifies the resolution(s) for the DEM data in the
526 overview map. If not given or 0, mkgmap will not add DEM to the overview
527 map. Reasonable values depend on the size of the area and the lowest
528 resolution used for the single tiles, good compromises are somewhere
529 between 55000 and 276160.
530
531 === Miscellaneous options ===
497532
498533 --max-jobs[=integer]
499 Specify the number of threads to be used for concurrent processing.
500 Increasing max-jobs will reduce the execution time, providing sufficient
501 memory is available and the value is not greater than the number of cores
502 in the CPU. If no value is specified, the limit is set to the number of CPU
503 cores. The default is for the limit to be automatically set to a reasonable
504 value based on the amount of memory allocated to the Java runtime and the
505 amount used in processing the first tile. To optimise mkgmap to use all
506 available CPU cores, you may need to use the Java -Xmx option to increase
507 the amount of available heap storage.
534 Specify the number of threads to be used for concurrent processing.
535 Increasing max-jobs will reduce the execution time, providing sufficient
536 memory is available and the value is not greater than the number of cores
537 in the CPU. If no value is specified, the limit is set to the number of CPU
538 cores. The default is for the limit to be automatically set to a reasonable
539 value based on the amount of memory allocated to the Java runtime and the
540 amount used in processing the first tile. To optimise mkgmap to use all
541 available CPU cores, you may need to use the Java -Xmx option to increase
542 the amount of available heap storage.
508543
509544 --keep-going
510 Don't quit whole application if an exception occurs while
511 processing a map - continue to process the other maps.
545 Don't quit whole application if an exception occurs while processing a map
546 - continue to process the other maps.
512547
513548 --block-size=integer
514 Changes the block size that is used in the generated map. This
515 option is not usually needed, but sometimes an error message
516 will ask you to try a value for this option.
549 Changes the block size that is used in the generated map. This option is
550 not usually needed, but sometimes an error message will ask you to try a
551 value for this option.
517552
518553 --net
519 Tells mkgmap to write NET data, which is needed for address search
520 and routing. Use this option if you want address search, but do
521 not need a map that supports routing or house number search.
522
554 Tells mkgmap to write NET data, which is needed for address search and
555 routing. Use this option if you want address search, but do not need a map
556 that supports routing or house number search.
557
558
523559 --route
524 Tells mkgmap to write NET and NOD data, which are needed in maps
525 that support routing. If you specify this option, you do not need
526 to specify --net and option -no-net is ignored.
560 Tells mkgmap to write NET and NOD data, which are needed in maps that
561 support routing. If you specify this option, you do not need to specify
562 --net and --no-net is ignored.
563
564 --add-boundary-nodes-at-admin-boundaries=NUM
565 This option controls how mkgmap calculates special routing nodes which are
566 needed by Garmin software to allow routing between different map tiles.
567 These nodes are written to section 3 and 4 in the NOD file. When a road
568 crosses the tile boundary (bbox), the road is split at this point and such
569 a special node is written. This allows routing between one set of tiles
570 produced by splitter.jar. However, if you create a map from different sets
571 of tiles, those tiles are likely to overlap. For the overlapping tiles,
572 none of the entries in NOD3 match and thus routing across tile border
573 doesn't work when the route is not fully covered by one of the tiles. The
574 option tells mkgmap to add special nodes wherever a road touches or crosses
575 an administrative boundary. The NUM parameter specifies a filter for the
576 admin_level. Boundaries with a higher admin_level value are ignored. The
577 default value is 2 (country borders). Another reasonable value might be 4.
578 A value less or equal to 0 tells mkgmap to ignore intersections at
579 administrative boundaries.
527580
528581 --drive-on=left|right|detect|detect,left|detect,right
529 Explicitly specify which side of the road vehicles are
530 expected to drive on.
531 If the first option is detect, the program tries
532 to find out the proper flag. If that detection
533 fails, the second value is used (or right if none is given).
534 With OSM data as input, the detection tries to find out
535 the country each road is in and compares the number
536 of drive-on-left roads with the rest.
537 Use the --bounds option to make sure that the detection
538 finds the correct country.
539
540 --add-boundary-nodes-at-admin-boundaries=NUM
541 This option controls how mkgmap calculates special routing nodes which
542 are needed by Garmin software to allow routing between different map tiles.
543 These nodes are written to section 3 and 4 in the NOD file.
544 When a road crosses the tile boundary (bbox), the road is split at this
545 point and such a special node is written. This allows routing between
546 one set of tiles produced by splitter.jar. However, if you create a map
547 from different sets of tiles, those tiles are likely to overlap.
548 For the overlapping tiles, none of the entries in NOD3 match and thus
549 routing across tile border doesn't work when the route is not fully
550 covered by one of the tiles.
551 The option tells mkgmap to add special nodes whereever a road touches or
552 crosses an administratve boundary. The NUM parameter specifies a filter
553 for the admin_level. Boundaries with a higher admin_level value are ignored.
554 The default value is 2 (country borders). Another reasonable value might
555 be 4. A value less or equal to 0 tells mkgmap to ignore intersections at
556 administrative boundaries.
557
582 Explicitly specify which side of the road vehicles are expected to drive
583 on. If the first option is detect, the program tries to find out the proper
584 flag. If that detection fails, the second value is used (or right if none
585 is given). With OSM data as input, the detection tries to find out the
586 country each road is in and compares the number of drive-on-left roads with
587 the rest. Use the --bounds option to make sure that the detection finds the
588 correct country.
589
558590 --check-roundabouts
559 Check that roundabouts have the expected direction (clockwise
560 when vehicles drive on the left). Roundabouts that are complete
561 loops and have the wrong direction are reversed. Also checks
562 that the roundabouts do not fork or overlap other roundabouts
563 and that no more than one connecting highway joins at each node.
591 Check that roundabouts have the expected direction (clockwise when vehicles
592 drive on the left). Roundabouts that are complete loops and have the wrong
593 direction are reversed. Also checks that the roundabouts do not fork or
594 overlap other roundabouts and that no more than one connecting highway
595 joins at each node.
564596
565597 --check-roundabout-flares
566 Check that roundabout flare roads point in the correct direction,
567 are one-way and don't extend too far.
598 Check that roundabout flare roads point in the correct direction, are
599 one-way and don't extend too far.
568600
569601 --check-routing-island-len=INTEGER
570 Routing islands are small road networks which are not connected to other
571 roads. A typical case is a footway that is not connected to the main
572 road network, or a small set of ways on the inner courtyard of a large
573 building
574 These islands can cause problems if you try to calculate a route and the GPS
575 selects a point on the island as a start or end. It will fail to calculate
576 the route even if a major road is only a few steps away. If this option is
577 specified, then mkgmap will detect these islands. If the value is set to
578 zero, mkgmap will simply report the islands (you will need to set
579 uk.me.parabola.imgfmt.app.net.RoadNetwork.level=INFO to activate logging of
580 the message). If the value is greater than zero, mkgmap will mark islands
581 with a total length less than the specified value in metres as not routable.
582 Reasonable values are 500 or higher.
583 The default is for the check to not take place.
584 If any of the roads forming the island touches a tile boundary or
585 a country border the island is ignored, as it may be connected to other
586 roads in a different tile.
587 See also option --add-boundary-nodes-at-admin-boundaries.
588 This option seems to cause routing problems in BaseCamp.
602 Routing islands are small road networks which are not connected to other
603 roads. A typical case is a footway that is not connected to the main road
604 network, or a small set of ways on the inner courtyard of a large building.
605 These islands can cause problems if you try to calculate a route and the
606 GPS selects a point on the island as a start or end. It will fail to
607 calculate the route even if a major road is only a few steps away. If this
608 option is specified, then mkgmap will detect these islands. If the value is
609 set to zero, mkgmap will simply report the islands (you will need to set
610 uk.me.parabola.imgfmt.app.net.RoadNetwork.level=INFO to activate logging of
611 the message). If the value is greater than zero, mkgmap will mark islands
612 with a total length less than the specified value in metres as not
613 routable. Reasonable values are 500 or higher. The default is for the check
614 to not take place. If any of the roads forming the island touches a tile
615 boundary or a country border the island is ignored, as it may be connected
616 to other roads in a different tile.
617 See also option --add-boundary-nodes-at-admin-boundaries.
618 This option seems to cause routing problems in BaseCamp.
589619
590620 --max-flare-length-ratio=NUM
591 When checking flare roads, ignore roads whose length is
592 greater than NUM (an integer) times the distance between the
593 nodes on the roundabout that the flare roads connect to. Using
594 this option with a value of at least 5 will cut down the
595 number of legitimate roads that are flagged as flare road
596 problems. Default value is 0 (disabled) because it's not a
597 completely reliable heuristic.
621 When checking flare roads, ignore roads whose length is greater than NUM
622 (an integer) times the distance between the nodes on the roundabout that
623 the flare roads connect to. Using this option with a value of at least 5
624 will cut down the number of legitimate roads that are flagged as flare road
625 problems. Default value is 0 (disabled) because it's not a completely
626 reliable heuristic.
598627
599628 --ignore-turn-restrictions
600 When reading OSM files, ignore any "restriction" relations.
629 When reading OSM files, ignore any "restriction" relations.
601630
602631 --ignore-osm-bounds
603 When reading OSM files, ignore any "bounds" elements.
604 With this option selected generate-sea sometimes works better,
605 but routing across tiles will not work.
632 When reading OSM files, ignore any "bounds" elements. With this option
633 selected generate-sea sometimes works better, but routing across tiles will
634 not work.
606635
607636 --preserve-element-order
608 Process the map elements (nodes, ways, relations) in the order
609 in which they appear in the OSM input. Without this option,
610 the order in which the elements are processed is not defined.
611
612 --remove-short-arcs[=MinLength]
613 Now ignored, former usage:
614 Merge nodes to remove short arcs that can cause routing
615 problems. If MinLength is specified (in metres), arcs shorter
616 than that length will be removed. If a length is not
617 specified, only zero-length arcs will be removed.
618
619 --adjust-turn-headings[=BITMASK]
620 Now ignored, former usage:
621 Where possible, ensure that turns off to side roads change
622 heading sufficiently so that the GPS believes that a turn is
623 required rather than a fork. This also avoids spurious
624 instructions to "keep right/left" when the road doesn't
625 actually fork.
626
627 Optional BITMASK (default value 3) allows you to specify which
628 adjustments are to be made (where necessary):
629
630 1 = increase angle between side road and outgoing main road
631 2 = increase angle between side road and incoming main road
637 Process the map elements (nodes, ways, relations) in the order in which
638 they appear in the OSM input. Without this option, the order in which the
639 elements are processed is not defined.
632640
633641 --cycle-map
634 Tells mkgmap that the map is for cyclists. This assumes that
635 different vehicles are different kinds of bicycles, e.g. a way
636 with mkgmap:car=yes and mkgmap:bicycle=no may be a road that is
637 good for racing bikes, but not for other cyclists.
638 This allows the optimisation of sharp angles at junctions of those roads.
639 Don't use with the default style as that is a general style!
640
642 Tells mkgmap that the map is for cyclists. This assumes that different
643 vehicles are different kinds of bicycles, e.g. a way with mkgmap:car=yes
644 and mkgmap:bicycle=no may be a road that is good for racing bikes, but not
645 for other cyclists. This allows the optimisation of sharp angles at
646 junctions of those roads. Don't use with the default style as that is a
647 general style!
648
641649 --report-similar-arcs
642 Issue a warning when more than one arc connects two nodes and
643 the ways that the arcs are derived from contain identical
644 points. It doesn't make sense to use this option at the same
645 time as using the cycleway creating options.
650 Issue a warning when more than one arc connects two nodes and the ways that
651 the arcs are derived from contain identical points. It doesn't make sense
652 to use this option at the same time as using the cycleway creating options.
646653
647654 --report-dead-ends=LEVEL
648 Set the dead end road warning level. The value of LEVEL (which
649 defaults to 1 if this option is not specified) determines
650 those roads to report: 0 = none, 1 = multiple one-way roads
651 that join together but go nowhere, 2 = individual one-way roads
652 that go nowhere.
655 Set the dead end road warning level. The value of LEVEL (which defaults to
656 1 if this option is not specified) determines those roads to report: 0 =
657 none, 1 = multiple one-way roads that join together but go nowhere, 2 =
658 individual one-way roads that go nowhere.
653659
654660 --add-pois-to-lines
655 Generate POIs for lines. For each line (must not be closed) POIs are
656 created at several points of the line. Each POI is tagged with the
657 same tags like the line and additional tags added by mkgmap:
658 mkgmap:line2poi=true and tag mkgmap:line2poitype having
659 the following values:
660 * start - The first point of the line
661 * end - The last point of the line
662 * inner - Each point of the line except the first and the last
663 * mid - The middle point
664
661 Generate POIs for lines. For each line (must not be closed) POIs are
662 created at several points of the line. Each POI is tagged with the same
663 tags like the line and additional tags added by mkgmap:
664 mkgmap:line2poi=true and tag mkgmap:line2poitype having the following
665 values:
666 * start - The first point of the line
667 * end - The last point of the line
668 * inner - Each point of the line except the first and the last
669 * mid - The middle point
665670 --add-pois-to-areas
666 Generate a POI for each polygon and multipolygon. The POIs are created
667 after the relation style but before the other styles are applied. Each
668 POI is tagged with the same tags of
669 the area/multipolygon. Additionally the tag mkgmap:area2poi=true is
670 set so that it is possible to use that information in the points style
671 file. Artifical polygons created by multipolyon processing are not used.
672 The POIs are created at the following positions (first rule that applies):
673 polygons:
674 * the first node tagged with a tag defined by the pois-to-areas-placement
675 option
676 * the centre point
677 multipolygons:
678 * the node with role=label
679 * the centre point of the biggest area
680
671 Generate a POI for each polygon and multipolygon. The POIs are created
672 after the relation style but before the other styles are applied. Each POI
673 is tagged with the same tags of the area/multipolygon. Additionally the tag
674 mkgmap:area2poi=true is set so that it is possible to use that information
675 in the points style file. Artificial polygons created by multipolyon
676 processing are not used. The POIs are created at the following positions
677 (first rule that applies):
678 polygons:
679 First rule that applies of
680 * the first node tagged with a tag defined by the
681 --pois-to-areas-placement option
682 * the centre point
683 multipolygons:
684 First rule that applies of
685 * the node with role=label
686 * the centre point of the biggest area
681687 --pois-to-areas-placement=tag=value[;tag=value...]
682 A POI is placed at the first node of the polygon tagged with the first tag/value
683 pair. If none of the nodes are tagged with the first tag-value pair the first node
684 tagged with the second tag-value pair is used and so on. If none of the tag-value pairs
685 matches or the taglist is empty, the centre of the polygon is used.
686 It is possible to define wildcards for tag values like entrance=*.
687 Default: entrance=main;entrance=yes;building=entrance
688 A POI is placed at the first node of the polygon tagged with the first
689 tag/value pair. If none of the nodes are tagged with the first tag-value
690 pair the first node tagged with the second tag-value pair is used and so
691 on. If none of the tag-value pairs matches or the taglist is empty, the
692 centre of the polygon is used. It is possible to define wildcards for tag
693 values like entrance=*.
694
695 Default: entrance=main;entrance=yes;building=entrance
688696
689697 --precomp-sea=directory|zipfile
690 Defines the directory or a zip file that contains precompiled sea tiles.
691 Sea files in a zip file must be located in the zip file's root directory or in
692 a sub directory sea. When this option is defined all natural=coastline tags
693 from the input OSM tiles are removed and the precompiled data is used instead.
694 This option can be combined with the generate-sea options multipolygon, polygons
695 and land-tag. The coastlinefile option is ignored if precomp-sea is set.
698 Defines the directory or a zip file that contains precompiled sea tiles.
699 Sea files in a zip file must be located in the zip file's root directory or
700 in a sub directory sea. When this option is defined all natural=coastline
701 tags from the input OSM tiles are removed and the precompiled data is used
702 instead. This option can be combined with the generate-sea options
703 multipolygon, polygons and land-tag. The coastlinefile option is ignored if
704 precomp-sea is set.
696705
697706 --coastlinefile=filename[,filename...]
698 Defines a comma separated list of files that contain coastline
699 data. The coastline data from the input files is removed if
700 this option is set. Files must have OSM or PBF fileformat.
707 Defines a comma separated list of files that contain coastline data. The
708 coastline data from the input files is removed if this option is set. Files
709 must have OSM or PBF file format.
701710
702711 --generate-sea[=ValueList]
703 Generate sea polygons. ValueList is an optional comma
704 separated list of values:
705
706 multipolygon
707 generate the sea using a multipolygon (the default
708 behaviour so this really doesn't need to be specified).
709
710 polygons | no-mp
711 don't generate the sea using a multipolygon - instead,
712 generate a background sea polygon plus individual land
713 polygons with tag natural=land. This requires a
714 suitable land polygon type to be defined in the style
715 file (suggested type is 0x010100) and the polygon must
716 be defined in the TYP file as having a higher drawing
717 level than the sea polygon type.
718
719 no-sea-sectors
720 disable the generation of "sea sectors" when the
721 coastline fails to reach the tile's boundary.
722
723 extend-sea-sectors
724 same as no-sea-sectors. Additional adds a point so
725 coastline reaches the nearest tile boundary.
726
727 land-tag=TAG=VAL
728 tag to use for land polygons (default natural=land).
729
730 close-gaps=NUM
731 close gaps in coastline that are less than this
732 distance (metres)
733
734 floodblocker
735 enable the flood blocker that prevents a flooding of
736 land by checking if the sea polygons contain streets
737 (works only with multipolygon processing)
738
739 fbgap=NUM
740 flood blocker gap in metre (default 40)
741 points that are closer to the sea polygon do not block
742
743 fbthres=NUM
744 at least so many highway points must be contained in
745 a sea polygon so that it may be removed by the flood
746 blocker (default 20)
747
748 fbratio=NUM
749 only sea polygons with a higher ratio
750 (highway points * 100000 / polygon size) are removed
751 (default 0.5)
752
753 fbdebug
754 switches on the debugging of the flood blocker
755 generates GPX files for each polygon checked by
756 the flood blocker
712 Generate sea polygons. ValueList is an optional comma separated list of
713 values:
714
715 multipolygon
716 generate the sea using a multipolygon (the default behaviour so this
717 really doesn't need to be specified).
718
719 polygons | no-mp
720 don't generate the sea using a multipolygon - instead, generate a
721 background sea polygon plus individual land polygons with tag
722 natural=land. This requires a suitable land polygon type to be defined
723 in the style file (suggested type is 0x010100) and the polygon must be
724 defined in the TYP file as having a higher drawing level than the sea
725 polygon type.
726
727 no-sea-sectors
728 disable the generation of "sea sectors" when the coastline fails to
729 reach the tile's boundary.
730 extend-sea-sectors
731 same as no-sea-sectors. Additional adds a point so coastline reaches
732 the nearest tile boundary.
733
734 land-tag=TAG=VAL
735 tag to use for land polygons (default natural=land).
736 close-gaps=NUM
737 close gaps in coastline that are less than this distance (metres)
738
739 floodblocker
740 enable the flood blocker that prevents a flooding of land by checking
741 if the sea polygons contain streets (works only with multipolygon
742 processing)
743
744 fbgap=NUM
745 flood blocker gap in metre (default 40) points that are closer to the
746 sea polygon do not block
747
748 fbthres=NUM
749 at least so many highway points must be contained in a sea polygon so
750 that it may be removed by the flood blocker (default 20)
751
752 fbratio=NUM
753 only sea polygons with a higher ratio (highway points * 100000 /
754 polygon size) are removed (default 0.5)
755
756 fbdebug
757 switches on the debugging of the flood blocker generates GPX files for
758 each polygon checked by the flood blocker
757759
758760 --make-poi-index
759 Generate a POI index in each map tile. Probably not used by modern devices,
760 but still supported.
761 Generate a POI index in each map tile. Probably not used by modern devices,
762 but still supported.
761763
762764 --nsis
763 Write a .nsi file that can be used with the Nullsoft Scriptable Install System
764 (NSIS) to create a Windows Mapsource Installer.
765 Write a .nsi file that can be used with the Nullsoft Scriptable Install
766 System (NSIS) to create a Windows Mapsource Installer.
765767
766768 --make-opposite-cycleways
767 Some one-way streets allow bicycle traffic in the reverse
768 direction and this option makes a way with the same points as
769 the original that allows bicycle traffic (in both directions).
769 Some one-way streets allow bicycle traffic in the reverse direction and
770 this option makes a way with the same points as the original that allows
771 bicycle traffic (in both directions).
770772
771773 --link-pois-to-ways
772 This option may copy some specific attributes of a POI
773 to a small part of the way the POI is located on. This can be used
774 to let barriers block a way or to lower the calculated speed
775 around traffic signals.
776 POIs with the tags highway=* (e.g. highway=traffic_signals)
777 or barrier=* (e.g. barrier=cycle_barrier) are supported.
778 The style developer must add at least one of the access tags
779 (mkgmap:foot, mkgmap:car etc.), mkgmap:road-speed and/or
780 mkgmap:road-class to the POI.
781 The access tags are ignored if they have no effect for the way,
782 else a route restriction is added at the POI so that only
783 allowed vehicles are routed through it.
784 The tags mkgmap:road-speed and/or mkgmap:road-class are
785 applied to a small part of the way around the POI, typically
786 to the next junction or a length of ~25 m. The tags
787 are ignored for pedestrian-only ways.
774 This option may copy some specific attributes of a POI to a small part of
775 the way the POI is located on. This can be used to let barriers block a way
776 or to lower the calculated speed around traffic signals. POIs with the tags
777 highway=* (e.g. highway=traffic_signals) or barrier=* (e.g.
778 barrier=cycle_barrier) are supported. The style developer must add at least
779 one of the access tags (mkgmap:foot, mkgmap:car etc.), mkgmap:road-speed
780 and/or mkgmap:road-class to the POI. The access tags are ignored if they
781 have no effect for the way, else a route restriction is added at the POI so
782 that only allowed vehicles are routed through it. The tags
783 mkgmap:road-speed and/or mkgmap:road-class are applied to a small part of
784 the way around the POI, typically to the next junction or a length of ~25m.
785 The tags are ignored for pedestrian-only ways.
788786
789787 --process-destination
790 Splits all motorway_link, trunk_link, primary_link, secondary_link,
791 and tertiary_link ways tagged with destination into two or three parts where
792 the second part is additionally tagged with mkgmap:dest_hint=*.
793 The code checks for the tags destination, destination:lanes,
794 destination:street and some variants with :forward/:backward like
795 destination:forward or destination:lanes:backward. If a value for
796 destination is found, the special tag mkgmap:dest_hint is set to
797 it and the way is split. This happens before the style rules are processed.
798 This allows to use any routable Garmin type (except 0x08 and 0x09)
799 for that part so that the Garmin device tells the name of
800 this part as hint which destination to follow.
801 See also --process-exits.
802
788 Splits all motorway_link, trunk_link, primary_link, secondary_link, and
789 tertiary_link ways tagged with destination into two or three parts where
790 the second part is additionally tagged with mkgmap:dest_hint=*. The code
791 checks for the tags destination, destination:lanes, destination:street and
792 some variants with :forward/:backward like destination:forward or
793 destination:lanes:backward. If a value for destination is found, the
794 special tag mkgmap:dest_hint is set to it and the way is split. This
795 happens before the style rules are processed. This allows to use any
796 routable Garmin type (except 0x08 and 0x09) for that part so that the
797 Garmin device tells the name of this part as hint which destination to
798 follow.
799 See also --process-exits.
800
803801 --process-exits
804 Usual Garmin devices do not tell the name of the exit on motorways
805 while routing with mkgmap created maps. This option splits each
806 motorway_link, trunk_link, primary_link, secondary_link, and tertiary_link
807 way into three parts.
808 All parts are tagged with the original tags of the link.
809 Additionally the middle part is tagged with the following tags:
810 mkgmap:exit_hint=true
811 mkgmap:exit_hint_ref=<ref tag value of the exit>
812 mkgmap:exit_hint_name=<name tag value of the exit>
813 mkgmap:exit_hint_exit_to=<exit_to tag value of the exit>
814 Adding a rule checking the mkgmap:exit_hint=true makes it possible
815 to use any routable Garmin type (except 0x08 and 0x09) for the middle
816 part so that the Garmin device tells the name of this middle part as
817 hint where to leave the major road.
818 The first part must have type 0x08 or 0x09 so that Garmin uses the hint.
819
802 Usual Garmin devices do not tell the name of the exit on motorways while
803 routing with mkgmap created maps. This option splits each motorway_link,
804 trunk_link, primary_link, secondary_link, and tertiary_link way into three
805 parts. All parts are tagged with the original tags of the link.
806 Additionally the middle part is tagged with the following tags:
807
808 mkgmap:exit_hint=true
809 mkgmap:exit_hint_ref=<ref tag value of the exit>
810 mkgmap:exit_hint_name=<name tag value of the exit>
811 mkgmap:exit_hint_exit_to=<exit_to tag value of the exit>
812
813 Adding a rule checking the mkgmap:exit_hint=true makes it possible to use
814 any routable Garmin type (except 0x08 and 0x09) for the middle part so that
815 the Garmin device tells the name of this middle part as hint where to leave
816 the motorway/trunk. The first part must have type 0x08 or 0x09 so that
817 Garmin uses the hint.
818
820819 --delete-tags-file=filename
821 Names a file that should contain one or more lines of the form
822 TAG=VALUE or TAG=*. Blank lines and lines that start with
823 a # or ; are ignored. All tag/value pairs in the OSM input are
824 compared with these patterns and those that match are deleted.
825
820 Names a file that should contain one or more lines of the form TAG=VALUE or
821 TAG=*. Blank lines and lines that start with a # or ; are ignored. All
822 tag/value pairs in the OSM input are compared with these patterns and those
823 that match are deleted.
824
826825 --ignore-fixme-values
827 Ignore all tags for which the value matches the pattern "(?i)fix[ _]?+me".
826 Ignore all tags for which the value matches the regular expression pattern
827 "(?i)fix[ _]?+me".
828828
829829 --tdbfile
830 Write files that are essential to running with MapSource, a .tdb file and
831 an overview map. The options --nsis and --gmapi imply --tdbfile.
830 Write files that are essential to running with MapSource, a .tdb file and
831 an overview map. The options --nsis and --gmapi imply --tdbfile.
832832
833833 --show-profiles=1
834 Sets a flag in tdb file. The meaning depends on the availability of DEM
835 data (see "Hill Shading (DEM) options").
836 Without DEM data the flag enables profile calculation in MapSource or
837 Basecamp based on information from contour lines.
838 If DEM data is available the profile is calculated with that information and
839 the flag only changes the status line to show the height when you hover over
840 an area with valid DEM data.
841 The default is show-profiles=0.
834 Sets a flag in tdb file. The meaning depends on the availability of DEM
835 data (see "Hill Shading (DEM) options").
836 Without DEM data the flag enables profile calculation in MapSource or
837 Basecamp based on information from contour lines.
838 If DEM data is available the profile is calculated with that information
839 and the flag only changes the status line to show the height when you hover
840 over an area with valid DEM data.
841 The default is show-profiles=0.
842842
843843 --transparent
844 Make the map transparent, so that if two maps covering the same area are
845 loaded, you can see through this map to see details from the other map too.
846 Typically used for maps containing just contour lines. See --draw-priority
847 as well.
844 Make the map transparent, so that if two maps covering the same area are
845 loaded, you can see through this map to see details from the other map too.
846 Typically used for maps containing just contour lines. See --draw-priority
847 as well.
848848
849849 --draw-priority=integer
850 When two maps cover the same area and both are enabled in the device, this
851 option controls the order in which they are drawn in and therefore which map
852 is on top. Higher priorities are drawn "on top" of lower priorities.
853 The map drawn on top must be transparent for the one underneath to be seen.
854 The default value is 25.
850 When two maps cover the same area and both are enabled in the device, this
851 option controls the order in which they are drawn in and therefore which
852 map is on top. Higher priorities are drawn "on top" of lower priorities.
853 The map drawn on top must be transparent for the one underneath to be seen.
854 The default value is 25.
855855
856856 --custom
857 Write a different TRE header. With this option, mkgmap writes the bytes
858 0x170401 instead of the default 0x110301 at offset 43. Useful for marine
859 maps.
860
857 Write a different TRE header. With this option, mkgmap writes the bytes
858 0x170401 instead of the default 0x110301 at offset 43. Useful for marine
859 maps.
860
861861 --hide-gmapsupp-on-pc
862 Set a bit in the gmapsupp.img that tells PC software that the file is
863 already installed on the PC and therefore there is no need to read it
864 from the device.
862 Set a bit in the gmapsupp.img that tells PC software that the file is
863 already installed on the PC and therefore there is no need to read it from
864 the device.
865865
866866 --poi-address
867 Enable address / phone information to POIs. Address info is
868 read according to the "Karlsruhe" tagging schema. Automatic
869 filling of missing information could be enabled using the
870 "location-autofill" option.
871 Default is enabled, use --no-poi-address to disable.
867 Enable address / phone information to POIs. Address info is read according
868 to the "Karlsruhe" tagging schema. Automatic filling of missing information
869 could be enabled using the "location-autofill" option. Default is enabled,
870 use --no-poi-address to disable.
872871
873872 --verbose
874 Makes some operations more verbose. Mostly used with --list-styles.
873 Makes some operations more verbose. Mostly used with --list-styles.
875874
876875 --order-by-decreasing-area
877 Puts polygons/areas into the map in decreasing size order, so that
878 smaller features are rendered over larger ones (assuming _drawOrder
879 is equal). The tag mkgmap:drawLevel can be used to override the
880 natural area of a polygon, so forcing changes to the rendering order.
881
882 Deprecated and Obsolete Options
876 Puts area/polygons into the map in decreasing size order, so that smaller
877 features are rendered over larger ones (assuming the draw order is equal).
878 The tag mkgmap:drawLevel can be used to override the natural area of a
879 polygon, so forcing changes to the rendering order.
880
881 === Deprecated and Obsolete Options ===
883882
884883 --drive-on-left
885884 --drive-on-right
886 Deprecated; use drive-on instead.
887 The options are translated to drive-on=left|right.
885 Deprecated; use drive-on instead. The options are translated to
886 drive-on=left|right.
888887
889888 --make-all-cycleways
890 Deprecated, use --make-opposite-cycleways instead. Former meaning:
891 Turn on all of the options that make cycleways.
889 Deprecated; use --make-opposite-cycleways instead. Former meaning: Turn on
890 all of the options that make cycleways.
892891
893892 --charset=name
894 Obsolete; use --code-page instead.
895 option.
893 Obsolete; use --code-page instead.
896894
897895 --map-features=filename
898 Obsolete; use --style-file instead.
896 Obsolete; use --style-file instead.
899897
900898 --ignore-maxspeeds
901 Obsolete; former usage:
902 When reading OSM files, ignore any "maxspeed" tags.
899 Obsolete; former usage: When reading OSM files, ignore any "maxspeed" tags.
903900
904901 --ignore-builtin-relations
905 Obsolete; former usage:
906 When reading OSM files, skip the built-in processing of
907 relations. This speeds up the processing non-routable map
908 layers that do not contain multipolygons. This implies
909 --ignore-turn-restrictions.
902 Obsolete; former usage: When reading OSM files, skip the built-in
903 processing of relations. This speeds up the processing non-routable map
904 layers that do not contain multipolygons. This implies
905 --ignore-turn-restrictions.
910906
911907 --road-name-pois[=GarminCode]
912 Obsolete; former usage:
913 Generate a POI for each named road. By default, the POIs'
914 Garmin type code is 0x640a. If desired, a different type code
915 can be specified with this option. This is a workaround for not
916 being able to search for roads.
917 0x2f15: a blue dot in the middle of the road, and if you select,
918 or 'hover' over it, the street name appears.
908 Obsolete; former usage: Generate a POI for each named road. By default, the
909 POIs' Garmin type code is 0x640a. If desired, a different type code can be
910 specified with this option. This is a workaround for not being able to
911 search for roads. 0x2f15: a blue dot in the middle of the road, and if you
912 select, or 'hover' over it, the street name appears.
919913
920914 --make-cycleways
921 Obsolete; former meaning:
922 Some streets have a separate cycleway track/lane just for
923 bicycle traffic and this option makes a way with the same
924 points as the original that allows bicycle traffic. Also,
925 bicycle traffic is prohibited from using the original way
926 (unless that way's bicycle access has been defined).
927
928
915 Obsolete; former meaning: Some streets have a separate cycleway track/lane
916 just for bicycle traffic and this option makes a way with the same points
917 as the original that allows bicycle traffic. Also, bicycle traffic is
918 prohibited from using the original way (unless that way's bicycle access
919 has been defined).
920
921 --remove-short-arcs[=MinLength]
922 Now ignored, former usage: Merge nodes to remove short arcs that can cause
923 routing problems. If MinLength is specified (in metres), arcs shorter than
924 that length will be removed. If a length is not specified, only zero-length
925 arcs will be removed.
926
927 --adjust-turn-headings[=BITMASK]
928 Now ignored, former usage: Where possible, ensure that turns off to side
929 roads change heading sufficiently so that the GPS believes that a turn is
930 required rather than a fork. This also avoids spurious instructions to
931 "keep right/left" when the road doesn't actually fork.
932
933 Optional BITMASK (default value 3) allows you to specify which adjustments
934 are to be made (where necessary):
935
936 1 = increase angle between side road and outgoing main road
937 2 = increase angle between side road and incoming main road
0 svn.version: 4398
1 build.timestamp: 2019-12-18T08:25:16+0000
0 svn.version: 4433
1 build.timestamp: 2020-01-30T14:36:48+0000
229229 natural=coastline [0x15 resolution 12]
230230 power=line [0x29 resolution 21]
231231
232 # following really should be removed, but see: http://www.mkgmap.org.uk/pipermail/mkgmap-dev/2016q3/025104.html
233 railway=abandoned [0x0a road_class=0 road_speed=1 resolution 22]
234232 railway=platform [0x16 road_class=0 road_speed=0 resolution 23]
235233 # Railway lines, note that many devices display type 0x14 only at resolution 24
236234 (railway=rail | railway=tram | railway=disused | railway=subway | railway=narrow_gauge | railway=light_rail | railway=preserved) & !(tunnel=yes)
0
1 [_id]
2 ProductCode=1
3 CodePage=65001
4 [End]
5 [_comments]
6 ;https://github.com/Jorisbo/Mkgmap-Mapnik-Style-Garmin
7 ;Jorisbo@hotmail.com
0 ; TYP file to give mapnik rendering
1 ; -*- coding: UTF-8 -*- NB: first 3 bytes/char in file is UTF-8 encoded ByteOrderMark (BOM)
82 ;
93 ;This program is free software; you can redistribute it and/or modify
104 ;it under the terms of the GNU General Public License version 3 or
159 ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1610 ;General Public License for more details.
1711 ;
18 ;Auto generated: 20191209 18:13
19 ;From master: MKG
20 ;As subset: mkgmap
21 ;Based on mkgmap default style version: r4389
12 ;Author: Jorisbo@hotmail.com
2213 ;
14 ;Based on mkgmap default style version: r4293...4288
15 ;
16 [_id]
17 ;ProductCode=1 set from --product-id
18 ;FID=8094 set from --family-id
19 ;CodePage=65001 set from --code-page
2320 [End]
21 ;
2422 [_drawOrder]
2523 Type=0x04b,1
24 Type=0x03d,1
2625 Type=0x002,2
2726 Type=0x003,2
2827 Type=0x007,2
4443 Type=0x025,2
4544 Type=0x026,2
4645 Type=0x03b,2
47 Type=0x03d,2
4846 Type=0x046,2
4947 Type=0x047,2
5048 Type=0x048,2
7674 Type=0x06c,8
7775 Type=0x004,9
7876 [End]
77 ;
7978 [_polygon]
8079 type=0x02
8180 ;GRMN_TYPE: Urban Areas/SMALL_CITY/Small urban area, less than 200 000 inhabitants/Non NT
81 String=Suburb
8282 String1=0x01,Résidentiel
8383 String2=0x02,Wohngebiet
84 String3=0x04,Residential
8584 String4=0x03,Bebouwing
8685 String7=0x15,Obszar mieszkalny
8786 String8=0x10,Residencial
9594 [_polygon]
9695 type=0x03
9796 ;GRMN_TYPE: Urban Areas/TOWN/Urban area, less than 50 000 inhabitants/Non NT
97 String=Village
9898 String1=0x01,Résidentiel
9999 String2=0x02,Wohngebiet
100 String3=0x04,Residential
101100 String4=0x03,Bebouwing
102101 String7=0x15,Obszar mieszkalny
103102 String8=0x10,Residencial
111110 [_polygon]
112111 type=0x04
113112 ;GRMN_TYPE: Large Manmade Areas/MILITARY_BASE/Military base area/Non NT
113 String=Military Base
114114 String1=0x01,Domaine militaire
115115 String2=0x02,Militärisches Sperrgebiet
116 String3=0x04,Military
117116 String4=0x03,Militair domein
118117 String7=0x15,Teren wojskowy
119118 String8=0x10,Militar
161160 [_polygon]
162161 type=0x05
163162 ;GRMN_TYPE: Large Manmade Areas/PARKING_LOT/Parking lot area/Non NT
163 String=Parking Lot
164164 String1=0x01,Parking
165165 String2=0x02,Parkplatz
166 String3=0x04,Parking
166 String3=0x04,Car Park
167167 String4=0x03,Parkeerterrein
168168 String7=0x15,Parking
169169 String8=0x10,Estacionamento
177177 [_polygon]
178178 type=0x06
179179 ;GRMN_TYPE: Large Manmade Areas/PARKING_GARAGE/Parking garage area/Non NT
180 String=Parking Garage
180181 String1=0x01,Garages
181182 String2=0x02,Garagen
182 String3=0x04,Garages
183 String3=0x04,Parking
183184 String4=0x03,Garages
184185 String7=0x15,Garaże
185186 String8=0x10,Garagem
193194 [_polygon]
194195 type=0x07
195196 ;GRMN_TYPE: Large Manmade Areas/AIRPORT/Airport area/Non NT
197 String=Airport
196198 String1=0x01,Aéroport
197199 String2=0x02,Flughafen
198 String3=0x04,Airport
199200 String4=0x03,Vliegveld
200201 String7=0x15,Lotnisko
201202 String8=0x10,Aeroporto
209210 [_polygon]
210211 type=0x08
211212 ;GRMN_TYPE: Large Manmade Areas/SHOPPING_AREA/Shopping area/Non NT
213 String=Shopping Center
212214 String1=0x01,Zone commerciale
213215 String2=0x02,Gewerbegebiet
214 String3=0x04,Commercial area
215216 String4=0x03,Commercieel gebied
216217 String7=0x15,Obszar handlowy
217218 String8=0x10,Área comercial
225226 [_polygon]
226227 type=0x09
227228 ;GRMN_TYPE: Large Manmade Areas/MARINA/Marina area/Non NT
229 String=Marina
228230 String1=0x01,Piscine
229231 String2=0x02,Schwimmbad
230 String3=0x04,Swimmingpool
232 String3=0x04,Water Park
231233 String4=0x03,Zwembad
232234 String7=0x15,Basen
233235 String8=0x10,Piscina
241243 [_polygon]
242244 type=0x0a
243245 ;GRMN_TYPE: Large Manmade Areas/COLLEGE/College or university area/Non NT
246 String=University/College
244247 String1=0x01,École
245248 String2=0x02,Schule
246249 String3=0x04,Education
257260 [_polygon]
258261 type=0x0b
259262 ;GRMN_TYPE: Large Manmade Areas/HOSPITAL/Hospital area/Non NT
263 String=Hospital
260264 String1=0x01,Hôpital
261265 String2=0x02,Krankenhaus
262 String3=0x04,Hospital
263266 String4=0x03,Ziekenhuis
264267 String7=0x15,Szpital
265268 String8=0x10,Hospital
273276 [_polygon]
274277 type=0x0c
275278 ;GRMN_TYPE: Large Manmade Areas/INDUSTRIAL_COMPLEX/Industrial complex area/Non NT
279 String=Industrial Complex
276280 String1=0x01,Zone industrielle
277281 String2=0x02,Industriegebiet
278282 String3=0x04,Industrial area
289293 [_polygon]
290294 type=0x0e
291295 ;GRMN_TYPE: Large Manmade Areas/AIRPORT_RUNWAYS/Airport runway area/Non NT
296 String=Aircraft Road
292297 String1=0x01,Aérodrome
293298 String2=0x02,Flugfeld
294 String3=0x04,Aeroway
299 String3=0x04,Runway
295300 String4=0x03,Landingsbaan
296301 String7=0x15,Pas startowy
297302 String8=0x10,Aeródromo
305310 [_polygon]
306311 type=0x0f
307312 ;GRMN_TYPE: //
313 String=Commercial Area
308314 String1=0x01,Zone commerciale
309315 String2=0x02,Gewerbegebiet
310 String3=0x04,Commercial area
311316 String4=0x03,Commercieel gebied
312317 String7=0x15,Obszar handlowy
313318 String8=0x10,Área comercial
321326 [_polygon]
322327 type=0x10
323328 ;GRMN_TYPE: //
329 String=Residential
324330 String1=0x01,Résidentiel
325331 String2=0x02,Wohngebiet
326 String3=0x04,Residential
327332 String4=0x03,Bebouwing
328333 String7=0x15,Obszar mieszkalny
329334 String8=0x10,Residencial
337342 [_polygon]
338343 type=0x11
339344 ;GRMN_TYPE: //
345 String=Danger Area
340346 String1=0x01,Domaine militair
341347 String2=0x02,Militärisches Sperrgebiet
342 String3=0x04,Military dangerzone
343348 String4=0x03,Miltaire gevarenzone
344349 ExtendedLabels=Y
345350 FontStyle=NoLabel (invisible)
384389 [_polygon]
385390 type=0x12
386391 ;GRMN_TYPE: //
392 String=Retail
387393 String1=0x01,Aire
388394 String2=0x02,Raststätte
389 String3=0x04,Service
390395 String4=0x03,Snelweg rustplaats
391396 ExtendedLabels=Y
392397 FontStyle=NoLabel (invisible)
397402 [_polygon]
398403 type=0x13
399404 ;GRMN_TYPE: Large Manmade Areas/GENERIC_MANMADE/Other or generic manmade area, such as a building/Non NT
405 String=Building
400406 String1=0x01,Bâtiment
401407 String2=0x02,Gebäude
402 String3=0x04,Building
403408 String4=0x03,Gebouw
404409 String7=0x15,Budynek
405410 String8=0x10,Edifício
413418 [_polygon]
414419 type=0x15
415420 ;GRMN_TYPE: Park Areas/NATIONAL_PARK/National park/Non NT
421 String=Village Green
416422 String1=0x01,Espace vert
417423 String2=0x02,Grün
418 String3=0x04,Village green
419424 String4=0x03,Stadsgroen
420425 ExtendedLabels=Y
421426 FontStyle=NoLabel (invisible)
426431 [_polygon]
427432 type=0x16
428433 ;GRMN_TYPE: Park Areas/NATIONAL_PARK_OTHER/Small or misc sized national park/Non NT
434 String=Nature Reserve
429435 String1=0x01,Espace vert
430436 String2=0x02,Grün
431 String3=0x04,Green area
432437 String4=0x03,Groen
433438 String7=0x15,Zieleń
434439 String8=0x10,Área verde
442447 [_polygon]
443448 type=0x17
444449 ;GRMN_TYPE: Park Areas/URBAN_PARK/Small urban park, typically only a few square blocks in size/Non NT
450 String=City Park/Playground
445451 String1=0x01,Parc
446452 String2=0x02,Park
447 String3=0x04,Park
448453 String4=0x03,Park
449454 String7=0x15,Park
450455 String8=0x10,Parque
458463 [_polygon]
459464 type=0x18
460465 ;GRMN_TYPE: Large Manmade Areas/GOLF_COURSE/Golf course area/Non NT
466 String=Golf Course
461467 String1=0x01,Golf
462468 String2=0x02,Golfplatz
463 String3=0x04,Golf course
464469 String4=0x03,Golfbaan
465470 String7=0x15,Pole golfowe
466471 String8=0x10,Campo de Golfe
474479 [_polygon]
475480 type=0x19
476481 ;GRMN_TYPE: Large Manmade Areas/SPORTS_COMPLEX/Sports arena or stadium/Non NT
482 String=Sports Complex
477483 String1=0x01,Terrain de sport
478484 String2=0x02,Sportplatz
479485 String3=0x04,Sports pitch
490496 [_polygon]
491497 type=0x1a
492498 ;GRMN_TYPE: Large Manmade Areas/CEMETARY/Cemetary/Non NT
499 String=Cemetery
493500 String1=0x01,Cimetière
494501 String2=0x02,Friedhof
495 String3=0x04,Cemetry
496502 String4=0x03,Begraafplaats
497503 String7=0x15,Cmentarz
498504 String8=0x10,Cemitério
540546 [_polygon]
541547 type=0x1c
542548 ;GRMN_TYPE: //
549 String=Meadow
543550 String2=0x02,Wiese
544 String3=0x04,Meadow
545551 String4=0x03,Weide
546552 ExtendedLabels=Y
547553 FontStyle=NoLabel (invisible)
552558 [_polygon]
553559 type=0x1d
554560 ;GRMN_TYPE: //
561 String=Common
555562 String1=0x01,Parc
556563 String2=0x02,Park
557 String3=0x04,Park
558564 String4=0x03,Park
559565 String7=0x15,Park
560566 String8=0x10,Parque
568574 [_polygon]
569575 type=0x20
570576 ;GRMN_TYPE: Park Areas/STATE_PARK_OTHER/Small or misc sized state park/Non NT
577 String=Garden
571578 String1=0x01,Jardin
572579 String2=0x02,Garten
573 String3=0x04,Garden
574580 String4=0x03,Tuin
575581 ExtendedLabels=Y
576582 FontStyle=NoLabel (invisible)
615621 [_polygon]
616622 type=0x21
617623 ;GRMN_TYPE: //
618 String3=0x04,Tourism
624 String=Tourism
619625 String4=0x03,Toeristische attractie
620626 ExtendedLabels=Y
621627 FontStyle=NoLabel (invisible)
626632 [_polygon]
627633 type=0x22
628634 ;GRMN_TYPE: //
635 String=Historic
629636 String1=0x01,Patrimoine historique
630637 String2=0x02,Historisches Gebiet / Gebäude
631 String3=0x04,Historic area/building
632638 String4=0x03,Historisch gebied/gebouw
633639 String7=0x15,Historyczny teren / budynek
634640 String8=0x10,Edifício histórico
642648 [_polygon]
643649 type=0x23
644650 ;GRMN_TYPE: //
651 String=Amenity
645652 String1=0x01,Bâtiment
646653 String2=0x02,Gebäude
647 String3=0x04,Building
648654 String4=0x03,Gebouw
649655 String7=0x15,Budynek
650656 String8=0x10,Edifício
658664 [_polygon]
659665 type=0x24
660666 ;GRMN_TYPE: //
667 String=Man-made
661668 String2=0x02,Konstruktion
662 String3=0x04,Construction
663669 String4=0x03,Constructie
664670 ExtendedLabels=Y
665671 FontStyle=NoLabel (invisible)
670676 [_polygon]
671677 type=0x25
672678 ;GRMN_TYPE: //
673 String1=0x01,Zone piétonne
674 String2=0x02,Fußgängerzone
675 String3=0x04,Pedestrians
676 String4=0x03,Voetgangersgebied
677 String7=0x15,Pieszy
678 String8=0x10,Pedestre
679 String9=0x05,Area pedonale
679 ;See also 0x6b for pedestrian area
680 String=Square
681 String1=0x01,Place
682 String1=0x02,Platz
683 String1=0x03,Markt
684 String1=0x05,Piazza
685 String1=0x08,Plaza
680686 ExtendedLabels=Y
681687 FontStyle=NoLabel (invisible)
682688 CustomColor=No
686692 [_polygon]
687693 type=0x26
688694 ;GRMN_TYPE: //
695 String=Farm / Yard
689696 String1=0x01,Ferme
690697 String2=0x02,Bauernhof
691 String3=0x04,Farm
692698 String4=0x03,Boerenbedrijf
693699 ExtendedLabels=Y
694700 FontStyle=NoLabel (invisible)
699705 [_polygon]
700706 type=0x32
701707 ;GRMN_TYPE: Water Areas/SEA/Sea/Non NT
708 String=Sea
702709 String1=0x01,Mer
703710 String2=0x02,Meer
704 String3=0x04,Sea
705711 String4=0x03,Zee
706712 String7=0x15,Morze
707713 String8=0x10,Mar
716722 [_polygon]
717723 type=0x3b
718724 ;GRMN_TYPE: //
725 String=Waterway
719726 String1=0x01,Eau
720727 String2=0x02,Wasser
721 String3=0x04,Water
722728 String4=0x03,Water
723729 String7=0x15,Woda
724730 String8=0x10,Água
733739 [_polygon]
734740 type=0x3c
735741 ;GRMN_TYPE: Water Areas/LAKE_100MI/Lake less than 250 sq mi but greater or equal to 100 sq mi in area/Non NT
742 String=Lake
736743 String1=0x01,Eau
737744 String2=0x02,Wasser
738 String3=0x04,Water
739745 String4=0x03,Water
740746 String7=0x15,Woda
741747 String8=0x10,Água
750756 [_polygon]
751757 type=0x3d
752758 ;GRMN_TYPE: Water Areas/LAKE_30MI, LARGE_LAKE/Large lake, typically between 30 and 500 sq mi in area/Non NT
759 String=Bay
753760 String1=0x01,Baie
754761 String2=0x02,Bucht
755 String3=0x04,Bay
756762 String4=0x03,Baai
757763 String7=0x15,Zatoka
758764 String8=0x10,Baia
760766 ExtendedLabels=Y
761767 FontStyle=NoLabel (invisible)
762768 CustomColor=No
763 Xpm="0 0 1 0"
764 "1 c #F2EFE9"
769 Xpm="32 32 2 1"
770 ". c none"
771 "1 c #FFFFFF"
772 "................................"
773 "................................"
774 "................................"
775 "................................"
776 "................................"
777 "................................"
778 "................................"
779 "................................"
780 "................................"
781 "................................"
782 "................................"
783 "................................"
784 "................................"
785 "................................"
786 "................................"
787 "................................"
788 "................................"
789 "................................"
790 "................................"
791 "................................"
792 "................................"
793 "................................"
794 "................................"
795 "................................"
796 "................................"
797 "................................"
798 "................................"
799 "................................"
800 "................................"
801 "................................"
802 "................................"
803 "................................"
804 ; "12345678901234567890123456789012"
765805 [end]
766806 [_polygon]
767807 type=0x3f
768808 ;GRMN_TYPE: Water Areas/LAKE, LAKE_5MI/Medium sized lake, typically between 5 and 30 sq mi in area/Non NT
809 String=Reservoir/Basin
769810 String1=0x01,Eau
770811 String2=0x02,Wasser
771 String3=0x04,Water
772812 String4=0x03,Water
773813 String7=0x15,Woda
774814 String8=0x10,Água
782822 [_polygon]
783823 type=0x41
784824 ;GRMN_TYPE: Water Areas/LAKE_LT_1MI, SMALL_LAKE/Small lake, typically less than 5 sq mi in area/Non NT
825 String=Small Lake
785826 String1=0x01,Eau
786827 String2=0x02,Wasser
787 String3=0x04,Water
788828 String4=0x03,Water
789829 String7=0x15,Woda
790830 String8=0x10,Água
799839 [_polygon]
800840 type=0x46
801841 ;GRMN_TYPE: Water Areas/LARGE_RIVER/Major river, typically at least 700 ft in width/Non NT
842 String=River
802843 String1=0x01,Eau
803844 String2=0x02,Wasser
804 String3=0x04,Water
805845 String4=0x03,Water
806846 String7=0x15,Woda
807847 String8=0x10,Água
815855 [_polygon]
816856 type=0x47
817857 ;GRMN_TYPE: Water Areas/RIVER_GT_700FT/Major river greater or equal to 700 ft in width/Non NT
858 String=Waterfall
818859 String1=0x01,Eau
819860 String2=0x02,Wasser
820 String3=0x04,Water
821861 String4=0x03,Water
822862 String7=0x15,Woda
823863 String8=0x10,Água
832872 [_polygon]
833873 type=0x48
834874 ;GRMN_TYPE: Water Areas/RIVER_100FT, SMALL_RIVER/Minor river, typically less than 700 ft in width/Non NT
875 String=Canal
835876 String1=0x01,Eau
836877 String2=0x02,Wasser
837 String3=0x04,Water
838878 String4=0x03,Water
839879 String7=0x15,Woda
840880 String8=0x10,Água
849889 [_polygon]
850890 type=0x4b
851891 ;GRMN_TYPE: Map Bounds/DATA_BOUNDS/Bounds of map after creation/Non NT
892 String=Area of Map Coverage
852893 String1=0x01,Sol
853894 String2=0x02,Hintergrund
854 String3=0x04,Non mapped area
855895 String4=0x03,Achtergrond
856896 String7=0x15,Obszar niezmapowany
857897 String8=0x10,Área não mapeada
866906 [_polygon]
867907 type=0x4c
868908 ;GRMN_TYPE: Water Areas/INTERMITTENT_LAKE/An intermittent or dry lake/Non NT
909 String=Intermittent Water
869910 String1=0x01,Eau
870911 String2=0x02,Wasser
871 String3=0x04,Water
872912 String4=0x03,Water
873913 String7=0x15,Woda
874914 String8=0x10,Água
883923 [_polygon]
884924 type=0x4d
885925 ;GRMN_TYPE: Surface Cover Areas/GLACIER/Large area of compacted snow and ice/Non NT
926 String=Glacier
886927 String1=0x01,Glacier
887928 String2=0x02,Gletscher
888 String3=0x04,Glacier
889929 String4=0x03,Gletsjer
890930 String7=0x15,Lodowiec
891931 String8=0x10,Geleira
900940 [_polygon]
901941 type=0x4e
902942 ;GRMN_TYPE: Surface Cover Areas/ORCHARD/Orchard or plantation area/Non NT
943 String=Orchard
903944 String1=0x01,Agriculture
904945 String2=0x02,Ackerland
905946 String3=0x04,Farmland
916957 [_polygon]
917958 type=0x4f
918959 ;GRMN_TYPE: Surface Cover Areas/SCRUB/Scrub brush area/Non NT
960 String=Scrub
919961 String1=0x01,Broussailles
920962 String2=0x02,Gebüsch
921 String3=0x04,Scrub
922963 String4=0x03,Kreupelbos
923964 String7=0x15,Zarośla
924965 String8=0x10,Arbusto
9661007 [_polygon]
9671008 type=0x50
9681009 ;GRMN_TYPE: Surface Cover Areas/WOODS/Wooded or forested area/Non NT
1010 String=Woods
9691011 String1=0x01,Forêt
9701012 String2=0x02,Wald
971 String3=0x04,Forest
9721013 String4=0x03,Bos
9731014 String7=0x15,Las
9741015 String8=0x10,Floresta
10161057 [_polygon]
10171058 type=0x51
10181059 ;GRMN_TYPE: Surface Cover Areas/WETLAND/Wetland or swamp area/Non NT
1060 String=Wetland
10191061 String1=0x01,Marais
10201062 String2=0x02,Sumpf
10211063 String3=0x04,Marsh
10661108 [_polygon]
10671109 type=0x52
10681110 ;GRMN_TYPE: Surface Cover Areas/TUNDRA/Area of nearly always freezing soil/Non NT
1069 String3=0x04,Tundra
1111 String=Tundra
10701112 String4=0x03,Toendra
10711113 ExtendedLabels=Y
10721114 FontStyle=NoLabel (invisible)
10771119 [_polygon]
10781120 type=0x53
10791121 ;GRMN_TYPE: Surface Cover Areas/FLAT/Sand, tidal, mud, etc. flat area/Non NT
1122 String=Tidal Sand/Mud Flats
10801123 String1=0x01,Terre
10811124 String2=0x02,Land
1082 String3=0x04,Land
10831125 String4=0x03,Land
10841126 String7=0x15,Land
10851127 String8=0x10,Terra
10931135 [_polygon]
10941136 type=0x6a
10951137 ;GRMN_TYPE: //
1138 ; not used by default style
1139 String=Station
10961140 String1=0x01,Gare
10971141 String2=0x02,Bahnhof
1098 String3=0x04,Station
10991142 String4=0x03,Station
11001143 String7=0x15,Stacja
11011144 String8=0x10,Estação
11091152 [_polygon]
11101153 type=0x6b
11111154 ;GRMN_TYPE: //
1155 ; not used by default style
1156 String=Pedestrian Zone
11121157 String1=0x01,Zone piétonne
11131158 String2=0x02,Fußgängerzone
1114 String3=0x04,Pedestrians
11151159 String4=0x03,Voetgangersgebied
11161160 String7=0x15,Pieszy
11171161 String8=0x10,Pedestre
11251169 [_polygon]
11261170 type=0x6c
11271171 ;GRMN_TYPE: //
1172 ; not used by default style
1173 String=Platform
11281174 String1=0x01,Quai
11291175 String2=0x02,Bahnsteig
1130 String3=0x04,Platform
11311176 String4=0x03,Perron
11321177 String7=0x15,Platform
11331178 String8=0x10,Plataforma
11381183 Xpm="0 0 1 0"
11391184 "1 c #BBBBBB"
11401185 [end]
1186 ;
11411187 [_line]
11421188 type=0x01
11431189 ;GRMN_TYPE: Roads/INTERSTATE, MAJOR_HWY/Primary, divided, limited-access highway, akin to an interstate in the US/Non NT, NT
11471193 Xpm="0 0 2 0"
11481194 "1 c #E892A2"
11491195 "2 c #FF008B"
1196 String=Motorway
11501197 String1=0x01,Autoroute
11511198 String2=0x02,Autobahn
1152 String3=0x04,Motorway
11531199 String4=0x03,Snelweg
11541200 String7=0x15,Autostrada
11551201 String8=0x10,Autoestrada
11671213 Xpm="0 0 2 0"
11681214 "1 c #F9B29C"
11691215 "2 c #D87559"
1216 String=Trunk Road
11701217 String1=0x01,Voie rapide
11711218 String2=0x02,Schnellstraße
1172 String3=0x04,Trunk
11731219 String4=0x03,Autoweg
11741220 String7=0x15,Droga szybkiego ruchu
11751221 String8=0x10,Via expressa
11871233 Xpm="0 0 2 0"
11881234 "1 c #FCD6A4"
11891235 "2 c #C5A363"
1236 String=Primary Road
11901237 String1=0x01,Route primaire
11911238 String2=0x02,Bundesstraße
1192 String3=0x04,Primary
11931239 String4=0x03,Primair
11941240 String7=0x15,Droga krajowa
11951241 String8=0x10,Via primária
12071253 Xpm="0 0 2 0"
12081254 "1 c #F7FABF"
12091255 "2 c #BBC279"
1256 String=Secondary Road
12101257 String1=0x01,Route secondaire
12111258 String2=0x02,Bundesstraße
1212 String3=0x04,Secondary
12131259 String4=0x03,Secundair
12141260 String7=0x15,Droga wojewódzka
12151261 String8=0x10,Via secundária
12271273 Xpm="0 0 2 0"
12281274 "1 c #FFFFFF"
12291275 "2 c #C5C5C5"
1276 String=Tertiary Road
12301277 String1=0x01,Route tertiaire
12311278 String2=0x02,Straße
1232 String3=0x04,Tertiary
12331279 String4=0x03,Tertiair
12341280 String7=0x15,Droga powiatowa
12351281 String8=0x10,Via terciária
12471293 Xpm="0 0 2 0"
12481294 "1 c #FFFFFF"
12491295 "2 c #C5C5C5"
1296 String=Residential/Minor/Unclassified
12501297 String1=0x01,Rue
12511298 String2=0x02,Straße
1252 String3=0x04,Residential
12531299 String4=0x03,Weg
12541300 String7=0x15,Droga
12551301 String8=0x10,Residencial
12671313 Xpm="0 0 2 0"
12681314 "1 c #FFFFFF"
12691315 "2 c #C5C5C5"
1316 String=Alley
12701317 String1=0x01,Rue
12711318 String2=0x02,Straße
1272 String3=0x04,Street
12731319 String4=0x03,Straat
12741320 String7=0x15,Ulica
12751321 String8=0x10,Rua
12881334 Xpm="0 0 2 0"
12891335 "1 c #F7FABF"
12901336 "2 c #BBC279"
1337 String=Link Road
12911338 String1=0x01,Voie d’accès
12921339 String2=0x02,Bundesstraße (Verbindung)
1293 String3=0x04,Secondary (Link)
12941340 String4=0x03,Secundair (Verbinding)
12951341 String7=0x15,Droga wojewódzka (łącznik)
12961342 String8=0x10,Ligação de via secundária
13081354 Xpm="0 0 2 0"
13091355 "1 c #F9B29C"
13101356 "2 c #D87559"
1357 String=Motorway Link
13111358 String1=0x01,Voie d’accès
13121359 String2=0x02,Schnellstraße (verbindung)
1313 String3=0x04,Trunk (Link)
13141360 String4=0x03,Autoweg (Verbinding)
13151361 String7=0x15,Droga szybkiego ruchu (łącznik)
13161362 String8=0x10,Ligação de via expressa
13291375 "!!!!! !! !!!!! !! !!!!! !! "
13301376 "!!!!! !! !!!!! !! !!!!! !! "
13311377 ;12345678901234567890123456789012
1378 String=Unpaved Road
13321379 String1=0x01,Sans revêtement
13331380 String2=0x02,Unbefestigt
13341381 String3=0x04,Track (Grade unknown)
13491396 Xpm="0 0 2 0"
13501397 "1 c #F9B29C"
13511398 "2 c #D87559"
1399 String=Naming Link
13521400 String1=0x01,Voie d’accès
13531401 String2=0x02,Schnellstraße (verbindung)
1354 String3=0x04,Trunk (Link)
13551402 String4=0x03,Autoweg (Verbinding)
13561403 String7=0x15,Droga szybkiego ruchu (łącznik)
13571404 String8=0x10,Ligação de via expressa
13691416 Xpm="0 0 2 0"
13701417 "1 c #FFFFFF"
13711418 "2 c #C5C5C5"
1419 String=Roundabout
13721420 String1=0x01,Rond point
13731421 String2=0x02,Kreisverkehr
1374 String3=0x04,Roundabout
13751422 String4=0x03,Rotonde
13761423 String7=0x15,Rondo
13771424 String8=0x10,Rotatória
13901437 " !!!! !!!! !!!! !!!! "
13911438 " !!!! !!!! !!!! !!!! "
13921439 ;12345678901234567890123456789012
1440 String=Cycleway
13931441 String1=0x01,Piste cyclable
13941442 String2=0x02,Radweg
1395 String3=0x04,Cycleway
13961443 String4=0x03,Fietspad
13971444 String7=0x15,Ścieżka rowerowa
13981445 String8=0x10,Ciclovia
14131460 "!!!!!!!!########!!!!!!!!########"
14141461 "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
14151462 ;12345678901234567890123456789012
1463 String=Railroad
14161464 String1=0x01,Voie ferrée
14171465 String2=0x02,Gleis
14181466 String3=0x04,Railway
14331481 " c none"
14341482 " "
14351483 ;12345678901234567890123456789012
1484 String=Coastline
14361485 String1=0x01,Littoral
14371486 String2=0x02,Küstelinien
1438 String3=0x04,Coastline
14391487 String4=0x03,Kustlijn
14401488 String7=0x15,Wybrzeże
14411489 String8=0x10,Litoral / Costal
14541502 " c none"
14551503 " !!!!! !!!!! !!!!! !!!!! "
14561504 ;12345678901234567890123456789012
1505 String=Trail
14571506 String1=0x01,Sentier
14581507 String2=0x02,Fußweg
14591508 String3=0x04,Path
14721521 LineWidth=1
14731522 Xpm="0 0 1 0"
14741523 "1 c #AAAAAA"
1475 String3=0x04,Barrier
1524 String=Barrier
14761525 String4=0x03,Barrière
14771526 ExtendedLabels=Y
14781527 FontStyle=NoLabel (invisible)
14851534 LineWidth=2
14861535 Xpm="0 0 1 0"
14871536 "1 c #AAD3DF"
1537 String=Stream
14881538 String1=0x01,Ruisseau
14891539 String2=0x02,Bach
1490 String3=0x04,Stream
14911540 String4=0x03,Beek
14921541 String7=0x15,Strumień
14931542 String8=0x10,Córrego
15061555 " c none"
15071556 " !!!! !!!! !!!! !!!! "
15081557 ;12345678901234567890123456789012
1558 String=Car Ferry
15091559 String1=0x01,Ferry
15101560 String2=0x02,Fähre
1511 String3=0x04,Ferry
15121561 String4=0x03,Ferry
15131562 String7=0x15,Prom
15141563 String8=0x10,Balsa
15271576 " c none"
15281577 " !!!! !!!! !!!! !!!! "
15291578 ;12345678901234567890123456789012
1579 String=Pedestrian Ferry
15301580 String1=0x01,Ferry
15311581 String2=0x02,Fähre
1532 String3=0x04,Ferry
15331582 String4=0x03,Ferry
15341583 String7=0x15,Prom
15351584 String8=0x10,Balsa
15561605 " "
15571606 " "
15581607 ;12345678901234567890123456789012
1608 String=St/Prv Border
15591609 String1=0x01,Limite communale
15601610 String2=0x02,Grenze
15611611 String3=0x04,Boundary
15841634 " "
15851635 " "
15861636 ;12345678901234567890123456789012
1637 String=Country Border
15871638 String1=0x01,Limite départementale
15881639 String2=0x02,Landesgrenze
15891640 String3=0x04,State Boundary
16131664 "!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#"
16141665 "#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!"
16151666 ;12345678901234567890123456789012
1667 String=Intl Border
16161668 String1=0x01,Frontière nationale
16171669 String2=0x02,Staatsgrenze
16181670 String3=0x04,National boundary
16321684 LineWidth=7
16331685 Xpm="0 0 1 0"
16341686 "1 c #AAD3DF"
1687 String=River
16351688 String1=0x01,Rivière, Canal
16361689 String2=0x02,Fluß, Kanal
16371690 String3=0x04,River, Canal
16531706 " c none"
16541707 "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
16551708 ;12345678901234567890123456789012
1709 String=Contour Line
16561710 String1=0x01,Courbe de niveau (20 m)
16571711 String2=0x02,Höhenlinie (20 m)
16581712 String3=0x04,Contour (20 m)
16711725 LineWidth=1
16721726 Xpm="0 0 1 0"
16731727 "1 c #D3A87C"
1728 String=Contour Line
16741729 String1=0x01,Courbe de niveau (100 m)
16751730 String2=0x02,Höhenlinie(100 m)
16761731 String3=0x04,Contour (100 m)
16901745 LineWidth=1
16911746 Xpm="0 0 1 0"
16921747 "1 c #CC9966"
1748 String=Contour Line
16931749 String1=0x01,Courbe de niveau (500 m)
16941750 String2=0x02,Höhenlinie (500 m)
16951751 String3=0x04,Contour (500 m)
17131769 " !!!!! !!!!! !!!!! !!!!! "
17141770 " !!!!! !!!!! !!!!! !!!!! "
17151771 ;12345678901234567890123456789012
1772 String=Intermittent Stream
17161773 String1=0x01,Ruisseau intermittent
17171774 String2=0x02,Wasserlauf (periodisch)
1718 String3=0x04,Stream (Intermittent)
17191775 String4=0x03,Beek (Periodiek)
17201776 String7=0x15,Strumień
17211777 String8=0x10,Córrego intermitente
17321788 LineWidth=12
17331789 Xpm="0 0 1 0"
17341790 "1 c #BBBBCC"
1791 String=Runway
17351792 String1=0x01,Piste d’aviation
17361793 String2=0x02,Startbahn
1737 String3=0x04,Runway
17381794 String4=0x03,Landingsbaan
17391795 String7=0x15,Pas startowy
17401796 String8=0x10,Pista
17561812 " ! ! ! ! "
17571813 " ! ! ! ! "
17581814 ;12345678901234567890123456789012
1815 String=Pipeline
17591816 String1=0x01,Pipeline
17601817 String2=0x02,Rohr
1761 String3=0x04,Pipe
17621818 String4=0x03,Pijpleiding
17631819 String7=0x15,Rurociąg
17641820 String8=0x10,Tubulação
17751831 Xpm="0 0 2 0"
17761832 "1 c #737373"
17771833 "2 c #FFFFFF"
1834 String=Powerline
17781835 String1=0x01,Ligne électrique
17791836 String2=0x02,Hochspannungskabel
1780 String3=0x04,Power cable
17811837 String4=0x03,Hoogspanningskabel
17821838 String7=0x15,Kabel wysokiego napięcia
17831839 String8=0x10,Cabo de força
17931849 LineWidth=7
17941850 Xpm="0 0 1 0"
17951851 "1 c #FFC0CB"
1852 String=Raceway
17961853 String1=0x01,Circuit
17971854 String2=0x02,Rennstrecke
1798 String3=0x04,Raceway
17991855 String4=0x03,Circuit
18001856 String7=0x15,Tor wyścigowy
18011857 String8=0x10,Pista de corrida
18131869 Xpm="0 0 2 0"
18141870 "1 c #F9B29C"
18151871 "2 c #D87559"
1872 String=Roundabout
18161873 String1=0x01,Voie d’accès
18171874 String2=0x02,Schnellstraße (verbindung)
1818 String3=0x04,Trunk (Link)
18191875 String4=0x03,Autoweg (Verbinding)
18201876 String7=0x15,Droga szybkiego ruchu (łącznik)
18211877 String8=0x10,Ligação de via expressa
18331889 Xpm="0 0 2 0"
18341890 "1 c #FCD6A4"
18351891 "2 c #C5A363"
1892 String=Roundabout
18361893 String1=0x01,Voie d’accès
18371894 String2=0x02,Bundesstraße (Verbindung)
1838 String3=0x04,Primary (Link)
18391895 String4=0x03,Primair (Verbinding)
18401896 String7=0x15,Droga krajowa (łącznik)
18411897 String8=0x10,Ligação de via primária
18531909 Xpm="0 0 2 0"
18541910 "1 c #F7FABF"
18551911 "2 c #BBC279"
1912 String=Roundabout
18561913 String1=0x01,Voie d’accès
18571914 String2=0x02,Bundesstraße (Verbindung)
1858 String3=0x04,Secondary (Link)
18591915 String4=0x03,Secundair (Verbinding)
18601916 String7=0x15,Droga wojewódzka (łącznik)
18611917 String8=0x10,Ligação de via secundária
18731929 Xpm="0 0 2 0"
18741930 "1 c #FFFFFF"
18751931 "2 c #C5C5C5"
1932 String=Roundabout
18761933 String1=0x01,Route tertiaire
18771934 String2=0x02,Straße
1878 String3=0x04,Tertiary
18791935 String4=0x03,Tertiair
18801936 String7=0x15,Droga powiatowa
18811937 String8=0x10,Via terciária
18871943 [_line]
18881944 type=0x10a02
18891945 ;GRMN_TYPE: Water Features/INTERMITTENT_STREAM(NT)/Intermittent or dry stream, creek, or ditch/NT
1946 ; not used by default style
18901947 UseOrientation=Y
18911948 Xpm="32 6 2 1"
18921949 "! c #AAD3DF"
18981955 " !! !! !! !! !! !! !! !! "
18991956 " !! !! !! !! !! !! !! !! "
19001957 ;12345678901234567890123456789012
1958 String=River, Wadi (Intermittent)
19011959 String1=0x01,Cours d’eau (intermittent)
19021960 String2=0x02,Fluß (Periodisch)
1903 String3=0x04,River, Wadi (Intermittent)
19041961 String4=0x03,Rivier (Periodiek)
19051962 String7=0x15,Rzeka
19061963 String8=0x10,Rio intermitente
19121969 [_line]
19131970 type=0x10a06
19141971 ;GRMN_TYPE: //
1972 ; not used by default style
19151973 UseOrientation=N
19161974 LineWidth=4
19171975 BorderWidth=1
19181976 Xpm="0 0 2 0"
19191977 "1 c #BBBBBB"
19201978 "2 c #949494"
1979 String=Platform
19211980 String1=0x01,Quai
19221981 String2=0x02,Plattform
1923 String3=0x04,Platform
19241982 String4=0x03,Perron
19251983 String7=0x15,Peron
19261984 String8=0x10,Plataforma
19321990 [_line]
19331991 type=0x10c06
19341992 ;GRMN_TYPE: //
1993 ; not used by default style
19351994 UseOrientation=Y
19361995 Xpm="32 7 2 1"
19371996 "! c #99CCCC"
19442003 "!!####!!!!####!!!!####!!!!####!!"
19452004 "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
19462005 ;12345678901234567890123456789012
2006 String=Road (Construction)
19472007 String1=0x01,Route (en travaux)
19482008 String2=0x02,Weg (Im bau)
1949 String3=0x04,Road (Construction)
19502009 String4=0x03,Weg (In aanleg)
19512010 String7=0x15,Droga (w budowie)
19522011 String8=0x10,Rodovia em construção
19552014 FontStyle=NoLabel (invisible)
19562015 CustomColor=No
19572016 [end]
2017 ;
19582018 [_point]
19592019 type=0x001
19602020 subtype=0x00
19612021 ;GRMN_TYPE: Political Entities/CITY_10M/Large city with >10 million inhabitants/Non NT
2022 String=City (>1m)
19622023 String1=0x01,Capitale
19632024 String2=0x02,Hauptstadt
1964 String3=0x04,Capital
19652025 String4=0x03,Hoofdstad
19662026 String7=0x15,Stolica
19672027 String8=0x10,Capital
19902050 type=0x002
19912051 subtype=0x00
19922052 ;GRMN_TYPE: Political Entities/CITY_5M, LARGE_CITY/Large city center, typically 1M+ inhabitants/Non NT
2053 String=City (>800k)
19932054 String1=0x01,Capitale
19942055 String2=0x02,Hauptstadt
1995 String3=0x04,Capital
19962056 String4=0x03,Hoofdstad
19972057 String7=0x15,Stolica
19982058 String8=0x10,Capital
20212081 type=0x003
20222082 subtype=0x00
20232083 ;GRMN_TYPE: Political Entities/CITY_2M/Large city with a range of (2, 5] million inhabitants/Non NT
2084 String=City (>400k)
20242085 String1=0x01,Ville (>200k)
20252086 String2=0x02,Stadt (200t)
2026 String3=0x04,City (>200k)
20272087 String4=0x03,Stad (>200k)
20282088 String7=0x15,Miasto (>200 tys.)
20292089 String8=0x10,Cidade (>200k)
20502110 type=0x004
20512111 subtype=0x00
20522112 ;GRMN_TYPE: Political Entities/CITY_1M/Large city with a range of (1, 2] million inhabitants/Non NT
2113 String=City (>300k)
20532114 String1=0x01,Ville (>200k)
20542115 String2=0x02,Stadt (200t)
2055 String3=0x04,City (>200k)
20562116 String4=0x03,Stad (>200k)
20572117 String7=0x15,Miasto (>200 tys.)
20582118 String8=0x10,Cidade (>200k)
20792139 type=0x005
20802140 subtype=0x00
20812141 ;GRMN_TYPE: Political Entities/CITY_500K/City with the range of (0.5, 1] million inhabitants/Non NT
2142 String=City (>200k)
20822143 String1=0x01,Ville (>200k)
20832144 String2=0x02,Stadt (200t)
2084 String3=0x04,City (>200k)
20852145 String4=0x03,Stad (>200k)
20862146 String7=0x15,Miasto (>200 tys.)
20872147 String8=0x10,Cidade (>200k)
21082168 type=0x006
21092169 subtype=0x00
21102170 ;GRMN_TYPE: Political Entities/CITY_200K/City with the range of (200, 500] thousand inhabitants/Non NT
2171 String=Small City / Large Town
21112172 String1=0x01,Ville (>50k)
21122173 String2=0x02,Stadt (50t)
2113 String3=0x04,City (>50k)
21142174 String4=0x03,Woonplaats (>50k)
21152175 String7=0x15,Miasto (>50 tys.)
21162176 String8=0x10,Cidade (>50k)
21372197 type=0x007
21382198 subtype=0x00
21392199 ;GRMN_TYPE: Political Entities/CITY_100K/City with the range of (100, 200] thousand inhabitants/Non NT
2200 String=Small City / Medium Town
21402201 String1=0x01,Ville (>10k)
21412202 String2=0x02,Stadt (10t)
2142 String3=0x04,City (>10k)
21432203 String4=0x03,Woonplaats (>10k)
21442204 String7=0x15,Miasto (>10 tys.)
21452205 String8=0x10,Cidade (>10k)
21582218 type=0x008
21592219 subtype=0x00
21602220 ;GRMN_TYPE: Political Entities/CITY_50K, MEDIUM_CITY/Medium city center, typically 50K-1M inhabitants/Non NT
2221 String=Small City / Town
21612222 String1=0x01,Village (>5k)
21622223 String2=0x02,Dorf (>5t)
2163 String3=0x04,Village (>5k)
21642224 String4=0x03,Dorp (>5k)
21652225 String7=0x15,Wieś (>5 tys.)
21662226 String8=0x10,Povoado (>5k)
21792239 type=0x009
21802240 subtype=0x00
21812241 ;GRMN_TYPE: Political Entities/CITY_20K/City with the range of (20, 50] thousand inhabitants/Non NT
2242 String=Small Town / Village
21822243 String1=0x01,Village (>5k)
21832244 String2=0x02,Dorf (>5t)
2184 String3=0x04,Village (>5k)
21852245 String4=0x03,Dorp (>5k)
21862246 String7=0x15,Wieś (>5 tys.)
21872247 String8=0x10,Povoado (>5k)
22002260 type=0x00a
22012261 subtype=0x00
22022262 ;GRMN_TYPE: Political Entities/CITY_10K/City with the range of (10, 20] thousand inhabitants/Non NT
2263 String=Small Town / Suburb
22032264 String1=0x01,Hameau
22042265 String2=0x02,Ort, Weiler
2205 String3=0x04,Hamlet
22062266 String4=0x03,Gehucht
22072267 String7=0x15,Wioska
22082268 String8=0x10,Lugarejo
22212281 type=0x00b
22222282 subtype=0x00
22232283 ;GRMN_TYPE: Political Entities/CITY_5K/City with the range of (5, 10] thousand inhabitants/Non NT
2284 String=Hamlet
22242285 String1=0x01,Nom
22252286 String2=0x02,Name
2226 String3=0x04,Name
22272287 String4=0x03,Naam
22282288 String7=0x15,Nazwa
22292289 String8=0x10,Nome
22422302 type=0x021
22432303 subtype=0x00
22442304 ;GRMN_TYPE: //
2305 String=Exit
22452306 String1=0x01,Sortie
22462307 String2=0x02,Ausfahrt
2247 String3=0x04,Ext
22482308 String4=0x03,Afrit
22492309 String7=0x15,Zjazd
22502310 String8=0x10,Saída
22662326 type=0x021
22672327 subtype=0x0f
22682328 ;GRMN_TYPE: //
2329 String=Services
22692330 String1=0x01,Sortie
22702331 String2=0x02,Ausfahrt
2271 String3=0x04,Ext
22722332 String4=0x03,Afrit
22732333 String7=0x15,Zjazd
22742334 String8=0x10,Saída
22902350 type=0x02a
22912351 subtype=0x00
22922352 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT/General restaurant of unknown genre/Non NT
2353 String=Restaurant
22932354 String1=0x01,Restaurant
22942355 String2=0x02,Restaurant
2295 String3=0x04,Restaurant
22962356 String4=0x03,Restaurant
22972357 String7=0x15,Restauracja
22982358 String8=0x10,Restaurante
23262386 type=0x02a
23272387 subtype=0x01
23282388 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_AMERICAN/American cuisine/Non NT
2389 String=Restaurant (American/Burger)
23292390 String1=0x01,Restaurant (Américain)
23302391 String2=0x02,Restaurant
2331 String3=0x04,Restaurant (American)
23322392 String4=0x03,Restaurant (Amerikaans)
23332393 String7=0x15,Restauracja (Amerykańska)
23342394 String8=0x10,Restaurante americano
23622422 type=0x02a
23632423 subtype=0x02
23642424 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_ASIAN/Asian cuisine/Non NT
2425 String=Restaurant (Asian)
23652426 String1=0x01,Restaurant (Asiatique)
23662427 String2=0x02,Restaurant (Asiatisch)
2367 String3=0x04,Restaurant (Asia)
23682428 String4=0x03,Restaurant (Aziatisch)
23692429 String7=0x15,Restauracja (Azjatycka)
23702430 String8=0x10,Restaurante asiático
23982458 type=0x02a
23992459 subtype=0x03
24002460 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_BARBECUE/Barbecue cuisine/Non NT
2461 String=Restaurant (BBQ/Kebab)
24012462 String1=0x01,Restaurant (Grill)
24022463 String2=0x02,Restaurant
2403 String3=0x04,Restaurant (BBQ)
24042464 String4=0x03,Restaurant (BBQ)
24052465 String7=0x15,Restauracja (Grill)
24062466 String8=0x10,Churrascaria
24342494 type=0x02a
24352495 subtype=0x04
24362496 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_CHINESE/Chinese cuisine/Non NT
2497 String=Restaurant (Chinese/Vietnamese)
24372498 String1=0x01,Restaurant (Chinois)
24382499 String2=0x02,Restaurant (Chinesisch)
2439 String3=0x04,Restaurant (Chinese)
24402500 String4=0x03,Restaurant (Chinees)
24412501 String7=0x15,Restauracja (Chińska)
24422502 String8=0x10,Restaurante chinês
24702530 type=0x02a
24712531 subtype=0x05
24722532 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_DELI/Deli or sandwich shop/Non NT
2533 String=Deli/Bakery
24732534 String1=0x01,Restaurant (Grec)
24742535 String2=0x02,Restaurant (Griechisch)
2475 String3=0x04,Restaurant (Greek)
24762536 String4=0x03,Restaurant (Delicatesse)
24772537 String7=0x15,Restauracja (Grecka)
24782538 String8=0x10,Restaurante grego
25062566 type=0x02a
25072567 subtype=0x06
25082568 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_INTRNTNL/International cuisine/Non NT
2569 String=Restaurant (International)
25092570 String1=0x01,Restaurant (International)
25102571 String2=0x02,Restaurant
2511 String3=0x04,Restaurant (International)
25122572 String4=0x03,Restaurant (Internationaal)
25132573 String7=0x15,Restauracja (Międzynarodowa)
25142574 String8=0x10,Restaurante Internacional
25422602 type=0x02a
25432603 subtype=0x07
25442604 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_FAST_FOOD/Fast food establishment, i.e. McDonalds/Non NT
2605 String=Fast Food
25452606 String1=0x01,Restauration rapide
25462607 String2=0x02,Restaurant (Fastfood)
2547 String3=0x04,Restaurant (Fastfood)
25482608 String4=0x03,Restaurant (Fastfood)
25492609 String7=0x15,Restauracja (Fastfood)
25502610 String8=0x10,Lanchonete
25712631 type=0x02a
25722632 subtype=0x08
25732633 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_ITALIAN/Italian cuisine/Non NT
2634 String=Restaurant (Italian)
25742635 String1=0x01,Restaurant (Italien)
25752636 String2=0x02,Restaurant (Italienisch)
2576 String3=0x04,Restaurant (Italian)
25772637 String4=0x03,Restaurant (Italiaans)
25782638 String7=0x15,Restauracja (Włoska)
25792639 String8=0x10,Restaurante italiano
26072667 type=0x02a
26082668 subtype=0x09
26092669 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_MEXICAN/Mexican cuisine/Non NT
2610 String1=0x01,Restaurant (Mexicain)
2670 String=Restaurant (Mexican/Spanish)
2671 String1=0x01,Restaurant (Mexicain/P)
26112672 String2=0x02,Restaurant (Mexikanisch)
2612 String3=0x04,Restaurant (Mexican)
26132673 String4=0x03,Restaurant (Mexicaans)
26142674 String7=0x15,Restauracja (Meksykańska)
26152675 String8=0x10,Restaurante mexicano
26432703 type=0x02a
26442704 subtype=0x0a
26452705 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_PIZZA/Pizzeria/Non NT
2706 String=Pizzeria
26462707 String1=0x01,Pizzeria
26472708 String2=0x02,Restaurant (Pizza)
2648 String3=0x04,Restaurant (Pizza)
26492709 String4=0x03,Restaurant (Pizza)
26502710 String7=0x15,Restauracja (Pizza)
26512711 String8=0x10,Pizzaria
26792739 type=0x02a
26802740 subtype=0x0b
26812741 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_SEAFOOD/Seafood restaurant/Non NT
2742 String=Restaurant (Seafood)
26822743 String1=0x01,Restaurant (Poissons/Fruits de mer)
26832744 String2=0x02,Restaurant (Fisch)
2684 String3=0x04,Restaurant (Fisch)
26852745 String4=0x03,Restaurant (Vis)
26862746 String7=0x15,Restauracja (Ryby)
26872747 String8=0x10,Restaurante Frutos do Mar
27152775 type=0x02a
27162776 subtype=0x0c
27172777 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_STEAK/Grill and steak brew pub restaurant/Non NT
2778 String=Restaurant (Steak/Grill)
27182779 String1=0x01,Restaurant (Steak)
27192780 String2=0x02,Restaurant (Steak)
2720 String3=0x04,Restaurant (Steak)
27212781 String4=0x03,Restaurant (Steak)
27222782 String7=0x15,Restauracja (Steki)
27232783 String8=0x10,Restaurante de carnes
27512811 type=0x02a
27522812 subtype=0x0d
27532813 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_DONUTS/Donut shop/Non NT
2814 String=Restaurant (Bagel/Donut)
27542815 String1=0x01,Restaurant (Beignets)
27552816 String2=0x02,Restaurant (Bagel)
2756 String3=0x04,Restaurant (Donuts)
27572817 String4=0x03,Restaurant (Donuts)
27582818 String7=0x15,Restauracja (Pączki)
27592819 String8=0x10,Doceria
27832843 type=0x02a
27842844 subtype=0x0e
27852845 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_CAFES/Cafe or coffee shop/Non NT
2846 String=Cafe/Diner
27862847 String1=0x01,Café
27872848 String2=0x02,Cafe
2788 String3=0x04,Cafe
27892849 String4=0x03,Cafe
27902850 String7=0x15,Kawiarnia
27912851 String8=0x10,Café
28152875 type=0x02a
28162876 subtype=0x0f
28172877 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_FRENCH/French cuisine/Non NT
2878 String=Restaurant (French)
28182879 String1=0x01,Restaurant (Français)
28192880 String2=0x02,Restaurant
2820 String3=0x04,Restaurant (French)
28212881 String4=0x03,Restaurant (Frans)
28222882 String7=0x15,Restauracja (Francuska)
28232883 String8=0x10,Restaurante francês
28512911 type=0x02a
28522912 subtype=0x10
28532913 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_GERMAN/German cuisine/Non NT
2914 String=Restaurant (German)
28542915 String1=0x01,Restaurant (Allemand)
28552916 String2=0x02,Restaurant (Deutsch)
2856 String3=0x04,Restaurant (German)
28572917 String4=0x03,Restaurant (Duits)
28582918 String7=0x15,Restauracja (Niemiecka)
28592919 String8=0x10,Restaurante alemão
28872947 type=0x02a
28882948 subtype=0x11
28892949 ;GRMN_TYPE: Business - Food and Drink/RESTAURANT_BRITISH/British cuisine/Non NT
2950 String=Restaurant (British/Fish & Chips)
28902951 String1=0x01,Restaurant (Anglais)
28912952 String2=0x02,Restaurant
2892 String3=0x04,Restaurant (British)
28932953 String4=0x03,Restaurant (Brits)
28942954 String7=0x15,Restauracja (Angielska)
28952955 String8=0x10,Restaurante inglês
29232983 type=0x02a
29242984 subtype=0x12
29252985 ;GRMN_TYPE: //
2986 String=Restaurant (Speciality/Regional)
29262987 String1=0x01,Restaurant (Spécialités)
29272988 String2=0x02,Restaurant
2928 String3=0x04,Restaurant (Special)
29292989 String4=0x03,Restaurant (Speciaal)
29302990 String7=0x15,Restauracja (Specjalna)
29312991 String8=0x10,Restaurante especial
29593019 type=0x02a
29603020 subtype=0x13
29613021 ;GRMN_TYPE: //
3022 String=Restaurant (Other)
29623023 String1=0x01,Restaurant (Végétarien)
29633024 String2=0x02,Restaurant (Vegetarisch)
2964 String3=0x04,Restaurant (Vegetarian)
29653025 String4=0x03,Restaurant (Vegetarisch)
29663026 String7=0x15,Restauracja (Wegetariańska)
29673027 String8=0x10,Restaurante vegetariano
29953055 type=0x02a
29963056 subtype=0x14
29973057 ;GRMN_TYPE: //
3058 ; not used by default style
29983059 String1=0x01,Restaurant (Régional)
29993060 String2=0x02,Restaurant
30003061 String3=0x04,Restaurant (Regional)
30313092 type=0x02b
30323093 subtype=0x01
30333094 ;GRMN_TYPE: Business - Lodging/HOTEL/Hotel/Non NT
3095 String=Hotel/Motel
30343096 String1=0x01,Hôtel
30353097 String2=0x02,Hotel
3036 String3=0x04,Hotel
30373098 String4=0x03,Hotel
30383099 String7=0x15,Hotel
30393100 String8=0x10,Hotel
30613122 type=0x02b
30623123 subtype=0x02
30633124 ;GRMN_TYPE: Business - Lodging/BED_AND_BREAKFAST/Bed and breakfast inn/Non NT
3125 String=Bed & Breakfast/Guesthouse
30643126 String1=0x01,Chambre d'hôtes
30653127 String2=0x02,Pension
3066 String3=0x04,Guesthouse
30673128 String4=0x03,Bed en breakfast
30683129 String7=0x15,Pensjonat
30693130 String8=0x10,Pensão
30983159 type=0x02b
30993160 subtype=0x05
31003161 ;GRMN_TYPE: //
3162 String=Camp/Caravan site
31013163 String1=0x01,Camping
31023164 String2=0x02,Campingplatz
3103 String3=0x04,Campsite
31043165 String4=0x03,Camping
31053166 String7=0x15,Kemping
31063167 String8=0x10,Camping
31313192 type=0x02b
31323193 subtype=0x06
31333194 ;GRMN_TYPE: //
3195 String=Shelter
31343196 String1=0x01,Abri
31353197 String2=0x02,Schutzhütte
3136 String3=0x04,Shelter
31373198 String4=0x03,Schuilplek
31383199 String7=0x15,Schronienie
31393200 String8=0x10,Cabana
31663227 type=0x02b
31673228 subtype=0x07
31683229 ;GRMN_TYPE: //
3230 String=Wilderness Hut
31693231 String1=0x01,Refuge
31703232 String2=0x02,Bergschutzhütte
3171 String3=0x04,Shelter
31723233 String4=0x03,Bergschuilhut
31733234 String7=0x15,Schronisko
31743235 String8=0x10,Cabana
32003261 type=0x02c
32013262 subtype=0x01
32023263 ;GRMN_TYPE: Business - Attractions/THEME_PARK/Amusement or theme park, i.e. Disneyland/Non NT
3264 String=Amusement/Theme Park
32033265 String1=0x01,Parc d'attractions
32043266 String2=0x02,Freizeitpark
3205 String3=0x04,Themepark
32063267 String4=0x03,Attractiepark
32073268 String7=0x15,Park rozrywki
32083269 String8=0x10,Parque temático / diversão
32213282 type=0x02c
32223283 subtype=0x02
32233284 ;GRMN_TYPE: Business - Attractions/MUSEUM/Museum or historical society/Non NT
3285 String=Museum/Historical
32243286 String1=0x01,Musée
32253287 String2=0x02,Museum
3226 String3=0x04,Museum
32273288 String4=0x03,Museum
32283289 String7=0x15,Muzeum
32293290 String8=0x10,Museu
32543315 type=0x02c
32553316 subtype=0x03
32563317 ;GRMN_TYPE: Business - Attractions/LIBRARY/Library/Non NT
3318 String=Library
32573319 String1=0x01,Bibliothèque
32583320 String2=0x02,Bibliothek
3259 String3=0x04,Library
32603321 String4=0x03,Bibliotheek
32613322 String7=0x15,Biblioteka
32623323 String8=0x10,Biblioteca
32863347 type=0x02c
32873348 subtype=0x04
32883349 ;GRMN_TYPE: Business - Attractions/LANDMARK/Landmark/Non NT
3350 String=Landmark/Arts/Attraction/Viewpoint
32893351 String1=0x01,Point de vue, œuvre d'art, attraction
32903352 String2=0x02,Aussichtspunkt, Kunstwerk, Attraktion
3291 String3=0x04,Artwork,Attraction, Viewpoint
32923353 String4=0x03,Bezienswaardigheid
32933354 String7=0x15,Sztuka, Atrakcja, Punkt widokowy
32943355 String8=0x10,Atração
33233384 type=0x02c
33243385 subtype=0x05
33253386 ;GRMN_TYPE: Business - Attractions/SCHOOL/School/Non NT
3387 String=Education
33263388 String1=0x01,École
33273389 String2=0x02,Schule
3328 String3=0x04,Education
33293390 String4=0x03,Educatie
33303391 String7=0x15,Edukacja
33313392 String8=0x10,Escola
33443405 type=0x02c
33453406 subtype=0x06
33463407 ;GRMN_TYPE: Business - Attractions/GARDEN, PARK/Garden, park/Non NT
3408 String=Park/Garden/Playground
33473409 String1=0x01,Aire de jeu
33483410 String2=0x02,Spielplatz
3349 String3=0x04,Playground
33503411 String4=0x03,Speelplaats
33513412 String7=0x15,Plac zabaw
33523413 String8=0x10,Parque infantil
33803441 type=0x02c
33813442 subtype=0x07
33823443 ;GRMN_TYPE: Business - Attractions/ZOO/Zoo/Non NT
3444 String=Zoo/Aquarium
33833445 String1=0x01,Zoo
33843446 String2=0x02,Zoo
3385 String3=0x04,Zoo
33863447 String4=0x03,Dierentuin
33873448 String7=0x15,Zoo
33883449 String8=0x10,Zoológico
34013462 type=0x02c
34023463 subtype=0x08
34033464 ;GRMN_TYPE: Business - Attractions/ARENA/Arena or track/Non NT
3465 String=Arena/Track
34043466 String1=0x01,Sport
34053467 String2=0x02,Sport
3406 String3=0x04,Sport
34073468 String4=0x03,Sport
34083469 String7=0x15,Sport
34093470 String8=0x10,Esporte
34223483 type=0x02c
34233484 subtype=0x09
34243485 ;GRMN_TYPE: Business - Attractions/HALL/Auditorium or hall/Non NT
3486 String=Hall/Auditorium
34253487 String1=0x01,Auditorium
34263488 String2=0x02,Konferenzzentrum
3427 String3=0x04,Conference
34283489 String4=0x03,Conferentiecentrum
34293490 String7=0x15,Centrum konferencyjne
34303491 String8=0x10,Conferência
34423503 type=0x02c
34433504 subtype=0x0a
34443505 ;GRMN_TYPE: Business - Attractions/WINERY/Winery/Non NT
3506 String=Winery
34453507 String1=0x01,Cave à vin
34463508 String2=0x02,Weinkeller
3447 String3=0x04,Winery
34483509 String4=0x03,Wijnmaker
34493510 String7=0x15,Winiarnia
34503511 String8=0x10,Adega
34623523 type=0x02c
34633524 subtype=0x0b
34643525 ;GRMN_TYPE: Business - Attractions/PLACE_OF_WORSHIP/Religious place of worship/Non NT
3526 String=Place of Worship
34653527 String1=0x01,Lieu de culte
34663528 String2=0x02,Religiöses Gebäude
3467 String3=0x04,Religious building
34683529 String4=0x03,Gebedshuis
34693530 String7=0x15,Budynek religijny
34703531 String8=0x10,Edifício religioso
34973558 type=0x02c
34983559 subtype=0x0c
34993560 ;GRMN_TYPE: //
3561 String=Hot Spring / Volcano
35003562 String1=0x01,Volcan
35013563 String2=0x02,Vulkan
3502 String3=0x04,Vulcano
35033564 String4=0x03,Vulkaan
35043565 String7=0x15,Wulkan
35053566 String8=0x10,Vulcão
35273588 type=0x02c
35283589 subtype=0x0d
35293590 ;GRMN_TYPE: Business - Attractions/POW_MOSQUE/Religious place of worship/Non NT
3591 String=Tourist attraction
35303592 String1=0x01,Attraction touristique
35313593 String2=0x02,Touristenattraktion
3532 String3=0x04,Tourist attraction
35333594 String4=0x03,Touristische attractie
35343595 String7=0x15,Atrakcja turystyczna
35353596 String8=0x10,Atração turística
35523613 type=0x02d
35533614 subtype=0x01
35543615 ;GRMN_TYPE: Business - Entertainment/LIVE_THEATER/Live theater/Non NT
3616 String=Live Theatre
35553617 String1=0x01,Théâtre
35563618 String2=0x02,Theater
3557 String3=0x04,Theatre
35583619 String4=0x03,Theater
35593620 String7=0x15,Teatr
35603621 String8=0x10,Teatro
35853646 type=0x02d
35863647 subtype=0x02
35873648 ;GRMN_TYPE: Business - Entertainment/BAR/Bar or club/Non NT
3649 String=Bar/Nightclub
35883650 String1=0x01,Bar
35893651 String2=0x02,Bar
3590 String3=0x04,Bar
3652 String3=0x04,Pub
35913653 String4=0x03,Bar
35923654 String7=0x15,Bar
35933655 String8=0x10,Bar
36163678 type=0x02d
36173679 subtype=0x03
36183680 ;GRMN_TYPE: Business - Entertainment/MOVIE_THEATER/Movie theater or cinema/Non NT
3681 String=Movie Theatre
36193682 String1=0x01,Cinéma
36203683 String2=0x02,Kino
36213684 String3=0x04,Cinema
36493712 type=0x02d
36503713 subtype=0x04
36513714 ;GRMN_TYPE: Business - Entertainment/CASINO/Casino/Non NT
3715 String=Casino
36523716 String1=0x01,Casino
36533717 String2=0x02,Casino
3654 String3=0x04,Casino
36553718 String4=0x03,Casino
36563719 String7=0x15,Kasyno
36573720 String8=0x10,Cassino
36843747 type=0x02d
36853748 subtype=0x05
36863749 ;GRMN_TYPE: Business - Entertainment/GOLF_COURSE/Golf course/Non NT
3750 String=Golf Course
36873751 String1=0x01,Golf
36883752 String2=0x02,Golfplatz
3689 String3=0x04,Golf course
36903753 String4=0x03,Golfbaan
36913754 String7=0x15,Golf
36923755 String8=0x10,Campo de golfe
37223785 type=0x02d
37233786 subtype=0x06
37243787 ;GRMN_TYPE: Business - Entertainment/SKI_CENTER/Ski area or resort/Non NT
3788 String=Skiing Center/Resort
37253789 String1=0x01,Ski
37263790 String2=0x02,Ski
3727 String3=0x04,Ski
37283791 String4=0x03,Ski
37293792 String7=0x15,Narty
37303793 String8=0x10,Esqui
37553818 type=0x02d
37563819 subtype=0x07
37573820 ;GRMN_TYPE: Business - Entertainment/BOWLING/Bowling alley/Non NT
3821 String=Bowling Center
37583822 String1=0x01,Bowling
37593823 String2=0x02,Bowling
3760 String3=0x04,Bowling alley
3824 String3=0x04,Bowling Alley
37613825 String4=0x03,Bowlingbaan
37623826 String7=0x15,Kręgle
37633827 String8=0x10,Boliche
37913855 type=0x02d
37923856 subtype=0x08
37933857 ;GRMN_TYPE: Business - Entertainment/ICE_SKATING/Ice skating rink/Non NT
3858 String=Ice Skating
37943859 String1=0x01,Patinoire
37953860 String2=0x02,Eisbahn
3796 String3=0x04,Ice skating
37973861 String4=0x03,Schaatsbaan
37983862 String7=0x15,Lodowisko
37993863 String8=0x10,Patinação no gelo
38243888 type=0x02d
38253889 subtype=0x09
38263890 ;GRMN_TYPE: Business - Entertainment/SWIMMING_POOL/Swimming pool/Non NT
3891 String=Swimming Pool
38273892 String1=0x01,Piscine
38283893 String2=0x02,Schwimmbad
3829 String3=0x04,Swimmingpool
38303894 String4=0x03,Zwembad
38313895 String7=0x15,Basen
38323896 String8=0x10,Piscina
38573921 type=0x02d
38583922 subtype=0x0a
38593923 ;GRMN_TYPE: Business - Entertainment/FITNESS_CENTER/Fitness center or gym/Non NT
3924 String=Sports Fitnes Center
38603925 String1=0x01,Centre sportif
38613926 String2=0x02,Sportzentrum
3862 String3=0x04,Sports centre
38633927 String4=0x03,Sportcentrum
38643928 String7=0x15,Centrum sportowe
38653929 String8=0x10,Centro esportivo
38783942 type=0x02d
38793943 subtype=0x0b
38803944 ;GRMN_TYPE: Business - Entertainment/SPORT_AIRPORT/Sport or R-C airport/Non NT
3945 String=Public Sport Airport
38813946 String1=0x01,Aéroport
38823947 String2=0x02,Flughafen
3883 String3=0x04,Airport
38843948 String4=0x03,Luchthaven
38853949 String7=0x15,Lotnisko
38863950 String8=0x10,Aeroporto
39143978 type=0x02e
39153979 subtype=0x01
39163980 ;GRMN_TYPE: Business - Shopping/DEPARTMENT_STORE/Department store/Non NT
3981 String=Department Store
39173982 String1=0x01,Hypermarché
39183983 String2=0x02,Kaufhaus
3919 String3=0x04,Mall
39203984 String4=0x03,Warenhuis
39213985 String7=0x15,Centrum handlowe
39223986 String8=0x10,Shopping Center
39504014 type=0x02e
39514015 subtype=0x02
39524016 ;GRMN_TYPE: Business - Shopping/GROCERY_STORE/Grocery store/Non NT
4017 String=Grocery Store
39534018 String1=0x01,Boulangerie
39544019 String2=0x02,Bäckerei
3955 String3=0x04,Backery
39564020 String4=0x03,Bakker
39574021 String7=0x15,Piekarnia
39584022 String8=0x10,Padaria
39774041 type=0x02e
39784042 subtype=0x03
39794043 ;GRMN_TYPE: Business - Shopping/GENERAL_STORE/General store/Non NT
4044 String=General Merchandise
39804045 String1=0x01,Supermarché
39814046 String2=0x02,Supermarkt
3982 String3=0x04,Generic store
39834047 String4=0x03,Algemeen
39844048 String7=0x15,Supermarket
39854049 String8=0x10,Loja
40074071 type=0x02e
40084072 subtype=0x04
40094073 ;GRMN_TYPE: Business - Shopping/SHOPPING_CENTER/Shopping center or mall/Non NT
4074 String=Shopping Center
40104075 String1=0x01,Centre commercial
40114076 String2=0x02,Einkaufszentrum
4012 String3=0x04,Shopping center
40134077 String4=0x03,Winkelcentrum
40144078 String7=0x15,Centrum handlowe
40154079 String8=0x10,Shopping Center
40434107 type=0x02e
40444108 subtype=0x05
40454109 ;GRMN_TYPE: Business - Shopping/PHARMACY/Pharmacy/Non NT
4110 String=Pharmacy/Chemist
40464111 String1=0x01,Pharmacie
40474112 String2=0x02,Apotheke
4048 String3=0x04,Pharmacy
40494113 String4=0x03,Apotheek
40504114 String7=0x15,Apteka
40514115 String8=0x10,Farmácia
40764140 type=0x02e
40774141 subtype=0x06
40784142 ;GRMN_TYPE: Business - Shopping/CONVENIENCE_STORE/Convenience store/Non NT
4143 String=Convenience with Auto Fuel
40794144 String1=0x01,Station-service
40804145 String2=0x02,Tankstellenshop
4081 String3=0x04,Gasstation shop
40824146 String4=0x03,Tankstation shop
40834147 String7=0x15,Sklep na stacji paliw
40844148 String8=0x10,Loja de conveniência
41004164 type=0x02e
41014165 subtype=0x07
41024166 ;GRMN_TYPE: Business - Shopping/CLOTHING_RETAIL/Clothing store/Non NT
4167 String=Apparel
41034168 String1=0x01,Magasin de vêtements
41044169 String2=0x02,Bekleidungsgeschäft
4105 String3=0x04,Clothing store
4170 String3=0x04,Clothes Shop
41064171 String4=0x03,Kleding
41074172 String7=0x15,Sklep odzieżowy
41084173 String8=0x10,Loja de roupas
41304195 type=0x02e
41314196 subtype=0x08
41324197 ;GRMN_TYPE: Business - Shopping/HOME_AND_GARDEN_STORE/House and garden store/Non NT
4198 String=House & Garden
41334199 String1=0x01,Jardinerie
41344200 String2=0x02,Gartencentrum
4135 String3=0x04,Garden center
4201 String3=0x04,Garden Center
41364202 String4=0x03,Huis- en tuin
41374203 String7=0x15,Centrum ogrodnicze
41384204 String8=0x10,Loja de jardinagem
41644230 type=0x02e
41654231 subtype=0x09
41664232 ;GRMN_TYPE: Business - Shopping/HOME_FURNISHINGS_STORE/Furniture store/Non NT
4233 String=Home Furnishings
41674234 String1=0x01,Magasin d’ameublement
41684235 String2=0x02,Möbelgeschäft
41694236 String3=0x04,Furniture
41934260 type=0x02e
41944261 subtype=0x0a
41954262 ;GRMN_TYPE: Business - Shopping/SPECIALTY_RETAIL/Specialty store/Non NT
4263 String=Speciality Retail / Organic
41964264 String1=0x01,Magasin
41974265 String2=0x02,Geschäft
4198 String3=0x04,Shop
41994266 String4=0x03,Winkel
42004267 String7=0x15,Sklep
42014268 String8=0x10,Loja
42174284 type=0x02e
42184285 subtype=0x0b
42194286 ;GRMN_TYPE: Business - Shopping/SOFTWARE_RETAIL/Computer software store/Non NT
4287 String=Computer/Software
42204288 String1=0x01,Magasin d’électronique
42214289 String2=0x02,Computerhandel
4222 String3=0x04,Electronics
42234290 String4=0x03,Elektronica
42244291 String7=0x15,Elektronika
42254292 String8=0x10,Loja de eletrônicos
42504317 type=0x02e
42514318 subtype=0x0c
42524319 ;GRMN_TYPE: //
4320 String=Shop
42534321 String1=0x01,Magasin
42544322 String2=0x02,Geschäft
4255 String3=0x04,Shop
42564323 String4=0x03,Winkel
42574324 String7=0x15,Sklep
42584325 String8=0x10,Loja
42744341 type=0x02f
42754342 subtype=0x01
42764343 ;GRMN_TYPE: Business - Services/GAS_STATION/Gas, fuel station/Non NT
4344 String=Auto-Fuel Station
42774345 String1=0x01,Station-essence
42784346 String2=0x02,Tankstelle
4279 String3=0x04,Gas station
42804347 String4=0x03,Tankstation
42814348 String7=0x15,Stacja paliw
42824349 String8=0x10,Posto de combustível
43094376 type=0x02f
43104377 subtype=0x02
43114378 ;GRMN_TYPE: Business - Services/AUTO_RENTAL/Car rental location/Non NT
4379 String=Car rental
43124380 String1=0x01,Location de voitures
43134381 String2=0x02,Autoverleih
4314 String3=0x04,Car rental
43154382 String4=0x03,Autoverhuur
43164383 String7=0x15,Wypożyczalnia samochodów
43174384 String8=0x10,Aluguel de carro
43424409 type=0x02f
43434410 subtype=0x03
43444411 ;GRMN_TYPE: Business - Services/AUTO_REPAIR/Car repair, mechanic/Non NT
4412 String=Car Repairs
43454413 String1=0x01,Réparation automobile
43464414 String2=0x02,Autowerkstatt
4347 String3=0x04,Garage
43484415 String4=0x03,Autogarage
43494416 String7=0x15,Garaż
43504417 String8=0x10,Garagem
43754442 type=0x02f
43764443 subtype=0x04
43774444 ;GRMN_TYPE: Business - Services/AIRPORT/Airport/Non NT
4445 String=Airport
43784446 String1=0x01,Aéroport
43794447 String2=0x02,Flughafen
4380 String3=0x04,Airport
43814448 String4=0x03,Luchthaven
43824449 String7=0x15,Lotnisko
43834450 String8=0x10,Aeroporto
44114478 type=0x02f
44124479 subtype=0x05
44134480 ;GRMN_TYPE: Business - Services/POST_OFFICE/Post office/Non NT
4481 String=Post Office
44144482 String1=0x01,Poste
44154483 String2=0x02,Postamt
4416 String3=0x04,Postoffice
44174484 String4=0x03,Postkantoor
44184485 String7=0x15,Poczta
44194486 String8=0x10,Correio
44404507 type=0x02f
44414508 subtype=0x06
44424509 ;GRMN_TYPE: Business - Services/BANK/Bank/Non NT
4510 String=Bank/ATM
44434511 String1=0x01,Banque
44444512 String2=0x02,Bank
4445 String3=0x04,Bank
44464513 String4=0x03,Bank
44474514 String7=0x15,Bank
44484515 String8=0x10,Banco
44714538 type=0x02f
44724539 subtype=0x07
44734540 ;GRMN_TYPE: Business - Services/DEALER/Dealer of manufactured goods/Non NT
4541 String=Car/Parts Dealer
44744542 String1=0x01,Concessionnaire automobile
44754543 String2=0x02,Autohändler
4476 String3=0x04,Car dealer
44774544 String4=0x03,Autodealer
44784545 String7=0x15,Sprzedaż samochodów
44794546 String8=0x10,Revenda de carros
45014568 type=0x02f
45024569 subtype=0x08
45034570 ;GRMN_TYPE: Business - Services/GND_TRANSPORT/Ground transportation status, i.e. a bus station/Non NT
4571 String=Ground Transportation
45044572 String1=0x01,Gare routière
45054573 String2=0x02,Busbahnhof
4506 String3=0x04,Busstation
4574 String3=0x04,Bus/Railway/Ferry Station
45074575 String4=0x03,Busstation
45084576 String7=0x15,Przystanek autobusowy
45094577 String8=0x10,Estação de ônibus
45384606 type=0x02f
45394607 subtype=0x09
45404608 ;GRMN_TYPE: Business - Services/MARINA/Marina/Non NT
4609 String=Marina/Repairs & Storage
45414610 String1=0x01,Magasin accastillage et bateaux
45424611 String2=0x02,Bootsgeschäft
4543 String3=0x04,Yacht shop
4612 String3=0x04,Boat Chandler
45444613 String4=0x03,Botenwinkel
45454614 String7=0x15,Sklep żeglarski
45464615 String8=0x10,Loja de iates
45624631 type=0x02f
45634632 subtype=0x0a
45644633 ;GRMN_TYPE: Business - Services/WRECKER_SERVICE/Wrecker service/Non NT
4634 String=Wrecker Service
45654635 String1=0x01,Dépanneuse
45664636 String2=0x02,Schleppdienst
4567 String3=0x04,Wrecker service
4637 String3=0x04,Scrap Yard
45684638 String4=0x03,Sleepdienst
45694639 String7=0x15,Holowanie
45704640 String8=0x10,Guincho
45864656 type=0x02f
45874657 subtype=0x0b
45884658 ;GRMN_TYPE: Business - Services/PARKING/Parking/Non NT
4659 String=Parking
45894660 String1=0x01,Parking
45904661 String2=0x02,Parking
4591 String3=0x04,Parking
45924662 String4=0x03,Parkeerplaats
45934663 String7=0x15,Parking
45944664 String8=0x10,Estacionamento
46194689 type=0x02f
46204690 subtype=0x0c
46214691 ;GRMN_TYPE: Business - Services/REST_AREA_TOURIST_INFO/Rest area, Tourist information/Non NT
4692 String=Rest Area / Tourist Info
46224693 String1=0x01,WC
46234694 String2=0x02,WC
4624 String3=0x04,WC
4695 String3=0x04,Toilets
46254696 String4=0x03,Toilet
46264697 String7=0x15,Toaleta
46274698 String8=0x10,Banheiro
46524723 type=0x02f
46534724 subtype=0x0d
46544725 ;GRMN_TYPE: Business - Services/AUTO_CLUB/Automobile club/Non NT
4726 String=Automobile Club
46554727 String1=0x01,Club automobile
46564728 String2=0x02,Automobilclub
4657 String3=0x04,Automobile club
46584729 String4=0x03,Auto club
46594730 String7=0x15,Klub samochodowy
46604731 String8=0x10,Clube automobilístico
46724743 type=0x02f
46734744 subtype=0x0e
46744745 ;GRMN_TYPE: Business - Services/CAR_WASH/Car wash/Non NT
4746 String=Car Wash
46754747 String1=0x01,Lavage-auto
46764748 String2=0x02,Autowaschanlage
4677 String3=0x04,Carwash
46784749 String4=0x03,Autowasstraat
46794750 String7=0x15,Myjnia
46804751 String8=0x10,Lava jato
47054776 type=0x02f
47064777 subtype=0x10
47074778 ;GRMN_TYPE: Business - Services/SERVICES_PERSONAL/Personal services/Non NT
4779 String=Personal Service
47084780 String1=0x01,Coiffeur
47094781 String2=0x02,Friseur
47104782 String3=0x04,Hairdresser
47384810 type=0x02f
47394811 subtype=0x12
47404812 ;GRMN_TYPE: Business - Services/COMMUNICATION_SERVICES/Communication services/Non NT
4813 String=Communications
47414814 String1=0x01,Wifi
47424815 String2=0x02,Wifi
4743 String3=0x04,Wifi
47444816 String4=0x03,Wifi
47454817 String7=0x15,Wifi
47464818 String8=0x10,Wifi
47684840 type=0x02f
47694841 subtype=0x13
47704842 ;GRMN_TYPE: Business - Services/REPAIR_SERVICE/Repair service/Non NT
4843 String=Repair Service
47714844 String1=0x01,Vélo
47724845 String2=0x02,Rad
47734846 String3=0x04,Bicycle
47994872 type=0x02f
48004873 subtype=0x14
48014874 ;GRMN_TYPE: Business - Services/SOCIAL_SERVICES/Social services/Non NT
4875 String=Social Service
48024876 String1=0x01,Services sociaux
48034877 String2=0x02,Soziale Einrichtung
4804 String3=0x04,Social
48054878 String4=0x03,Sociale instelling
48064879 String7=0x15,Social
48074880 String8=0x10,Social
48354908 type=0x02f
48364909 subtype=0x15
48374910 ;GRMN_TYPE: Business - Services/UTILITY/Utility (gas, electric, water) services/Non NT
4911 String=Utility
48384912 String1=0x01,Déchetterie
48394913 String2=0x02,Recycling
4840 String3=0x04,Recycling
4914 String3=0x04,Postbox / Recycling
48414915 String4=0x03,Glasbak
48424916 String7=0x15,Recykling
48434917 String8=0x10,Reciclagem
48714945 type=0x02f
48724946 subtype=0x16
48734947 ;GRMN_TYPE: Business - Services/TRUCK_STOP/Truck stop/Non NT
4948 String=Truck Stop
48744949 String1=0x01,Station-essence
48754950 String2=0x02,Tankstelle
4876 String3=0x04,Gas station
48774951 String4=0x03,Tankstation
48784952 String7=0x15,Stacja paliw
48794953 String8=0x10,Posto de combustível
49064980 type=0x02f
49074981 subtype=0x17
49084982 ;GRMN_TYPE: Business - Services/TRANSIT_SERVICES/Mass transit services/Non NT
4983 String=Transit Service
49094984 String1=0x01,Arrêt de bus
49104985 String2=0x02,Haltestelle
4911 String3=0x04,Busstop
4986 String3=0x04,Bus/Tram Stop / Taxi Rank
49124987 String4=0x03,Bushalte
49134988 String7=0x15,Przystanek
49144989 String8=0x10,Parada de ônibus
49375012 type=0x030
49385013 subtype=0x01
49395014 ;GRMN_TYPE: Business - Emergency and Government/POLICE_STATION/Police station/Non NT
5015 String=Police Station
49405016 String1=0x01,Police
49415017 String2=0x02,Polizei
4942 String3=0x04,Police
49435018 String4=0x03,Politiekantoor
49445019 String7=0x15,Policja
49455020 String8=0x10,Polícia
49725047 type=0x030
49735048 subtype=0x02
49745049 ;GRMN_TYPE: Business - Emergency and Government/HOSPITAL/Hospital/Non NT
5050 String=Hospital
49755051 String1=0x01,Hôpital
49765052 String2=0x02,Krankenhaus
4977 String3=0x04,Hospital
49785053 String4=0x03,Ziekenhuis
49795054 String7=0x15,Szpital
49805055 String8=0x10,Hospital
50065081 type=0x030
50075082 subtype=0x03
50085083 ;GRMN_TYPE: Business - Emergency and Government/CITY_HALL/City hall/Non NT
5084 String=City Hall
50095085 String1=0x01,Mairie
50105086 String2=0x02,Rathaus
5011 String3=0x04,Townhall
50125087 String4=0x03,Stadhuis
50135088 String7=0x15,Ratusz
50145089 String8=0x10,Prefeitura
50405115 type=0x030
50415116 subtype=0x04
50425117 ;GRMN_TYPE: Business - Emergency and Government/COURTHOUSE/Courthouse/Non NT
5118 String=Court House
50435119 String1=0x01,Tribunal
50445120 String2=0x02,Gericht
5045 String3=0x04,Courthouse
50465121 String4=0x03,Gerechtsgebouw
50475122 String7=0x15,Sąd
50485123 String8=0x10,Tribunal
50755150 type=0x030
50765151 subtype=0x05
50775152 ;GRMN_TYPE: Business - Emergency and Government/COMMUNITY_CENTER/Community center/Non NT
5153 String=Community Center
50785154 String1=0x01,Associations culturelles
50795155 String2=0x02,Gemeindezentrum
5080 String3=0x04,Community centre
50815156 String4=0x03,Gemeenschapscentrum
50825157 String7=0x15,Ośrodek kultury
50835158 String8=0x10,Centro comunitário
51105185 type=0x030
51115186 subtype=0x06
51125187 ;GRMN_TYPE: Business - Emergency and Government/BORDER_CROSSING/Border crossing/Non NT
5188 String=Border Control
51135189 String1=0x01,Douane
51145190 String2=0x02,Zoll
5115 String3=0x04,Bordercontrol
51165191 String4=0x03,Douane
51175192 String7=0x15,Kontrola graniczna
51185193 String8=0x10,Alfândega
51305205 type=0x030
51315206 subtype=0x07
51325207 ;GRMN_TYPE: Business - Emergency and Government/GOV_OFFICE/Government Office/Non NT
5208 String=Government Office
51335209 String1=0x01,Prison
51345210 String2=0x02,Gefängnis
5135 String3=0x04,Prison
5211 String3=0x04,Prison / Public Building
51365212 String4=0x03,Gevangenis
51375213 String7=0x15,Więzienie
51385214 String8=0x10,Prisão
51645240 type=0x030
51655241 subtype=0x08
51665242 ;GRMN_TYPE: Business - Emergency and Government/FIRE_DEPT/Fire department/Non NT
5243 String=Fire Station
51675244 String1=0x01,Pompiers
51685245 String2=0x02,Feuerwehr
5169 String3=0x04,Firestation
51705246 String4=0x03,Brandweer
51715247 String7=0x15,Straż pożarna
51725248 String8=0x10,Bombeiros
52015277 type=0x032
52025278 subtype=0x00
52035279 ;GRMN_TYPE: //
5280 String=Barrier
52045281 String1=0x01,Barrière
52055282 String2=0x02,Poller
5206 String3=0x04,Bollard
52075283 String4=0x03,Paaltje
52085284 String7=0x15,Słupek
52095285 String8=0x10,Barreira
52255301 type=0x043
52265302 subtype=0x00
52275303 ;GRMN_TYPE: //
5304 String=Marina
52285305 String1=0x01,Marina
52295306 String2=0x02,Bootshafen
5230 String3=0x04,Marina
52315307 String4=0x03,Jachthaven
52325308 String7=0x15,Przystań
52335309 String8=0x10,Marina
52465322 type=0x043
52475323 subtype=0x01
52485324 ;GRMN_TYPE: //
5325 ; not used by default style
52495326 String1=0x01,Gare
52505327 String2=0x02,Bahnhof
52515328 String3=0x04,Trainstation
52735350 type=0x043
52745351 subtype=0x02
52755352 ;GRMN_TYPE: //
5353 ; not used by default style
52765354 String1=0x01,Tramway
52775355 String2=0x02,Straßenbahn
52785356 String3=0x04,Tram / Metro
52975375 type=0x043
52985376 subtype=0x03
52995377 ;GRMN_TYPE: //
5378 ; not used by default style
53005379 String1=0x01,Terminal Ferry
53015380 String2=0x02,Fährhafen
53025381 String3=0x04,Ferry terminal
53325411 type=0x04a
53335412 subtype=0x00
53345413 ;GRMN_TYPE: Misc. Points of Interest/PICNIC_AREA/Picnic area/Non NT, NT
5414 String=Picnic Area
53355415 String1=0x01,Pique-nique
53365416 String2=0x02,Picknick
5337 String3=0x04,Picnic area
53385417 String4=0x03,Picknick plaats
53395418 String7=0x15,Miejsce piknikowe
53405419 String8=0x10,Piquenique
53615440 type=0x04c
53625441 subtype=0x00
53635442 ;GRMN_TYPE: Misc. Points of Interest/INFORMATION/Information/Non NT, NT
5443 String=Tourist information
53645444 String1=0x01,Office du Tourisme
53655445 String2=0x02,Touristeninformation
5366 String3=0x04,Tourist information
53675446 String4=0x03,Touristen informatie
53685447 String7=0x15,Informacja turystyczna
53695448 String8=0x10,Informações turísticas
53935472 type=0x04e
53945473 subtype=0x00
53955474 ;GRMN_TYPE: Misc. Points of Interest/RESTROOMS/Restrooms/Non NT, NT
5475 ; not used by default style
53965476 String1=0x01,WC
53975477 String2=0x02,WC
53985478 String3=0x04,WC
54265506 type=0x050
54275507 subtype=0x00
54285508 ;GRMN_TYPE: Misc. Points of Interest/DRINKING_WATER/Drinking water/Non NT, NT
5509 String=Drinking Water
54295510 String1=0x01,Eau potable
54305511 String2=0x02,Trinkwasser
5431 String3=0x04,Drinking water
54325512 String4=0x03,Drinkwater
54335513 String7=0x15,Woda pitna
54345514 String8=0x10,Bebedouro
54615541 type=0x059
54625542 subtype=0x04
54635543 ;GRMN_TYPE: //
5544 String=Helipad
54645545 String1=0x01,Héliport
54655546 String2=0x02,Hubschrauberlandeplatz
5466 String3=0x04,Heli
54675547 String4=0x03,Helihaven
54685548 String7=0x15,Lądowisko helikopterowe
54695549 String8=0x10,Heliponto
54975577 type=0x064
54985578 subtype=0x03
54995579 ;GRMN_TYPE: Geographical Named Points of Interest/CEMETERY/Cemetery/Non NT, NT
5580 String=Cemetery
55005581 String1=0x01,Cimetière
55015582 String2=0x02,Friedhof
5502 String3=0x04,Cemetry
55035583 String4=0x03,Begraafplaats
55045584 String7=0x15,Cmentarz
55055585 String8=0x10,Cemitério
55185598 type=0x064
55195599 subtype=0x0b
55205600 ;GRMN_TYPE: Geographical Named Points of Interest/MILITARY/Military point of interest/Non NT, NT
5601 String=Military
55215602 String1=0x01,Militaire
55225603 String2=0x02,Militär
5523 String3=0x04,Military
55245604 String4=0x03,Militair
55255605 String7=0x15,Wojsko
55265606 String8=0x10,Militar
55395619 type=0x064
55405620 subtype=0x11
55415621 ;GRMN_TYPE: Geographical Named Points of Interest/TOWER/Tower/Non NT, NT
5622 String=Tower
55425623 String1=0x01,Tour/Pylône
55435624 String2=0x02,Turm
5544 String3=0x04,Tower
55455625 String4=0x03,Toren
55465626 String7=0x15,Wieża
55475627 String8=0x10,Torre
55735653 type=0x065
55745654 subtype=0x05
55755655 ;GRMN_TYPE: Geographical Named Points of Interest - Water Related/CANAL/Canal/Non NT, NT
5656 String=Canal / Lock
55765657 String1=0x01,Barrage
55775658 String2=0x02,Wehr
5578 String3=0x04,Weir
55795659 String4=0x03,Stuw
55805660 String7=0x15,Tama
55815661 String8=0x10,Açude
56025682 type=0x065
56035683 subtype=0x08
56045684 ;GRMN_TYPE: Geographical Named Points of Interest - Water Related/WATERFALL/Waterfall/Non NT, NT
5685 String=Waterfall
56055686 String1=0x01,Chute d'eau
56065687 String2=0x02,Wasserfall
5607 String3=0x04,Waterfall
56085688 String4=0x03,Waterval
56095689 String7=0x15,Wodospad
56105690 String8=0x10,Cachoeira
56365716 type=0x065
56375717 subtype=0x0a
56385718 ;GRMN_TYPE: Geographical Named Points of Interest - Water Related/GLACIER/Glacier/Non NT, NT
5719 String=Glacier
56395720 String1=0x01,Glacier
56405721 String2=0x02,Gletscher
5641 String3=0x04,Gletcher
56425722 String4=0x03,Gletsjer
56435723 String7=0x15,Lodowiec
56445724 String8=0x10,Geleira
56565736 type=0x065
56575737 subtype=0x0c
56585738 ;GRMN_TYPE: //
5739 String=Island
56595740 String1=0x01,Île
56605741 String2=0x02,Insel
5661 String3=0x04,Island
56625742 String4=0x03,Eiland
56635743 String7=0x15,Wyspa
56645744 String8=0x10,Ilha
56775757 type=0x065
56785758 subtype=0x0f
56795759 ;GRMN_TYPE: Geographical Named Points of Interest - Water Related/RESERVOIR/Reservoir/Non NT, NT
5760 String=Reserviour
56805761 String1=0x01,Eau
56815762 String2=0x02,Wasser
5682 String3=0x04,Water
56835763 String4=0x03,Water
56845764 String7=0x15,Woda
56855765 String8=0x10,Água
56985778 type=0x065
56995779 subtype=0x11
57005780 ;GRMN_TYPE: Geographical Named Points of Interest - Water Related/SPRING/Spring/Non NT, NT
5781 String=Spring
57015782 String1=0x01,Source
57025783 String2=0x02,Quelle
5703 String3=0x04,Well
57045784 String4=0x03,Waterbron
57055785 String7=0x15,Źródło
57065786 String8=0x10,Poço
57275807 type=0x065
57285808 subtype=0x12
57295809 ;GRMN_TYPE: Geographical Named Points of Interest - Water Related/STREAM/Stream/Non NT, NT
5810 String=Stream
5811 String1=0x01,Eau
5812 String2=0x02,Wasser
5813 String4=0x03,Water
5814 String7=0x15,Woda
5815 String8=0x10,Água
5816 String9=0x05,Acqua
5817 ExtendedLabels=Y
5818 FontStyle=SmallFont
5819 CustomColor=Day
5820 DaycustomColor:#4D80B3
5821 DayXpm="1 1 2 1" Colormode=16
5822 "! c #009500"
5823 " c none"
5824 " "
5825 ;1
5826 [end]
5827 [_point]
5828 type=0x065
5829 subtype=0x13
5830 ;GRMN_TYPE: Geographical Named Points of Interest - Water Related/SWAMP/Swamp/Non NT, NT
5831 String=Swamp
5832 String1=0x01,Marais
5833 String2=0x02,Sumpf
5834 String4=0x03,Moeras
5835 String7=0x15,Bagno
5836 String8=0x10,Pântano
5837 String9=0x05,Palude
5838 ExtendedLabels=Y
5839 FontStyle=SmallFont
5840 CustomColor=Day
5841 DaycustomColor:#4D80B3
5842 DayXpm="1 1 2 1" Colormode=16
5843 "! c #009500"
5844 " c none"
5845 " "
5846 ;1
5847 [end]
5848 [_point]
5849 type=0x066
5850 subtype=0x01
5851 ;GRMN_TYPE: Geographical Named Points of Interest - Land Related/ARCH/Arch/Non NT, NT
5852 String=Arch
5853 String1=0x01,Grotte
5854 String2=0x02,Höhle
5855 String3=0x04,Cave
5856 String4=0x03,Grot
5857 String7=0x15,Jaskinia
5858 String8=0x10,Caverna
5859 String9=0x05,Grotta
5860 ExtendedLabels=Y
5861 FontStyle=NoLabel (invisible)
5862 CustomColor=No
5863 DayXpm="11 6 2 1" Colormode=16
5864 "! c #000000"
5865 " c none"
5866 " !!!!! "
5867 " ! ! "
5868 " ! !!! ! "
5869 "! !!!!! !"
5870 "! !!!!!!! !"
5871 "! !!!!!!! !"
5872 ;12345678901
5873 [end]
5874 [_point]
5875 type=0x066
5876 subtype=0x03
5877 ;GRMN_TYPE: Geographical Named Points of Interest - Land Related/BASIN/Basin/Non NT, NT
5878 String=Basin
57305879 String1=0x01,Eau
57315880 String2=0x02,Wasser
57325881 String3=0x04,Water
57455894 ;1
57465895 [end]
57475896 [_point]
5748 type=0x065
5749 subtype=0x13
5750 ;GRMN_TYPE: Geographical Named Points of Interest - Water Related/SWAMP/Swamp/Non NT, NT
5751 String1=0x01,Marais
5752 String2=0x02,Sumpf
5753 String3=0x04,Swamp
5754 String4=0x03,Moeras
5755 String7=0x15,Bagno
5756 String8=0x10,Pântano
5757 String9=0x05,Palude
5758 ExtendedLabels=Y
5759 FontStyle=SmallFont
5760 CustomColor=Day
5761 DaycustomColor:#4D80B3
5762 DayXpm="1 1 2 1" Colormode=16
5763 "! c #009500"
5764 " c none"
5765 " "
5766 ;1
5767 [end]
5768 [_point]
5769 type=0x066
5770 subtype=0x01
5771 ;GRMN_TYPE: Geographical Named Points of Interest - Land Related/ARCH/Arch/Non NT, NT
5772 String1=0x01,Grotte
5773 String2=0x02,Höhle
5774 String3=0x04,Cave
5775 String4=0x03,Grot
5776 String7=0x15,Jaskinia
5777 String8=0x10,Caverna
5778 String9=0x05,Grotta
5779 ExtendedLabels=Y
5780 FontStyle=NoLabel (invisible)
5781 CustomColor=No
5782 DayXpm="11 6 2 1" Colormode=16
5783 "! c #000000"
5784 " c none"
5785 " !!!!! "
5786 " ! ! "
5787 " ! !!! ! "
5788 "! !!!!! !"
5789 "! !!!!!!! !"
5790 "! !!!!!!! !"
5791 ;12345678901
5792 [end]
5793 [_point]
5794 type=0x066
5795 subtype=0x03
5796 ;GRMN_TYPE: Geographical Named Points of Interest - Land Related/BASIN/Basin/Non NT, NT
5797 String1=0x01,Eau
5798 String2=0x02,Wasser
5799 String3=0x04,Water
5800 String4=0x03,Water
5801 String7=0x15,Woda
5802 String8=0x10,Água
5803 String9=0x05,Acqua
5804 ExtendedLabels=Y
5805 FontStyle=SmallFont
5806 CustomColor=Day
5807 DaycustomColor:#4D80B3
5808 DayXpm="1 1 2 1" Colormode=16
5809 "! c #009500"
5810 " c none"
5811 " "
5812 ;1
5813 [end]
5814 [_point]
58155897 type=0x066
58165898 subtype=0x04
58175899 ;GRMN_TYPE: Geographical Named Points of Interest - Land Related/BEACH/Beach/Non NT, NT
5900 String=Beach
58185901 String1=0x01,Plage
58195902 String2=0x02,Strand
5820 String3=0x04,Beach
58215903 String4=0x03,Strand
58225904 String7=0x15,Plaża
58235905 String8=0x10,Praia
58365918 type=0x066
58375919 subtype=0x06
58385920 ;GRMN_TYPE: Geographical Named Points of Interest - Land Related/CAPE/Cape/Non NT, NT
5921 String=Cape
58395922 String1=0x01,Cap
58405923 String2=0x02,Kap
5841 String3=0x04,Cape
58425924 String4=0x03,Kaap
58435925 String7=0x15,Przylądek
58445926 String8=0x10,Cabo
58565938 type=0x066
58575939 subtype=0x07
58585940 ;GRMN_TYPE: Geographical Named Points of Interest - Land Related/CLIFF/Cliff/Non NT, NT
5941 String=Cliff
58595942 String1=0x01,Falaise
58605943 String2=0x02,Klippe
5861 String3=0x04,Cliff
58625944 String4=0x03,Klif
58635945 String7=0x15,Klif
58645946 String8=0x10,Penhasco
58765958 type=0x066
58775959 subtype=0x12
58785960 ;GRMN_TYPE: Geographical Named Points of Interest - Land Related/RESERVE/Reserve/Non NT, NT
5961 String=Nature Reserve
58795962 String1=0x01,Réserve naturelle
58805963 String2=0x02,Naturschutzgebiet
5881 String3=0x04,Nature reserve
58825964 String4=0x03,Natuurgebied
58835965 String7=0x15,Rezerwat przyrody
58845966 String8=0x10,Reserva natural
58975979 type=0x066
58985980 subtype=0x14
58995981 ;GRMN_TYPE: Geographical Named Points of Interest - Land Related/ROCK/Rock/Non NT, NT
5982 String=Rock
59005983 String1=0x01,Roche
59015984 String2=0x02,Felsen
5902 String3=0x04,Rock
59035985 String4=0x03,Rotsen
59045986 String7=0x15,Skała
59055987 String8=0x10,Rochedo
59186000 type=0x066
59196001 subtype=0x16
59206002 ;GRMN_TYPE: Geographical Named Points of Interest - Land Related/SUMMIT/Summit, top of a hill or mountain/Non NT, NT
6003 String=Summit
59216004 String1=0x01,Sommet
59226005 String2=0x02,Gipfel
5923 String3=0x04,Summit
59246006 String4=0x03,Bergtop
59256007 String7=0x15,Szczyt
59266008 String8=0x10,Pico
59486030 type=0x066
59496031 subtype=0x18
59506032 ;GRMN_TYPE: Geographical Named Points of Interest - Land Related/WOODS/Wooded area/Non NT, NT
6033 String=Woods
59516034 String1=0x01,Forêt
59526035 String2=0x02,Wald
5953 String3=0x04,Woods
59546036 String4=0x03,Bos
59556037 String7=0x15,Drzewa
59566038 String8=0x10,Mata / Bosque
1616 import java.io.IOException;
1717 import java.io.InputStream;
1818 import java.io.InputStreamReader;
19 import java.nio.charset.StandardCharsets;
1920 import java.util.Arrays;
2021 import java.util.Locale;
2122
3839 private boolean forceUppercase;
3940
4041 public TableTransliterator(String targetCharset) {
41 if (targetCharset.equals("latin1") || targetCharset.equals("cp1252"))
42 if ("latin1".equals(targetCharset) || "cp1252".equals(targetCharset))
4243 useLatin = true;
4344 else
4445 useLatin = false;
114115 }
115116
116117 private void readCharFile(String name, String[] newRow) {
117 InputStream is = getClass().getResourceAsStream(name);
118 if (is == null)
119 return;
120
121 try {
122 BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
118 try (InputStream is = getClass().getResourceAsStream(name)) {
119 if (is == null)
120 return;
121 BufferedReader br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
123122
124123 String line;
125124 while ((line = br.readLine()) != null) {
139138
140139 // The first field must look like 'U+RRXX', we extract the XX part
141140 int index = Integer.parseInt(upoint.substring(4), 16);
142 if (newRow[index].equals("?")) {
141 if ("?".equals(newRow[index])) {
143142 if (forceUppercase)
144143 newRow[index] = translation.toUpperCase(Locale.ENGLISH);
145144 else
1616 package uk.me.parabola.imgfmt.app.labelenc;
1717
1818 import java.io.ByteArrayOutputStream;
19 import java.nio.charset.Charset;
19 import java.nio.charset.StandardCharsets;
2020
2121 /**
2222 * Decoder for labels in utf-8, note that I am not actually sure that any
2727 public class Utf8Decoder implements CharacterDecoder {
2828 private final ByteArrayOutputStream out = new ByteArrayOutputStream();
2929 private boolean needreset;
30
31 private final Charset charset = Charset.forName("utf-8");
3230
3331 /**
3432 * Add a byte to this decoder. This will be saved until a complete
6058 */
6159 public DecodedText getText() {
6260 byte[] ba = out.toByteArray();
63 return new DecodedText(ba, charset);
61 return new DecodedText(ba, StandardCharsets.UTF_8);
6462 }
6563
6664 /**
1515 */
1616 package uk.me.parabola.imgfmt.app.labelenc;
1717
18 import java.io.UnsupportedEncodingException;
1918 import java.util.Locale;
19 import java.nio.charset.StandardCharsets;
2020
2121 /**
2222 * Encoder for labels in utf-8.
3636 uctext = text;
3737
3838 EncodedText et;
39 try {
40 byte[] buf = uctext.getBytes("utf-8");
41 byte[] res = new byte[buf.length + 1];
42 System.arraycopy(buf, 0, res, 0, buf.length);
43 res[buf.length] = 0;
44 et = new EncodedText(res, res.length, uctext.toCharArray());
45 } catch (UnsupportedEncodingException e) {
46 // As utf-8 must be supported, this can't happen
47 byte[] buf = uctext.getBytes();
48 et = new EncodedText(buf, buf.length, uctext.toCharArray());
49 }
39 byte[] buf = uctext.getBytes(StandardCharsets.UTF_8);
40 byte[] res = new byte[buf.length + 1];
41 System.arraycopy(buf, 0, res, 0, buf.length);
42 res[buf.length] = 0;
43 et = new EncodedText(res, res.length, uctext.toCharArray());
5044 return et;
5145 }
5246 }
1818 import java.nio.charset.Charset;
1919 import java.nio.charset.CharsetEncoder;
2020 import java.nio.charset.CodingErrorAction;
21 import java.nio.charset.StandardCharsets;
2122 import java.text.CollationKey;
2223 import java.text.Collator;
2324 import java.util.ArrayList;
545546 Charset charset;
546547 switch (codepage) {
547548 case 0:
548 charset = Charset.forName("ascii");
549 charset = StandardCharsets.US_ASCII;
549550 break;
550551 case 65001:
551 charset = Charset.forName("UTF-8");
552 charset = StandardCharsets.UTF_8;
552553 break;
553554 case 932:
554555 // Java uses "ms932" for code page 932
120120 // If we succeeded then note offsets for indexes
121121 strToType.put(off, type);
122122 typeToStr.put(type, off);
123
123 writer.put1u(0);
124124 } catch (CharacterCodingException ignore) {
125 //ignore.printStackTrace();
125126 String name = encoder.charset().name();
126 throw new TypLabelException(name);
127 log.warn("Cannot represent icon String", label, "in CodePage", name);
128 //throw new TypLabelException(name);
127129 }
128 writer.put1u(0);
129130 }
130131 }
131132 Utils.closeFile(writer);
1616 import java.util.List;
1717
1818 import uk.me.parabola.imgfmt.app.srt.Sort;
19 import uk.me.parabola.log.Logger;
1920
2021 /**
2122 * Holds all the data for a typ file.
2324 * @author Steve Ratcliffe
2425 */
2526 public class TypData {
27 private static final Logger log = Logger.getLogger(TypData.class);
28
2629 private final ShapeStacking stacking = new ShapeStacking();
2730 private final TypParam param = new TypParam();
2831 private final List<TypPolygon> polygons = new ArrayList<TypPolygon>();
5053 if (origCodepage != 0) {
5154 if (origCodepage != sort.getCodepage()) {
5255 // This is just a warning, not a definite problem
53 System.out.println("WARNING: SortCode in TYP txt file different from" +
54 " command line setting");
56 // and is to be expected if have general UTF-8 TYP.txt
57 log.warn("CodePage in TYP txt file:", sort.getCodepage(), "different from --code-page:", origCodepage);
5558 }
5659 }
60 return; // want to use the command line one
5761 }
5862 this.sort = sort;
5963 encoder = sort.getCharset().newEncoder();
1919 import java.util.List;
2020
2121 import uk.me.parabola.imgfmt.app.ImgFileWriter;
22 import uk.me.parabola.log.Logger;
2223
2324 /**
2425 * Base routines and data used by points, lines and polygons.
2930 * @author Steve Ratcliffe
3031 */
3132 public abstract class TypElement implements Comparable<TypElement> {
33 private static final Logger log = Logger.getLogger(TypElement.class);
34
3235 private int type;
3336 private int subType;
3437
123126 protected ByteBuffer makeLabelBlock(CharsetEncoder encoder) {
124127 ByteBuffer out = ByteBuffer.allocate(256 * labels.size());
125128 for (TypLabel tl : labels) {
126 out.put((byte) tl.getLang());
127129 CharBuffer cb = CharBuffer.wrap(tl.getText());
128130 try {
129131 ByteBuffer buffer = encoder.encode(cb);
132 out.put((byte) tl.getLang());
130133 out.put(buffer);
134 out.put((byte) 0);
131135 } catch (CharacterCodingException ignore) {
136 //ignore.printStackTrace();
132137 String name = encoder.charset().name();
133138 //System.out.println("cs " + name);
134 throw new TypLabelException(name);
139 log.warn("Cannot represent String", tl.getText(), "for language", tl.getLang(), "in CodePage", name);
140 //throw new TypLabelException(name);
135141 }
136 out.put((byte) 0);
137142 }
138143
139144 return out;
1717
1818 import java.io.BufferedReader;
1919 import java.io.File;
20 import java.io.FileReader;
20 import java.io.FileInputStream;
21 import java.io.InputStreamReader;
2122 import java.io.IOException;
2223 import java.io.Reader;
2324 import java.util.Collection;
7576 return;
7677 }
7778
78 try (Reader r = new FileReader(filename)) {
79 try (Reader r = new InputStreamReader(new FileInputStream(filename)/*NB: DefaultCharset*/)) {
7980 readOptionFile(r, filename);
8081 }
8182
8283 }
8384
8485 public void readOptionFile(Reader r, String filename) {
85 BufferedReader br = new BufferedReader(r);
86 BufferedReader br;
87 if (r instanceof BufferedReader)
88 br = (BufferedReader)r;
89 else
90 br = new BufferedReader(r);
8691 TokenScanner ts = new TokenScanner(filename, br);
8792 ts.setExtraWordChars("-");
93 if (r instanceof InputStreamReader)
94 ts.setCharset(((InputStreamReader)r).getEncoding());
8895
8996 File file = new File(filename);
9097 String parent = file.getParent();
1818 import java.io.InputStream;
1919 import java.io.InputStreamReader;
2020 import java.io.PrintStream;
21 import java.nio.charset.StandardCharsets;
2122 import java.lang.management.ManagementFactory;
2223 import java.lang.management.MemoryPoolMXBean;
2324 import java.lang.management.MemoryType;
200201 * Grab the options help file and print it.
201202 * @param err The output print stream to write to.
202203 * @param lang A language hint. The help will be displayed in this
203 * language if it has been translated.
204 * language if it has been translated.
204205 * @param file The help file to display.
205206 */
206207 private static void printHelp(PrintStream err, String lang, String file) {
207208 String path = "/help/" + lang + '/' + file;
208 InputStream stream = Main.class.getResourceAsStream(path);
209 if (stream == null) {
210 err.println("Could not find the help topic: " + file + ", sorry");
211 return;
212 }
213
214 BufferedReader r = new BufferedReader(new InputStreamReader(stream));
215 try {
209 try (InputStream stream = Main.class.getResourceAsStream(path)) {
210 if (stream == null) {
211 err.println("Could not find the help topic: " + file + ", sorry");
212 return;
213 }
214
215 BufferedReader r = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8));
216216 String line;
217217 while ((line = r.readLine()) != null)
218218 err.println(line);
223223
224224 private static Set<String> getValidOptions(PrintStream err) {
225225 String path = "/help/en/options";
226 InputStream stream = Main.class.getResourceAsStream(path);
227 if (stream == null)
228 return null;
229
230 Set<String> result = new HashSet<>();
231 try {
232 BufferedReader r = new BufferedReader(new InputStreamReader(stream, "utf-8"));
226 try (InputStream stream = Main.class.getResourceAsStream(path)) {
227 if (stream == null)
228 return null;
229
230 Set<String> result = new HashSet<>();
231 BufferedReader r = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8));
233232
234233 Pattern p = Pattern.compile("^--?([a-zA-Z0-9-]*).*$");
235234 String line;
240239 result.add(opt);
241240 }
242241 }
242 return result;
243
243244 } catch (IOException e) {
244 err.println("Could not read valid optoins");
245 err.println("Could not read valid options");
245246 return null;
246247 }
247
248 return result;
249248 }
250249
251250 public void startOptions() {
1414
1515 import java.io.BufferedReader;
1616 import java.io.FileNotFoundException;
17 import java.io.FileReader;
17 import java.io.FileInputStream;
18 import java.io.InputStreamReader;
19 import java.nio.charset.StandardCharsets;
1820 import java.io.FileWriter;
1921 import java.io.IOException;
2022 import java.io.InputStream;
220222 * file all in one.
221223 */
222224 public static void runSimpleTest(String filename) {
223 try {
224 FileReader reader = new FileReader(filename);
225 BufferedReader br = new BufferedReader(reader);
225 // 14Jan20 Changed from using DefaultCharset to UTF-8
226 try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filename), StandardCharsets.UTF_8))) {
226227 List<Way> ways = readSimpleTestFile(br);
227228
228229 List<String> givenList = readGivenResults();
345346 // ignore blank lines.
346347 }*/
347348 }
348 br.close();
349349
350350 return ways;
351351 }
1616 import java.io.FileInputStream;
1717 import java.io.FileNotFoundException;
1818 import java.io.IOException;
19 import java.io.InputStream;
2019 import java.io.InputStreamReader;
2120 import java.io.Reader;
2221 import java.io.UnsupportedEncodingException;
23 import java.nio.CharBuffer;
22 import java.nio.ByteBuffer;
2423 import java.nio.channels.FileChannel;
2524 import java.nio.charset.CharacterCodingException;
2625 import java.nio.charset.Charset;
27 import java.nio.charset.CharsetEncoder;
26 import java.nio.charset.CharsetDecoder;
2827 import java.nio.charset.StandardCharsets;
2928 import java.nio.file.StandardOpenOption;
3029
3130 import uk.me.parabola.imgfmt.ExitException;
3231 import uk.me.parabola.imgfmt.MapFailedException;
33 import uk.me.parabola.imgfmt.Utils;
3432 import uk.me.parabola.imgfmt.app.srt.Sort;
3533 import uk.me.parabola.imgfmt.app.typ.TYPFile;
3634 import uk.me.parabola.imgfmt.app.typ.TypData;
8482 param.setFamilyId(family);
8583 if (product != -1)
8684 param.setProductId(product);
87 if (cp != -1 && param.getCodePage() == 0)
85 if (cp != -1)
8886 param.setCodePage(cp);
8987
9088 File outFile = new File(filename);
122120 * @throws FileNotFoundException If the file doesn't exist.
123121 * @throws SyntaxException All user correctable problems in the input file.
124122 */
125 private TypData compile(String filename, String charset, Sort sort)
123 private static TypData compile(String filename, String charset, Sort sort)
126124 throws FileNotFoundException, SyntaxException
127125 {
128126 TypTextReader tr = new TypTextReader();
130128 TypData data = tr.getData();
131129
132130 data.setSort(sort);
133 try {
134 Reader r = new BufferedReader(new InputStreamReader(new FileInputStream(filename), charset));
135 try {
136 tr.read(filename, r);
137 } finally {
138 Utils.closeFile(r);
139 }
131 try (Reader r = new BufferedReader(new InputStreamReader(new FileInputStream(filename), charset))) {
132 tr.read(filename, r, charset);
140133 } catch (UnsupportedEncodingException e) {
141134 // Not likely to happen as we should have already used this character set!
142135 throw new MapFailedException("Unsupported character set", e);
136 } catch (IOException e) {
137 throw new ExitException("Unable to read/close file " + filename);
143138 }
144139
145140 return tr.getData();
148143 /**
149144 * Write the type file out from the compiled form to the given name.
150145 */
151 private void writeTyp(TypData data, File file) throws IOException {
146 private static void writeTyp(TypData data, File file) throws IOException {
152147 try (FileChannel channel = FileChannel.open(file.toPath(),
153148 StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.READ))
154149 {
203198
204199
205200 class CharsetProbe {
206 private String codePage;
207 private CharsetEncoder encoder;
208
209 public CharsetProbe() {
210 setCodePage("latin1");
211 }
212
213 private void setCodePage(String codePage) {
214 if ("cp65001".equalsIgnoreCase(codePage)) {
215 this.codePage = "utf-8";
216 this.encoder = StandardCharsets.UTF_8.newEncoder();
217 } else {
218 this.codePage = codePage;
219 this.encoder = Charset.forName(codePage).newEncoder();
220 }
221 }
201 // TODO: this should could be moved to somewhere like util and used on other text files
202 // except looking for Codepage is particular to Typ files
203 // and want to have ability to return default environment decoder
204 // (ie inputStream without 2nd parameter)
222205
223206 private String probeCharset(String file) {
224 String readingCharset = "utf-8";
225
226 try {
227 tryCharset(file, readingCharset);
228 return readingCharset;
229 } catch (TypLabelException e) {
230 try {
231 readingCharset = e.getCharsetName();
232 tryCharset(file, readingCharset);
233 } catch (Exception e1) {
234 return "utf-8";
235 }
236 }
237
238 return readingCharset;
239 }
240
241 private void tryCharset(String file, String readingCharset) {
242
243 try (InputStream is = new FileInputStream(file); BufferedReader br = new BufferedReader(new InputStreamReader(is, readingCharset))) {
244
207
208 final String BOM_UTF_8 = "\u00EF\u00BB\u00BF";
209 final String BOM_UTF_16LE = "\u00FF\u00FE";
210 final String BOM_UTF_16BE = "\u00FE\u00FF";
211 final String BOM_UTF_32LE = "\u00FF\u00FE\u0000\u0000";
212 final String BOM_UTF_32BE = "\u0000\u0000\u00FE\u00FF";
213
214 final Charset byteCharNoMap = StandardCharsets.ISO_8859_1; // byteVal == charVal
215 final CharsetDecoder utf8Decoder = StandardCharsets.UTF_8.newDecoder();
216
217 String charset = null;
218 boolean validUTF8 = true;
219 try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), byteCharNoMap))) {
245220 String line;
246 while ((line = br.readLine()) != null) {
221 int lineNo = 0;
222 do {
223 line = br.readLine();
224 if (line == null)
225 break;
226 ++lineNo;
247227 if (line.isEmpty())
248228 continue;
249
250 // This is a giveaway the file is in utf-something, so ignore anything else
251 if (line.charAt(0) == 0xfeff)
252 return;
253
254 if (line.startsWith("CodePage=")) {
255 String[] split = line.split("=");
256 try {
257 if (split.length > 1)
258 setCodePage("cp" + Integer.decode(split[1].trim()));
259 } catch (NumberFormatException e) {
260 setCodePage("cp1252");
229 if (lineNo <= 2) { // only check the first few lines for these
230 if (line.contains(BOM_UTF_8))
231 charset = "UTF-8";
232 else if (line.contains(BOM_UTF_32LE)) // must test _32 before _16
233 charset = "UTF-32LE";
234 else if (line.contains(BOM_UTF_32BE))
235 charset = "UTF-32BE";
236 else if (line.contains(BOM_UTF_16LE))
237 charset = "UTF-16LE";
238 else if (line.contains(BOM_UTF_16BE))
239 charset = "UTF-16BE";
240 if (charset != null)
241 break;
242
243 int strInx = line.indexOf("-*- coding:"); // be lax about start/end
244 if (strInx >= 0) {
245 charset = line.substring(strInx+11).trim();
246 strInx = charset.indexOf(' ');
247 if (strInx >= 0)
248 charset = charset.substring(0, strInx);
249 break;
261250 }
262251 }
263252
264 if (line.startsWith("String")) {
265 CharBuffer cb = CharBuffer.wrap(line);
266 if (encoder != null)
267 encoder.encode(cb);
253 // special for TypFile; to be compatible with possible old usage
254 if (line.startsWith("CodePage=")) {
255 charset = line.substring(9).trim();
256 try {
257 int codePage = Integer.decode(charset);
258 if (codePage == 65001)
259 charset = "UTF-8";
260 else
261 charset = "cp" + codePage;
262 } catch (NumberFormatException e) {
263 }
264 break;
268265 }
269 }
270 } catch (UnsupportedEncodingException | CharacterCodingException e) {
271 throw new TypLabelException(codePage);
272
266
267 if (validUTF8) { // test the line for being valid UTF-8
268 ByteBuffer asBytes = byteCharNoMap.encode(line);
269 try { // arbitrary sequences of bytes > 127 tend not to be UTF8
270 /*CharBuffer asChars =*/ utf8Decoder.decode(asBytes);
271 } catch (CharacterCodingException e) {
272 validUTF8 = false;
273 // don't stop as might still get coding directive
274 }
275 }
276 } while (true);
273277 } catch (FileNotFoundException e) {
274278 throw new ExitException("File not found " + file);
275
276279 } catch (IOException e) {
277 throw new ExitException("Could not read file " + file);
280 throw new ExitException("Unable to read file " + file);
278281 }
282 return charset != null ? charset : (validUTF8 ? "UTF-8" : "cp1252");
279283 }
280284 }
281285 }
2222 import java.io.InputStreamReader;
2323 import java.io.Reader;
2424 import java.io.UnsupportedEncodingException;
25 import java.nio.charset.StandardCharsets;
2526 import java.util.ArrayList;
2627 import java.util.List;
2728
5354 * @return An open file reader for the file.
5455 */
5556 public Reader open(String filename) throws FileNotFoundException {
56 File file = new File(dir, filename);
57
58 Reader r = null;
59 try {
60 r = new InputStreamReader(new FileInputStream(file), "UTF-8");
61 } catch (UnsupportedEncodingException uee) {
62 System.out.println("DirectoryFileLoader: Encoding UTF-8 not supported");
63 r = new InputStreamReader(new FileInputStream(file));
64 }
65
66 return new BufferedReader(r);
57 return new BufferedReader(new InputStreamReader(new FileInputStream(new File(dir, filename)), StandardCharsets.UTF_8));
6758 }
6859
6960 /**
2222 import java.io.InputStreamReader;
2323 import java.io.Reader;
2424 import java.io.UnsupportedEncodingException;
25 import java.nio.charset.StandardCharsets;
2526 import java.net.JarURLConnection;
2627 import java.net.MalformedURLException;
2728 import java.net.URL;
130131 } catch (IOException e) {
131132 throw new FileNotFoundException("Could not open " + filename);
132133 }
133 Reader reader = null;
134 try {
135 reader = new InputStreamReader(stream, "UTF-8");
136 } catch (UnsupportedEncodingException e) {
137 System.out.println("JarFileLoader: Encoding UTF-8 not supported");
138 reader = new InputStreamReader(stream);
139 }
134 Reader reader = new InputStreamReader(stream, StandardCharsets.UTF_8);
140135 return new BufferedReader(reader);
141136 }
142137
1515 import java.io.FileInputStream;
1616 import java.io.InputStreamReader;
1717 import java.io.Reader;
18 import java.nio.charset.StandardCharsets;
1819 import java.util.ArrayList;
1920 import java.util.Arrays;
2021 import java.util.Collections;
7576 private boolean readConfig(String cfgFile) {
7677 if (cfgFile == null)
7778 return false;
78 try (InputStreamReader reader = new InputStreamReader(new FileInputStream(cfgFile), "utf-8")) {
79 try (InputStreamReader reader = new InputStreamReader(new FileInputStream(cfgFile), StandardCharsets.UTF_8)) {
7980 readOptionFile(reader, cfgFile);
8081 return true;
8182 } catch (Exception e) {
6666 private final RuleSet rules;
6767 private RuleSet finalizeRules;
6868 private final boolean performChecks;
69 private final boolean forRoutableMap;
6970 private final Map<Integer, List<Integer>> overlays;
7071
7172 private final Deque<Op[]> ifStack = new LinkedList<>();
7677 private final ExpressionArranger arranger = new ExpressionArranger();
7778
7879 public RuleFileReader(FeatureKind kind, LevelInfo[] levels, RuleSet rules, boolean performChecks,
80 Map<Integer, List<Integer>> overlays) {
81 this(kind, levels, rules, performChecks, false, overlays);
82 }
83
84 public RuleFileReader(FeatureKind kind, LevelInfo[] levels, RuleSet rules, boolean performChecks, boolean forRoutableMap,
7985 Map<Integer, List<Integer>> overlays) {
8086 this.kind = kind;
8187 this.rules = rules;
8288 this.performChecks = performChecks;
89 this.forRoutableMap = forRoutableMap;
8390 this.overlays = overlays;
8491 typeReader = new TypeReader(kind, levels);
8592 }
135142
136143 List<GType> types = new ArrayList<>();
137144 while (scanner.checkToken("[")) {
138 GType type = typeReader.readType(scanner, performChecks, overlays);
145 GType type = typeReader.readType(scanner, performChecks, forRoutableMap, overlays);
139146 types.add(type);
140147 scanner.skipSpace();
141148 }
2323 import java.io.OutputStreamWriter;
2424 import java.io.Reader;
2525 import java.io.Writer;
26 import java.nio.charset.StandardCharsets;
2627 import java.util.ArrayList;
2728 import java.util.Arrays;
2829 import java.util.Collection;
148149 // read overlays before the style rules to be able to ignore overlaid "wrong" types.
149150 readOverlays();
150151
151 readRules(props.getProperty("levels"));
152 readRules(props.getProperty("levels"), props.containsKey("route"));
152153
153154 ListIterator<StyleImpl> listIterator = baseStyles.listIterator(baseStyles.size());
154155 while (listIterator.hasPrevious())
222223 // There are a lot of tags that are used within mkgmap that
223224 try (InputStream is = this.getClass().getResourceAsStream("/styles/builtin-tag-list");) {
224225 if (is != null) {
225 BufferedReader br = new BufferedReader(new InputStreamReader(is));
226 BufferedReader br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
226227 // System.out.println("Got built in list");
227228 String line;
228229 while ((line = br.readLine()) != null) {
240241 return set;
241242 }
242243
243 private void readRules(String l) {
244 if (l == null)
245 l = generalOptions.get("levels");
244 private void readRules(String levelsFromProps, boolean routable) {
245 String l = generalOptions.get("levels");
246246 if (l == null)
247247 l = LevelInfo.DEFAULT_LEVELS;
248248 LevelInfo[] levels = LevelInfo.createFromString(l);
287287 try {
288288 RuleFileReader reader = new RuleFileReader(FeatureKind.POLYLINE, levels, lines, performChecks, getOverlaidTypeMap());
289289 reader.load(fileLoader, "lines");
290 if (routable && levelsFromProps != null && !levelsFromProps.equals(l)) {
291 LevelInfo[] pl = LevelInfo.createFromString(levelsFromProps);
292 if (levels[levels.length - 1].getBits() > pl[pl.length - 1].getBits()) {
293 RuleFileReader checker = new RuleFileReader(FeatureKind.POLYLINE, pl, new RuleSet(), false,
294 routable, getOverlaidTypeMap());
295 checker.load(fileLoader, "lines");
296 }
297 }
290298 } catch (FileNotFoundException e) {
291299 log.debug("no lines file");
292300 }
510518 name = "default";
511519
512520 if (name == null){
513 StyleFileLoader loader = null;
514 try {
515 loader = StyleFileLoader.createStyleLoader(loc, null);
521 try (StyleFileLoader loader = StyleFileLoader.createStyleLoader(loc, null)) {
516522 int numEntries = loader.list().length;
517523 if (numEntries > 1)
518524 throw new ExitException("Style file " + loc + " contains multiple styles, use option --style to select one.");
519525 } catch (FileNotFoundException e) {
520526 throw new ExitException("Could not open style file " + loc);
521 } finally {
522 Utils.closeFile(loader);
523527 }
524528 }
525529
2929 }
3030
3131 public GType readType(TokenScanner ts){
32 return readType(ts, false, null);
32 return readType(ts, false, false, null);
3333 }
3434
35 public GType readType(TokenScanner ts, boolean performChecks, Map<Integer, List<Integer>> overlays) {
35 public GType readType(TokenScanner ts, boolean performChecks, boolean forRoutableMap, Map<Integer, List<Integer>> overlays) {
3636 // We should have a '[' to start with
3737 Token t = ts.nextToken();
3838 if (t == null || t.getType() == TokType.EOF)
5151
5252
5353 GType gt = new GType(kind, type);
54 if (GType.checkType(gt.getFeatureKind(), gt.getType()) == false){
54 if (!GType.checkType(gt.getFeatureKind(), gt.getType())) {
5555 if (!performChecks && (kind != FeatureKind.POLYLINE || overlays == null || overlays.get(gt.getType()) == null))
5656 throw new SyntaxException("invalid type " + type + " for " + kind + " in style file " + ts.getFileName() + ", line " + ts.getLinenumber());
5757 }
9191 }
9292 }
9393
94 gt.fixLevels(levels);
9495 int maxResLevel0 = toResolution(0);
9596 if (gt.getMaxResolution() > maxResLevel0 && gt.getMinResolution() > maxResLevel0) {
96 String msg = "Cannot use type " + gt + " with level 0 at resolution " + maxResLevel0
97 + " in style file " + ts.getFileName() + ", line " + ts.getLinenumber();
97 String msg = "Type " + GType.formatType(gt.getType()) + " min-res:" + gt.getMinResolution() + " will not be written with level 0 at resolution " + maxResLevel0
98 + " in style file " + ts.getFileName() + ", line " + ts.getLinenumber();
9899 if (performChecks) {
99100 log.error(msg);
100 } else {
101 throw new SyntaxException(msg);
102 }
103 }
104 gt.fixLevels(levels);
101 } else if (kind == FeatureKind.POLYLINE && gt.isRoad() && forRoutableMap) {
102 log.error(msg , "-> routing may not work");
103 }
104 }
105105 if ("lines".equals(ts.getFileName())){
106106 if(gt.getRoadClass() < 0 || gt.getRoadClass() > 4)
107107 log.error("road class value", gt.getRoadClass(), "not in the range 0-4 in style file lines, line " + ts.getLinenumber());
13731373 modifiedPoints.remove(modifiedPoints.size() - 1);
13741374 c1 = modifiedPoints.get(modifiedPoints.size() - 1); // might be part of spike
13751375 } else {
1376 if (modifiedPoints.isEmpty()) {
1377 modifiedPoints.add(c1);
1378 }
13761379 continue;
13771380 }
13781381 }
1212 package uk.me.parabola.mkgmap.reader.hgt;
1313
1414 import java.io.BufferedReader;
15 import java.io.FileReader;
15 import java.io.FileInputStream;
16 import java.io.InputStreamReader;
1617 import java.io.IOException;
1718 import java.io.InputStream;
1819 import java.io.RandomAccessFile;
8788 */
8889 private static BitSet compileHGTList(String filename) throws IOException {
8990 final Pattern hgtPattern = Pattern.compile("([sSnN])(\\d{2})([eEwW])(\\d{3}).*");
90 try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
91 // maybe should be changed from using DefaultCharset to UTF-8
92 try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filename)/*NB: DefaultCharset*/))) {
9193 BitSet bs = new BitSet(180*360);
9294 String strLine;
9395 while ((strLine = br.readLine()) != null) {
1818 import java.io.BufferedReader;
1919 import java.io.File;
2020 import java.io.FileNotFoundException;
21 import java.io.FileReader;
21 import java.io.InputStreamReader;
22 import java.io.FileInputStream;
2223 import java.io.IOException;
2324 import java.io.InputStream;
2425 import java.nio.charset.StandardCharsets;
144145
145146 @Override
146147 public void load(String name, boolean addBackground) throws FileNotFoundException {
147 InputStream is = Utils.openFile(name);
148 parse(is, name);
148 try (InputStream is = Utils.openFile(name)) {
149 parse(is, name);
150 } catch (IOException e) {
151 // exception thrown from implicit call to close() on resource variable 'is'
152 }
153
149154 elementSaver.finishLoading();
150155
151156 osmReadingHooks.end();
288293
289294 private static Map<String, Set<String>> readDeleteTagsFile(String fileName) {
290295 Map<String, Set<String>> deletedTags = new HashMap<>();
291 try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
296
297 // 14Jan20 Changed from using DefaultCharset to UTF-8
298 try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), StandardCharsets.UTF_8))) {
292299 String line;
293 while((line = br.readLine()) != null) {
300 while ((line = br.readLine()) != null) {
294301 line = line.trim();
295 if(line.length() > 0 && !line.startsWith("#") && !line.startsWith(";")) {
302 if (line.isEmpty())
303 continue;
304 if (line.charAt(0) == '\uFEFF') { // BOM
305 line = line.substring(1);
306 if (line.isEmpty())
307 continue;
308 }
309 if (!line.startsWith("#") && !line.startsWith(";")) {
296310 String[] parts = line.split("=");
297311 if (parts.length == 2) {
298312 parts[0] = parts[0].trim();
1919 import java.io.FileNotFoundException;
2020 import java.io.IOException;
2121 import java.io.InputStreamReader;
22 import java.io.Reader;
23 import java.io.UnsupportedEncodingException;
2422 import java.nio.ByteBuffer;
2523 import java.nio.CharBuffer;
2624 import java.nio.charset.CharacterCodingException;
2725 import java.nio.charset.Charset;
2826 import java.nio.charset.CharsetDecoder;
2927 import java.nio.charset.CodingErrorAction;
28 import java.nio.charset.StandardCharsets;
3029 import java.util.ArrayList;
3130 import java.util.HashMap;
3231 import java.util.LinkedHashMap;
7574 public class PolishMapDataSource extends MapperBasedMapDataSource implements LoadableMapDataSource {
7675 private static final Logger log = Logger.getLogger(PolishMapDataSource.class);
7776
78 private static final String READING_CHARSET = "iso-8859-1";
77 private static final Charset READING_CHARSET = StandardCharsets.ISO_8859_1;
7978
8079 private static final int S_IMG_ID = 1;
8180 private static final int S_POINT = 2;
126125
127126 @Override
128127 public void load(String name, boolean addBackground) throws FileNotFoundException {
129 Reader reader;
130 try {
131 reader = new InputStreamReader(Utils.openFile(name), READING_CHARSET);
132 } catch (UnsupportedEncodingException e) {
133 // Java is required to support iso-8859-1 so this is unlikely
134 throw new FormatException("Unrecognised charset " + READING_CHARSET);
135 }
136
137128 // If no code page is given then we read labels in utf-8
138 dec = Charset.forName("utf-8").newDecoder();
129 dec = StandardCharsets.UTF_8.newDecoder();
139130 dec.onUnmappableCharacter(CodingErrorAction.REPLACE);
140131
141
142 try (BufferedReader in = new BufferedReader(reader)){
132 try (BufferedReader in = new BufferedReader(new InputStreamReader(Utils.openFile(name), READING_CHARSET))) {
143133 String line;
144134 while ((line = in.readLine()) != null) {
145135 ++lineNo;
153143 else
154144 processLine(line);
155145 }
156
157 // Add all restrictions to the map after reading the full map.
158 // The reason being, the restrictions section appear in the beginning of the map.
159 // All the nodes will only be read later on.
160 // Required to pass the road helper instance as it contains all node data.
161 restrictionHelper.processAndAddRestrictions(roadHelper, mapper);
162146 } catch (IOException e) {
163147 throw new FormatException("Reading file failed", e);
164148 }
149
150 // Add all restrictions to the map after reading the full map.
151 // The reason being, the restrictions section appear in the beginning of the map.
152 // All the nodes will only be read later on.
153 // Required to pass the road helper instance as it contains all node data.
154 restrictionHelper.processAndAddRestrictions(roadHelper, mapper);
165155
166156 if (addBackground && !havePolygon4B)
167157 addBackground();
550540 }
551541 if (close && points.get(0) != points.get(points.size() - 1)) {
552542 // not closed, close it
553 points.add(points.get(0));
543 if (points.get(0).highPrecEquals(points.get(points.size() - 1))) {
544 points.set(points.size() - 1, points.get(0));
545 } else {
546 points.add(points.get(0));
547 }
554548 }
555549 log.debug(points.size() + " points from " + value);
556550 return points;
707701 */
708702 private String recode(String value) {
709703 if (dec != null) {
704 // Get the bytes that were actually in the file.
705 byte[] bytes = value.getBytes(READING_CHARSET);
706 ByteBuffer buf = ByteBuffer.wrap(bytes);
707
710708 try {
711 // Get the bytes that were actually in the file.
712 byte[] bytes = value.getBytes(READING_CHARSET);
713 ByteBuffer buf = ByteBuffer.wrap(bytes);
714
715709 // Decode from bytes with the correct code page.
716710 CharBuffer out = dec.decode(buf);
717711 return out.toString();
718 } catch (UnsupportedEncodingException e) {
719 // Java requires this support, so unlikely to happen
720 log.warn("no support for " + READING_CHARSET);
721712 } catch (CharacterCodingException e) {
722713 log.error("error decoding label", e);
723714 }
2727 */
2828 public class TokenScanner {
2929 private static final int NO_PUSHBACK = 0;
30 private String charset = "utf-8";
3031
3132 // Reading state
3233 private final Reader reader;
5051 else
5152 this.reader = new BufferedReader(reader);
5253 fileName = filename;
54 }
55
56 public void setCharset(String charset) {
57 this.charset = charset;
5358 }
5459
5560 /**
235240 try {
236241 c = reader.read();
237242 if (c == 0xfffd)
238 throw new SyntaxException(this, "Bad character in input, file probably not in utf-8");
243 throw new SyntaxException(this, "Bad character in input, file probably not in " + charset);
239244 } catch (IOException e) {
240245 isEOF = true;
241246 c = -1;
2121 import java.nio.CharBuffer;
2222 import java.nio.charset.CharacterCodingException;
2323 import java.nio.charset.CharsetEncoder;
24 import java.nio.charset.StandardCharsets;
2425 import java.nio.file.Files;
2526 import java.nio.file.Paths;
2627 import java.util.ArrayList;
101102 private Map<Integer, Integer> maxTert;
102103 private List<CodePosition> expansions;
103104
104 public SrtTextReader(Reader r) throws IOException {
105 public SrtTextReader(Reader r) {
105106 this("stream", r);
106107 }
107108
108109 private SrtTextReader(String filename) throws IOException {
109 this(filename, new InputStreamReader(new FileInputStream(filename), "utf-8"));
110 }
111
112 private SrtTextReader(String filename, Reader r) throws IOException {
110 this(filename, new InputStreamReader(new FileInputStream(filename), StandardCharsets.UTF_8));
111 }
112
113 private SrtTextReader(String filename, Reader r) {
113114 maxSec = new HashMap<>();
114115 maxTert = new HashMap<>();
115116 expansions = new ArrayList<>();
124125 */
125126 public static Sort sortForCodepage(int codepage) {
126127 String name = "sort/cp" + codepage + ".txt";
127 InputStream is = Sort.class.getClassLoader().getResourceAsStream(name);
128 if (is == null) {
129 if (codepage == 1252)
130 throw new ExitException("No sort description for code-page 1252 available");
131
132 Sort defaultSort = SrtTextReader.sortForCodepage(1252);
133 defaultSort.setCodepage(codepage);
134 defaultSort.setDescription("Default sort");
135 return defaultSort;
136 }
137
138 try {
139 InputStreamReader r = new InputStreamReader(is, "utf-8");
128 try (InputStream is = Sort.class.getClassLoader().getResourceAsStream(name)) {
129 if (is == null) {
130 if (codepage == 1252)
131 throw new ExitException("No sort description for code-page 1252 available");
132
133 Sort defaultSort = SrtTextReader.sortForCodepage(1252);
134 defaultSort.setCodepage(codepage);
135 defaultSort.setDescription("Default sort");
136 return defaultSort;
137 }
138
139 InputStreamReader r = new InputStreamReader(is, StandardCharsets.UTF_8);
140140 SrtTextReader sr = new SrtTextReader(r);
141141 return sr.getSort();
142142 } catch (IOException e) {
143 return SrtTextReader.sortForCodepage(codepage);
143 throw new ExitException("Exception " + e + " getting sortForCodepage " + codepage);
144144 }
145145 }
146146
310310 Code code = new Code(scanner, val).read();
311311
312312 String s = scanner.nextValue();
313 if (!s.equals("to"))
313 if (!"to".equals(s))
314314 throw new SyntaxException(scanner, "Expected the word 'to' in expand command");
315315
316316 int secondary = 0;
4141 } else if (name.equalsIgnoreCase("ProductCode")) {
4242 data.setProductId(ival);
4343 } else if (name.equalsIgnoreCase("CodePage")) {
44 data.setSort(SrtTextReader.sortForCodepage(ival));
44 if (data.getSort() == null) // ignore if --code-page
45 data.setSort(SrtTextReader.sortForCodepage(ival));
4546 } else {
4647 throw new SyntaxException(scanner, "Unrecognised keyword in id section: " + name);
4748 }
3131 // As the file is read in, the information is saved into this data structure.
3232 private final TypData data = new TypData();
3333
34 public void read(String filename, Reader r) {
34 public void read(String filename, Reader r, String charset) {
3535 TokenScanner scanner = new TokenScanner(filename, r);
3636 scanner.setCommentChar(null); // the '#' comment character is not appropriate for this file
37 scanner.setCharset(charset);
3738
3839 ProcessSection currentSection = null;
3940
9494 case "RGN":
9595 count++;
9696 System.out.println("RGN size " + size);
97 assertThat("RGN size", size, new RangeMatcher(2710));
97 assertThat("RGN size", size, new RangeMatcher(2741,3));
9898 break;
9999 case "TRE":
100100 count++;
8989 case "RGN":
9090 count++;
9191 System.out.println("RGN size " + size);
92 assertThat("RGN size", size, new RangeMatcher(2727));
92 assertThat("RGN size", size, new RangeMatcher(2764,3));
9393 break;
9494 case "TRE":
9595 count++;
1919 import java.io.RandomAccessFile;
2020 import java.io.Reader;
2121 import java.io.StringReader;
22 import java.nio.charset.Charset;
2223 import java.nio.channels.FileChannel;
2324 import java.util.List;
2425
268269 public void testFromFile() throws IOException, InterruptedException {
269270 Reader r = new BufferedReader(new FileReader("test/resources/typ/test.txt"));
270271 tr = new TypTextReader();
271 tr.read("test.typ", r);
272 tr.read("test.typ", r, Charset.defaultCharset().name());
272273
273274 TestUtils.registerFile("ts__test.typ");
274275 RandomAccessFile raf = new RandomAccessFile("ts__test.typ", "rw");
311312 Reader r = new StringReader(in);
312313
313314 TypTextReader tr = new TypTextReader();
314 tr.read("string", r);
315 tr.read("string", r, "N/A");
315316 if (tr.getData().getSort() == null)
316317 tr.getData().setSort(SrtTextReader.sortForCodepage(1252));
317318 return tr;