Index: trunk/.classpath
===================================================================
--- trunk/.classpath	(revision 485)
+++ trunk/.classpath	(revision 486)
@@ -2,5 +2,5 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry excluding="build/|dist/|src/|test/" including="images/|presets/" kind="src" path=""/>
+	<classpathentry excluding="build/|dist/|src/|test/" including="images/|presets/|styles/" kind="src" path=""/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="lib" path="lib/metadata-extractor-2.3.1-nosun.jar"/>
Index: trunk/build.xml
===================================================================
--- trunk/build.xml	(revision 485)
+++ trunk/build.xml	(revision 486)
@@ -30,4 +30,9 @@
 		</copy>
 
+		<!-- styles -->
+		<copy todir="build/styles">
+			<fileset dir="styles" />
+		</copy>
+
 		<!-- create josm-custom.jar -->
 		<delete file="dist/josm-custom.jar"/>
Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 485)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 486)
@@ -53,4 +53,5 @@
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener;
+import org.openstreetmap.josm.gui.preferences.MapPaintPreference;
 import org.openstreetmap.josm.gui.preferences.TaggingPresetPreference;
 import org.openstreetmap.josm.gui.preferences.ToolbarPreferences;
@@ -120,6 +121,4 @@
 	 */
 	public final MainMenu menu;
-
-
 
 
@@ -186,4 +185,5 @@
 
 		TaggingPresetPreference.initialize();
+		MapPaintPreference.initialize();
 
 		toolbar.refreshToolbarControl();
@@ -203,4 +203,12 @@
 		if (System.getProperty("josm.plugins") != null)
 			plugins.addAll(Arrays.asList(System.getProperty("josm.plugins").split(",")));
+		
+		// we remove mappaint from the preferences on startup but this is just
+		// in case it crept in through the properties:
+		if (plugins.contains("mappaint")) {
+			plugins.remove("mappaint");
+			System.out.println("Warning - loading of mappaint plugin was requested. This JOSM version has built-in mappaint support. The plugin is not required.");
+		}
+		
 		if (plugins.isEmpty())
 			return;
Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 485)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 486)
@@ -136,4 +136,5 @@
 		return all;
 	}
+	
 	synchronized public boolean getBoolean(final String key) {
 		return getBoolean(key, false);
@@ -144,5 +145,4 @@
 		return properties.containsKey(key) ? Boolean.parseBoolean(properties.get(key)) : def;
 	}
-
 
 	synchronized public void put(final String key, final String value) {
@@ -159,5 +159,4 @@
 		firePreferenceChanged(key, Boolean.toString(value));
 	}
-
 
 	private final void firePreferenceChanged(final String key, final String value) {
@@ -207,4 +206,5 @@
 		properties.put("projection", "org.openstreetmap.josm.data.projection.Epsg4326");
 		properties.put("draw.segment.direction", "true");
+		properties.put("draw.wireframe", "false");
 		properties.put("layerlist.visible", "true");
 		properties.put("propertiesdialog.visible", "true");
Index: trunk/src/org/openstreetmap/josm/data/coor/Coordinate.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/coor/Coordinate.java	(revision 485)
+++ trunk/src/org/openstreetmap/josm/data/coor/Coordinate.java	(revision 486)
@@ -3,7 +3,4 @@
 
 import java.io.Serializable;
-
-
-
 
 /**
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 486)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 486)
@@ -0,0 +1,423 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Point;
+import java.awt.Polygon;
+import java.awt.Rectangle;
+import java.awt.Stroke;
+import java.awt.geom.GeneralPath;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.NavigatableComponent;
+import org.openstreetmap.josm.gui.mappaint.AreaElemStyle;
+import org.openstreetmap.josm.gui.mappaint.ElemStyle;
+import org.openstreetmap.josm.gui.mappaint.IconElemStyle;
+import org.openstreetmap.josm.gui.mappaint.LineElemStyle;
+import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
+import org.openstreetmap.josm.tools.ColorHelper;
+
+public class MapPaintVisitor implements Visitor {
+	
+	protected boolean useRealWidth;
+	protected boolean zoomLevelDisplay;
+	protected boolean fillAreas;
+	protected int fillAlpha;
+	protected Color untaggedColor;
+	protected Color textColor;
+	protected boolean currentDashed = false;
+	protected int currentWidth = 0;
+	protected Stroke currentStroke = null;    
+	protected static final Font orderFont = new Font("Helvetica", Font.PLAIN, 8);
+	
+	public boolean inactive;
+	
+	/**
+	 * The environment to paint to.
+	 */
+	protected Graphics g;
+	
+	/**
+	 * MapView to get screen coordinates.
+	 */
+	protected NavigatableComponent nc;
+	
+	/**
+	 * Draw subsequent segments of same color as one Path
+	 */
+	protected Color currentColor = null;
+	protected GeneralPath currentPath = new GeneralPath();
+	
+	protected static final double PHI = Math.toRadians(20);
+	
+	/**
+	 * Preferences
+	*/
+	protected Color inactiveColor;
+	protected Color selectedColor;
+	protected Color nodeColor;
+	protected Color dfltWayColor;
+	protected Color untaggedWayColor;
+	protected Color incompleteColor;
+	protected Color backgroundColor;
+	protected boolean showDirectionArrow;
+	protected boolean showOrderNumber;
+	
+	public final static Color darkerblue = new Color(0,0,96);
+	public final static Color darkblue = new Color(0,0,128);
+	
+	protected boolean isZoomOk(ElemStyle e) {
+		double circum = Main.map.mapView.getScale()*100*Main.proj.scaleFactor()*40041455; // circumference of the earth in meter
+
+		/* show everything if the user wishes so */
+		if (!zoomLevelDisplay) {
+			return true;
+		}
+
+		if (e == null) {
+			/* the default for things that don't have a rule (show, if scale is smaller than 1500m) */
+			if (circum < 1500)
+				return true;
+			return false;
+		}
+
+		// formula to calculate a map scale: natural size / map size = scale
+		// example: 876000mm (876m as displayed) / 22mm (roughly estimated screen size of legend bar) = 39818
+		//
+		// so the exact "correcting value" below depends only on the screen size and resolution
+		// XXX - do we need a Preference setting for this (if things vary widely)?
+		/*System.out.println(
+   "Circum: " + circum + 
+   " max: " + e.getMaxScale() + "(" + e.getMaxScale()/22 + ")" +
+   " min:" + e.getMinScale() + "(" + e.getMinScale()/22 + ")");*/
+		if(circum>=e.getMaxScale() / 22 || circum<e.getMinScale() / 22)
+			return false;
+		return true;
+	}
+
+	/**
+	 * Draw a small rectangle.
+	 * White if selected (as always) or red otherwise.
+	 *
+	 * @param n The node to draw.
+	 */
+	public void visit(Node n) {
+		ElemStyle nodeStyle = MapPaintStyles.getStyle(n);
+		if (nodeStyle!=null) {
+			if (nodeStyle instanceof IconElemStyle) {
+				if (isZoomOk(nodeStyle)) {
+					drawNode(n, ((IconElemStyle)nodeStyle).getIcon(), ((IconElemStyle)nodeStyle).doAnnotate());
+				}
+			} else {
+				// throw some sort of exception
+			}
+		} else {
+			drawNode(n, n.selected ? selectedColor : nodeColor);
+		}
+	}
+
+	/**
+	 * Draw a line for all segments, according to tags.
+	 * @param w The way to draw.
+	 */
+	public void visit(Way w) {
+		double circum = Main.map.mapView.getScale()*100*Main.proj.scaleFactor()*40041455; // circumference of the earth in meter
+		boolean showDirection = showDirectionArrow;
+		if (useRealWidth && showDirection && !w.selected) showDirection = false;
+		Color colour = untaggedColor;
+		int width = 2;
+		int realWidth = 0; //the real width of the element in meters 
+		boolean dashed = false;
+		boolean area=false;
+		ElemStyle wayStyle = MapPaintStyles.getStyle(w);
+
+		if(!isZoomOk(wayStyle)) {
+			return;
+		}
+
+		if(wayStyle!=null)
+		{
+			if(wayStyle instanceof LineElemStyle)
+			{
+				colour = ((LineElemStyle)wayStyle).colour;
+				width = ((LineElemStyle)wayStyle).width;
+				realWidth = ((LineElemStyle)wayStyle).realWidth; 
+				dashed = ((LineElemStyle)wayStyle).dashed;
+			}
+			else if (wayStyle instanceof AreaElemStyle)
+			{
+				colour = ((AreaElemStyle)wayStyle).getColour();
+				area = true;
+			}
+		}
+
+		if (area && fillAreas)
+			drawWayAsArea(w, colour);
+		int orderNumber = 0;
+
+		Node lastN = null;
+		for (Node n : w.nodes) {
+			if (lastN == null) {
+				lastN = n;
+				continue;
+			}
+			orderNumber++;
+			//  drawSegment(lastN, n, w.selected && !inactive ? selectedColor : wayColor, showDirectionArrow);
+
+			if (area && fillAreas)
+				//Draw segments in a different colour so direction arrows show against the fill
+				drawSeg(lastN, n, w.selected ? selectedColor : untaggedColor, showDirection, width, true);
+			else
+				if (area)
+					drawSeg(lastN, n, w.selected ? selectedColor : colour, showDirection, width, true);
+				else
+					if (realWidth > 0 && useRealWidth && !showDirection){
+						int tmpWidth = (int) (100 /  (float) (circum / realWidth));
+						if (tmpWidth > width) width = tmpWidth;
+					}
+
+			drawSeg(lastN, n, w.selected ? selectedColor : colour, showDirection, width, dashed);
+
+			if (showOrderNumber)
+				drawOrderNumber(lastN, n, orderNumber);
+
+			lastN = n;
+		}
+	}
+
+	public void visit(Relation e) {
+		// relations are not (yet?) drawn.
+	}
+	
+	// This assumes that all segments are aligned in the same direction!
+	protected void drawWayAsArea(Way w, Color colour)
+	{
+		Polygon polygon = new Polygon();
+		Point p;
+		// set the opacity (alpha) level of the filled polygon
+		Color coloura = new Color( colour.getRed(), colour.getGreen(), colour.getBlue(), fillAlpha);
+
+		for (Node n : w.nodes)
+		{
+			p = nc.getPoint(n.eastNorth);
+			polygon.addPoint(p.x,p.y);
+		}
+
+		g.setColor( w.selected ?
+				selectedColor : coloura);
+
+		g.fillPolygon(polygon);
+	}
+
+	// NEW
+	protected void drawNode(Node n, ImageIcon icon, boolean annotate) {
+		Point p = nc.getPoint(n.eastNorth);
+		if ((p.x < 0) || (p.y < 0) || (p.x > nc.getWidth()) || (p.y > nc.getHeight())) return;
+		int w = icon.getIconWidth(), h=icon.getIconHeight();
+		icon.paintIcon ( Main.map.mapView, g, p.x-w/2, p.y-h/2 );
+		String name = (n.keys==null) ? null : n.keys.get("name");
+		if (name!=null && annotate)
+		{
+			g.setColor(textColor);
+			Font defaultFont = g.getFont();
+			g.setFont (orderFont);
+			g.drawString (name, p.x+w/2+2, p.y+h/2+2);
+			g.setFont(defaultFont);
+		}
+		if (n.selected)
+		{
+			g.setColor (  selectedColor );
+			g.drawRect (p.x-w/2-2,p.y-w/2-2, w+4, h+4);
+		}
+	}
+
+	/**
+	 * Draw a line with the given color.
+	 */
+	protected void drawSegment(Node n1, Node n2, Color col, boolean showDirection) {
+		if (useRealWidth && showDirection) showDirection = false;
+		drawSeg(n1, n2, col, showDirection, 1, false);
+	}
+
+	private void drawSeg(Node n1, Node n2, Color col, boolean showDirection, int width, boolean dashed) {
+		if (col != currentColor || width != currentWidth || dashed != currentDashed) {
+			displaySegments(col, width, dashed);
+		}
+		Point p1 = nc.getPoint(n1.eastNorth);
+		Point p2 = nc.getPoint(n2.eastNorth);
+
+		// checking if this segment is visible
+		if ((p1.x < 0) && (p2.x < 0)) return ;
+		if ((p1.y < 0) && (p2.y < 0)) return ;
+		if ((p1.x > nc.getWidth()) && (p2.x > nc.getWidth())) return ;
+		if ((p1.y > nc.getHeight()) && (p2.y > nc.getHeight())) return ;
+		//if (ls.selected)
+		// col = selectedColor;
+		//g.setColor(col);
+		//g.setWidth(width);
+		//if (dashed) 
+		// g2d.setStroke(new BasicStroke(width,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND,0,new float[] {9},0));
+		//else 
+		// g2d.setStroke(new BasicStroke(width,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND));
+
+		//g.drawLine(p1.x, p1.y, p2.x, p2.y);
+		currentPath.moveTo(p1.x, p1.y);
+		currentPath.lineTo(p2.x, p2.y);
+
+		if (showDirection) {
+			double t = Math.atan2(p2.y-p1.y, p2.x-p1.x) + Math.PI;
+			//g.drawLine(p2.x,p2.y, (int)(p2.x + 10*Math.cos(t-PHI)), (int)(p2.y + 10*Math.sin(t-PHI)));
+			//g.drawLine(p2.x,p2.y, (int)(p2.x + 10*Math.cos(t+PHI)), (int)(p2.y + 10*Math.sin(t+PHI)));
+			currentPath.lineTo((int)(p2.x + 10*Math.cos(t-PHI)), (int)(p2.y + 10*Math.sin(t-PHI)));
+			currentPath.moveTo((int)(p2.x + 10*Math.cos(t+PHI)), (int)(p2.y + 10*Math.sin(t+PHI)));
+			currentPath.lineTo(p2.x, p2.y);
+		}
+		//g2d.setStroke(new BasicStroke(1));
+
+	}
+
+	protected void displaySegments() {
+		displaySegments(null, 0, false);
+	}
+
+	protected void displaySegments(Color newColor, int newWidth, boolean newDash) {
+
+		if (currentPath != null) {
+			Graphics2D g2d = (Graphics2D)g;
+			g2d.setColor(inactive ? inactiveColor : currentColor);
+			if (currentStroke == null) {
+				if (currentDashed)
+					g2d.setStroke(new BasicStroke(currentWidth,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND,0,new float[] {9},0));
+				else 
+					g2d.setStroke(new BasicStroke(currentWidth,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND));
+			}
+			g2d.draw(currentPath);
+			g2d.setStroke(new BasicStroke(1));
+
+			currentPath = new GeneralPath();
+			currentColor = newColor;
+			currentWidth = newWidth;
+			currentDashed = newDash;
+			currentStroke = null;
+		}
+	}
+
+	/**
+	 * Draw the node as small rectangle with the given color.
+	 *
+	 * @param n  The node to draw.
+	 * @param color The color of the node.
+	 */
+	public void drawNode(Node n, Color color) {
+		if(isZoomOk(null)) {
+			Point p = nc.getPoint(n.eastNorth);
+			if ((p.x < 0) || (p.y < 0) || (p.x > nc.getWidth()) || (p.y > nc.getHeight())) return;
+			g.setColor(color);
+			g.drawRect(p.x-1, p.y-1, 2, 2);
+		}
+	}
+	
+	public static Color getPreferencesColor(String colName, Color def) {
+		String colStr = Main.pref.get("color."+colName);
+		if (colStr.equals("")) {
+			Main.pref.put("color."+colName, ColorHelper.color2html(def));
+			return def;
+		}
+		return ColorHelper.html2color(colStr);
+	}
+
+	// NW 111106 Overridden from SimplePaintVisitor in josm-1.4-nw1
+	// Shows areas before non-areas
+	public void visitAll(DataSet data) {
+		inactiveColor = getPreferencesColor("inactive", Color.DARK_GRAY);
+		selectedColor = getPreferencesColor("selected", Color.YELLOW);
+		nodeColor = getPreferencesColor("node", Color.RED);
+		dfltWayColor = getPreferencesColor("way", darkblue);
+		incompleteColor = getPreferencesColor("incomplete way", darkerblue);
+		backgroundColor = getPreferencesColor("background", Color.BLACK);
+		untaggedColor = getPreferencesColor("untagged",Color.GRAY);
+		textColor = getPreferencesColor ("text", Color.WHITE);
+		showDirectionArrow = Main.pref.getBoolean("draw.segment.direction");
+		showOrderNumber = Main.pref.getBoolean("draw.segment.order_number");
+		useRealWidth = Main.pref.getBoolean("mappaint.useRealWidth",true);
+		zoomLevelDisplay = Main.pref.getBoolean("mappaint.zoomLevelDisplay",false);
+		fillAreas = Main.pref.getBoolean("mappaint.fillareas", true);
+
+		/* XXX - there must be a better way to get a bounded Integer pref! */
+		try {
+			fillAlpha = Integer.valueOf(Main.pref.get("mappaint.fillalpha", "50"));
+			if (fillAlpha < 0) {
+				fillAlpha = 0;
+			}
+			if (fillAlpha > 255) {
+				fillAlpha = 255;
+			}
+		} catch (NumberFormatException nfe) {
+			fillAlpha = 50;
+		}
+
+		Collection<Way> noAreaWays = new LinkedList<Way>();
+
+		for (final OsmPrimitive osm : data.ways)
+			if (!osm.incomplete && !osm.deleted && MapPaintStyles.isArea(osm))
+				osm.visit(this);
+			else if (!osm.deleted && !osm.incomplete)
+				noAreaWays.add((Way)osm);
+
+		for (final OsmPrimitive osm : noAreaWays)
+			osm.visit(this);
+
+		for (final OsmPrimitive osm : data.nodes)
+			if (!osm.incomplete && !osm.deleted)
+				osm.visit(this);
+
+		for (final OsmPrimitive osm : data.getSelected())
+			if (!osm.incomplete && !osm.deleted){
+				osm.shown=false; //to be sure it will be drawn
+				osm.visit(this);
+			}
+		displaySegments();
+	}
+	
+	/**
+	 * Draw an number of the order of the two consecutive nodes within the
+	 * parents way
+	 */
+	protected void drawOrderNumber(Node n1, Node n2, int orderNumber) {
+		int strlen = (""+orderNumber).length();
+		Point p1 = nc.getPoint(n1.eastNorth);
+		Point p2 = nc.getPoint(n2.eastNorth);
+		int x = (p1.x+p2.x)/2 - 4*strlen;
+		int y = (p1.y+p2.y)/2 + 4;
+
+		Rectangle screen = g.getClipBounds();
+		if (screen.contains(x,y)) {
+			Color c = g.getColor();
+			g.setColor(backgroundColor);
+			g.fillRect(x-1, y-12, 8*strlen+1, 14);
+			g.setColor(c);
+			g.drawString(""+orderNumber, x, y);
+		}
+    }
+	
+	public void setGraphics(Graphics g) {
+    	this.g = g;
+    }
+
+	public void setNavigatableComponent(NavigatableComponent nc) {
+    	this.nc = nc;
+    }
+}
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java	(revision 485)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java	(revision 486)
@@ -21,5 +21,5 @@
 
 /**
- * A visitor that paint a simple scheme of every primitive it visits to a 
+ * A visitor that paints a simple scheme of every primitive it visits to a 
  * previous set graphic environment.
  * 
Index: trunk/src/org/openstreetmap/josm/gui/GettingStarted.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 485)
+++ trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 486)
@@ -50,13 +50,12 @@
 		panel = new JPanel(new GridBagLayout());
 		
-		panel.add(new JLabel(tr("<html><h2>You are running the latest \"modeless\" JOSM version.</h2>" +
-				"<h3>This version (almost) does away with the old edit modes, like \"add node and connect\"<br>" +
-				"etc.; instead, there are only four modes: zoom, select, edit, and delete." +
-				"<br>The edit mode will do what you want in most cases (also see the mini help about<br>" +
-				"modifier keys at the bottom of the screen).</h3>" +
-                "<h3>If this is the first time you use JOSM since 08 October, you will also find that with the<br>" +
-                "0.5 API, segments have gone and relations have been added. You will find general<br>" +
-                "information about the changes on the OSM wiki, and there's a page on using relations<br>"+
-                "in the JOSM online help." +
+		panel.add(new JLabel(tr("<html><h2>You are running the latest JOSM version with built-in mappaint support.</h2>" +
+                "<h3>The mappaint plugin is no longer necessary and has been removed from your configuration<br>" +
+                "file (if it was present). You can now switch between the \"classic\" display and the mappaint<br>" +
+                "style by toggling the \"Wireframe\" option in the \"View\" menu.</h3>" +
+                "<h3>If you have not used new JOSM versions for a while, you will also discover that this JOSM<br>" +
+                "is \"modeless\". It (almost) does away with the old edit modes, like \"add node and connect\" etc.;<br>"+
+                "instead, there are only four modes: zoom, select, edit, and delete. The edit mode will do what<br>"+
+                "you want in most cases (also see the mini help about modifier keys at the bottom of the screen)." +
 		"</h3>")), GBC.eol());
 		
Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 485)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 486)
@@ -111,4 +111,20 @@
 			} else {
 				Main.pref.load();
+				
+				// this is temporary code to ease the transition to built-in mappaint
+				List<String> plugins = new LinkedList<String>();
+				if (Main.pref.hasKey("plugins"))
+					plugins.addAll(Arrays.asList(Main.pref.get("plugins").split(",")));
+								
+				if (plugins.contains("mappaint")) {
+					plugins.remove("mappaint");
+					// XXX is there really no "public static String.join" or something?
+					StringBuilder tmp = new StringBuilder();
+					for (String p : plugins) { if (tmp.length()>0) tmp.append(","); tmp.append(p); }
+					Main.pref.put("plugins", tmp.toString());
+					Main.pref.put("draw.wireframe", false);
+				} else if (!Main.pref.hasKey("draw.wireframe")) {
+					Main.pref.put("draw.wireframe", true);
+				}
 			}
 		} catch (final IOException e1) {
Index: trunk/src/org/openstreetmap/josm/gui/MainMenu.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 485)
+++ trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 486)
@@ -10,4 +10,5 @@
 
 import javax.swing.Action;
+import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
@@ -15,4 +16,5 @@
 import javax.swing.KeyStroke;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.actions.AboutAction;
@@ -44,4 +46,5 @@
 import org.openstreetmap.josm.actions.search.SearchAction;
 import org.openstreetmap.josm.data.DataSetChecker;
+import org.openstreetmap.josm.data.Preferences;
 
 /**
@@ -156,4 +159,18 @@
 		    current.setAccelerator(autoScaleAction.shortCut);
         }
+        viewMenu.addSeparator();
+
+        // TODO move code to an "action" like the others?
+        final JCheckBoxMenuItem wireframe = new JCheckBoxMenuItem(tr("Wireframe view"));
+        wireframe.setSelected(Main.pref.getBoolean("draw.wireframe", true));     
+        wireframe.setAccelerator(KeyStroke.getKeyStroke("alt W"));
+        wireframe.addActionListener(new ActionListener() {
+        	public void actionPerformed(ActionEvent ev) {
+        		Main.pref.put("draw.wireframe", wireframe.isSelected());
+        		Main.map.mapView.repaint();
+        	}
+        });
+        viewMenu.add(wireframe);
+        
 		add(viewMenu);
 
Index: trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 485)
+++ trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 486)
@@ -41,4 +41,5 @@
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.osm.visitor.MapPaintVisitor;
 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;
 import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor;
@@ -116,6 +117,7 @@
 	public final LinkedList<DataChangeListener> listenerDataChanged = new LinkedList<DataChangeListener>();
 	
-	private SimplePaintVisitor mapPainter = new SimplePaintVisitor();
-
+	private SimplePaintVisitor wireframeMapPainter = new SimplePaintVisitor();
+	private MapPaintVisitor standardMapPainter = new MapPaintVisitor();
+	
 	/**
 	 * Construct a OsmDataLayer.
@@ -158,8 +160,18 @@
 			}
 		}
-		mapPainter.setGraphics(g);
-		mapPainter.setNavigatableComponent(mv);
-		mapPainter.inactive = inactive;
-		mapPainter.visitAll(data);
+		
+		if (Main.pref.getBoolean("draw.wireframe")) {
+			wireframeMapPainter.setGraphics(g);
+			wireframeMapPainter.setNavigatableComponent(mv);
+			wireframeMapPainter.inactive = inactive;
+			wireframeMapPainter.visitAll(data);
+		}
+		else
+		{
+			standardMapPainter.setGraphics(g);
+			standardMapPainter.setNavigatableComponent(mv);
+			standardMapPainter.inactive = inactive;
+			standardMapPainter.visitAll(data);
+		}
 		Main.map.conflictDialog.paintConflicts(g, mv);
 	}
@@ -321,9 +333,4 @@
 	}
 
-
-	public void setMapPainter(SimplePaintVisitor mapPainter) {
-    	this.mapPainter = mapPainter;
-    }
-	
 	public void fireDataChange() {
 		for (DataChangeListener dcl : listenerDataChanged) {
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 486)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 486)
@@ -0,0 +1,21 @@
+package org.openstreetmap.josm.gui.mappaint;
+import java.awt.Color;
+
+public class AreaElemStyle extends ElemStyle
+{
+	Color colour;
+
+	public AreaElemStyle (Color colour, long maxScale, long minScale) {
+		this.colour = colour;
+		this.maxScale = maxScale;
+		this.minScale = minScale;
+	}
+
+	public Color getColour() {
+		return colour;
+	}
+
+	@Override public String toString() {
+		return "AreaElemStyle:   colour=" + colour;
+	}
+}
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyle.java	(revision 486)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyle.java	(revision 486)
@@ -0,0 +1,18 @@
+package org.openstreetmap.josm.gui.mappaint;
+
+abstract public class ElemStyle
+{
+	// zoom range to display the feature
+	protected long minScale;
+	protected long maxScale;
+
+	public long getMinScale() {
+		return minScale;
+	}
+	public long getMaxScale() {
+		return maxScale;
+	}
+}
+
+
+
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyleHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyleHandler.java	(revision 486)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyleHandler.java	(revision 486)
@@ -0,0 +1,180 @@
+package org.openstreetmap.josm.gui.mappaint;
+
+import java.io.File;
+import java.awt.Color;
+import java.awt.Toolkit;
+import java.net.URL;
+
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.tools.ColorHelper;
+import org.openstreetmap.josm.plugins.Plugin;
+import org.xml.sax.Attributes;
+import org.xml.sax.helpers.DefaultHandler;
+
+public class ElemStyleHandler extends DefaultHandler
+{
+	boolean inDoc, inRule, inCondition, inElemStyle, inLine, inIcon, inArea, inScaleMax, inScaleMin;
+	String curKey = null;
+	String curValue = null;
+	int curLineWidth = -1;
+	int curLineRealWidth = 0;
+	boolean curLineDashed = false;
+	Color curLineColour = null;
+	Color curAreaColour = null;
+	ImageIcon curIcon = null;
+	boolean curIconAnnotate = true;
+	long curScaleMax = 1000000000;
+	long curScaleMin = 0;
+
+	public ElemStyleHandler() {
+		inDoc=inRule=inCondition=inElemStyle=inLine=inIcon=inArea=false;
+	}
+
+	/*
+    ElemStyles getElemStyles()
+    {
+        return styles;
+    }
+	*/
+
+	@Override public void startDocument() {
+		inDoc = true;
+	}
+
+	@Override public void endDocument() {
+		inDoc = false;
+	}
+
+	@Override public void startElement(String uri,String name, String qName, 
+			Attributes atts) {
+		if (inDoc==true)	{
+			if (qName.equals("rule")) {
+				inRule=true;
+			}
+			else if (qName.equals("condition") && inRule) {
+				inCondition=true;
+				for (int count=0; count<atts.getLength(); count++) {
+					if(atts.getQName(count).equals("k"))
+						curKey = atts.getValue(count);        
+					else if(atts.getQName(count).equals("v"))
+						curValue = atts.getValue(count);        
+				}
+			} else if (qName.equals("line")) {
+				inLine = true;
+				for (int count=0; count<atts.getLength(); count++) {
+					if(atts.getQName(count).equals("width"))
+						curLineWidth = Integer.parseInt(atts.getValue(count));
+					else if (atts.getQName(count).equals("colour"))
+						curLineColour=ColorHelper.html2color(atts.getValue(count));
+					else if (atts.getQName(count).equals("realwidth"))
+						curLineRealWidth=Integer.parseInt(atts.getValue(count));
+					else if (atts.getQName(count).equals("dashed"))
+						curLineDashed=Boolean.parseBoolean(atts.getValue(count));
+				}
+			} else if (qName.equals("scale_max")) {
+				inScaleMax = true;
+			} else if (qName.equals("scale_min")) {
+				inScaleMin = true;
+			} else if (qName.equals("icon")) {
+				inIcon = true;
+				for (int count=0; count<atts.getLength(); count++) {
+					if (atts.getQName(count).equals("src")) {
+						String imageFile = MapPaintStyles.getStyleDir()+"icons/"+atts.getValue(count); 
+						File f = new File(imageFile);
+						if (f.exists()) {
+							//open icon from user directory
+							curIcon = new ImageIcon(imageFile);
+						} else {
+							try {
+								URL path = getClass().getResource("/styles/standard/icons/"+atts.getValue(count));
+								if (path == null) {
+									/* icon not found, using default */
+									System.out.println("Mappaint: Icon " + atts.getValue(count) + " not found, using default icon");
+									path = getClass().getResource("/styles/standard/icons/misc/no_icon.png");
+									curIcon = new ImageIcon(Toolkit.getDefaultToolkit().createImage(path));
+								} else {
+									curIcon = new ImageIcon(Toolkit.getDefaultToolkit().createImage(path));
+								}
+							}
+							catch (Exception e){
+								URL path = getClass().getResource("/styles/standard/icons/amenity.png");
+								curIcon = new ImageIcon(Toolkit.getDefaultToolkit().createImage(path));
+							}
+						}
+					} else if (atts.getQName(count).equals("annotate")) {
+						curIconAnnotate = Boolean.parseBoolean (atts.getValue(count));
+					}
+				}
+			}
+			else if (qName.equals("area"))
+			{
+				inArea = true;
+				for (int count=0; count<atts.getLength(); count++)
+				{
+					if (atts.getQName(count).equals("colour"))
+						curAreaColour=ColorHelper.html2color(atts.getValue(count));
+				}
+			}
+		}
+	}
+
+	@Override public void endElement(String uri,String name, String qName)
+	{
+		if (inRule && qName.equals("rule")) {
+			ElemStyle newStyle;
+			inRule = false;
+			if (curLineWidth != -1) {
+				newStyle = new LineElemStyle(curLineWidth, curLineRealWidth, curLineColour, 
+						curLineDashed, curScaleMax, curScaleMin);
+				MapPaintStyles.add(curKey, curValue, newStyle);
+				curLineWidth	= -1;
+				curLineRealWidth= 0;
+				curLineDashed   = false;
+				curLineColour 	= null;
+			}
+			
+			if (curIcon != null) {
+				newStyle = new IconElemStyle(curIcon, curIconAnnotate, curScaleMax, curScaleMin);
+				MapPaintStyles.add(curKey, curValue, newStyle);
+				curIcon 		= null;
+				curIconAnnotate = true;
+			}
+			if (curAreaColour != null) {
+				newStyle = new AreaElemStyle (curAreaColour, curScaleMax, curScaleMin);
+				MapPaintStyles.add(curKey, curValue, newStyle);
+				curAreaColour 	= null;
+			}
+			curScaleMax = 1000000000;
+			curScaleMin = 0;
+
+		}
+		else if (inCondition && qName.equals("condition"))
+			inCondition = false;
+		else if (inLine && qName.equals("line"))
+			inLine = false;
+		else if (inIcon && qName.equals("icon"))
+			inIcon = false;
+		else if (inArea && qName.equals("area"))
+			inArea = false;
+		else if (qName.equals("scale_max"))
+			inScaleMax = false;
+		else if (qName.equals("scale_min"))
+			inScaleMin = false;
+	}
+
+	@Override public void characters(char ch[], int start, int length) {
+		if (inScaleMax == true) {
+			String content = new String(ch, start, length);
+			curScaleMax = Long.parseLong(content);
+		}
+		if (inScaleMin == true) {
+			String content = new String(ch, start, length);
+			curScaleMin = Long.parseLong(content);
+		}
+	}
+}
+
+
+
+
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 486)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 486)
@@ -0,0 +1,114 @@
+package org.openstreetmap.josm.gui.mappaint;
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+public class ElemStyles
+{
+	HashMap<String, ElemStyle> styles;
+	static int nr = 0;
+
+
+	public ElemStyles()
+	{
+		styles = new HashMap<String, ElemStyle>();
+	}
+
+	public void add (String k, String v, ElemStyle style)
+	{
+		ElemStyle  old_style;
+		String key = k + "=" + v;
+		
+		/* unfortunately, there don't seem to be an efficient way to */
+		/* find out, if a given OsmPrimitive is an area or not, */
+		/* so distinguish only between way and node here - for now */
+		if(style instanceof AreaElemStyle) {
+			key = key + "way";
+		}
+		else if(style instanceof LineElemStyle) {
+			key = key + "way";
+		}
+		else if(style instanceof IconElemStyle) {
+			key = key + "node";
+		}
+		/* avoid duplicates - for now */
+		old_style = styles.get(key);
+		if(old_style == null) {
+			/* new key/value, insert */
+			styles.put(key, style);
+		} else {
+			if(style.getMaxScale() < old_style.getMaxScale()) {
+				/* existing larger scale key/value, replace */
+				styles.remove(old_style);
+				styles.put(key, style);
+			}
+		}
+	}
+
+	public ElemStyle getStyle (OsmPrimitive p)
+	{
+		if(p.keys!=null)
+		{
+			String classname;
+			String kv = null;
+			
+			if(p instanceof org.openstreetmap.josm.data.osm.Node) {
+				classname = "node";
+			} else {
+				classname = "way";
+			}
+			Iterator<String> iterator = p.keys.keySet().iterator();
+			while(iterator.hasNext())	
+			{
+				String key = iterator.next();
+				kv = key + "=" + p.keys.get(key) + classname;
+				if(styles.containsKey(kv))
+				{
+					return styles.get(kv);
+				}
+			}
+
+            // not a known key/value combination
+			boolean first_line = true;
+
+            // filter out trivial tags and show the rest
+			iterator = p.keys.keySet().iterator();
+			while(iterator.hasNext())	
+			{
+				String key = iterator.next();
+				kv = key + "=" + p.keys.get(key);
+				if(	!kv.startsWith("created_by=") &&
+					!kv.startsWith("converted_by=") &&
+					!kv.startsWith("source=") &&
+					!kv.startsWith("note=") &&
+					!kv.startsWith("layer=") &&
+					!kv.startsWith("bridge=") &&
+					!kv.startsWith("tunnel=") &&
+					!kv.startsWith("oneway=") &&
+					!kv.startsWith("speedlimit=") &&
+					!kv.startsWith("motorcar=") &&
+					!kv.startsWith("horse=") &&
+					!kv.startsWith("bicycle=") &&
+					!kv.startsWith("foot=")
+					) {
+						
+					if (first_line) {
+						nr++;
+						//System.out.println("mappaint - rule not found[" + nr + "]: " + kv + " id:" + p.id);
+					} else {
+						//System.out.println("mappaint - rule not found[" + nr + "]: " + kv);
+					}
+					first_line=false;
+				}
+			}
+		}
+		
+		return null;
+	}
+
+	public boolean isArea(OsmPrimitive p)
+	{
+		return getStyle(p) instanceof AreaElemStyle;
+	}
+}
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/IconElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/IconElemStyle.java	(revision 486)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/IconElemStyle.java	(revision 486)
@@ -0,0 +1,28 @@
+package org.openstreetmap.josm.gui.mappaint;
+import javax.swing.ImageIcon;
+
+public class IconElemStyle extends ElemStyle
+{
+	ImageIcon icon;
+	boolean annotate;
+
+	public IconElemStyle (ImageIcon icon, boolean annotate, long maxScale, long minScale) {
+		this.icon=icon;
+		this.annotate=annotate;
+		this.maxScale = maxScale;
+		this.minScale = minScale;
+	}	
+	
+	public ImageIcon getIcon() {
+		return icon;
+	}
+
+	public boolean doAnnotate() {
+		return annotate;
+	}
+
+	@Override public String toString()
+	{
+		return "IconElemStyle:  icon= " + icon +  " annotate=" + annotate;
+	}
+}
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/LineElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/LineElemStyle.java	(revision 486)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/LineElemStyle.java	(revision 486)
@@ -0,0 +1,23 @@
+package org.openstreetmap.josm.gui.mappaint;
+import java.awt.Color;
+
+public class LineElemStyle extends ElemStyle
+{
+	public int width;
+	public int realWidth = 0; //the real width of this line in meter
+	public Color colour;
+	public boolean dashed = false;
+
+	public LineElemStyle (int width, int realWidth, Color colour, boolean dashed, long maxScale, long minScale) {
+		this.width = width;
+		this.realWidth = realWidth;
+		this.colour = colour;
+		this.dashed = dashed;
+		this.maxScale = maxScale;
+		this.minScale = minScale;
+	}
+
+	@Override public String toString() {
+		return "LineElemStyle:  width= " + width + "realWidth= " + realWidth +  " colour=" + colour + " dashed=" + dashed;
+	}
+}
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 486)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 486)
@@ -0,0 +1,175 @@
+package org.openstreetmap.josm.gui.mappaint;
+
+import java.io.File;
+import java.io.FileReader;
+
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.plugins.Plugin;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.XMLReaderFactory;
+
+public class MapPaintStyles {
+
+	public static String styleDir;
+	private static HashMap<String, ElemStyle> styles = new HashMap<String, ElemStyle>();
+	
+	public static String getStyleDir(){
+		return styleDir;
+	}
+
+	public static void readFromPreferences() {
+
+		String styleName = Main.pref.get("mappaint.style", "standard");
+		styleDir = Main.pref.getPreferencesDir()+"plugins/mappaint/"+styleName+"/"; //some day we will support different icon directories over options
+		String elemStylesFile = getStyleDir()+"elemstyles.xml";
+
+//		System.out.println("mappaint: Using style: " + styleName);
+//		System.out.println("mappaint: Using style dir: " + styleDir);
+//		System.out.println("mappaint: Using style file: " + elemStylesFile);
+
+		File f = new File(elemStylesFile);
+		if (f.exists())
+		{
+			try// reading file from file system
+			{
+//				System.out.println("mappaint: Using style file: \"" + f + "\"");
+				XMLReader xmlReader = XMLReaderFactory.createXMLReader();
+				ElemStyleHandler handler = new ElemStyleHandler();
+				xmlReader.setContentHandler(handler);
+				xmlReader.setErrorHandler(handler);
+//				temporary only!
+				xmlReader.parse(new InputSource(new FileReader(f)));
+			}
+			catch (Exception e)
+			{
+				throw new RuntimeException(e);
+			}
+		} 
+		else {// reading the builtin file from the plugin jar file
+			URL elemStylesPath = Main.class.getResource("/styles/"+styleName+"/elemstyles.xml");
+
+			System.out.println("mappaint: Using jar's elemstyles.xml: \"" + elemStylesPath + "\"");
+			if (elemStylesPath != null)
+			{
+				try
+				{
+					XMLReader xmlReader = XMLReaderFactory.createXMLReader();
+					ElemStyleHandler handler = new ElemStyleHandler();
+					xmlReader.setContentHandler(handler);
+					xmlReader.setErrorHandler(handler);
+//					temporary only!
+					xmlReader.parse(new InputSource(elemStylesPath.openStream()));
+				}
+				catch (Exception e)
+				{
+					throw new RuntimeException(e);
+				}
+			} else {
+				System.out.println("mappaint: Couldn't find style: \"" + styleDir + "elemstyles.xml\"");
+			}
+		}
+	}
+
+	static int nr = 0;
+
+	public static void add (String k, String v, ElemStyle style) {
+		ElemStyle  old_style;
+		String key = k + "=" + v;
+
+		/* unfortunately, there don't seem to be an efficient way to */
+		/* find out, if a given OsmPrimitive is an area or not, */
+		/* so distinguish only between way and node here - for now */
+		if (style instanceof AreaElemStyle) {
+			key = key + "way";
+		} else if (style instanceof LineElemStyle) {
+			key = key + "way";
+		} else if (style instanceof IconElemStyle) {
+			key = key + "node";
+		}
+		/* avoid duplicates - for now */
+		old_style = styles.get(key);
+		if (old_style == null) {
+			/* new key/value, insert */
+			styles.put(key, style);
+		} else {
+			if (style.getMaxScale() < old_style.getMaxScale()) {
+				/* existing larger scale key/value, replace */
+				styles.remove(old_style);
+				styles.put(key, style);
+			}
+		}
+	}
+
+	public static ElemStyle getStyle (OsmPrimitive p)
+	{
+		if (p.keys!=null) {
+			String classname;
+			String kv = null;
+
+			if (p instanceof org.openstreetmap.josm.data.osm.Node) {
+				classname = "node";
+			} else {
+				classname = "way";
+			}
+			Iterator<String> iterator = p.keys.keySet().iterator();
+			while (iterator.hasNext())	
+			{
+				String key = iterator.next();
+				kv = key + "=" + p.keys.get(key) + classname;
+				if (styles.containsKey(kv))	{
+					return styles.get(kv);
+				}
+			}
+
+			// not a known key/value combination
+			boolean first_line = true;
+
+			// filter out trivial tags and show the rest
+			iterator = p.keys.keySet().iterator();
+			while (iterator.hasNext()) {
+				String key = iterator.next();
+				kv = key + "=" + p.keys.get(key);
+				if (!kv.startsWith("created_by=") &&
+						!kv.startsWith("converted_by=") &&
+						!kv.startsWith("source=") &&
+						!kv.startsWith("note=") &&
+						!kv.startsWith("layer=") &&
+						!kv.startsWith("bridge=") &&
+						!kv.startsWith("tunnel=") &&
+						!kv.startsWith("oneway=") &&
+						!kv.startsWith("speedlimit=") &&
+						!kv.startsWith("motorcar=") &&
+						!kv.startsWith("horse=") &&
+						!kv.startsWith("bicycle=") &&
+						!kv.startsWith("foot=")
+				) {
+
+					if (first_line) {
+						nr++;
+						//System.out.println("mappaint - rule not found[" + nr + "]: " + kv + " id:" + p.id);
+					} else {
+						//System.out.println("mappaint - rule not found[" + nr + "]: " + kv);
+					}
+					first_line=false;
+				}
+			}
+		}
+
+		return null;
+	}
+
+	public static boolean isArea(OsmPrimitive p)
+	{
+		return getStyle(p) instanceof AreaElemStyle;
+	}
+}
Index: trunk/src/org/openstreetmap/josm/gui/preferences/MapPaintPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/MapPaintPreference.java	(revision 486)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/MapPaintPreference.java	(revision 486)
@@ -0,0 +1,22 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
+
+public class MapPaintPreference implements PreferenceSetting {
+	
+	public void addGui(final PreferenceDialog gui) {
+		// this is intended for a future configuration panel for mappaint!
+	}
+
+	public void ok() {
+		// dummy
+	}
+
+	/** 
+	 * Initialize the styles
+	 */
+	public static void initialize() {
+		MapPaintStyles.readFromPreferences();
+	}
+}
Index: trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java	(revision 485)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java	(revision 486)
@@ -101,4 +101,5 @@
 		settings.add(new DrawingPreference());
 		settings.add(new ColorPreference());
+		settings.add(new MapPaintPreference());
 		settings.add(new ServerAccessPreference());
 		settings.add(new CsvPreference());
Index: trunk/styles/icon_overview.osm
===================================================================
--- trunk/styles/icon_overview.osm	(revision 486)
+++ trunk/styles/icon_overview.osm	(revision 486)
@@ -0,0 +1,755 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<osm version='0.5' generator='JOSM'>
+  <node id='-1' action='modify' visible='true' lat='9.698380668211763' lon='-61.532815380411606'>
+    <tag k='name' v='tower' />
+    <tag k='power' v='tower' />
+  </node>
+  <node id='-2' action='modify' visible='true' lat='15.13486336935102' lon='-61.552207967777626'>
+    <tag k='name' v='works' />
+    <tag k='man_made' v='works' />
+  </node>
+  <node id='-3' action='modify' visible='true' lat='14.797157746797005' lon='-61.55101335105909'>
+    <tag k='name' v='beacon' />
+    <tag k='man_made' v='beacon' />
+  </node>
+  <node id='-4' action='modify' visible='true' lat='14.369495008604694' lon='-61.54950051725031'>
+    <tag k='name' v='survey_point' />
+    <tag k='man_made' v='survey_point' />
+  </node>
+  <node id='-5' action='modify' visible='true' lat='14.005499259608337' lon='-61.54821290347096'>
+    <tag k='name' v='power_wind' />
+    <tag k='man_made' v='power_wind' />
+  </node>
+  <node id='-6' action='modify' visible='true' lat='13.663211735427067' lon='-61.54700208253257'>
+    <tag k='name' v='power_hydro' />
+    <tag k='man_made' v='power_hydro' />
+  </node>
+  <node id='-7' action='modify' visible='true' lat='13.304700148973177' lon='-61.545733871288185'>
+    <tag k='name' v='power_fossil' />
+    <tag k='man_made' v='power_fossil' />
+  </node>
+  <node id='-8' action='modify' visible='true' lat='12.920706054396003' lon='-61.544375518830506'>
+    <tag k='name' v='power_nuclear' />
+    <tag k='man_made' v='power_nuclear' />
+  </node>
+  <node id='-9' action='modify' visible='true' lat='12.600107988077479' lon='-61.54324142660434'>
+    <tag k='name' v='tower' />
+    <tag k='man_made' v='tower' />
+  </node>
+  <node id='-10' action='modify' visible='true' lat='12.295502693740465' lon='-61.542163908637654'>
+    <tag k='name' v='water_tower' />
+    <tag k='man_made' v='water_tower' />
+  </node>
+  <node id='-11' action='modify' visible='true' lat='11.932663344808542' lon='-61.54088039342021'>
+    <tag k='name' v='gasometer' />
+    <tag k='man_made' v='gasometer' />
+  </node>
+  <node id='-12' action='modify' visible='true' lat='11.619093288124276' lon='-61.54995184518125'>
+    <tag k='name' v='reservoir_covered' />
+    <tag k='man_made' v='reservoir_covered' />
+  </node>
+  <node id='-13' action='modify' visible='true' lat='11.345864681467233' lon='-61.55891397939467'>
+    <tag k='name' v='lighthouse' />
+    <tag k='man_made' v='lighthouse' />
+  </node>
+  <node id='-14' action='modify' visible='true' lat='11.064378198110855' lon='-61.54687348071985'>
+    <tag k='name' v='windmill' />
+    <tag k='man_made' v='windmill' />
+  </node>
+  <node id='-15' action='modify' visible='true' lat='12.719081695108647' lon='-56.91126552290194'>
+    <tag k='man_made' v='pier' />
+  </node>
+  <node id='-16' action='modify' visible='true' lat='15.513032118567965' lon='-61.553545722181894'>
+    <tag k='name' v='man_made' />
+    <tag k='tourism' v='attraction' />
+    <tag k='note' v='man_made' />
+  </node>
+  <node id='-17' action='modify' visible='true' lat='7.6567495270520425' lon='-57.88550261056635'>
+    <tag k='name' v='fire_station' />
+    <tag k='amenity' v='fire_station' />
+  </node>
+  <node id='-18' action='modify' visible='true' lat='10.083156180779136' lon='-61.523172022808865'>
+    <tag k='name' v='power' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-19' action='modify' visible='true' lat='14.851740907680504' lon='-56.91700073649831'>
+    <tag k='name' v='camp_site' />
+    <tag k='tourism' v='camp_site' />
+  </node>
+  <node id='-20' action='modify' visible='true' lat='7.904945081999946' lon='-57.88089085003311'>
+    <tag k='name' v='police' />
+    <tag k='amenity' v='police' />
+  </node>
+  <node id='-21' action='modify' visible='true' lat='14.01974706054877' lon='-56.914763271813655'>
+    <tag k='name' v='picnic_site' />
+    <tag k='tourism' v='picnic_site' />
+  </node>
+  <node id='-22' action='modify' visible='true' lat='15.224007009329819' lon='-56.918001881288184'>
+    <tag k='name' v='information' />
+    <tag k='tourism' v='information' />
+  </node>
+  <node id='-23' action='modify' visible='true' lat='13.165266359840741' lon='-56.912465388121454'>
+    <tag k='name' v='theme_park' />
+    <tag k='tourism' v='theme_park' />
+  </node>
+  <node id='-24' action='modify' visible='true' lat='14.391889522817433' lon='-56.91576406076188'>
+    <tag k='name' v='caravan_site' />
+    <tag k='tourism' v='caravan_site' />
+  </node>
+  <node id='-25' action='modify' visible='true' lat='12.321482563692761' lon='-56.91019632505272'>
+    <tag k='name' v='motel' />
+    <tag k='tourism' v='motel' />
+  </node>
+  <node id='-26' action='modify' visible='true' lat='13.581690122647942' lon='-56.913585234916226'>
+    <tag k='name' v='viewpoint' />
+    <tag k='tourism' v='viewpoint' />
+  </node>
+  <node id='-27' action='modify' visible='true' lat='11.510581228683222' lon='-56.908015738966306'>
+    <tag k='name' v='hostel' />
+    <tag k='tourism' v='hostel' />
+  </node>
+  <node id='-28' action='modify' visible='true' lat='12.781821713604373' lon='-56.911434240396254'>
+    <tag k='name' v='hotel' />
+    <tag k='tourism' v='hotel' />
+  </node>
+  <node id='-29' action='modify' visible='true' lat='11.149033264529347' lon='-56.90704352037596'>
+    <tag k='name' v='attraction' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-30' action='modify' visible='true' lat='11.905556065990714' lon='-56.90907785530814'>
+    <tag k='name' v='guest_house' />
+    <tag k='tourism' v='guest_house' />
+  </node>
+  <node id='-31' action='modify' visible='true' lat='14.82075000774086' lon='-54.979976892776286'>
+    <tag k='name' v='monument' />
+    <tag k='historic' v='monument' />
+  </node>
+  <node id='-32' action='modify' visible='true' lat='15.180374361613588' lon='-54.98386599461407'>
+    <tag k='name' v='castle' />
+    <tag k='historic' v='castle' />
+  </node>
+  <node id='-33' action='modify' visible='true' lat='13.468081391347974' lon='-54.96643824612964'>
+    <tag k='name' v='icon' />
+    <tag k='historic' v='icon' />
+  </node>
+  <node id='-34' action='modify' visible='true' lat='13.153703969281427' lon='-54.961949272789646'>
+    <tag k='name' v='ruins' />
+    <tag k='historic' v='ruins' />
+  </node>
+  <node id='-35' action='modify' visible='true' lat='14.151639867700228' lon='-54.94437484752179'>
+    <tag k='name' v='museum' />
+    <tag k='historic' v='museum' />
+  </node>
+  <node id='-36' action='modify' visible='true' lat='13.786089874111747' lon='-54.96103775085638'>
+    <tag k='name' v='archaeological_site' />
+    <tag k='historic' v='archaeological_site' />
+  </node>
+  <node id='-37' action='modify' visible='true' lat='15.537748117418648' lon='-57.9091380685049'>
+    <tag k='name' v='amenity' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-38' action='modify' visible='true' lat='14.151195424939079' lon='-57.88196285856068'>
+    <tag k='name' v='restaurant' />
+    <tag k='amenity' v='restaurant' />
+  </node>
+  <node id='-39' action='modify' visible='true' lat='15.541660089368929' lon='-56.93144935560759'>
+    <tag k='name' v='tourism' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-40' action='modify' visible='true' lat='15.509015338788325' lon='-54.994824355526276'>
+    <tag k='name' v='historic' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-41' action='modify' visible='true' lat='14.941681983365038' lon='-57.90301312651305'>
+    <tag k='name' v='biergarten' />
+    <tag k='amenity' v='biergarten' />
+  </node>
+  <node id='-42' action='modify' visible='true' lat='13.557762158664245' lon='-57.87507082977705'>
+    <tag k='name' v='parking' />
+    <tag k='amenity' v='parking' />
+  </node>
+  <node id='-43' action='modify' visible='true' lat='15.21680807406248' lon='-57.91821444279333'>
+    <tag k='name' v='pub' />
+    <tag k='amenity' v='pub' />
+  </node>
+  <node id='-44' action='modify' visible='true' lat='13.868534389023997' lon='-57.87654982597123'>
+    <tag k='name' v='fast_food' />
+    <tag k='amenity' v='fast_food' />
+  </node>
+  <node id='-45' action='modify' visible='true' lat='12.001652590712562' lon='-57.89626862524517'>
+    <tag k='name' v='fuel' />
+    <tag k='amenity' v='fuel' />
+  </node>
+  <node id='-46' action='modify' visible='true' lat='11.745850001125033' lon='-57.89142749132068'>
+    <tag k='name' v='telephone' />
+    <tag k='amenity' v='telephone' />
+  </node>
+  <node id='-47' action='modify' visible='true' lat='14.664019387170635' lon='-57.91243221644405'>
+    <tag k='name' v='cafe' />
+    <tag k='amenity' v='cafe' />
+  </node>
+  <node id='-48' action='modify' visible='true' lat='13.276171483206038' lon='-57.870788782115795'>
+    <tag k='name' v='bicycle_parking' />
+    <tag k='amenity' v='bicycle_parking' />
+  </node>
+  <node id='-49' action='modify' visible='true' lat='10.69926395609017' lon='-57.879696549767395'>
+    <tag k='name' v='place_of_worship' />
+    <tag k='amenity' v='place_of_worship' />
+  </node>
+  <node id='-50' action='modify' visible='true' lat='10.959671686607768' lon='-57.87525860449831'>
+    <tag k='name' v='public_building' />
+    <tag k='amenity' v='public_building' />
+  </node>
+  <node id='-51' action='modify' visible='true' lat='11.217051217941203' lon='-57.88046363655918'>
+    <tag k='name' v='recycling' />
+    <tag k='amenity' v='recycling' />
+  </node>
+  <node id='-52' action='modify' visible='true' lat='11.48668834081103' lon='-57.88603256675643'>
+    <tag k='name' v='toilets' />
+    <tag k='amenity' v='toilets' />
+  </node>
+  <node id='-53' action='modify' visible='true' lat='9.517295808459288' lon='-57.89762233647667'>
+    <tag k='name' v='school' />
+    <tag k='amenity' v='school' />
+  </node>
+  <node id='-54' action='modify' visible='true' lat='9.826810439408915' lon='-57.89283108431814'>
+    <tag k='name' v='post_box' />
+    <tag k='amenity' v='post_box' />
+  </node>
+  <node id='-55' action='modify' visible='true' lat='10.107784397037626' lon='-57.89893262266133'>
+    <tag k='name' v='post_office' />
+    <tag k='amenity' v='post_office' />
+  </node>
+  <node id='-56' action='modify' visible='true' lat='10.407763245926418' lon='-57.90467555849157'>
+    <tag k='name' v='grave_yard' />
+    <tag k='amenity' v='grave_yard' />
+  </node>
+  <node id='-57' action='modify' visible='true' lat='7.401008596827448' lon='-57.869941338497384'>
+    <tag k='name' v='bus_station' />
+    <tag k='amenity' v='bus_station' />
+  </node>
+  <node id='-58' action='modify' visible='true' lat='9.66887545181026' lon='-56.94041128468561'>
+    <tag k='name' v='theatre' />
+    <tag k='amenity' v='theatre' />
+  </node>
+  <node id='-59' action='modify' visible='true' lat='9.432046236596808' lon='-56.94041128468561'>
+    <tag k='name' v='cinema' />
+    <tag k='amenity' v='cinema' />
+  </node>
+  <node id='-60' action='modify' visible='true' lat='9.25619870158788' lon='-57.891171952985836'>
+    <tag k='name' v='university' />
+    <tag k='amenity' v='university' />
+  </node>
+  <node id='-61' action='modify' visible='true' lat='14.429513508966567' lon='-55.94676477514592'>
+    <tag k='shop' v='bicycle' />
+    <tag k='name' v='bicycle' />
+  </node>
+  <node id='-62' action='modify' visible='true' lat='15.495894591099034' lon='-55.966886961301064'>
+    <tag k='name' v='shop' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-63' action='modify' visible='true' lat='7.9894454643708075' lon='-56.93951734386691'>
+    <tag k='name' v='atm' />
+    <tag k='amenity' v='atm' />
+  </node>
+  <node id='-64' action='modify' visible='true' lat='8.170153697626427' lon='-57.88590828750968'>
+    <tag k='name' v='library' />
+    <tag k='amenity' v='library' />
+  </node>
+  <node id='-65' action='modify' visible='true' lat='8.423533658975048' lon='-57.88003531504976'>
+    <tag k='name' v='hospital' />
+    <tag k='amenity' v='hospital' />
+  </node>
+  <node id='-66' action='modify' visible='true' lat='8.167170967794117' lon='-62.39577779934448'>
+    <tag k='name' v='town' />
+    <tag k='place' v='town' />
+  </node>
+  <node id='-67' action='modify' visible='true' lat='8.443864207510977' lon='-62.41910205274767'>
+    <tag k='name' v='city' />
+    <tag k='place' v='city' />
+  </node>
+  <node id='-68' action='modify' visible='true' lat='7.646031427656274' lon='-62.40207462545574'>
+    <tag k='name' v='hamlet' />
+    <tag k='place' v='hamlet' />
+  </node>
+  <node id='-69' action='modify' visible='true' lat='14.665948405935293' lon='-55.957124957501705'>
+    <tag k='shop' v='butcher' />
+    <tag k='name' v='butcher' />
+  </node>
+  <node id='-70' action='modify' visible='true' lat='8.978086655670456' lon='-57.89597163670712'>
+    <tag k='name' v='college' />
+    <tag k='amenity' v='college' />
+  </node>
+  <node id='-71' action='modify' visible='true' lat='15.170700277231463' lon='-55.977109089602486'>
+    <tag k='shop' v='supermarket' />
+    <tag k='name' v='supermarket' />
+  </node>
+  <node id='-72' action='modify' visible='true' lat='8.709242964401689' lon='-57.8850518273061'>
+    <tag k='name' v='pharmacy' />
+    <tag k='amenity' v='pharmacy' />
+  </node>
+  <node id='-73' action='modify' visible='true' lat='8.412983820272357' lon='-56.93005110232982'>
+    <tag k='name' v='bank' />
+    <tag k='amenity' v='bank' />
+  </node>
+  <node id='-74' action='modify' visible='true' lat='13.078142659065788' lon='-63.52520023630875'>
+    <tag k='highway' v='gate' />
+    <tag k='name' v='gate' />
+  </node>
+  <node id='-75' action='modify' visible='true' lat='12.760376245778543' lon='-63.526697196163205'>
+    <tag k='highway' v='stile' />
+    <tag k='name' v='stile' />
+  </node>
+  <node id='-76' action='modify' visible='true' lat='12.420643253996031' lon='-63.52829763796155'>
+    <tag k='highway' v='cattle_grid' />
+    <tag k='name' v='cattle_grid' />
+  </node>
+  <node id='-77' action='modify' visible='true' lat='7.922692532966468' lon='-62.393722148867155'>
+    <tag k='name' v='village' />
+    <tag k='place' v='village' />
+  </node>
+  <node id='-78' action='modify' visible='true' lat='9.18090876770067' lon='-56.94041128468561'>
+    <tag k='name' v='arts_centre' />
+    <tag k='amenity' v='arts_centre' />
+  </node>
+  <node id='-79' action='modify' visible='true' lat='8.912310601974704' lon='-56.94041128468561'>
+    <tag k='name' v='courthouse' />
+    <tag k='amenity' v='courthouse' />
+  </node>
+  <node id='-80' action='modify' visible='true' lat='8.669802570053378' lon='-56.94041128468561'>
+    <tag k='name' v='prison' />
+    <tag k='amenity' v='prison' />
+  </node>
+  <node id='-81' action='modify' visible='true' lat='9.370830049354144' lon='-63.54057758901389'>
+    <tag k='name' v='railway' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-82' action='modify' visible='true' lat='9.009199296821107' lon='-63.54307535004868'>
+    <tag k='railway' v='station' />
+    <tag k='name' v='station' />
+  </node>
+  <node id='-83' action='modify' visible='true' lat='14.840170652965137' lon='-63.51689953158036'>
+    <tag k='name' v='highway' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-84' action='modify' visible='true' lat='7.388293926396696' lon='-62.38900366477662'>
+    <tag k='name' v='suburb' />
+    <tag k='place' v='suburb' />
+  </node>
+  <node id='-85' action='modify' visible='true' lat='10.000615592169234' lon='-62.452758337158'>
+    <tag k='name' v='place' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-86' action='modify' visible='true' lat='12.091898578139235' lon='-63.52984631510786'>
+    <tag k='highway' v='toll_booth' />
+    <tag k='name' v='toll_booth' />
+  </node>
+  <node id='-87' action='modify' visible='true' lat='10.53166919727134' lon='-63.537196370523546'>
+    <tag k='highway' v='services' />
+    <tag k='name' v='services' />
+  </node>
+  <node id='-88' action='modify' visible='true' lat='9.965443465444649' lon='-63.53986379273578'>
+    <tag k='highway' v='bus_stop' />
+    <tag k='name' v='bus_stop' />
+  </node>
+  <node id='-89' action='modify' visible='true' lat='15.185328199844479' lon='-60.561222325880365'>
+    <tag k='name' v='sports_centre' />
+    <tag k='leisure' v='sports_centre' />
+  </node>
+  <node id='-90' action='modify' visible='true' lat='15.525030188941788' lon='-60.560360054781704'>
+    <tag k='name' v='leisure' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-91' action='modify' visible='true' lat='7.804955510176603' lon='-63.551392986714255'>
+    <tag k='railway' v='level_crossing' />
+    <tag k='name' v='level_crossing' />
+  </node>
+  <node id='-92' action='modify' visible='true' lat='11.146693813915748' lon='-62.421347677236426'>
+    <tag k='aeroway' v='aerodrome' />
+    <tag k='name' v='aerodrome' />
+  </node>
+  <node id='-93' action='modify' visible='true' lat='13.813477939376908' lon='-63.52173615908673'>
+    <tag k='highway' v='traffic_signals' />
+    <tag k='name' v='traffic_signals' />
+  </node>
+  <node id='-94' action='modify' visible='true' lat='14.120306303521074' lon='-63.52029072708345'>
+    <tag k='highway' v='stop' />
+    <tag k='name' v='stop' />
+  </node>
+  <node id='-95' action='modify' visible='true' lat='14.407501134114327' lon='-60.56319669021589'>
+    <tag k='name' v='stadium' />
+    <tag k='leisure' v='stadium' />
+  </node>
+  <node id='-96' action='modify' visible='true' lat='14.83475166565153' lon='-60.56211219812513'>
+    <tag k='name' v='golf_course' />
+    <tag k='leisure' v='golf_course' />
+  </node>
+  <node id='-97' action='modify' visible='true' lat='12.27070312888544' lon='-60.56862049190189'>
+    <tag k='name' v='fishing' />
+    <tag k='leisure' v='fishing' />
+  </node>
+  <node id='-98' action='modify' visible='true' lat='13.377456453867989' lon='-60.565811245840294'>
+    <tag k='name' v='pitch' />
+    <tag k='leisure' v='pitch' />
+  </node>
+  <node id='-99' action='modify' visible='true' lat='14.493619089655267' lon='-63.51853209485981'>
+    <tag k='highway' v='mini_roundabout' />
+    <tag k='name' v='mini_roundabout' />
+  </node>
+  <node id='-100' action='modify' visible='true' lat='13.444094481437942' lon='-63.523476280711655'>
+    <tag k='highway' v='crossing' />
+    <tag k='name' v='crossing' />
+  </node>
+  <node id='-101' action='modify' visible='true' lat='11.07939634941838' lon='-60.57048395751487'>
+    <tag k='name' v='garden' />
+    <tag k='leisure' v='garden' />
+  </node>
+  <node id='-102' action='modify' visible='true' lat='12.643283491848226' lon='-60.567674782044435'>
+    <tag k='name' v='slipway' />
+    <tag k='leisure' v='slipway' />
+  </node>
+  <node id='-103' action='modify' visible='true' lat='11.539342053120794' lon='-62.42098574080127'>
+    <tag k='name' v='aeroway' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-104' action='modify' visible='true' lat='11.931022107385186' lon='-60.56948269240939'>
+    <tag k='name' v='nature_reserve' />
+    <tag k='leisure' v='nature_reserve' />
+  </node>
+  <node id='-105' action='modify' visible='true' lat='15.530330381084662' lon='-62.46112452243973'>
+    <tag k='name' v='waterway' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-106' action='modify' visible='true' lat='10.264758564701124' lon='-63.53845375483157'>
+    <tag k='highway' v='ford' />
+    <tag k='name' v='ford' />
+  </node>
+  <node id='-107' action='modify' visible='true' lat='14.713198267182063' lon='-62.46112452243973'>
+    <tag k='name' v='turning_point' />
+    <tag k='waterway' v='turning_point' />
+  </node>
+  <node id='-108' action='modify' visible='true' lat='15.106668027719513' lon='-62.46112452243973'>
+    <tag k='name' v='lock_gate' />
+    <tag k='waterway' v='lock_gate' />
+  </node>
+  <node id='-109' action='modify' visible='true' lat='13.706177079713163' lon='-60.56497685825241'>
+    <tag k='name' v='track' />
+    <tag k='leisure' v='track' />
+  </node>
+  <node id='-110' action='modify' visible='true' lat='10.79083677053565' lon='-60.58167859804971'>
+    <tag k='name' v='common' />
+    <tag k='leisure' v='common' />
+  </node>
+  <node id='-111' action='modify' visible='true' lat='13.004877790650372' lon='-60.566756955697755'>
+    <tag k='name' v='water_park' />
+    <tag k='leisure' v='water_park' />
+  </node>
+  <node id='-112' action='modify' visible='true' lat='14.045882167363672' lon='-60.564114587153746'>
+    <tag k='name' v='marina' />
+    <tag k='leisure' v='marina' />
+  </node>
+  <node id='-113' action='modify' visible='true' lat='13.542483898439524' lon='-62.46112452243973'>
+    <tag k='name' v='water_point' />
+    <tag k='waterway' v='water_point' />
+  </node>
+  <node id='-114' action='modify' visible='true' lat='13.13865209732298' lon='-62.46112452243973'>
+    <tag k='name' v='waste_disposal' />
+    <tag k='waterway' v='waste_disposal' />
+  </node>
+  <node id='-115' action='modify' visible='true' lat='12.785241386511707' lon='-62.46112452243973'>
+    <tag k='name' v='mooring' />
+    <tag k='waterway' v='mooring' />
+  </node>
+  <node id='-116' action='modify' visible='true' lat='12.411576934418385' lon='-62.46112452243973'>
+    <tag k='name' v='weir' />
+    <tag k='waterway' v='weir' />
+  </node>
+  <node id='-117' action='modify' visible='true' lat='11.803548402264068' lon='-63.53120469855955'>
+    <tag k='highway' v='incline' />
+    <tag k='name' v='incline' />
+  </node>
+  <node id='-118' action='modify' visible='true' lat='11.477467590701208' lon='-63.53274082655737'>
+    <tag k='highway' v='incline_steep' />
+    <tag k='name' v='incline_steep' />
+  </node>
+  <node id='-119' action='modify' visible='true' lat='11.192098876583414' lon='-63.53408516469661'>
+    <tag k='highway' v='viaduct' />
+    <tag k='name' v='viaduct' />
+  </node>
+  <node id='-120' action='modify' visible='true' lat='10.866018065020553' lon='-63.53562129269444'>
+    <tag k='highway' v='motorway_junction' />
+    <tag k='name' v='motorway_junction' />
+  </node>
+  <node id='-121' action='modify' visible='true' lat='10.576014922223573' lon='-62.43564073919787'>
+    <tag k='aeroway' v='helipad' />
+    <tag k='name' v='helipad' />
+  </node>
+  <node id='-122' action='modify' visible='true' lat='10.861038514109628' lon='-62.42528055684208'>
+    <tag k='aeroway' v='terminal' />
+    <tag k='name' v='terminal' />
+  </node>
+  <node id='-123' action='modify' visible='true' lat='7.485346012766044' lon='-63.556556824071954'>
+    <tag k='railway' v='subway_entrance' />
+    <tag k='name' v='subway_entrance' />
+  </node>
+  <node id='-124' action='modify' visible='true' lat='8.099336963549076' lon='-63.54935971239107'>
+    <tag k='railway' v='crossing' />
+    <tag k='name' v='crossing' />
+  </node>
+  <node id='-125' action='modify' visible='true' lat='8.373493845709318' lon='-63.54746612791883'>
+    <tag k='railway' v='viaduct' />
+    <tag k='name' v='viaduct' />
+  </node>
+  <node id='-126' action='modify' visible='true' lat='8.69840753663645' lon='-63.54522196933668'>
+    <tag k='railway' v='halt' />
+    <tag k='name' v='halt' />
+  </node>
+  <node id='-127' action='modify' visible='true' lat='14.329753430503995' lon='-62.46112452243973'>
+    <tag k='name' v='aqueduct' />
+    <tag k='waterway' v='aqueduct' />
+  </node>
+  <node id='-128' action='modify' visible='true' lat='13.926058862828727' lon='-62.46112452243973'>
+    <tag k='name' v='boatyard' />
+    <tag k='waterway' v='boatyard' />
+  </node>
+  <node id='-129' action='modify' visible='true' lat='14.919933768737462' lon='-55.9760670403642'>
+    <tag k='shop' v='convenience' />
+    <tag k='name' v='convenience' />
+  </node>
+  <node id='-130' action='modify' visible='true' lat='7.7431409910984845' lon='-56.91884363474089'>
+    <tag k='name' v='townhall' />
+    <tag k='amenity' v='townhall' />
+  </node>
+  <node id='-131' action='modify' visible='true' lat='13.90650427370336' lon='-55.93980640211894'>
+    <tag k='shop' v='outdoor' />
+    <tag k='name' v='outdoor' />
+  </node>
+  <node id='-132' action='modify' visible='true' lat='14.166958400515915' lon='-55.94927264365604'>
+    <tag k='shop' v='doityourself' />
+    <tag k='name' v='doityourself' />
+  </node>
+  <node id='-133' action='modify' visible='true' lat='15.529721166037483' lon='-59.70871086194106'>
+    <tag k='name' v='landuse' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-134' action='modify' visible='true' lat='14.519127756081257' lon='-54.971129351852795'>
+    <tag k='name' v='memorial' />
+    <tag k='historic' v='memorial' />
+  </node>
+  <node id='-135' action='modify' visible='true' lat='14.879886423323788' lon='-59.70871086194105'>
+    <tag k='name' v='quarry' />
+    <tag k='landuse' v='quarry' />
+  </node>
+  <node id='-136' action='modify' visible='true' lat='15.210052882615486' lon='-59.70353077076316'>
+    <tag k='name' v='farm' />
+    <tag k='landuse' v='farm' />
+  </node>
+  <node id='-137' action='modify' visible='true' lat='11.68421166166496' lon='-60.593710133608724'>
+    <tag k='name' v='park' />
+    <tag k='leisure' v='park' />
+  </node>
+  <node id='-138' action='modify' visible='true' lat='10.809770087119379' lon='-61.54386071127052'>
+    <tag k='name' v='pier' />
+    <tag k='man_made' v='pier' />
+  </node>
+  <node id='-139' action='modify' visible='true' lat='14.39874326925126' lon='-57.91581411294176'>
+    <tag k='name' v='nightclub' />
+    <tag k='amenity' v='nightclub' />
+  </node>
+  <node id='-140' action='modify' visible='true' lat='11.41014859676806' lon='-60.583349951252934'>
+    <tag k='name' v='playground' />
+    <tag k='leisure' v='playground' />
+  </node>
+  <node id='-141' action='modify' visible='true' lat='12.788476991243762' lon='-57.88961567677941'>
+    <tag k='name' v='car_rental' />
+    <tag k='amenity' v='car_rental' />
+  </node>
+  <node id='-142' action='modify' visible='true' lat='12.999683255226259' lon='-57.8847335658744'>
+    <tag k='name' v='bicycle_rental' />
+    <tag k='amenity' v='bicycle_rental' />
+  </node>
+  <node id='-143' action='modify' visible='true' lat='8.194585929414627' lon='-56.93408592800167'>
+    <tag k='name' v='bureau_de_change' />
+    <tag k='amenity' v='bureau_de_change' />
+  </node>
+  <node id='-144' action='modify' visible='true' lat='12.555997347712044' lon='-57.88931769650652'>
+    <tag k='name' v='car_sharing' />
+    <tag k='amenity' v='car_sharing' />
+  </node>
+  <node id='-145' action='modify' visible='true' lat='12.313942734080834' lon='-59.67518884548175'>
+    <tag k='name' v='industrial' />
+    <tag k='landuse' v='industrial' />
+  </node>
+  <node id='-146' action='modify' visible='true' lat='12.035741134084109' lon='-59.67469178527081'>
+    <tag k='name' v='brownfield' />
+    <tag k='landuse' v='brownfield' />
+  </node>
+  <node id='-147' action='modify' visible='true' lat='11.746426660077914' lon='-59.66413252297697'>
+    <tag k='name' v='greenfield' />
+    <tag k='landuse' v='greenfield' />
+  </node>
+  <node id='-148' action='modify' visible='true' lat='11.48785298864732' lon='-59.65357326068313'>
+    <tag k='name' v='cemetery' />
+    <tag k='landuse' v='cemetery' />
+  </node>
+  <node id='-149' action='modify' visible='true' lat='11.239398878261735' lon='-59.65407032089408'>
+    <tag k='name' v='village_green' />
+    <tag k='landuse' v='village_green' />
+  </node>
+  <node id='-150' action='modify' visible='true' lat='10.990730486167289' lon='-59.64450517902212'>
+    <tag k='name' v='recreation_ground' />
+    <tag k='landuse' v='recreation_ground' />
+  </node>
+  <node id='-151' action='modify' visible='true' lat='9.055609124899473' lon='-61.547762437501056'>
+    <tag k='name' v='military' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-152' action='modify' visible='true' lat='8.728068070247632' lon='-61.54258234632316'>
+    <tag k='name' v='airfield' />
+    <tag k='military' v='airfield' />
+  </node>
+  <node id='-153' action='modify' visible='true' lat='14.569268664807336' lon='-59.70871086194105'>
+    <tag k='name' v='landfill' />
+    <tag k='landuse' v='landfill' />
+  </node>
+  <node id='-154' action='modify' visible='true' lat='14.268253436987077' lon='-59.68799049722948'>
+    <tag k='name' v='basin' />
+    <tag k='landuse' v='basin' />
+  </node>
+  <node id='-155' action='modify' visible='true' lat='13.986942401156575' lon='-59.67763031487369'>
+    <tag k='name' v='reservoir' />
+    <tag k='landuse' v='reservoir' />
+  </node>
+  <node id='-156' action='modify' visible='true' lat='13.695221496584454' lon='-59.67802847474979'>
+    <tag k='name' v='forest' />
+    <tag k='landuse' v='forest' />
+  </node>
+  <node id='-157' action='modify' visible='true' lat='13.426158933516174' lon='-59.68674222819746'>
+    <tag k='name' v='allotments' />
+    <tag k='landuse' v='allotments' />
+  </node>
+  <node id='-158' action='modify' visible='true' lat='13.158973685219692' lon='-59.69829561091318'>
+    <tag k='name' v='residential' />
+    <tag k='landuse' v='residential' />
+  </node>
+  <node id='-159' action='modify' visible='true' lat='12.901789721723086' lon='-59.69730149049129'>
+    <tag k='name' v='retail' />
+    <tag k='landuse' v='retail' />
+  </node>
+  <node id='-160' action='modify' visible='true' lat='12.603125027038642' lon='-59.67618296590362'>
+    <tag k='name' v='commercial' />
+    <tag k='landuse' v='commercial' />
+  </node>
+  <node id='-161' action='modify' visible='true' lat='13.876191236617759' lon='-58.766098167790204'>
+    <tag k='name' v='heath' />
+    <tag k='natural' v='heath' />
+  </node>
+  <node id='-162' action='modify' visible='true' lat='14.101605313929625' lon='-58.766098167790204'>
+    <tag k='name' v='fell' />
+    <tag k='natural' v='fell' />
+  </node>
+  <node id='-163' action='modify' visible='true' lat='14.326796829259186' lon='-58.77665743008404'>
+    <tag k='name' v='scrub' />
+    <tag k='natural' v='scrub' />
+  </node>
+  <node id='-164' action='modify' visible='true' lat='14.542985165611118' lon='-58.7786456709278'>
+    <tag k='name' v='scree' />
+    <tag k='natural' v='scree' />
+  </node>
+  <node id='-165' action='modify' visible='true' lat='13.032653205351634' lon='-58.76032147643235'>
+    <tag k='name' v='coastline' />
+    <tag k='natural' v='coastline' />
+  </node>
+  <node id='-166' action='modify' visible='true' lat='13.24859119821432' lon='-58.76032147643235'>
+    <tag k='name' v='water' />
+    <tag k='natural' v='water' />
+  </node>
+  <node id='-167' action='modify' visible='true' lat='13.445249101993868' lon='-58.766098167790204'>
+    <tag k='name' v='marsh' />
+    <tag k='natural' v='marsh' />
+  </node>
+  <node id='-168' action='modify' visible='true' lat='13.660818642761978' lon='-58.766098167790204'>
+    <tag k='name' v='wood' />
+    <tag k='natural' v='wood' />
+  </node>
+  <node id='-169' action='modify' visible='true' lat='7.824312331632587' lon='-61.53461312961827'>
+    <tag k='name' v='range' />
+    <tag k='military' v='range' />
+  </node>
+  <node id='-170' action='modify' visible='true' lat='8.02302275597842' lon='-61.545172391912104'>
+    <tag k='name' v='danger_area' />
+    <tag k='military' v='danger_area' />
+  </node>
+  <node id='-171' action='modify' visible='true' lat='8.274378213869138' lon='-61.55424047357312'>
+    <tag k='name' v='barracks' />
+    <tag k='military' v='barracks' />
+  </node>
+  <node id='-172' action='modify' visible='true' lat='8.514147526408193' lon='-61.545172391912104'>
+    <tag k='name' v='bunker' />
+    <tag k='military' v='bunker' />
+  </node>
+  <node id='-173' action='modify' visible='true' lat='14.747308932239555' lon='-58.7786456709278'>
+    <tag k='name' v='cliff' />
+    <tag k='natural' v='cliff' />
+  </node>
+  <node id='-174' action='modify' visible='true' lat='14.971843662536147' lon='-58.7786456709278'>
+    <tag k='name' v='peak' />
+    <tag k='natural' v='peak' />
+  </node>
+  <node id='-175' action='modify' visible='true' lat='15.498552498487225' lon='-58.78123571651675'>
+    <tag k='name' v='natural' />
+    <tag k='tourism' v='attraction' />
+  </node>
+  <node id='-176' action='modify' visible='true' lat='15.178836424433342' lon='-58.776055625338856'>
+    <tag k='name' v='spring' />
+    <tag k='natural' v='spring' />
+  </node>
+  <node id='-177' action='modify' visible='true' lat='7.122856298778426' lon='-62.400472637712596'>
+    <tag k='name' v='island' />
+    <tag k='place' v='island' />
+  </node>
+  <node id='-178' action='modify' visible='true' lat='12.286258156325172' lon='-57.898146301677485'>
+    <tag k='name' v='taxi' />
+    <tag k='amenity' v='taxi' />
+  </node>
+  <node id='-179' action='modify' visible='true' lat='9.473643881265177' lon='-62.44270968688792'>
+    <tag k='name' v='country' />
+    <tag k='place' v='country' />
+  </node>
+  <node id='-180' action='modify' visible='true' lat='11.926127657912964' lon='-58.749762214138514'>
+    <tag k='name' v='glacier' />
+    <tag k='natural' v='glacier' />
+  </node>
+  <node id='-181' action='modify' visible='true' lat='12.142998524533414' lon='-58.74976221413853'>
+    <tag k='name' v='land' />
+    <tag k='natural' v='land' />
+  </node>
+  <node id='-182' action='modify' visible='true' lat='8.722947931127454' lon='-62.432150424594106'>
+    <tag k='name' v='county' />
+    <tag k='place' v='county' />
+  </node>
+  <node id='-183' action='modify' visible='true' lat='12.827791954292415' lon='-58.759824416221406'>
+    <tag k='name' v='mud' />
+    <tag k='natural' v='mud' />
+  </node>
+  <node id='-184' action='modify' visible='true' lat='9.234010270511796' lon='-62.432150424594106'>
+    <tag k='name' v='state' />
+    <tag k='place' v='state' />
+  </node>
+  <node id='-185' action='modify' visible='true' lat='9.004642887394837' lon='-62.432150424594106'>
+    <tag k='name' v='region' />
+    <tag k='place' v='region' />
+  </node>
+  <node id='-186' action='modify' visible='true' lat='12.390634670766032' lon='-58.749762214138514'>
+    <tag k='name' v='bay' />
+    <tag k='natural' v='bay' />
+  </node>
+  <node id='-187' action='modify' visible='true' lat='12.607123746055352' lon='-58.7497622141385'>
+    <tag k='name' v='beach' />
+    <tag k='natural' v='beach' />
+  </node>
+  <node id='-188' action='modify' visible='true' lat='9.723518097169947' lon='-62.432150424594106'>
+    <tag k='name' v='continent' />
+    <tag k='place' v='continent' />
+  </node>
+</osm>
Index: trunk/styles/standard/README.txt
===================================================================
--- trunk/styles/standard/README.txt	(revision 486)
+++ trunk/styles/standard/README.txt	(revision 486)
@@ -0,0 +1,1 @@
+Instead of the flat icons dir previously used, use the hierarchy from svn.openstreetmap.org/applications/share/map-icons instead.
Index: trunk/styles/standard/elemstyles.xml
===================================================================
--- trunk/styles/standard/elemstyles.xml	(revision 486)
+++ trunk/styles/standard/elemstyles.xml	(revision 486)
@@ -0,0 +1,2034 @@
+<!--
+a little help:
+1. every rule starts with <rule> and ends with </rule>
+2. every rule needs a condition
+3. line attributes
+		- width absolute width in pixel in every zoom level
+		- realwidth relative width which will be scaled in meters, integer
+		- colour
+4. area attributes
+		- colour
+5. icon attributes
+		- icon path to icon , relative from where this file is
+
+Using both area and line attributes for the same key/value pair doesn't work!
+-->
+
+<rules>
+<!-- highway tags -->
+	<rule>
+		<condition k="highway" v="motorway"/>
+        <line width="3" realwidth="8" colour="#809bc0"  width_bg="5" colour_bg="#FFFF00"/>
+        <scale_min>1</scale_min>
+        <scale_max>200000000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="motorway_link"/>
+        <line width="3" colour="#809bc0"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="trunk"/>
+		<line width="3" colour="#7fc97f"/>
+        <scale_min>1</scale_min>
+        <scale_max>20000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="trunk_link"/>
+        <line width="3" colour="#7fc97f"/>
+        <scale_min>1</scale_min>
+        <scale_max>20000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="primary"/>
+		<line width="3" realwidth="8" colour="#fb805f"/>
+        <scale_min>1</scale_min>
+        <scale_max>700000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="primary_link"/>
+        <line width="3" colour="#fb805f"/>
+        <scale_min>1</scale_min>
+        <scale_max>40000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="secondary"/>
+		<line width="3" realwidth="6" colour="#fdbf6f"/>
+        <scale_min>1</scale_min>
+        <scale_max>300000</scale_max>
+    </rule>
+
+    <rule>
+        <condition k="highway" v="tertiary"/>
+        <line width="2" realwidth="5" colour="#f7f496"/>
+        <scale_min>1</scale_min>
+        <scale_max>30000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="unclassified"/>
+		<line width="2" realwidth="5" colour="#c0c0c0"/>
+        <scale_min>1</scale_min>
+        <scale_max>40000</scale_max>
+    </rule>
+
+    <rule>
+        <condition k="highway" v="track"/>
+        <line width="1" realwidth="3" colour="#006600"/>
+        <scale_min>1</scale_min>
+        <scale_max>20000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="residential"/>
+		<line width="2" realwidth="5" colour="#c0c0c0"/> 
+        <scale_min>1</scale_min>
+        <scale_max>40000</scale_max>
+    </rule>
+
+    <rule>
+        <condition k="highway" v="service"/>
+        <line width="1" realwidth="3" colour="#809bc0"/>
+        <scale_min>1</scale_min>
+        <scale_max>20000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="bridleway"/>
+		<line width="1" realwidth="2" colour="#c08000" />
+        <scale_min>1</scale_min>
+        <scale_max>30000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="cycleway"/>
+		<line width="1" realwidth="2" colour="#ff00ff"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="footway"/>
+		<line width="1" realwidth="1" colour="#00ff00" />
+        <scale_min>1</scale_min>
+        <scale_max>10000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="pedestrian"/>
+		<line width="3" realwidth="5" colour="#00ff00"/>
+        <scale_min>1</scale_min>
+        <scale_max>10000</scale_max>
+    </rule>
+
+    <rule>
+        <condition k="highway" v="steps"/>
+        <line width="1" realwidth="1" colour="#00ff00"/>
+        <scale_min>1</scale_min>
+        <scale_max>10000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="mini_roundabout" />
+		<icon annotate="true" src="vehicle/restrictions/roundabout_left.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="stop" />
+		<icon annotate="true" src="vehicle/restrictions/stop.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="traffic_signals" />
+		<icon annotate="true" src="vehicle/restrictions/traffic-light.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="highway" v="crossing" />
+		<icon annotate="true" src="vehicle/zebra_crossing.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="gate" />
+		<icon annotate="true" src="vehicle/gate.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="highway" v="stile" />
+		<icon annotate="true" src="vehicle/stile.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="highway" v="cattle_grid" />
+		<icon annotate="true" src="vehicle/cattle_grid.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="highway" v="toll_booth" />
+		<icon annotate="true" src="vehicle/toll_station.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="highway" v="incline" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="incline_steep" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="viaduct" />
+		<icon annotate="true" src="vehicle/viaduct.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="motorway_junction" />
+		<icon annotate="true" src="vehicle/exit.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="services" />
+		<icon annotate="true" src="vehicle/services.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="highway" v="ford" />
+		<icon annotate="true" src="vehicle/ford.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="highway" v="bus_stop" />
+		<icon annotate="true" src="transport/bus_small.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+<!-- junction tag -->
+
+	<rule>
+		<condition k="junction" v="roundabout" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+<!-- cycleway tags -->
+
+	<rule>
+		<condition k="cycleway" v="lane"/>
+		<line width="1" realwidth="2" colour="#ff00ff"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="cycleway" v="track"/>
+		<line width="1" realwidth="2" colour="#ff00ff"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="cycleway" v="opposite_lane"/>
+		<line width="1" realwidth="2" colour="#ff00ff"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="cycleway" v="opposite_track"/>
+		<line width="1" realwidth="2" colour="#ff00ff"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="cycleway" v="opposite"/>
+		<line width="1" realwidth="2" colour="#ff00ff"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+<!-- tracktype tags -->
+
+	<!-- grade1 tag -->
+	<!-- grade2 tag -->
+	<!-- grade3 tag -->
+	<!-- grade4 tag -->
+	<!-- grade5 tag -->
+
+<!--waterway tags -->
+	<rule>
+		<condition k="waterway" v="river"/>
+        <line width="2" realwidth="10" colour="#0000ff" width_bg="3" colour_bg="#00001f"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="waterway" v="riverbank"/>
+        <line width="1" colour="#00005f" width_bg="1" colour_bg="#00001f"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="waterway" v="canal"/>
+        <line width="2" colour="#0000ff" width_bg="2" colour_bg="#00001f"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+    <rule>
+        <condition k="waterway" v="stream"/>
+        <line width="1" colour="#6600cc" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="waterway" v="drain"/>
+        <line width="1" colour="#0000ff"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+
+    <rule>
+        <condition k="waterway" v="dock"/>
+        <line width="1" colour="#0000cf"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+
+	<rule>
+		<condition k="waterway" v="lock_gate" />
+		<icon annotate="true" src="nautical/lock_gate.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="waterway" v="turning_point" />
+		<icon annotate="true" src="nautical/turning.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="waterway" v="aqueduct" />
+		<icon annotate="true" src="nautical/aqueduct.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="waterway" v="boatyard" />
+		<icon annotate="true" src="nautical/boatyard.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="waterway" v="water_point" />
+		<icon annotate="true" src="accommodation/camping/water.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="waterway" v="waste_disposal" />
+		<icon annotate="true" src="accommodation/camping/wastewater.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="waterway" v="mooring" />
+		<icon annotate="true" src="nautical/marina.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="waterway" v="weir" />
+		<icon annotate="true" src="nautical/weir.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!-- railway tags -->
+	<rule>
+		<condition k="railway" v="station" />
+		<icon annotate="true" src="transport/railway.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="railway" v="halt" />
+		<icon annotate="true" src="transport/railway_small.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="railway" v="viaduct" />
+		<icon annotate="true" src="vehicle/viaduct.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="railway" v="crossing" />
+		<icon annotate="true" src="vehicle/crossing_small.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="railway" v="level_crossing" />
+		<icon annotate="true" src="vehicle/crossing.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="railway" v="rail"/>
+		<line width="2" colour="#808080" dashed="true"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+    <rule>
+        <condition k="railway" v="tram"/>
+        <line width="1" colour="#606060" dashed="true"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+
+    <rule>
+        <condition k="railway" v="light_rail"/>
+        <line width="2" colour="#808080" dashed="true"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="railway" v="subway"/>
+        <line width="1" colour="#303030" dashed="true"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="railway" v="subway_entrance"/>
+		<icon annotate="true" src="transport/underground.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="railway" v="preserved"/>
+        <line width="1" colour="#202020" dashed="true"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="railway" v="disused"/>
+        <line width="1" colour="#202020" dashed="true"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="railway" v="abandoned"/>
+        <line width="1" colour="#202020" dashed="true"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="railway" v="narrow_gauge"/>
+        <line width="1" colour="#202020" dashed="true"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="railway" v="monorail"/>
+        <line width="1" colour="#202020" dashed="true"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+<!--aeroway tags -->
+
+    <rule>
+        <condition k="aeroway" v="aerodrome"/>
+		<icon annotate="true" src="transport/airport.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="aeroway" v="terminal"/>
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="aeroway" v="helipad"/>
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="aeroway" v="runway"/>
+        <line width="3" colour="#330000" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="aeroway" v="taxiway"/>
+        <line width="2" colour="#660000" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="aeroway" v="apron"/>
+        <area colour="#D8D8D8" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+<!--aerialway tags -->
+
+<!--power tags -->
+
+	<rule>
+		<condition k="power" v="tower" />
+		<icon annotate="true" src="misc/landmark/power/tower.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="power" v="line" />
+        <line width="1" colour="#eeeeee" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--man_made tags -->
+	<rule>
+		<condition k="man_made" v="works" />
+		<icon annotate="true" src="misc/landmark/works.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="beacon" />
+		<icon annotate="true" src="misc/landmark/beacon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="survey_point" />
+		<icon annotate="true" src="misc/landmark/survey_point.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="power_wind" />
+		<icon annotate="true" src="misc/landmark/power/wind.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="power_hydro" />
+		<icon annotate="true" src="misc/landmark/power/hydro.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="power_fossil" />
+		<icon annotate="true" src="misc/landmark/power/fossil.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="power_nuclear" />
+		<icon annotate="true" src="misc/landmark/power/nuclear.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="tower" />
+		<icon annotate="true" src="misc/landmark/tower.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="water_tower" />
+		<icon annotate="true" src="misc/landmark/water_tower.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="gasometer" />
+		<icon annotate="true" src="misc/landmark/gasometer.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="reservoir_covered" />
+		<icon annotate="true" src="misc/landmark/reservoir_covered.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="lighthouse" />
+		<icon annotate="true" src="misc/landmark/lighthouse.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="windmill" />
+		<icon annotate="true" src="misc/landmark/windmill.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="man_made" v="pier" />
+        <line width="2" colour="#660000" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--leisure tags -->
+	<rule>
+		<condition k="leisure" v="sports_centre" />
+		<icon annotate="true" src="sports/centre.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="golf_course" />
+		<icon annotate="true" src="sports/golf.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="stadium" />
+		<icon annotate="true" src="sports/stadium.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="marina" />
+		<icon annotate="true" src="nautical/marina.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="track" />
+		<icon annotate="true" src="sports/track.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="pitch" />
+		<icon annotate="true" src="sports/pitch.png" />
+        <area colour="#c7f1a3" />		
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="water_park" />
+		<icon annotate="true" src="recreation/water_park.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="slipway" />
+		<icon annotate="true" src="nautical/slipway.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="fishing" />
+		<icon annotate="true" src="sports/fishing.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="nature_reserve" />
+		<icon annotate="true" src="recreation/nature_reserve.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="park"/>
+		<icon annotate="true" src="recreation/park.png" />
+		<area colour="#c7f1a3"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="playground"/>
+		<icon annotate="true" src="recreation/playground.png" />
+		<area colour="#c7f1a3"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="garden" />
+		<icon annotate="true" src="recreation/garden.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="common" />
+		<icon annotate="true" src="recreation/common.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--amenity tags -->
+	<rule>
+		<condition k="amenity" v="pub" />
+		<icon annotate="true" src="food/pub.png"  />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="biergarten" />
+		<icon annotate="true" src="food/biergarten.png"  />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="cafe" />
+		<icon annotate="true" src="food/cafe.png"  />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="nightclub" />
+		<icon annotate="true" src="recreation/nightclub.png"  />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="restaurant" />
+		<icon annotate="true" src="food/restaurant.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="fast_food" />
+		<icon annotate="true" src="food/fastfood.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="parking" />
+		<icon annotate="true" src="vehicle/parking.png" />
+		<area colour="#f7efb7"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="bicycle_parking" />
+		<icon annotate="true" src="vehicle/parking/bike.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="bicycle_rental" />
+		<icon annotate="true" src="vehicle/bicycle_rental.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="car_rental" />
+		<icon annotate="true" src="vehicle/car_rental.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="car_sharing" />
+		<icon annotate="true" src="vehicle/car_sharing.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="taxi" />
+		<icon annotate="true" src="transport/taxi.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="fuel" />
+		<icon annotate="true" src="vehicle/fuel_station.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="telephone" />
+		<icon annotate="true" src="public/telephone.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="toilets" />
+		<icon annotate="true" src="public/toilets.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="recycling" />
+		<icon annotate="true" src="public/recycling_small.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="public_building" />
+		<icon annotate="true" src="public.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="place_of_worship" />
+		<icon annotate="true" src="religion/church.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="grave_yard" />
+		<icon annotate="true" src="religion/cemetery.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="post_office" />
+		<icon annotate="true" src="public/post_office.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="post_box" />
+		<icon annotate="true" src="public/post_box.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="school" />
+		<icon annotate="true" src="education/school.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="university" />
+		<icon annotate="true" src="education/university.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="college" />
+		<icon annotate="true" src="education/college.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="pharmacy" />
+		<icon annotate="true" src="health/pharmacy.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="hospital" />
+        <area colour="#eeeeee" />
+		<icon annotate="true" src="health/hospital.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="library" />
+		<icon annotate="true" src="shopping/rental/library.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="police" />
+		<icon annotate="true" src="public/police.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="fire_station" />
+		<icon annotate="true" src="public/firebrigade.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="bus_station" />
+		<icon annotate="true" src="transport/bus_small.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="theatre" />
+		<icon annotate="true" src="recreation/theater.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="cinema" />
+		<icon annotate="true" src="recreation/cinema.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="arts_centre" />
+		<icon annotate="true" src="public/arts_centre.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="courthouse" />
+		<icon annotate="true" src="public/administration/court_of_law.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="prison" />
+		<icon annotate="true" src="public/administration/prison.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="bank" />
+		<icon annotate="true" src="money.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="bureau_de_change" />
+		<icon annotate="true" src="money.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="atm" />
+		<icon annotate="true" src="money.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="townhall" />
+		<icon annotate="true" src="public.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--shop tags -->
+
+	<rule>
+		<condition k="shop" v="supermarket" />
+		<icon annotate="true" src="shopping/supermarket.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="convenience" />
+		<icon annotate="true" src="shopping/supermarket.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="butcher" />
+		<icon annotate="true" src="shopping/groceries/butcher.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="bicycle" />
+		<icon annotate="true" src="sports/bicycle.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="doityourself" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="outdoor" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--tourism tags -->
+	<rule>
+		<condition k="tourism" v="information" />
+		<icon annotate="true" src="misc/information.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="tourism" v="camp_site" />
+		<icon annotate="true" src="accommodation/camping.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="tourism" v="caravan_site" />
+		<icon annotate="true" src="accommodation/camping/caravan.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="tourism" v="picnic_site" />
+		<icon annotate="true" src="recreation/picnic.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="tourism" v="viewpoint" />
+		<icon annotate="true" src="sightseeing/viewpoint.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="tourism" v="theme_park" />
+		<icon annotate="true" src="recreation/theme_park.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="tourism" v="hotel" />
+		<icon annotate="true" src="accommodation.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="tourism" v="motel" />
+		<icon annotate="true" src="accommodation/motel.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="tourism" v="guest_house" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="tourism" v="hostel" />
+		<icon annotate="true" src="accommodation/hostel.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+    <rule>
+        <condition k="tourism" v="attraction"/>
+        <icon annotate="true" src="sightseeing.png"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+
+<!--historic tags -->
+	<rule>
+		<condition k="historic" v="castle" />
+		<icon annotate="true" src="sightseeing/castle.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="historic" v="monument" />
+		<icon annotate="true" src="sightseeing/monument.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="historic" v="memorial" />
+		<icon annotate="true" src="sightseeing/memorial.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="historic" v="museum" />
+		<icon annotate="true" src="sightseeing/museum.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="historic" v="archaeological_site" />
+		<icon annotate="true" src="sightseeing/archaeological.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="historic" v="icon" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="historic" v="ruins" />
+		<icon annotate="true" src="sightseeing/ruins.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--landuse tags -->
+	<rule>
+		<condition k="landuse" v="farm" />
+		<icon annotate="true" src="misc/landmark/farm.png"  />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+    <rule>
+        <condition k="landuse" v="quarry"/>
+        <area colour="#cccccc" />
+		<icon src="misc/landmark/mine.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="landuse" v="landfill"/>
+        <area colour="#663300" />
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+
+	<rule>
+		<condition k="landuse" v="basin"/>
+		<area colour="#0000bf" />
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="landuse" v="reservoir"/>
+		<area colour="#0000bf" />
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="landuse" v="forest"/>
+		<area colour="#b1efc8" />
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="landuse" v="allotments"/>
+		<area colour="#b1e0c2" />
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="landuse" v="residential"/>
+		<area colour="#f0f0f0"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="landuse" v="retail"/>
+		<area colour="#dbdbdb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="landuse" v="commercial"/>
+		<area colour="#dbdbdb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="landuse" v="industrial"/>
+		<area colour="#ecd8ff"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="landuse" v="brownfield"/>
+		<area colour="#ecba32"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="landuse" v="greenfield"/>
+		<area colour="#b1ec5c"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="landuse" v="cemetery"/>
+		<area colour="#bde3cb"/>
+		<icon src="religion/cemetery.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="landuse" v="village_green"/>
+		<area colour="#b1e0c2" />
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="landuse" v="recreation_ground"/>
+		<area colour="#b1e0c2" />
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--military tags -->
+	<rule>
+		<condition k="military" v="airfield" />
+		<icon src="misc/no_icon.png" />
+		<area colour="#b62c2c"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="military" v="bunker" />
+		<icon src="misc/no_icon.png" />
+		<area colour="#b62c2c"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="military" v="barracks" />
+		<icon src="misc/no_icon.png" />
+		<area colour="#b62c2c"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="military" v="danger_area" />
+		<icon src="misc/no_icon.png" />
+		<area colour="#b62c2c"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="military" v="range" />
+		<icon src="misc/no_icon.png" />
+		<area colour="#b62c2c"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--natural tags -->
+    <rule>
+        <condition k="natural" v="spring"/>
+        <icon annotate="true" src="misc/landmark/spring.png"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="natural" v="peak"/>
+        <icon annotate="true" src="misc/landmark/peak_small.png"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="natural" v="cliff"/>
+		<icon src="misc/no_icon.png" />
+        <area colour="#002f00"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+
+    <rule>
+        <condition k="natural" v="scree"/>
+		<icon src="misc/no_icon.png" />
+        <area colour="#002f00"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+
+	<rule>
+        <condition k="natural" v="scrub" />
+		<icon src="misc/no_icon.png" />
+        <area colour="#007000" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+        <condition k="natural" v="fell"/>
+		<icon src="misc/no_icon.png" />
+        <area colour="#002f00"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+
+    <rule>
+		<condition k="natural" v="heath"/>
+		<icon src="misc/no_icon.png" />
+        <area colour="#ffffc0"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+        <condition k="natural" v="wood"/>
+		<icon src="misc/no_icon.png" />
+        <area colour="#008000" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+		<condition k="natural" v="marsh"/>
+		<icon src="misc/no_icon.png" />
+		<area colour="#4f4ff3"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+    <rule>
+		<condition k="natural" v="water"/>
+		<icon src="misc/no_icon.png" />
+		<area colour="#0000ff"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+	
+    <rule>
+        <condition k="natural" v="coastline"/>
+		<icon src="misc/no_icon.png" />
+        <line width="1" colour="#0000ff"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+    </rule>
+    
+    <rule>
+		<condition k="natural" v="mud"/>
+		<icon src="misc/no_icon.png" />
+		<area colour="#cba762"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+    <rule>
+		<condition k="natural" v="beach"/>
+		<icon src="misc/no_icon.png" />
+		<area colour="#f8dba2"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+    <rule>
+		<condition k="natural" v="bay"/>
+		<icon src="misc/no_icon.png" />
+		<area colour="#002f00"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+    <rule>
+		<condition k="natural" v="land"/>
+		<icon src="misc/no_icon.png" />
+		<area colour="#002f00"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+    <rule>
+		<condition k="natural" v="glacier"/>
+		<icon src="misc/no_icon.png" />
+		<area colour="#ffffff"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--route tags -->
+
+	<rule>
+		<condition k="route" v="bus"/>
+        <line width="1" colour="#809bc0"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="route" v="ferry"/>
+        <line width="1" colour="#809bc0"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="route" v="flight"/>
+        <line width="1" colour="#809bc0"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="route" v="ncn"/>
+        <line width="1" colour="#809bc0"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="route" v="subsea"/>
+        <line width="1" colour="#809bc0"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="route" v="ski"/>
+        <line width="1" colour="#809bc0"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="route" v="tour"/>
+        <line width="1" colour="#809bc0"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="route" v="pub_crawl"/>
+        <line width="1" colour="#809bc0"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--boundary tags -->
+
+	<rule>
+		<condition k="boundary" v="national"/>
+        <line width="1" colour="#3a5d8c"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="boundary" v="administrative"/>
+        <line width="1" colour="#3a5d8c"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="boundary" v="civil"/>
+        <line width="1" colour="#3a5d8c"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="boundary" v="political"/>
+        <line width="1" colour="#3a5d8c"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="boundary" v="national_park"/>
+        <line width="1" colour="#3a5d8c"/>
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--sport tags -->
+	<rule>
+		<condition k="sport" v="10pin" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="athletics" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="baseball" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="basketball" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="bowls" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="climbing" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="cricket" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="cricket_nets" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="croquet" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="cycling" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="dog_racing" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="equestrain" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="football" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="golf" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="gymnastics" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="hockey" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="horse_racing" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="motor" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="multi" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="pelota" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="racquet" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="rubgy" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="skating" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="skateboard" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="soccer" />
+		<area colour="#bde3cb"/>
+		<icon src="sports/soccer.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="swimming" />
+		<area colour="#bde3cb"/>
+		<icon src="sports/pool.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="skiing" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="table_tennis" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="sport" v="tennis" />
+		<area colour="#bde3cb"/>
+		<icon src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--abutters tags -->
+
+<!--accessories tags -->
+
+<!--properties tags -->
+
+<!--restrictions tags -->
+
+<!--name tags -->
+
+<!--preferences tags -->
+
+<!--place tags -->
+	<rule>
+		<condition k="place" v="continent" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="place" v="country" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="place" v="state" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="place" v="region" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="place" v="county" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="place" v="city" />
+		<icon annotate="true" src="places/settlement/city.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="place" v="town" />
+		<icon annotate="true" src="places/settlement/town.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="place" v="village" />
+		<icon annotate="true" src="places/settlement/town.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="place" v="hamlet" />
+		<icon annotate="true" src="places/settlement/town.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="place" v="suburb" />
+		<icon annotate="true" src="places/settlement/town.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="place" v="island" />
+		<icon annotate="true" src="misc/no_icon.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+<!--annotation tags -->
+
+<!--"work in progress" tags -->
+	<rule>
+		<condition k="amenity" v="sheltered_housing" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="nursery" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="amenity" v="shelter" />
+		<icon annotate="true" src="vehicle/caution.png" />
+		<scale_min>1</scale_min>
+		<scale_max>50000</scale_max>
+	</rule>
+	
+	<rule>
+		<condition k="shop" v="laundromat" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="beverages" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="bakery" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="chemist" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="kiosk" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="motorcycle" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="car_repair" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="shop" v="mall" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="leisure" v="zoo" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="historic" v="church" />
+		<icon annotate="true" src="vehicle/caution.png" />
+        <scale_min>1</scale_min>
+        <scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="barrier" v="bollard" />
+		<icon annotate="true" src="vehicle/caution.png" />
+		<scale_min>1</scale_min>
+		<scale_max>50000</scale_max>
+	</rule>
+	<rule>
+		<condition k="building" v="yes"/>
+		<icon annotate="true" src="vehicle/caution.png" />
+		<area colour="#bde3cb"/>
+		<scale_min>1</scale_min>
+		<scale_max>50000</scale_max>
+	</rule>
+</rules>
