Hi Felix, please try the attached patch, it will avoid generating a 4b polygon if the MP data defines any.
Cheers, Mark
diff --git a/src/uk/me/parabola/mkgmap/reader/MapperBasedMapDataSource.java b/src/uk/me/parabola/mkgmap/reader/MapperBasedMapDataSource.java index 9ae86d0..0f1f92b 100644 --- a/src/uk/me/parabola/mkgmap/reader/MapperBasedMapDataSource.java +++ b/src/uk/me/parabola/mkgmap/reader/MapperBasedMapDataSource.java @@ -129,7 +129,11 @@ public abstract class MapperBasedMapDataSource implements MapDataSource, Configu * We add the background polygons if the map is not transparent. */ protected void addBackground() { - if (!getConfig().getProperty("transparent", false)) { + addBackground(false); + } + + protected void addBackground(boolean mapHasPolygon4B) { + if (!mapHasPolygon4B && !getConfig().getProperty("transparent", false)) { // Make a list of points to trace out the background area. List<Coord> coords = new ArrayList<Coord>(); Area bounds = mapper.getBounds(); diff --git a/src/uk/me/parabola/mkgmap/reader/polish/PolishMapDataSource.java b/src/uk/me/parabola/mkgmap/reader/polish/PolishMapDataSource.java index b41aaa2..7777bac 100644 --- a/src/uk/me/parabola/mkgmap/reader/polish/PolishMapDataSource.java +++ b/src/uk/me/parabola/mkgmap/reader/polish/PolishMapDataSource.java @@ -87,6 +87,8 @@ public class PolishMapDataSource extends MapperBasedMapDataSource implements Loa private int lineNo; + private boolean havePolygon4B; + // Use to decode labels if they are not in cp1252 private CharsetDecoder dec; @@ -128,7 +130,7 @@ public class PolishMapDataSource extends MapperBasedMapDataSource implements Loa throw new FormatException("Reading file failed", e); } - addBackground(); + addBackground(havePolygon4B); } public LevelInfo[] mapLevels() { @@ -415,7 +417,10 @@ public class PolishMapDataSource extends MapperBasedMapDataSource implements Loa */ private void shape(String name, String value) { if (name.equals("Type")) { - shape.setType(Integer.decode(value)); + int type = Integer.decode(value); + shape.setType(type); + if(type == 0x4b) + havePolygon4B = true; } else if (name.startsWith("Data")) { List<Coord> newPoints = coordsFromString(value);
_______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev