logo separator

[mkgmap-dev] [locator] Separate boundary files

From Carlos Dávila cdavilam at orangecorreo.es on Thu Apr 28 18:22:40 BST 2011

These are the results of my first (limited) tests:
The list of places under State/Province field in MapSource "Search 
places" includes a lot more wrong places than without the boundary 
precompilation (locator r1922). For example I get State/Province "La 
Zubia" (from relation 347255) and place "Cumbres Verdes (node 
1107558640), LA ZUBIA, ESP" under it.
In the last days I've been correcting incomplete boundary polygons from 
mkgmap log. Searching for a random street (Calle Calvario) that exists 
within one of these multipolygons I fixed yesterday (relation 346527) I 
get the following:
Trunk+spain.osm.pbf 28/4-> 46 "Calle Calvario" matches with complete 
city, region, country information (e.g. way 62120822: Calle Calvario, 
Alburquerque, EXTREMADURA, ESP)
Locator r1925+spain.osm.pbf 27/4 -> 39 matches most of them with 
incomplete or even wrong city, region, country information (e.g. way 
62120822: Calle Calvario, CÁCERES (should be BADAJOZ), ESP). Cáceres is 
relation 349018 and Badajoz 348994.
Locator r1925+spain.osm.pbf 28/4 -> same result. Note mkgmap didn't 
complain about mp 346527.
The boundary tiles are extracted daily from the same pbf file than map.
My locator related styles:
mkgmap:country!=* & addr:country=* { set mkgmap:country='${addr:country}' }
mkgmap:country!=* & is_in:country=* { set 
mkgmap:country='${is_in:country}' }
mkgmap:country!=* & mkgmap:admin_level2=* { set 
mkgmap:country='${mkgmap:admin_level2}' }

mkgmap:region!=* & is_in:province=* { set 
mkgmap:region='${is_in:province}' }
mkgmap:region!=* & mkgmap:admin_level6=* { set 
mkgmap:region='${mkgmap:admin_level6}' }
mkgmap:region!=* & mkgmap:admin_level5=* { set 
mkgmap:region='${mkgmap:admin_level5}' }
mkgmap:region!=* & mkgmap:admin_level4=* { set 
mkgmap:region='${mkgmap:admin_level4}' }
mkgmap:region!=* & mkgmap:admin_level3=* { set 
mkgmap:region='${mkgmap:admin_level3}' }

mkgmap:city!=* & openGeoDB:name=* { set mkgmap:city='${openGeoDB:name}' }
mkgmap:city!=* & is_in:city=* { set mkgmap:city='${is_in:city}' }
mkgmap:city!=* & addr:city=* { set mkgmap:city='${addr:city}' }
mkgmap:city!=* & mkgmap:admin_level8=* { set 
mkgmap:city='${mkgmap:admin_level8}' }
mkgmap:city!=* & mkgmap:admin_level7=* { set 
mkgmap:city='${mkgmap:admin_level7}' }
mkgmap:city!=* & mkgmap:admin_level9=* { set 
mkgmap:city='${mkgmap:admin_level9}' }
mkgmap:city!=* & mkgmap:admin_level10=* { set 
mkgmap:city='${mkgmap:admin_level10}' }

mkgmap:postal_code!=* & addr:postcode=* { set 
mkgmap:postal_code='${addr:postcode}' }
mkgmap:postal_code!=* & openGeoDB:postal_codes=* { set 
mkgmap:postal_code='${openGeoDB:postal_codes}' }
mkgmap:postal_code!=* & mkgmap:postcode=* { set 
mkgmap:postal_code='${mkgmap:postalcode}' }

My commands:
osmosis --read-pbf file="spain.osm.pbf" --tf accept-ways 
boundary=administrative --tf accept-relations boundary=administrative 
--used-node --write-xml file="spain-boundaries.osm"
time /usr/lib/jvm/java-6-sun/bin/java -Xmx1500m -enableassertions 
-Dlog.config=logging.properties -jar mkgmap-locator.jar 
--createboundsfile=spain-boundaries.osm --max-jobs 
--generate-sea=polygons,extend-sea-sectors --route --latin1 
--code-page=1252 --gmapsupp --country-name=ESPAÑA --country-abbr=ESP 
--area-name=España --family-name="OpenStreetMap España" --family-id=39 
--product-id=1 --series-name="OSM-España-index" --index 
--ignore-maxspeeds --remove-short-arcs --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 -c spain.args

More information about the mkgmap-dev mailing list