
I have identified what I think may be a minor bug in mkgmap:
If a relation has the same name as one of its components (or perhaps any name), the name of the component is lost.
I identified this on way 4798060, a small lake called 'High Dam'. Because there are islands in the lake, it is the outer component of relation 1369084, which also had the name 'High Dam'. Following mkgmap processing, the lake came out with its default name 'Reservoir'. However, when I removed the name from the relation, it came out with its correct name. (It appears correctly on OSM renderings such as mapnik).
I am afraid I have already edited the relation name out on the OSM source, so others cannot test this directly. But I have verified the behaviour by manually editing a small local extract of the area.
Another (minor) fault which would probably be easy to rectify: if the destination file is open in MapSource when mkgmap runs, it crashes (understandably), but leaves a number of temporary files around. Could these be deleted when the exception is processed?
Roger
The mkgmap multipolygon algorithm removes all tags from the outer ways that are identical to tags of the relation. Therefore the tag name=High Dam is removed from the way 4798060. (By the way, tagging the multipolygon only with name is definitely wrong. Either add all tags or no tag to the mp). Removing tags from the outer ways is required to handle all mps where the tags are set on the map *and* on the ways. These are a lot (best example: all boundaries). I don't see a good alternative to this algorithm as long as the OSM datamodel does not ensure any multipolygon correctness. WanMil