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

Reply via email to