[mkgmap-dev] useless rules in default style inc/address
From WanMil wmgcnfg at web.de on Thu Nov 27 19:39:16 GMT 2014
Hi Gerd, the address file is an include and you don't know what happens before. Maybe it is not set in the mkgmap style. But the address file is quite general and so it is probably used by other styles which might have some special rules before "include address" that set mkgmap:country. So I would recommend to leave it as it is (I think the style optimizer will reduce the performance drawbacks of the one additional mkgmap:country!=* ). I would like to use mkgmap:country!=* { set mkgmap:country='${mkgmap:admin_level2}'|'${addr:country}'|'${is_in:country}' } But that doesn't work because it is not allowed to use a != rule only. Maybe you have a good idea to tweak it so that it works in such a way. You are right that this assignment does not normalize the country codes within the styles. It would be good to add that. A function need to call Locator.getCountryISOCode(String). This returns the three letter ISO code. All values listed in the Locator.xml are accepted (name, ISO code, variants). Additionally it learns automatically all localization variants from the loaded bounds files. Just start at BoundaryLocationPreparer.parseTags(String). For all other values that are still not mapped the uppercase string is returned. At the moment mkgmap:country is normalized after the style file processing in the MapBuilder class. Just search for locator.getCountryISOCode(String). Ulrich > Hi all, > > the default style file inc/address starts with these three rules: > # first set the country code > mkgmap:country!=* & mkgmap:admin_level2=* { set > mkgmap:country='${mkgmap:admin_level2}' } > mkgmap:country!=* & addr:country=* { set mkgmap:country='${addr:country}' } > mkgmap:country!=* & is_in:country=* { set > mkgmap:country='${is_in:country}' } > > I found no code in the mkgmap java sources that sets mkgmap:country, so > the first rule > will always set mkgmap:country unless one manipulates the OSM data. > > The following rules evaluate mkgmap:country and expect the ISO 1366 code > with 3 characters, e.g. DEU > for Germany. > The wiki for tag addr:country says that it should contain the 2 > character ISO code, e.g. DE for Germany. > The is_in:country tag contains the country name, not the iso code. > > I think we should remove the two useless rules unless someone finds a > working alternative. > > Gerd > > > _______________________________________________ > mkgmap-dev mailing list > mkgmap-dev at lists.mkgmap.org.uk > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev >
- Previous message: [mkgmap-dev] useless rules in default style inc/address
- Next message: [mkgmap-dev] useless rules in default style inc/address
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list