
Hi WanMil,
the patch for the mp code does not remove any tags from the source polygons and lines. Instead it tags all mp-source lines and polygons with mkgmap:mp_source=yes.
All artificially created polygons during the mp processing are tagged with mkgmap:mp_created=yes.
Example: Polygon A - natural=water, role=outer Polygon B - landuse=grass, role=inner
Result after mp processing Polygon A - natural=water, role=outer, mkgmap:mp_source=yes Polygon B - landuse=grass, role=inner, mkgmap:mp_source=yes
Polygon A1 - natural=water, mkgmap:mp_created=yes Polygon A2 - natural=water, mkgmap:mp_created=yes Polygon B1 - landuse=grass, mkgmap:mp_created=yes
Maybe you could play a bit with this and post any new ideas how to improve the tag handling in the mp code.
How would this remove the bogus boundary lines in Germany? (Germany uses multipolygons for administrative boundaries.) I believe that for those to work, the multipolygon code should be disabled by a style rule, e.g., use the MP code only if type=multipolygon & boundary!=*. Someone who wants to render boundaries as multipolygons would enable the MP processing of the boundaries. Or would we make this by an option, something like mkgmap --disable-multipolygon='boundary=*'? An alternative to disabling MP processing would be to set mkgmap:mp_created only on the line segments that were created when splitting A to A1 and A2, but I suppose that polygons and lines are wholly different entities in mkgmap, and thus you cannot have differently tagged line segments within a polygon. Marko