diff --git a/vtm/src/org/oscim/backend/canvas/Color.java b/vtm/src/org/oscim/backend/canvas/Color.java index a9ad2177..acec4ebc 100644 --- a/vtm/src/org/oscim/backend/canvas/Color.java +++ b/vtm/src/org/oscim/backend/canvas/Color.java @@ -223,4 +223,19 @@ public class Color { } throw new IllegalArgumentException("Unknown color"); } + + public static int parseColor(String colorString, int fallBackColor) { + if (colorString.charAt(0) == '#') { + // Use a long to avoid rollovers on #ffXXXXXX + long color = Long.parseLong(colorString.substring(1), 16); + if (colorString.length() == 7) { + // Set the alpha value + color |= 0x00000000ff000000; + } else if (colorString.length() != 9) { + return fallBackColor; + } + return (int) color; + } + return fallBackColor; + } } diff --git a/vtm/src/org/oscim/layers/tile/s3db/S3DBLayer.java b/vtm/src/org/oscim/layers/tile/s3db/S3DBLayer.java index 291f0763..888d396f 100644 --- a/vtm/src/org/oscim/layers/tile/s3db/S3DBLayer.java +++ b/vtm/src/org/oscim/layers/tile/s3db/S3DBLayer.java @@ -55,11 +55,8 @@ public class S3DBLayer extends TileLayer { static int getColor(String color, boolean roof) { - try { - return Color.parseColor(color); - } catch (Exception e) { - - } + if (color.charAt(0) == '#') + return Color.parseColor(color, Color.CYAN); if (roof) { if ("brown" == color)