logo separator

[mkgmap-dev] [locator] Country specific rules

From Carlos Dávila cdavilam at orangecorreo.es on Sat May 21 18:45:00 BST 2011

El 20/05/11 11:06, Carlos Dávila escribió:
> El 20/05/11 00:07, Carlos Dávila escribió:
>> El 19/05/11 23:15, WanMil escribió:
>>>> El 19/05/11 22:12, WanMil escribió:
>>>>>> El 19/05/11 21:29, WanMil escribió:
>>>>>>>> El 16/05/11 19:27, Minko escribió:
>>>>>>>>> Cool!
>>>>>>>>> I can use these locator rules also for the multiple language expressions in the 'default_name':
>>>>>>>>> http://www.mail-archive.com/mkgmap-dev@lists.mkgmap.org.uk/msg07697.html
>>>>>>>>>
>>>>>>>>> Example:
>>>>>>>>> leisure=pitch&          sport=soccer&          (mkgmap:country=NLD | mgkmap:region=Vlaanderen) [0x19 default_name="voetbalveld" resolution 23]
>>>>>>>>> leisure=pitch&          sport=soccer&          mkgmap:country=DEU  [0x19 default_name="Fussballfeld" resolution 23]
>>>>>>>>> leisure=pitch&          sport=soccer&          (mkgmap:country=FRA | mgkmap:region="Région Wallone") [0x19 default_name="terrain de football" resolution 23]
>>>>>>>>> leisure=pitch&          sport=soccer [0x19 resolution 23]
>>>>>>>> I tried rules of type below, but it doesn't work for Morocco.
>>>>>>>> highway=primary&         (mkgmap:country=ETH | mkgmap:country=MAR) [0x03
>>>>>>>> road_class=3 road_speed=5 resolution 16]
>>>>>>>> highway=primary [0x03 road_class=3 road_speed=5 resolution 18]
>>>>>>>>
>>>>>>>> MapSouce shows "Morocco (MOR)" in the countries list, although
>>>>>>>> LocatorConfig.xml has the rule below and there's no occurrence of "MOR"
>>>>>>>> in the OSM data.
>>>>>>>> <country name="Morocco" abr="MAR">
>>>>>>>> <variant>MA</variant>
>>>>>>>> <variant>MAR</variant>
>>>>>>>> </country>
>>>>>>>> I know I could use MOR instead of MAR in my style but, shouldn't it be
>>>>>>>> consistent with the LocatorConfig?
>>>>>>> It seems as if the LocatorConfig you changed is not used by mkgmap. Do
>>>>>>> you use a downloaded mkgmap.jar? I am not sure where your changed
>>>>>>> LocatorConfig.xml must be placed so that mkgmap does not use the bundled
>>>>>>> LocatorConfig.xml.
>>>>>> I have not changed LocatorConfig.xml, I'm using the default one. I use a
>>>>>> self compiled jar.
>>>>> Oh, I am sorry. I mixed up some things.
>>>> Well, I'm must also say I'm sorry, as checking my parameters I've seen
>>>> MOR was coming from my --country-abbr:-[ , but changing it to the right
>>>> "MAR" didn't make the style work, although MapSource now lists "Morocco
>>>> (MAR)"
>>> That's good because this question is answered :-)
>>>
>>> The style can work only if the boundaries of Morocco are contained in
>>> the precompiled boundary tiles. I think my europe compilation may
>>> contain a small part of northern morocco.
>>> So you should do the following steps:
>>> 1. Check that the boundary multipolygon of Morocco is complete and valid
>>> 2. Precompile the boundary tiles
>>> 3. Compile your map again using the precompiled boundary tiles
>>>
>>> Then the style rules should work.
>> I had already compiled Morocco's boundary (extracted from Geofabrik
>> morocco.osm.pbf). What I didn't is converting bnd to gpx and checking
>> it, but that will be tomorrow...
> I checked part of the bound tiles and they are correct. Here are all my
> steps, so you can see if I'm doing something wrong:
> 1-Extract boundaries:
> osmosis \
> --read-pbf file=morocco.osm.pbf outPipe.0=1 \
> --tee 2 inPipe.0=1 outPipe.0=2 outPipe.1=3 \
> --buffer inPipe.0=3 outPipe.0=4 \
> --buffer inPipe.0=2 outPipe.0=5 \
> --tag-filter accept-relations boundary=administrative inPipe.0=4
> outPipe.0=6 \
> --used-way inPipe.0=6 outPipe.0=7 \
> --tag-filter reject-relations inPipe.0=5 outPipe.0=8 \
> --tag-filter accept-ways boundary=administrative inPipe.0=8 outPipe.0=9 \
> --used-node inPipe.0=9 outPipe.0=10 \
> --used-node inPipe.0=7 outPipe.0=11 \
> --merge inPipe.0=10 inPipe.1=11 outPipe.0=12 \
> --write-pbf file=morocco-boundaries.osm.pbf omitmetadata=true
> compress=deflate inPipe.0=12
>
> 2-Map compilation:
> time /usr/lib/jvm/java-6-sun/bin/java -Xmx400m -enableassertions
> -Dlog.config=logging.properties -jar mkgmap-locator.jar
> --createboundsfile=morocco-boundaries.osm.pbf
> --boundsdirectory=bounds_morocco --generate-sea=extend-sea-sectors
> --route --tdbfile --latin1 --code-page=1252
> --description="OpenStreetMap-Morocco" --gmapsupp --country-name=MOROCCO
> --country-abbr=MAR --family-name="Open Street Map" --family-id=17
> --product-id=1 --series-name="OSM-Morocco" --area-name="Morocco"
> --overview-mapname=55170000 --mapname=55170000
> --name-tag-list=int_name,name --index --road-name-pois=0x640a
> --ignore-maxspeeds --remove-short-arcs --merge-lines --add-pois-to-areas
> --adjust-turn-headings --report-similar-arcs --link-pois-to-ways
> --location-autofill=0 --drive-on-right --check-roundabouts
> --check-roundabout-flares --style=mio typ/MOROC-17.TYP morocco.osm.pbf
I've seen streets/roads don't have city, region, country information 
assigned in my Morocco's map when searched in MapSource. As there's no 
city boundary and nearly no region boundary in OSM data mkgmap:region!=* 
and mkgmap:city!=* rules in style fail to fill that info and this seems 
to block country info to be assigned even if it is present. I have tuned 
style to assign a default city and region when missing and then country 
is correctly set (and also region if present), but even so, rule 
"highway=primary & (mkgmap:country=ETH | mkgmap:country=MAR) [0x03 
road_class=3 road_speed=5 resolution 16]" is not applied.



More information about the mkgmap-dev mailing list