logo separator

[mkgmap-dev] Manage drive-on-left/drive-on-right in resources\LocatorConfig.xml

From Gerd Petermann gpetermann_muenchen at hotmail.com on Wed Nov 26 09:22:30 GMT 2014



Hi all,

this point is on the to do list, but I am not sure what the target is.
I guess it should replace the two options drive-on-right and drive-on-left.
("dor","dol")

A possible implementation looks like this:
1) add property driveOnLeft="true" to the appropriate countries in LocatorConfig.xml
2) add methods to lookup the property for a given roundabout
3) count the number of "dol" and "dor" roundabouts
4) If neither the --drive-on-left option or --drive-on-right option is set, use the counters:
if the "dol" number is larger than the "dor" number,
set the "dol" flag in the NOD header to 1.

So far so easy. I guess in most usage cases one of the counters is 0 and the other is not,
so that would work fine.

Open questions:
1) What should happen for those tiles containing both "dol" and "dor" roundabouts?
2) What should happen if the --drive-on-left option is given and the tile contains
only  "dor" roundabouts (or vice-versa) ? Should we ignore the option given by the user
and print a corresponding warning?
3) We have the --check-roundabouts option which also might set the flag in the NOD header
if the user doesn't specify --drive-on-left or --drive-on-right. The current implementation
simply uses the direction of first roundabout (clockwise or not) to decide which driving side
is to be used and it reverses the direction of all following roundabouts which don't match
the direction of the first one. I assume this should be changed so that we use the above counters
as well?


@Steve:
The data in the LocatorConfig.xml seems to be only used in combination with the --bounds
option, without precompiled bounds the default style will not set mkgmap:country which is used
to get the data from the LocatorConfig.xml. I did expect that an option like --country-name or --country-abbr 
could be used to set a default, and the code really passes the values to a method in Locator 
called setDefaultCountry(), but that method is only adding /overwriting a HashMap of country-name+iso-code
which is filled from LocatorConfig.xml .
Is that intended?












 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20141126/7230c9cf/attachment.html>


More information about the mkgmap-dev mailing list