Index: trunk/src/org/openstreetmap/josm/gui/mappaint/StyleKeys.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/StyleKeys.java	(revision 11759)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/StyleKeys.java	(revision 11760)
@@ -25,4 +25,8 @@
     String ICON_ROTATION = "icon-rotation";
     String ICON_WIDTH = "icon-width";
+    /**
+     * Position of icons on area.
+     */
+    String ICON_POSITION = "icon-position";
     String LINECAP = "linecap";
     String LINEJOIN = "linejoin";
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/AreaIconElement.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/AreaIconElement.java	(revision 11759)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/AreaIconElement.java	(revision 11760)
@@ -9,4 +9,5 @@
 import org.openstreetmap.josm.gui.mappaint.Cascade;
 import org.openstreetmap.josm.gui.mappaint.Environment;
+import org.openstreetmap.josm.gui.mappaint.Keyword;
 import org.openstreetmap.josm.gui.mappaint.styleelement.placement.PartiallyInsideAreaStrategy;
 import org.openstreetmap.josm.gui.mappaint.styleelement.placement.PositionForAreaStrategy;
@@ -32,10 +33,11 @@
      * The position of the icon inside the area.
      */
-    private final PositionForAreaStrategy iconPosition = PartiallyInsideAreaStrategy.INSTANCE;
+    private final PositionForAreaStrategy iconPosition;
 
-    protected AreaIconElement(Cascade c, MapImage iconImage, RotationAngle iconImageAngle) {
+    protected AreaIconElement(Cascade c, MapImage iconImage, RotationAngle iconImageAngle, PositionForAreaStrategy iconPosition) {
         super(c, 4.8f);
         this.iconImage = Objects.requireNonNull(iconImage, "iconImage");
         this.iconImageAngle = Objects.requireNonNull(iconImageAngle, "iconImageAngle");
+        this.iconPosition = Objects.requireNonNull(iconPosition, "iconPosition");
     }
 
@@ -59,6 +61,8 @@
         if (iconImage != null) {
             RotationAngle rotationAngle = NodeElement.createRotationAngle(env);
+            Keyword positionKeyword = c.get(AreaElement.ICON_POSITION, null, Keyword.class);
+            PositionForAreaStrategy position = PositionForAreaStrategy.forKeyword(positionKeyword, PartiallyInsideAreaStrategy.INSTANCE);
 
-            return new AreaIconElement(c, iconImage, rotationAngle);
+            return new AreaIconElement(c, iconImage, rotationAngle, position);
         } else {
             return null;
