Replace SuperTabNavigator (not compatible with Flex 4) with standard TabNavigator...
authorRichard Fairhurst <richard@systemeD.net>
Fri, 2 Sep 2011 17:37:15 +0000 (18:37 +0100)
committerRichard Fairhurst <richard@systemeD.net>
Fri, 2 Sep 2011 17:37:15 +0000 (18:37 +0100)
Add ImageBank singleton to manage images. In due course we'll move Flex images in here too.

27 files changed:
embedded/tab_address.png [new file with mode: 0644]
embedded/tab_basic.png [new file with mode: 0644]
embedded/tab_cycle.png [new file with mode: 0644]
embedded/tab_details.png [new file with mode: 0644]
embedded/tab_restrictions.png [new file with mode: 0644]
embedded/tab_transport.png [new file with mode: 0644]
embedded/tab_walk.png [new file with mode: 0644]
lib/zip.swc [new file with mode: 0644]
net/systemeD/halcyon/ImageBank.as [new file with mode: 0755]
net/systemeD/halcyon/MarkerUI.as
net/systemeD/halcyon/NodeUI.as
net/systemeD/halcyon/WayBitmapFiller.as [deleted file]
net/systemeD/halcyon/WayUI.as
net/systemeD/halcyon/styleparser/RuleSet.as
net/systemeD/halcyon/styleparser/StyleChooser.as
net/systemeD/potlatch2/TagViewer.mxml
net/systemeD/potlatch2/Toolbox.mxml
resources/map_features.xml
resources/map_features/amenities.xml
resources/map_features/barriers.xml
resources/map_features/buildings.xml
resources/map_features/landuse.xml
resources/map_features/paths.xml
resources/map_features/power.xml
resources/map_features/shopping.xml
resources/map_features/transport.xml
resources/stylesheets/core_interactive.css

diff --git a/embedded/tab_address.png b/embedded/tab_address.png
new file mode 100644 (file)
index 0000000..b968f75
Binary files /dev/null and b/embedded/tab_address.png differ
diff --git a/embedded/tab_basic.png b/embedded/tab_basic.png
new file mode 100644 (file)
index 0000000..850b630
Binary files /dev/null and b/embedded/tab_basic.png differ
diff --git a/embedded/tab_cycle.png b/embedded/tab_cycle.png
new file mode 100644 (file)
index 0000000..67229f5
Binary files /dev/null and b/embedded/tab_cycle.png differ
diff --git a/embedded/tab_details.png b/embedded/tab_details.png
new file mode 100644 (file)
index 0000000..07812e5
Binary files /dev/null and b/embedded/tab_details.png differ
diff --git a/embedded/tab_restrictions.png b/embedded/tab_restrictions.png
new file mode 100644 (file)
index 0000000..424bbf7
Binary files /dev/null and b/embedded/tab_restrictions.png differ
diff --git a/embedded/tab_transport.png b/embedded/tab_transport.png
new file mode 100644 (file)
index 0000000..5cb7d91
Binary files /dev/null and b/embedded/tab_transport.png differ
diff --git a/embedded/tab_walk.png b/embedded/tab_walk.png
new file mode 100644 (file)
index 0000000..2663c93
Binary files /dev/null and b/embedded/tab_walk.png differ
diff --git a/lib/zip.swc b/lib/zip.swc
new file mode 100644 (file)
index 0000000..2a6eeac
Binary files /dev/null and b/lib/zip.swc differ
diff --git a/net/systemeD/halcyon/ImageBank.as b/net/systemeD/halcyon/ImageBank.as
new file mode 100755 (executable)
index 0000000..ce5caec
--- /dev/null
@@ -0,0 +1,143 @@
+package net.systemeD.halcyon {
+    import flash.events.*;
+       import flash.display.*;
+       import flash.net.*;
+       import flash.utils.ByteArray;
+       import nochump.util.zip.*;
+
+       /*
+               ImageBank stores and retrieves bitmap images.
+               All images are internally stored as Loader.
+
+               See blog.yoz.sk/2009/10/bitmap-bitmapdata-bytearray/ for a really useful conversion guide!
+       */
+
+    public class ImageBank extends EventDispatcher{
+               private var images:Object={};
+               private var imagesRequested:uint=0;
+               private var imagesReceived:uint=0;
+               
+               public static const IMAGES_LOADED:String="imagesLoaded";
+               
+               private static const GLOBAL_INSTANCE:ImageBank = new ImageBank();
+               public static function getInstance():ImageBank { return GLOBAL_INSTANCE; }
+
+               public function hasImage(name:String):Boolean {
+                       if (images[name]) return true;
+                       return false;
+               }
+
+               /* ==========================================================================================
+                  Populate with images 
+                  ========================================================================================== */
+
+               public function loadImage(filename:String):void {
+                       if (images[filename]) return;
+                       imagesRequested++;
+
+                       var loader:Loader=new Loader();
+                       images[filename]=loader;
+                       var request:URLRequest=new URLRequest(filename);
+                       loader.contentLoaderInfo.addEventListener(Event.COMPLETE,                                               loadedImage);
+                       loader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS,                  httpStatusHandler);
+                       loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,    securityErrorHandler);
+                       loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,                                ioErrorHandler);
+                       loader.load(request);
+               }
+
+               private function loadedImage(event:Event):void {
+                       imageReceived();
+               }
+               private function httpStatusHandler(event:HTTPStatusEvent):void { }
+               private function securityErrorHandler(event:SecurityErrorEvent):void { 
+                       trace("securityErrorEvent: "+event.target.url);
+                       imageReceived();
+               }
+               private function ioErrorHandler(event:IOErrorEvent):void { 
+                       trace("ioErrorEvent: "+event.target.url); 
+                       imageReceived();
+               }
+               private function imageReceived():void {
+                       imagesReceived++;
+                       if (imagesReceived==imagesRequested) { dispatchEvent(new Event(IMAGES_LOADED)); }
+               }
+
+               /* ==========================================================================================
+                  Load from .zip file
+                  ========================================================================================== */
+               
+               public function loadFromZip(filename:String, prefix:String=""):void {
+                       var urlstream:URLStream = new URLStream();
+                       urlstream.addEventListener(Event.COMPLETE, function(e:Event):void { zipReady(e,prefix); } );
+                       urlstream.load(new URLRequest(filename));
+               }
+               private function zipReady(event:Event, prefix:String):void {
+                       var zip:ZipFile = new ZipFile(URLStream(event.target));
+                       for (var i:uint=0; i<zip.entries.length; i++) {
+                               var fileref:ZipEntry = zip.entries[i];
+                               var data:ByteArray = zip.getInput(fileref);
+                               var loader:Loader=new Loader();
+                               images[prefix+fileref.name]=loader;
+                               loader.loadBytes(data);
+                       }
+               }
+
+
+               /* ==========================================================================================
+                  Get images 
+                  getAsDisplayObject(filename)
+                  getAsBitmapData(filename)
+                  getAsByteArray(filename)
+                  ========================================================================================== */
+
+               public function getAsDisplayObject(name:String):DisplayObject {
+                       /* If the image hasn't loaded yet, then add an EventListener for when it does. */
+                       if (getWidth(name)==0) {
+                               var loader:Loader = new Loader();
+                               images[name].contentLoaderInfo.addEventListener(Event.COMPLETE,
+                                       function(e:Event):void { loaderReady(e, loader) });
+                               return loader;
+                       }
+                       /* Otherwise, create a new Bitmap, because just returning the raw Loader
+                          (i.e. images[name]) would only allow it to be added to one parent. (The other 
+                          way to do this would be by copying the bytes as loaderReady does.). */
+                       return new Bitmap(getAsBitmapData(name));
+               }
+               
+               public function getOriginalDisplayObject(name:String):DisplayObject {
+                       /* But if we're going to clone it later, this'll work fine. */
+                       return images[name];
+               }
+
+               private function loaderReady(event:Event, loader:Loader):void {
+                       /* The file has loaded, so we can copy the data from there into our new Loader */
+                       var info:LoaderInfo = event.target as LoaderInfo;
+                       loader.loadBytes(info.bytes);
+               }
+
+               public function getAsBitmapData(name:String):BitmapData {
+                       var bitmapData:BitmapData=new BitmapData(getWidth(name), getHeight(name), true, 0xFFFFFF);
+                       bitmapData.draw(images[name]);
+                       return bitmapData;
+               }
+               
+               public function getAsByteArray(name:String):ByteArray {
+                       return images[name].contentLoaderInfo.bytes;
+               }
+
+               /* ==========================================================================================
+                  Get file information
+                  ========================================================================================== */
+
+               public function getWidth(name:String):int { 
+                       try { return images[name].contentLoaderInfo.width; }
+                       catch (error:Error) { } return 0;
+               }
+
+               public function getHeight(name:String):int { 
+                       try { return images[name].contentLoaderInfo.height; }
+                       catch (error:Error) { } return 0;
+               }
+
+       }
+}
\ No newline at end of file
index 536a208..14801bc 100644 (file)
@@ -10,6 +10,7 @@ package net.systemeD.halcyon {
     import flash.geom.Point;
     import net.systemeD.halcyon.styleparser.*;
     import net.systemeD.halcyon.connection.*;
+    import net.systemeD.halcyon.ImageBank;
 
     public class MarkerUI extends EntityUI {
 
@@ -84,32 +85,28 @@ package net.systemeD.halcyon {
                     r=true;
                     if (s.rotation) { rotation=s.rotation; }
                     if (s.icon_image!=iconnames[subpart]) {
+                                               icon=new Sprite();
+                                               iconnames[subpart]=s.icon_image;
+                                               addToLayer(icon,STROKESPRITE,s.sublayer);
                         if (s.icon_image=='square') {
                             // draw square
-                            icon=new Sprite();
-                            addToLayer(icon,STROKESPRITE,s.sublayer);
                             w=styleIcon(icon,subpart);
                             icon.graphics.drawRect(0,0,w,w);
                             if (s.interactive) { maxwidth=Math.max(w,maxwidth); }
-                            iconnames[subpart]='_square';
 
                         } else if (s.icon_image=='circle') {
                             // draw circle
-                            icon=new Sprite();
-                            addToLayer(icon,STROKESPRITE,s.sublayer);
                             w=styleIcon(icon,subpart);
                             icon.graphics.drawCircle(w,w,w);
                             if (s.interactive) { maxwidth=Math.max(w,maxwidth); }
-                            iconnames[subpart]='_circle';
-
-                        } else if (paint.ruleset.images[s.icon_image]) {
-                            // 'load' icon (actually just from library)
-                            var loader:ExtendedLoader = new ExtendedLoader();
-                            loader.info['sublayer']=s.sublayer;
-                            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedIcon, false, 0, true);
-                            loader.loadBytes(paint.ruleset.images[s.icon_image]);
-                            iconnames[subpart]=s.icon_image;
-                        }
+
+                                               } else if (ImageBank.getInstance().hasImage(s.icon_image)) {
+                                                       // load icon from library
+                                                       icon.addChild(ImageBank.getInstance().getAsDisplayObject(s.icon_image));
+//                                                     addHitSprite(icon.width);                       // ** check this - we're doing it below too
+//                                                     loaded=true; updatePosition();          // ** check this
+                                                       if (s.interactive) { maxwidth=Math.max(icon.width,maxwidth); }
+                                               }
                     }
                 }
 
@@ -163,16 +160,6 @@ package net.systemeD.halcyon {
             setListenSprite();
         }
 
-        private function loadedIcon(event:Event):void {
-            var icon:Sprite=new Sprite();
-            var sublayer:Number=event.target.loader.info['sublayer'];
-            addToLayer(icon,STROKESPRITE,sublayer);
-            icon.addChild(Bitmap(event.target.content));
-            addHitSprite(icon.width);
-            loaded=true;
-            updatePosition();
-        }
-
         private function updatePosition():void {
             if (!loaded) { return; }
 
index cf58a14..8b280a1 100644 (file)
@@ -10,6 +10,7 @@ package net.systemeD.halcyon {
        import flash.geom.Point;
        import net.systemeD.halcyon.styleparser.*;
     import net.systemeD.halcyon.connection.*;
+    import net.systemeD.halcyon.ImageBank;
        
        /** The graphical representation of a Node (including POIs and nodes that are part of Ways). */
        public class NodeUI extends EntityUI {
@@ -104,30 +105,28 @@ package net.systemeD.halcyon {
                                        r=true;
                                        if (s.rotation) { rotation=s.rotation; }
                                        if (s.icon_image!=iconnames[subpart]) {
+                                               icon=new Sprite();
+                                               addToLayer(icon,STROKESPRITE,s.sublayer);
                                                if (s.icon_image=='square') {
                                                        // draw square
-                                                       icon=new Sprite();
-                                                       addToLayer(icon,STROKESPRITE,s.sublayer);
                                                        w=styleIcon(icon,subpart);
                                                        icon.graphics.drawRect(0,0,w,w);
                                                        if (s.interactive) { maxwidth=Math.max(w,maxwidth); }
-                                                       iconnames[subpart]='_square';
+                                                       iconnames[subpart]="_square";
 
                                                } else if (s.icon_image=='circle') {
                                                        // draw circle
-                                                       icon=new Sprite();
-                                                       addToLayer(icon,STROKESPRITE,s.sublayer);
                                                        w=styleIcon(icon,subpart);
                                                        icon.graphics.drawCircle(w,w,w);
                                                        if (s.interactive) { maxwidth=Math.max(w,maxwidth); }
-                                                       iconnames[subpart]='_circle';
-
-                                               } else if (paint.ruleset.images[s.icon_image]) {
-                                                       // 'load' icon (actually just from library)
-                                                       var loader:ExtendedLoader = new ExtendedLoader();
-                                                       loader.info['sublayer']=s.sublayer;
-                                                       loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedIcon, false, 0, true);
-                                                       loader.loadBytes(paint.ruleset.images[s.icon_image]);
+                                                       iconnames[subpart]="_circle";
+
+                                               } else if (ImageBank.getInstance().hasImage(s.icon_image)) {
+                                                       // load icon from library
+                                                       icon.addChild(ImageBank.getInstance().getAsDisplayObject(s.icon_image));
+//                                                     addHitSprite(icon.width);                       // ** check this - we're doing it below too
+                                                       loaded=true; updatePosition();          // ** check this
+                                                       if (s.interactive) { maxwidth=Math.max(icon.width,maxwidth); }
                                                        iconnames[subpart]=s.icon_image;
                                                }
                                        }
@@ -183,16 +182,6 @@ package net.systemeD.halcyon {
                        setListenSprite();
                }
 
-               private function loadedIcon(event:Event):void {
-                       var icon:Sprite=new Sprite();
-                       var sublayer:Number=event.target.loader.info['sublayer'];
-                       addToLayer(icon,STROKESPRITE,sublayer);
-                       icon.addChild(Bitmap(event.target.content));
-                       addHitSprite(icon.width);
-                       loaded=true;
-                       updatePosition();
-               }
-
                private function updatePosition(xDelta:Number=0,yDelta:Number=0):void {
                        if (!loaded) { return; }
 
diff --git a/net/systemeD/halcyon/WayBitmapFiller.as b/net/systemeD/halcyon/WayBitmapFiller.as
deleted file mode 100644 (file)
index 6140d37..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-package net.systemeD.halcyon {
-
-       import net.systemeD.halcyon.styleparser.*;
-    import net.systemeD.halcyon.connection.*;
-       import flash.display.*;
-       import flash.events.*;
-
-       public class WayBitmapFiller {
-               private var wayui:WayUI;
-               private var style:ShapeStyle;
-               private var graphics:Graphics;
-               private var loader:Loader = new Loader();
-
-               public function WayBitmapFiller(wayui:WayUI,graphics:Graphics,style:ShapeStyle) {
-                       this.wayui=wayui;
-                       this.graphics=graphics;
-                       this.style=style;
-                       
-                       if (wayui.paint.ruleset.images[style.fill_image]) {
-                               loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedFill);
-                               loader.loadBytes(wayui.paint.ruleset.images[style.fill_image]);
-                       }
-               }
-               
-               private function loadedFill(event:Event):void {
-                       var image:BitmapData = new BitmapData(loader.width, loader.height, false);
-                       image.draw(loader);
-                       graphics.beginBitmapFill(image);
-                       wayui.solidLines(graphics,[]);
-                       graphics.endFill();
-               }
-       }
-}
\ No newline at end of file
index 787385f..f278972 100644 (file)
@@ -9,6 +9,7 @@ package net.systemeD.halcyon {
        
        import net.systemeD.halcyon.connection.*;
        import net.systemeD.halcyon.styleparser.*;
+    import net.systemeD.halcyon.ImageBank;
 
        /** The graphical representation of a Way. */ 
        public class WayUI extends EntityUI {
@@ -293,8 +294,11 @@ package net.systemeD.halcyon {
                                        if ((!isNaN(s.fill_color) || s.fill_image) && entity.findParentRelationsOfType('multipolygon','inner').length==0 && isNaN(drawExcept)) {
                                                fill=new Shape(); addToLayer(fill,FILLSPRITE,s.sublayer);
                                                fill.graphics.moveTo(x0,y0);
-                                               if (s.fill_image) { new WayBitmapFiller(this,fill.graphics,s); }
-                                                                        else { s.applyFill(fill.graphics); }
+                                               if (s.fill_image) {
+                                                       fill.graphics.beginBitmapFill(ImageBank.getInstance().getAsBitmapData(s.fill_image));
+                                               } else {
+                                                       s.applyFill(fill.graphics);
+                                               }
                                                solidLines(fill.graphics,inners);
                                                fill.graphics.endFill();
                                                drawn=true;
index 1c9f6be..de8d3dd 100644 (file)
@@ -6,6 +6,7 @@ package net.systemeD.halcyon.styleparser {
        import net.systemeD.halcyon.ExtendedURLLoader;
        import net.systemeD.halcyon.DebugURLRequest;
     import net.systemeD.halcyon.connection.Entity;
+    import net.systemeD.halcyon.ImageBank;
 
     import net.systemeD.halcyon.connection.*;
        
@@ -18,12 +19,7 @@ package net.systemeD.halcyon.styleparser {
 
        public class RuleSet {
 
-               /** Is the RuleSet fully loaded and available for use? */
-               public var loaded:Boolean=false; 
-               /** Hash of loaded images. Hash key is filename, value is BitmapData for the image. */
-               public var images:Object=new Object();
-               /** Hash of image widths. Hash key is filename, value is pixel width. */
-               public var imageWidths:Object=new Object();     
+               public var loaded:Boolean=false;                        // is the RuleSet fully loaded and available for use?
                private var redrawCallback:Function=null;       // function to call when CSS loaded
                private var iconCallback:Function=null;         // function to call when all icons loaded
                private var iconsToLoad:uint=0;                         // number of icons left to load (fire iconCallback when ==0)
@@ -244,7 +240,7 @@ package net.systemeD.halcyon.styleparser {
                public function getStyles(obj:Entity, tags:Object, zoom:uint):StyleList {
                        var sl:StyleList=new StyleList();
                        for each (var sc:StyleChooser in choosers) {
-                               sc.updateStyles(obj,tags,sl,imageWidths,zoom);
+                               sc.updateStyles(obj,tags,sl,zoom);
                        }
                        return sl;
                }
@@ -277,10 +273,10 @@ package net.systemeD.halcyon.styleparser {
 
 
                /// ------------------------------------------------------------------------------------------------
-               /** Load all images referenced in the RuleSet (for example, icons or bitmap fills).
-                       FIXME: if an image is referenced twice, it'll be requested twice. */
+               /** Load all images referenced in the RuleSet (for example, icons or bitmap fills). */
                
                private function loadImages():void {
+                       ImageBank.getInstance().addEventListener(ImageBank.IMAGES_LOADED,doIconCallback);
                        var filename:String;
                        for each (var chooser:StyleChooser in choosers) {
                                for each (var style:Style in chooser.styles) {
@@ -288,59 +284,17 @@ package net.systemeD.halcyon.styleparser {
                                        else if (style is ShapeStyle  && ShapeStyle(style).fill_image   ) { filename=ShapeStyle(style).fill_image; }
                                        else if (style is ShieldStyle && ShieldStyle(style).shield_image) { filename=ShieldStyle(style).shield_image; }
                                        else { continue; }
-                                       if (filename=='square' || filename=='circle') { continue; }
-                       
-                                       iconsToLoad++;
-                                       var request:DebugURLRequest=new DebugURLRequest(filename);
-                                       var loader:ExtendedURLLoader=new ExtendedURLLoader();
-                                       loader.dataFormat=URLLoaderDataFormat.BINARY;
-                                       loader.info['filename']=filename;
-                                       loader.addEventListener(Event.COMPLETE,                                         loadedImage,                            false, 0, true);
-                                       loader.addEventListener(HTTPStatusEvent.HTTP_STATUS,            httpStatusHandler,                      false, 0, true);
-                                       loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,      onImageLoadSecurityError,       false, 0, true);
-                                       loader.addEventListener(IOErrorEvent.IO_ERROR,                          onImageLoadioError,                     false, 0, true);
-                                       loader.load(request.request);
+
+                                       if (filename!='square' && filename!='circle')
+                                               ImageBank.getInstance().loadImage(filename);
                                }
                        }
                }
-
-               private function loadedImage(event:Event):void {
-                       var fn:String=event.target.info['filename'];
-                       images[fn]=event.target.data; if (images[fn].length==0) return;
-
-                       var loader:ExtendedLoader = new ExtendedLoader();
-                       loader.info['filename']=fn;
-                       loader.contentLoaderInfo.addEventListener(Event.COMPLETE, measureWidth);
-                       loader.loadBytes(images[fn]);
-               }
                
-               private function measureWidth(event:Event):void {
-                       var fn:String=event.target.loader.info['filename'];
-                       imageWidths[fn]=event.target.width;
-                       // ** do we need to explicitly remove the loader object now?
-
-                       oneLessImageToLoad();
+               private function doIconCallback(e:Event):void {
+                       iconCallback();
                }
-
-        private function oneLessImageToLoad():void {
-            iconsToLoad--;
-            if (iconsToLoad<=0 && iconCallback!=null) { iconCallback(); }
-        }
-
-        private function onImageLoadioError ( event:IOErrorEvent ):void {
-            trace("ioerrorevent: "+event.target.info['filename']);
-            oneLessImageToLoad();
-        }
-
-        private function onImageLoadSecurityError ( event:SecurityErrorEvent ):void {
-            trace("securityerrorevent: "+event.target.info['filename']);
-            oneLessImageToLoad();
-        }
-
-               private function httpStatusHandler( event:HTTPStatusEvent ):void { }
-               private function securityErrorHandler( event:SecurityErrorEvent ):void { trace("securityerrorevent"); }
-               private function ioErrorHandler( event:IOErrorEvent ):void { trace("ioerrorevent"); }
-
+               
                // ------------------------------------------------------------------------------------------------
                // Parse CSS
 
index c2d2980..fdefa23 100644 (file)
@@ -1,6 +1,7 @@
 package net.systemeD.halcyon.styleparser {
 
        import net.systemeD.halcyon.connection.Entity;
+    import net.systemeD.halcyon.ImageBank;
 
        public class StyleChooser {
 
@@ -41,7 +42,7 @@ package net.systemeD.halcyon.styleparser {
                
                // Update the current StyleList from this StyleChooser
 
-               public function updateStyles(obj:Entity, tags:Object, sl:StyleList, imageWidths:Object, zoom:uint):void {
+               public function updateStyles(obj:Entity, tags:Object, sl:StyleList, zoom:uint):void {
                        if (zoomSpecific) { sl.validAt=zoom; }
 
                        // Are any of the ruleChains fulfilled?
@@ -64,9 +65,10 @@ package net.systemeD.halcyon.styleparser {
                                                        a=sl.pointStyles;
                                                        w=0;
                                                        if (PointStyle(r).icon_width && !PointStyle(r).evals['icon_width']) {
+                                                               // ** FIXME: we should check this is the bit being used for 'square', 'circle' etc.
                                                                w=PointStyle(r).icon_width;
-                                                       } else if (PointStyle(r).icon_image && imageWidths[PointStyle(r).icon_image]) {
-                                                               w=imageWidths[PointStyle(r).icon_image];
+                                                       } else if (PointStyle(r).icon_image && ImageBank.getInstance().hasImage(PointStyle(r).icon_image)) {
+                                                               w=ImageBank.getInstance().getWidth(PointStyle(r).icon_image);
                                                        }
                                                        if (w>sl.maxwidth) { sl.maxwidth=w; }
                                                } else if (r is InstructionStyle) {
index 3e5c691..d0c9142 100644 (file)
                        disabledIcon="@Embed('../../../embedded/view_accordion_disabled.png')"
                        click="setEditorStackUI(false)" id="accordionLabel" paddingTop="6"
                        toolTip="Show in sliding windows"
-                       enabled="{editorStack is SuperTabNavigator &amp;&amp; stack.selectedIndex==0}" />
+                       enabled="{editorStack is TabNavigator &amp;&amp; stack.selectedIndex==0}" />
          </mx:HBox>
   </mx:VBox>
 
       import mx.managers.DragManager;
       import mx.core.DragSource;
       import mx.controls.TabBar;
-      import flexlib.containers.SuperTabNavigator;
+//    import flexlib.containers.SuperTabNavigator;
+
+      [Bindable] [Embed(source="../../../embedded/tab_basic.png"       )] private var tabIconBasic:Class;
+      [Bindable] [Embed(source="../../../embedded/tab_address.png"     )] private var tabIconAddress:Class;
+      [Bindable] [Embed(source="../../../embedded/tab_cycle.png"       )] private var tabIconCycle:Class;
+      [Bindable] [Embed(source="../../../embedded/tab_details.png"     )] private var tabIconDetails:Class;
+      [Bindable] [Embed(source="../../../embedded/tab_restrictions.png")] private var tabIconRestrictions:Class;
+      [Bindable] [Embed(source="../../../embedded/tab_transport.png"   )] private var tabIconTransport:Class;
+      [Bindable] [Embed(source="../../../embedded/tab_walk.png"        )] private var tabIconWalk:Class;
+      private var tabIcons:Object= { Basic:tabIconBasic, Details:tabIconDetails, Address:tabIconAddress, Walk:tabIconWalk, Cycle:tabIconCycle, 
+                                        Transport:tabIconTransport, Restrictions:tabIconRestrictions};
 
       [Bindable]
       public var dndPrompt:String="Add new points by dragging them onto the map";
 
-      private var editorStackTabNavigator:SuperTabNavigator;
+      private var editorStackTabNavigator:TabNavigator;
       private var editorStackAccordion:Accordion;
       [Bindable] private var editorStack:Container;
 
 
           var editorBox:VBox = createEditorBox();
           editorBox.label = "Basic";
+          editorBox.icon=tabIconBasic;
           editorStack.addChild(editorBox);
 
           var tabs:Object = {};
           tabComponents = {};
 
+          // ** FIXME: we should do this so that the tabs are always in the same order
           for each (var factory:EditorFactory in feature.editors) {
               if ( factory.presence.isEditorPresent(factory, selectedEntity, null) ) {
                   var editor:DisplayObject = factory.createEditorInstance(selectedEntity);
                      if ( tab == null) {
                          tab = createEditorBox();
                          tab.label = category;
+                         if (tabIcons[category]) tab.icon=tabIcons[category];
                          editorStack.addChild(tab);
                          tabs[category] = tab;
                          tabComponents[tab] = [];
       }
 
        private function initEditorStackUIs():void {
-               editorStackTabNavigator = new SuperTabNavigator();
-               editorStackTabNavigator.allowTabSqueezing=false;
-               editorStackTabNavigator.minTabWidth=10;
-               editorStackTabNavigator.closePolicy="close_never";
-               editorStackTabNavigator.scrollSpeed=20;
+               editorStackTabNavigator = new TabNavigator();
+//             editorStackTabNavigator.allowTabSqueezing=false;
+//             editorStackTabNavigator.minTabWidth=10;
+//             editorStackTabNavigator.closePolicy="close_never";
+//             editorStackTabNavigator.scrollSpeed=20;
                editorStackTabNavigator.creationPolicy="auto";
                editorStackTabNavigator.percentWidth=100;
                editorStackTabNavigator.percentHeight=100;
                editorStackTabNavigator.styleName="dndStackTab";
-               editorStackTabNavigator.popUpButtonPolicy="off"
+//             editorStackTabNavigator.popUpButtonPolicy="off"
 
 
                editorStackAccordion = new Accordion();
                editorStackAccordion.percentHeight=100;
                editorStackAccordion.creationPolicy="auto";
                editorStackAccordion.styleName="dndStackAccordion";
+               /* FIXME: the accordion icons should be right-aligned. See:
+               http://www.kristoferjoseph.com/blog/2008/11/06/positioning-the-flex-accordion-header-icon
+               http://blog.flexexamples.com/2007/09/13/changing-text-alignment-in-an-flex-accordion-header/
+               */
 
                setEditorStackUI(true);
        }
        }
 
        private function editorStackUIUpdate(event:Event):void {
-               if (editorStack is SuperTabNavigator) {
-                       var e:SuperTabNavigator = editorStack as SuperTabNavigator;
+               if (editorStack is TabNavigator) {
+                       var e:TabNavigator = editorStack as TabNavigator;
                        if (e.selectedIndex<0) { return; }
                        for (var i:uint=0; i<e.numChildren; i++) {
                                e.getTabAt(i).selected=(i==e.selectedIndex);
index 39e7e38..61b5672 100644 (file)
@@ -30,7 +30,7 @@
             <mx:ViewStack id="rotateButtonStack" creationPolicy="all">
                 <mx:HBox id="arrowBoxWrapper"><!-- changing the viewstack back onto a rotated hbox causes positioning glitches, hence this wrapper -->
                     <!-- I can totally recommend adding borderStyle="solid" to arrowBox when debugging -->
-                    <mx:HBox id="arrowBox" horizontalAlign="center" verticalAlign="middle" width="24" height="24">
+                    <mx:HBox id="arrowBox" horizontalAlign="center" verticalAlign="middle" width="24" height="24" borderStyle="solid" >
                         <mx:Image id="arrow" source="@Embed('../../../embedded/arrow.svg')"
                             alpha="{getAlpha('reverseDirection')}"
                             width="22" height="22"/>
index 93d7209..edda04d 100644 (file)
@@ -87,11 +87,11 @@ Quick documentation:
 
 
   <inputSet id="source">
-    <input type="freetext" category="Misc" presence="onTagMatch" name="Source" key="source" description="The primary source of information for this object (GPS, survey, Yahoo, ...)" priority="lowest"/>
+    <input type="freetext" category="Details" presence="onTagMatch" name="Source" key="source" description="The primary source of information for this object (GPS, survey, Yahoo, ...)" priority="lowest"/>
   </inputSet>
 
   <inputSet id="designation">
-    <input type="freetext" category="Misc" presence="onTagMatch" description="Official designation or classification" name="Designation" key="designation"/>
+    <input type="freetext" category="Details" presence="onTagMatch" description="Official designation or classification" name="Designation" key="designation"/>
   </inputSet>
 
   <inputSet id="common">
@@ -101,21 +101,21 @@ Quick documentation:
 
   <inputSet id="names">
     <input type="freetext" presence="always"
-        name="Name" category="Naming" priority="highest"
+        name="Name" category="Details" priority="highest"
         key="name" description="The most common name"/>
     <input type="freetext" presence="onTagMatch"
-        name="International Name" category="Naming"
+        name="International Name" category="Details"
         key="int_name" description="The internationally recognised name"/>
     <input type="freetext" presence="onTagMatch"
-        name="Historical Name" category="Naming" priority="low"
+        name="Historical Name" category="Details" priority="low"
         key="old_name" description="The historic or previous name"/>
     <input type="freetext" presence="onTagMatch"
-        name="Alternative Name" category="Naming" priority="low"
+        name="Alternative Name" category="Details" priority="low"
         key="alt_name" description="An alternative, currently used, name"/>
   </inputSet>
 
   <inputSet id="wifi">
-    <input type="choice" presence="onTagMatch" category="Eating" name="Wifi" key="wifi">
+    <input type="choice" presence="onTagMatch" category="Details" name="Wifi" key="wifi">
       <choice value="free" text="Free"/>
       <choice value="yes" text="Yes"/>
       <choice value="no" text="No"/>
@@ -130,11 +130,11 @@ Quick documentation:
   </inputSet>
 
   <inputSet id="web">
-    <input type="freetext" presence="onTagMatch" category="Web" description="The URL of the website" name="Website" key="website"/>
+    <input type="freetext" presence="onTagMatch" category="Address" description="The URL of the website" name="Website" key="website"/>
   </inputSet>
 
   <inputSet id="cuisine">
-    <input type="choice" presence="always" name="Cuisine" category="Eating" description="The type of food that they serve" key="cuisine">
+    <input type="choice" presence="always" name="Cuisine" category="Details" description="The type of food that they serve" key="cuisine">
       <!-- The 30 most popular values according to taginfo 23/12/2010 -->
       <choice value="burger" text="Burger"/>
       <choice value="chicken" text="Chicken"/>
@@ -216,22 +216,22 @@ Quick documentation:
 
   <inputSet id="roadRefs">
     <input type="freetext" presence="always"
-        name="Reference" category="Naming" priority="high"
+        name="Reference" category="Details" priority="high"
         key="ref" description="The official reference number"/>
     <input type="freetext" presence="onTagMatch"
-        name="International Reference" category="Naming"
+        name="International Reference" category="Details"
         key="int_ref" description="The official international reference number"/>
     <input type="freetext" presence="onTagMatch"
-        name="Old Reference" category="Naming" priority="low"
+        name="Old Reference" category="Details" priority="low"
         key="old_ref" description="The historic or previous reference number"/>
   </inputSet>
 
   <inputSet id="roadPhysical">
     <input type="freetext" presence="onTagMatch"
-        name="Width" category="Physical"
+        name="Width" category="Details"
         key="width" description="Width of the road" layout="horizontal"/>
     <input type="choice" presence="onTagMatch"
-        name="Surface" category="Physical" description="Type of road surface"
+        name="Surface" category="Details" description="Type of road surface"
         key="surface" layout="horizontal">
       <choice value="unpaved" text="Unpaved" description="Road surface is unsealed"/>
       <choice value="paved" text="Paved" description="Road surface is sealed"/>
@@ -252,27 +252,27 @@ Quick documentation:
   </inputSet>
 
   <inputSet id="roadLanes">
-    <input presence="onTagMatch" type="number" name="Lanes" category="Physical" description="Total number of lanes, counting both directions"
+    <input presence="onTagMatch" type="number" name="Lanes" category="Details" description="Total number of lanes, counting both directions"
            key="lanes" minimum="1" maximum="10" layout="horizontal"/>
   </inputSet>
 
   <inputSet id="bridge">
     <input type="choice" presence="onTagMatch"
-        name="Bridge" category="Physical" description="Road goes over a bridge"
+        name="Bridge" category="Details" description="Road goes over a bridge"
         key="bridge" layout="horizontal">
       <choice value="yes" text="Generic Bridge" description="Generic bridge -- type unknown"/>
       <choice value="viaduct" text="Viaduct" description="Viaduct"/>
       <choice value="suspension" text="Suspension bridge"/>
     </input>
     <input type="slider" presence="onTagMatch"
-        name="Layer" category="Physical" description="Relative vertical positions (-5 lowest, +5 highest)"
+        name="Layer" category="Details" description="Relative vertical positions (-5 lowest, +5 highest)"
         key="layer" minimum="-5" maximum="5" default="0" snapInterval="1" labels="Lowest,Ground,Highest"
         defaultName="Ground"/>
   </inputSet>
   <inputSet id="tunnel">
     <!-- Not ideal, used for non-roads too. -->  
     <input type="choice" presence="onTagMatch"
-        name="Tunnel" category="Physical" description="Road goes into a tunnel"
+        name="Tunnel" category="Details" description="Road goes into a tunnel"
         key="tunnel" layout="horizontal">
       <choice value="yes" text="Tunnel" description="Generic tunnel"/>
     </input>
@@ -280,12 +280,12 @@ Quick documentation:
 
   <inputSet id="embankment-cutting">
     <input type="choice"
-           name="Embankment" category="Physical" description="Road supported on a raised bed of earth and rock."
+           name="Embankment" category="Details" description="Road supported on a raised bed of earth and rock."
            key="embankment" layout="horizontal">
       <choice value="yes" text="Embankment"/>
     </input>
     <input type="choice"
-           name="Cutting" category="Physical" description="Road carved out of hill on one or both sides."
+           name="Cutting" category="Details" description="Road carved out of hill on one or both sides."
            key="cutting" layout="horizontal">
       <choice value="yes" text="Cutting"/>
     </input>
@@ -293,12 +293,12 @@ Quick documentation:
   </inputSet>
 
   <inputSet id="rail-electrification">
-    <input type="choice" name="Electrified" category="Electrification" description="Is the track electrified (whether by 3rd rail, overhead wires, etc)?"
+    <input type="choice" name="Electrified" category="Details" description="Is the track electrified (whether by 3rd rail, overhead wires, etc)?"
            key="electrified">
       <choice value="yes" text="Yes"/>
       <choice value="no" text="No"/>
     </input>
-    <input type="choice" name="Voltage" category="Electrification" description="Nominal voltage of electric wires"
+    <input type="choice" name="Voltage" category="Details" description="Nominal voltage of electric wires"
            key="voltage" presence="withCategory">
       <choice value="600" text="600V"/>
       <choice value="750" text="750V"/>
@@ -307,7 +307,7 @@ Quick documentation:
       <choice value="15000" text="15kV"/>
       <choice value="25000" text="25kV"/>
     </input>
-    <input type="choice" name="Frequency" category="Electrification" description="Frequency in Hertz of alternating current power supply"
+    <input type="choice" name="Frequency" category="Details" description="Frequency in Hertz of alternating current power supply"
            key="frequency" presence="withCategory">
       <choice value="0" text="DC"/>
       <choice value="16.67" text="16.67 Hz"/>
@@ -364,7 +364,7 @@ Quick documentation:
   </inputSet>
 
   <inputSet id="pedestrians">
-    <input type="choice" name="Pedestrians" description="Can pedestrians use this road, including footpaths if any?" category="Walking" key="foot">
+    <input type="choice" name="Pedestrians" description="Can pedestrians use this road, including footpaths if any?" category="Walk" key="foot">
       <choice value="yes" text="Allowed"/>
       <choice value="no" text="Prohibited"/>
       <choice value="designated" text="Designated"/>
@@ -372,8 +372,8 @@ Quick documentation:
   </inputSet>
 
   <inputSet id="naptan">
-    <input type="freetext" presence="onTagMatch" category="Naptan" description="12 character internal Naptan ID" name="Atco Code" key="naptan:AtcoCode"/>
-    <input type="choice" presence="onTagMatch" category="Naptan" description="The eight-point compass bearning" name="Naptan Bearing" key="naptan:Bearing" >
+    <input type="freetext" presence="onTagMatch" category="Transport" description="12 character internal Naptan ID" name="Atco Code" key="naptan:AtcoCode"/>
+    <input type="choice" presence="onTagMatch" category="Transport" description="The eight-point compass bearning" name="Naptan Bearing" key="naptan:Bearing" >
       <choice value="N"  match="N"  text="N"  description=""/>
       <choice value="NE" match="NE" text="NE" description=""/>
       <choice value="E"  match="E"  text="E"  description=""/>
@@ -383,15 +383,15 @@ Quick documentation:
       <choice value="W"  match="W"  text="W"  description=""/>
       <choice value="NW" match="NW" text="NW" description=""/>
     </input>
-    <input type="freetext" presence="onTagMatch" category="Naptan" description="The naptan common name" name="Naptan Common Name (read-only)" key="naptan:CommonName"/>
-    <input type="freetext" presence="onTagMatch" category="Naptan" description="" name="Naptan Indicator (read-only)" key="naptan:Indicator"/>
-    <input type="freetext" presence="onTagMatch" category="Naptan" description="" name="Naptan Street (read-only)" key="naptan:Street"/>
-    <input type="freetext" presence="onTagMatch" category="Naptan" description="Delete this when the details have been verified on-the-ground" name="Naptan Verified?" key="naptan:verified"/>
+    <input type="freetext" presence="onTagMatch" category="Transport" description="The naptan common name" name="Naptan Common Name (read-only)" key="naptan:CommonName"/>
+    <input type="freetext" presence="onTagMatch" category="Transport" description="" name="Naptan Indicator (read-only)" key="naptan:Indicator"/>
+    <input type="freetext" presence="onTagMatch" category="Transport" description="" name="Naptan Street (read-only)" key="naptan:Street"/>
+    <input type="freetext" presence="onTagMatch" category="Transport" description="Delete this when the details have been verified on-the-ground" name="Naptan Verified?" key="naptan:verified"/>
   </inputSet>
 
   <inputSet id="buses">
-    <input type="freetext" presence="always" category="Bus Stop" name="Stop Name" key="name" description="The name of the bus stop"/>
-    <input type="freetext" presence="always" category="Bus Stop" name="Local Ref" key="local_ref" description="The local reference of the stop, usually one or two letters above the main flag, used at bus interchanges, e.g. L, BX"/>
+    <input type="freetext" presence="always" category="Transport" name="Stop Name" key="name" description="The name of the bus stop"/>
+    <input type="freetext" presence="always" category="Transport" name="Local Ref" key="local_ref" description="The local reference of the stop, usually one or two letters above the main flag, used at bus interchanges, e.g. L, BX"/>
     <inputSet ref="naptan"/>
   </inputSet>
 
@@ -474,7 +474,7 @@ Quick documentation:
   </inputSet>
 
   <inputSet id="ldp">
-    <input type="route" name="National Walking Route" description="National walking route" category="Walking" priority="normal">
+    <input type="route" name="National Walking Route" description="National walking route" category="Walk" priority="normal">
       <match k="type" v="route"/>
       <match k="route" v="hiking|foot"/>
       <match k="network" v="nwn"/>
@@ -483,7 +483,7 @@ Quick documentation:
         <font size="12pt">${name}</font>
       </icon>
     </input>
-    <input type="route" name="Regional Walking Route" description="Regional walking route" category="Walking" priority="low">
+    <input type="route" name="Regional Walking Route" description="Regional walking route" category="Walk" priority="low">
       <match k="type" v="route"/>
       <match k="route" v="hiking|foot"/>
       <match k="network" v="rwn"/>
@@ -492,7 +492,7 @@ Quick documentation:
         <font size="12pt">${name}</font>
       </icon>
     </input>
-    <input type="route" name="Local Walking Route" description="Local walking route" category="Walking" priority="lowest">
+    <input type="route" name="Local Walking Route" description="Local walking route" category="Walk" priority="lowest">
       <match k="type" v="route"/>
       <match k="route" v="hiking|foot"/>
       <match k="network" v="lwn"/>
@@ -516,7 +516,7 @@ Quick documentation:
 <!-- Would be good to have a dedicated 'access' type of input -->
   <!-- all the description fields are identical at the moment for ease of maintenance, should be tailored in future. -->
   <inputSet id="boatPermissions">
-    <input type="choice" name="Boat permission" category="Permission" key="boat" description="Are boats allowed to use this waterway?">
+    <input type="choice" name="Boat permission" category="Restrictions" key="boat" description="Are boats allowed to use this waterway?">
       <choice value="yes" text="Allowed" description="General right of way."/>
       <choice value="no" text="Prohibited" description="No access to the public."/>
       <choice value="permissive" text="Permissive" description="Access permitted through private land."/>
@@ -526,7 +526,7 @@ Quick documentation:
   </inputSet>
 
   <inputSet id="permissions">
-    <input type="choice" name="General access" category="Permission" key="access" description="Is there a general right of access, regardless of mode of transport?">
+    <input type="choice" name="General access" category="Restrictions" key="access" description="Is there a general right of access, regardless of mode of transport?">
       <choice value="yes" text="Allowed" description="General right of way."/>
       <choice value="no" text="Prohibited" description="No access to the public."/>
       <choice value="permissive" text="Permissive" description="Access permitted through private land."/>
@@ -534,7 +534,7 @@ Quick documentation:
       <choice value="designated" text="Designated" description="Permitted, according to signs or specific local laws."/>
     </input>
 
-    <input type="choice" name="Motor vehicles" category="Permission" key="motor_vehicle" description="Are cars and other private vehicles allowed?">
+    <input type="choice" name="Motor vehicles" category="Restrictions" key="motor_vehicle" description="Are cars and other private vehicles allowed?">
       <choice value="yes" text="Allowed" description="General right of way."/>
       <choice value="no" text="Prohibited" description="No access to the public."/>
       <choice value="permissive" text="Permissive" description="Access permitted through private land."/>
@@ -542,7 +542,7 @@ Quick documentation:
       <choice value="designated" text="Designated" description="Permitted, according to signs or specific local laws."/>
     </input>
 
-    <input type="choice" name="Horses" category="Permission" key="horse" description="Are cars and other private vehicles allowed?">
+    <input type="choice" name="Horses" category="Restrictions" key="horse" description="Are cars and other private vehicles allowed?">
       <choice value="yes" text="Allowed" description="General right of way."/>
       <choice value="no" text="Prohibited" description="No access to the public."/>
       <choice value="permissive" text="Permissive" description="Access permitted through private land."/>
@@ -571,11 +571,11 @@ Quick documentation:
   </inputSet>
 
   <inputSet id="isBuilding">
-    <input type="checkbox" presence="onTagMatch" category="Misc" description="Does this thing also represent one, solid building?" name="Building" key="building"/>
+    <input type="checkbox" presence="onTagMatch" category="Details" description="Does this thing also represent one, solid building?" name="Building" key="building"/>
   </inputSet>
 
   <inputSet id="powerCables">
-    <input type="choice" name="Cables" key="cables" presence="always" category="Power">
+    <input type="choice" name="Cables" key="cables" presence="always" category="Details">
       <choice value="2" text="2"/>
       <choice value="3" text="3"/>
       <choice value="4" text="4"/>
@@ -584,7 +584,7 @@ Quick documentation:
       <choice value="10" text="10"/>
       <choice value="12" text="12"/>
     </input>
-    <input type="choice" name="Voltage" key="voltage" presence="always" category="Power">
+    <input type="choice" name="Voltage" key="voltage" presence="always" category="Details">
       <!-- choices based on http://osmdoc.com/en/tag/voltage/#values-->
       <choice value="400" text="400 V"/>
       <choice value="600" text="600 V"/>
index 1ca1ddd..bb54074 100644 (file)
-<featureGroup>\r
-  <!-- =========== Amenity ============ -->\r
-\r
-  <feature name="Fire station">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/amenity_firestation2.n.24.png"/>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dfire_station</help>\r
-    <point/>\r
-    <tag k="amenity" v="fire_station"/>\r
-    <inputSet ref="simpleName" />\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Police Station">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/amenity_police2.n.24.png"/>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dpolice</help>\r
-    <point/>\r
-    <area/>\r
-    <tag k="amenity" v="police"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Library">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/amenity_library.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dlibrary</help>\r
-    <point/>\r
-    <area/>\r
-    <tag k="amenity" v="library"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Hospital">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/health_hospital.n.24.png"/>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dhospital</help>\r
-    <point/>\r
-    <area/>\r
-    <tag k="amenity" v="hospital"/>\r
-    <inputSet ref="simpleName"/>\r
-    <input type="choice" presence="always" category="Hospital" name="Emergency treatment available" key="emergency" description="Are there accident and emergency facilities at this hospital?">\r
-      <choice value="yes" text="Yes"/>\r
-      <choice value="no" text="No"/>\r
-    </input>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Place of Worship">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/place_of_worship_unknown.n.24.png"/>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dplace_of_worship</help>\r
-    <point/>\r
-    <tag k="amenity" v="place_of_worship"/>\r
-    <inputSet ref="simpleName" />\r
-    <input type="choice" presence="always" category="" name="Religion" key="religion" description="The religion worshipped here.">\r
-      <choice value="christian" text="Christianity (church)"/>\r
-      <choice value="jewish" text="Judaism (synagogue)"/>\r
-      <choice value="muslim" text="Islam (mosque)"/>\r
-      <choice value="hindu" text="Hinduism (temple)"/>\r
-      <choice value="buddhist" text="Buddhism (temple)"/>\r
-      <choice value="sikh" text="Sikhism (gurdwara)"/>\r
-      <choice value="shinto" text="Shinto (shrine)"/>\r
-    </input>\r
-\r
-    <input type="freetext" presence="always" category="" name="denomination" key="denomination" description="The denomination of the religion worshiped here." priority="low"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="ATM">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/money_atm.n.24.png"/>\r
-    <help>http://wiki.openstreetmap.org/wiki/Atm</help>\r
-    <point/>\r
-    <tag k="amenity" v="atm"/>\r
-    <input type="freetext" presence="always" category="Banking" name="Operator" key="operator" description="The organisation that provides this ATM" priority="low"/>\r
-    <input type="freetext" presence="always" category="Banking" name="Fee" key="fee" description="Is there a charge for using this ATM? If so how much?"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Bank">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/money_bank2.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dbank</help>\r
-    <point/>\r
-    <tag k="amenity" v="bank"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <input type="choice" presence="always" category="Bank" name="Public ATM available" key="atm" description="Is there a public ATM available?">\r
-      <choice value="yes" text="Yes"/>\r
-      <choice value="no" text="No"/>\r
-    </input>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Recycling">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/amenity_recycling.n.24.png"/>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Drecycling</help>\r
-    <point/>\r
-    <tag k="amenity" v="recycling"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="School">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/education_school.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dschool</help>\r
-    <point/>\r
-    <tag k="amenity" v="school"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Kindergarten">\r
-    <category>amenity</category>\r
-    <category>buildings</category>\r
-    <icon image="features/pois/education_nursery3.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dkindergarten</help>\r
-    <point/>\r
-    <tag k="amenity" v="kindergarten"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Town hall">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/amenity_town_hall.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dtownhall</help>\r
-    <point/>\r
-    <tag k="amenity" v="townhall"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Post Box">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/amenity_post_box.n.24.png">\r
-      ${ref}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Post_box</help>\r
-    <point/>\r
-    <tag k="amenity" v="post_box"/>\r
-    <input type="freetext" presence="always" category="Naming" name="Ref" key="ref" description="Reference number of the post box"/>\r
-    <input type="freetext" presence="always" category="Naming" name="Operator" key="operator" description="The provider of the postal service" priority="low"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Post Office">\r
-    <category>amenity</category>\r
-    <category>buildings</category>\r
-    <icon image="features/pois/amenity_post_office.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity=post_office</help>\r
-    <point/>\r
-    <area/>\r
-    <tag k="amenity" v="post_office"/>\r
-    <input type="freetext" presence="always" category="Naming" name="Ref" key="ref" description="Reference number of the post office"/>\r
-    <input type="freetext" presence="always" category="Naming" name="Operator" key="operator" description="The provider of the postal service" priority="low"/>\r
-    <inputSet ref="common"/>\r
-    <inputset ref="simpleName"/>\r
-  </feature>\r
-\r
-  <feature name="Trash/rubbish bin">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/amenity_waste_bin.n.24.png">\r
-      ${ref}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity=waste_basket</help>\r
-    <point/>\r
-    <tag k="amenity" v="waste_basket"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Toilets">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/amenity_toilets.n.24.png">\r
-      ${ref}\r
-    </icon>\r
-    <point/>\r
-    <tag k="amenity" v="toilets"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Water fountain">\r
-    <category>amenity</category>\r
-    <category>foodanddrink</category>\r
-    <icon image="features/pois/food_drinkingtap.n.24.png">\r
-      ${ref}\r
-    </icon>\r
-    <point/>\r
-    <tag k="amenity" v="drinking_water"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Shelter">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/accommodation_shelter2.n.24.png">\r
-      ${name}\r
-    </icon>    \r
-    <point/>\r
-    <area/>\r
-    <tag k="amenity" v="shelter"/>\r
-    <inputset ref="names"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Barbecue">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/tourist_picnic.n.24.png"/>\r
-    <!-- specific icon needed -->\r
-    <point/>\r
-    <tag k="amenity" v="bbq"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Hunting stand">\r
-    <category>sport</category>\r
-    <icon image="features/pois/sport_shooting.n.24.png"/>\r
-    <point/>\r
-    <tag k="amenity" v="hunting_stand"/>\r
-    <inputSet ref="common"/>\r
-    <inputSet ref="names"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Park bench">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/amenity_bench.n.24.png" />\r
-    <point/>\r
-    <tag k="amenity" v="bench"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Public telephone">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/amenity_telephone.n.24.png" />\r
-    <point/>\r
-    <tag k="amenity" v="telephone"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Emergency phone">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/emergency-telephone-24.png" />\r
-    <!-- icon from http://www.clker.com/clipart-emergency-telephone-blue.html, feel free to (re)move this notice -->\r
-    <point/>\r
-    <tag k="amenity" v="emergency_phone"/>\r
-    <inputSet ref="common"/>\r
-    <input type="freetext" presence="always" category="Naming" name="Ref" key="ref" description="Reference number of emergency phone."/>    \r
-  </feature>\r
-\r
-\r
-  <feature name="Swimming pool">\r
-    <category>amenity</category>\r
-    <category>sport</category>\r
-    <icon image="features/pois/sport_swimming_outdoor.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <point/>\r
-    <area/>\r
-    <tag k="amenity" v="swimming_pool"/>\r
-    <inputSet ref="simpleName"/>    \r
-    <inputSet ref="common"/>\r
-\r
-  </feature>\r
-\r
-  <feature name="Fountain">\r
-    <category>amenity</category>\r
-    <icon image="features/pois/amenity_fountain2.n.24.png">\r
-    ${name}\r
-    </icon>\r
-    <point/>\r
-    <tag k="amenity" v="fountain"/>\r
-    <inputSet ref="common"/>\r
-    <inputSet ref="simpleName"/>\r
-  </feature>\r
-\r
-  <feature name="Vending machine">\r
-    <category>amenity</category>\r
-    <category>foodanddrink</category>\r
-    <icon image="features/pois/shopping_vending_machine.n.24.png">A vending machine.</icon>\r
-\r
-    <point/>\r
-    <tag k="amenity" v="vending_machine"/>\r
-    <inputSet ref="common"/>\r
-    <inputSet ref="simpleName"/>\r
-    <input type="freetext" presence="always" name="Product" key="vending" description="What is being sold: tickets, food, maps..."/>\r
-    <input type="operator" presence="always" name="Operator" key="operator" description="Which company provides the service" />\r
-  </feature>\r
-\r
-  <!-- ========= Entertainment ========= -->\r
-\r
-  <feature name="Pub">\r
-    <category>foodanddrink</category>\r
-    <icon image="features/pois/food_pub.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dpub</help>\r
-    <point/>\r
-    <tag k="amenity" v="pub"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="wifi"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Bar">\r
-    <category>foodanddrink</category>\r
-    <icon image="features/pois/food_bar.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <point/>\r
-    <tag k="amenity" v="bar"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="wifi"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Restaurant">\r
-    <category>foodanddrink</category>\r
-    <icon image="features/pois/food_restaurant.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <point/>\r
-    <tag k="amenity" v="restaurant"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="cuisine"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Cafe">\r
-    <category>foodanddrink</category>\r
-    <icon image="features/pois/food_cafe.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dcafe</help>\r
-    <point/>\r
-    <tag k="amenity" v="cafe"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="cuisine"/>\r
-    <inputSet ref="wifi"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Fast Food">\r
-    <category>foodanddrink</category>\r
-    <icon image="features/pois/food_fastfood.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dfast_food</help>\r
-    <point/>\r
-    <tag k="amenity" v="fast_food"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="cuisine"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
+<featureGroup>
+  <!-- =========== Amenity ============ -->
+
+  <feature name="Fire station">
+    <category>amenity</category>
+    <icon image="features/pois/amenity_firestation2.n.24.png"/>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dfire_station</help>
+    <point/>
+    <tag k="amenity" v="fire_station"/>
+    <inputSet ref="simpleName" />
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Police Station">
+    <category>amenity</category>
+    <icon image="features/pois/amenity_police2.n.24.png"/>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dpolice</help>
+    <point/>
+    <area/>
+    <tag k="amenity" v="police"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Library">
+    <category>amenity</category>
+    <icon image="features/pois/amenity_library.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dlibrary</help>
+    <point/>
+    <area/>
+    <tag k="amenity" v="library"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Hospital">
+    <category>amenity</category>
+    <icon image="features/pois/health_hospital.n.24.png"/>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dhospital</help>
+    <point/>
+    <area/>
+    <tag k="amenity" v="hospital"/>
+    <inputSet ref="simpleName"/>
+    <input type="choice" presence="always" category="Details" name="Emergency treatment available" key="emergency" description="Are there accident and emergency facilities at this hospital?">
+      <choice value="yes" text="Yes"/>
+      <choice value="no" text="No"/>
+    </input>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Place of Worship">
+    <category>amenity</category>
+    <icon image="features/pois/place_of_worship_unknown.n.24.png"/>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dplace_of_worship</help>
+    <point/>
+    <tag k="amenity" v="place_of_worship"/>
+    <inputSet ref="simpleName" />
+    <input type="choice" presence="always" category="Details" name="Religion" key="religion" description="The religion worshipped here.">
+      <choice value="christian" text="Christianity (church)"/>
+      <choice value="jewish" text="Judaism (synagogue)"/>
+      <choice value="muslim" text="Islam (mosque)"/>
+      <choice value="hindu" text="Hinduism (temple)"/>
+      <choice value="buddhist" text="Buddhism (temple)"/>
+      <choice value="sikh" text="Sikhism (gurdwara)"/>
+      <choice value="shinto" text="Shinto (shrine)"/>
+    </input>
+
+    <input type="freetext" presence="always" category="Details" name="denomination" key="denomination" description="The denomination of the religion worshiped here." priority="low"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="ATM">
+    <category>amenity</category>
+    <icon image="features/pois/money_atm.n.24.png"/>
+    <help>http://wiki.openstreetmap.org/wiki/Atm</help>
+    <point/>
+    <tag k="amenity" v="atm"/>
+    <input type="freetext" presence="always" category="Details" name="Operator" key="operator" description="The organisation that provides this ATM" priority="low"/>
+    <input type="freetext" presence="always" category="Details" name="Fee" key="fee" description="Is there a charge for using this ATM? If so how much?"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Bank">
+    <category>amenity</category>
+    <icon image="features/pois/money_bank2.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dbank</help>
+    <point/>
+    <tag k="amenity" v="bank"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <input type="choice" presence="always" category="Details" name="Public ATM available" key="atm" description="Is there a public ATM available?">
+      <choice value="yes" text="Yes"/>
+      <choice value="no" text="No"/>
+    </input>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Recycling">
+    <category>amenity</category>
+    <icon image="features/pois/amenity_recycling.n.24.png"/>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Drecycling</help>
+    <point/>
+    <tag k="amenity" v="recycling"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="School">
+    <category>amenity</category>
+    <icon image="features/pois/education_school.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dschool</help>
+    <point/>
+    <tag k="amenity" v="school"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Kindergarten">
+    <category>amenity</category>
+    <category>buildings</category>
+    <icon image="features/pois/education_nursery3.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dkindergarten</help>
+    <point/>
+    <tag k="amenity" v="kindergarten"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Town hall">
+    <category>amenity</category>
+    <icon image="features/pois/amenity_town_hall.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dtownhall</help>
+    <point/>
+    <tag k="amenity" v="townhall"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Post Box">
+    <category>amenity</category>
+    <icon image="features/pois/amenity_post_box.n.24.png">
+      ${ref}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Post_box</help>
+    <point/>
+    <tag k="amenity" v="post_box"/>
+    <input type="freetext" presence="always" category="Details" name="Ref" key="ref" description="Reference number of the post box"/>
+    <input type="freetext" presence="always" category="Details" name="Operator" key="operator" description="The provider of the postal service" priority="low"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Post Office">
+    <category>amenity</category>
+    <category>buildings</category>
+    <icon image="features/pois/amenity_post_office.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity=post_office</help>
+    <point/>
+    <area/>
+    <tag k="amenity" v="post_office"/>
+    <input type="freetext" presence="always" category="Details" name="Ref" key="ref" description="Reference number of the post office"/>
+    <input type="freetext" presence="always" category="Details" name="Operator" key="operator" description="The provider of the postal service" priority="low"/>
+    <inputSet ref="common"/>
+    <inputset ref="simpleName"/>
+  </feature>
+
+  <feature name="Trash/rubbish bin">
+    <category>amenity</category>
+    <icon image="features/pois/amenity_waste_bin.n.24.png">
+      ${ref}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity=waste_basket</help>
+    <point/>
+    <tag k="amenity" v="waste_basket"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Toilets">
+    <category>amenity</category>
+    <icon image="features/pois/amenity_toilets.n.24.png">
+      ${ref}
+    </icon>
+    <point/>
+    <tag k="amenity" v="toilets"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Water fountain">
+    <category>amenity</category>
+    <category>foodanddrink</category>
+    <icon image="features/pois/food_drinkingtap.n.24.png">
+      ${ref}
+    </icon>
+    <point/>
+    <tag k="amenity" v="drinking_water"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Shelter">
+    <category>amenity</category>
+    <icon image="features/pois/accommodation_shelter2.n.24.png">
+      ${name}
+    </icon>    
+    <point/>
+    <area/>
+    <tag k="amenity" v="shelter"/>
+    <inputset ref="names"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Barbecue">
+    <category>amenity</category>
+    <icon image="features/pois/tourist_picnic.n.24.png"/>
+    <!-- specific icon needed -->
+    <point/>
+    <tag k="amenity" v="bbq"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Hunting stand">
+    <category>sport</category>
+    <icon image="features/pois/sport_shooting.n.24.png"/>
+    <point/>
+    <tag k="amenity" v="hunting_stand"/>
+    <inputSet ref="common"/>
+    <inputSet ref="names"/>
+  </feature>
+
+
+  <feature name="Park bench">
+    <category>amenity</category>
+    <icon image="features/pois/amenity_bench.n.24.png" />
+    <point/>
+    <tag k="amenity" v="bench"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Public telephone">
+    <category>amenity</category>
+    <icon image="features/pois/amenity_telephone.n.24.png" />
+    <point/>
+    <tag k="amenity" v="telephone"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Emergency phone">
+    <category>amenity</category>
+    <icon image="features/pois/emergency-telephone-24.png" />
+    <!-- icon from http://www.clker.com/clipart-emergency-telephone-blue.html, feel free to (re)move this notice -->
+    <point/>
+    <tag k="amenity" v="emergency_phone"/>
+    <inputSet ref="common"/>
+    <input type="freetext" presence="always" category="Details" name="Ref" key="ref" description="Reference number of emergency phone."/>    
+  </feature>
+
+
+  <feature name="Swimming pool">
+    <category>amenity</category>
+    <category>sport</category>
+    <icon image="features/pois/sport_swimming_outdoor.n.24.png">
+      ${name}
+    </icon>
+    <point/>
+    <area/>
+    <tag k="amenity" v="swimming_pool"/>
+    <inputSet ref="simpleName"/>    
+    <inputSet ref="common"/>
+
+  </feature>
+
+  <feature name="Fountain">
+    <category>amenity</category>
+    <icon image="features/pois/amenity_fountain2.n.24.png">
+    ${name}
+    </icon>
+    <point/>
+    <tag k="amenity" v="fountain"/>
+    <inputSet ref="common"/>
+    <inputSet ref="simpleName"/>
+  </feature>
+
+  <feature name="Vending machine">
+    <category>amenity</category>
+    <category>foodanddrink</category>
+    <icon image="features/pois/shopping_vending_machine.n.24.png">A vending machine.</icon>
+
+    <point/>
+    <tag k="amenity" v="vending_machine"/>
+    <inputSet ref="common"/>
+    <inputSet ref="simpleName"/>
+    <input type="freetext" presence="always" name="Product" key="vending" description="What is being sold: tickets, food, maps..."/>
+    <input type="operator" presence="always" name="Operator" key="operator" description="Which company provides the service" />
+  </feature>
+
+  <!-- ========= Entertainment ========= -->
+
+  <feature name="Pub">
+    <category>foodanddrink</category>
+    <icon image="features/pois/food_pub.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dpub</help>
+    <point/>
+    <tag k="amenity" v="pub"/>
+    <inputSet ref="names"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="wifi"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Bar">
+    <category>foodanddrink</category>
+    <icon image="features/pois/food_bar.n.24.png">
+      ${name}
+    </icon>
+    <point/>
+    <tag k="amenity" v="bar"/>
+    <inputSet ref="names"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="wifi"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Restaurant">
+    <category>foodanddrink</category>
+    <icon image="features/pois/food_restaurant.n.24.png">
+      ${name}
+    </icon>
+    <point/>
+    <tag k="amenity" v="restaurant"/>
+    <inputSet ref="names"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="cuisine"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Cafe">
+    <category>foodanddrink</category>
+    <icon image="features/pois/food_cafe.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dcafe</help>
+    <point/>
+    <tag k="amenity" v="cafe"/>
+    <inputSet ref="names"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="cuisine"/>
+    <inputSet ref="wifi"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Fast Food">
+    <category>foodanddrink</category>
+    <icon image="features/pois/food_fastfood.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:amenity%3Dfast_food</help>
+    <point/>
+    <tag k="amenity" v="fast_food"/>
+    <inputSet ref="names"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="cuisine"/>
+    <inputSet ref="common"/>
+  </feature>
+
 </featureGroup>
\ No newline at end of file
index fc3dbff..f7e956d 100644 (file)
-<featureGroup>\r
-  <feature name="Wall">\r
-    <category>barrier</category>\r
-    <icon image="features/barrier_generic.png"/>\r
-    <icon>\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dwall</help>\r
-\r
-    <line/>\r
-    <tag k="barrier" v="wall"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Ditch">\r
-    <category>barrier</category>\r
-    <icon image="features/barrier_generic.png"/>\r
-    <icon>\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dditch</help>\r
-\r
-    <line/>\r
-    <tag k="barrier" v="ditch"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Retaining wall">\r
-    <category>barrier</category>\r
-    <icon image="features/barrier_generic.png"/>\r
-    <icon>\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dretaining_wall</help>\r
-\r
-    <line/>\r
-    <tag k="barrier" v="retaining_wall"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="City wall">\r
-    <category>barrier</category>\r
-    <icon image="features/barrier_generic.png"/>\r
-    <icon>\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dcity_wall</help>\r
-\r
-    <line/>\r
-    <tag k="barrier" v="city_wall"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Fence">\r
-    <category>barrier</category>\r
-    <icon image="features/barrier_generic.png"/>\r
-    <icon>\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dfence</help>\r
-\r
-    <line/>\r
-    <tag k="barrier" v="fence"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Hedge">\r
-    <category>barrier</category>\r
-    <icon image="features/barrier_generic.png"/>\r
-    <icon>\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dhedge</help>\r
-\r
-    <line/>\r
-    <tag k="barrier" v="hedge"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Bollard">\r
-    <category>barrier</category>\r
-    <icon image="features/pois/barrier_bollard.n.24.png">\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dbollard</help>\r
-\r
-    <point/>\r
-    <tag k="barrier" v="bollard"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Gate">\r
-    <category>barrier</category>\r
-    <icon image="features/pois/barrier_gate.n.24.png">\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dgate</help>\r
-\r
-    <point/>\r
-    <tag k="barrier" v="gate"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Lift Gate">\r
-    <category>barrier</category>\r
-    <icon image="features/pois/barrier_lift_gate.n.24.png"/>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dlift_gate</help>\r
-    <point/>\r
-    <tag k="barrier" v="lift_gate"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Kissing Gate">\r
-    <category>barrier</category>\r
-    <icon image="features/pois/barrier_kissing_gate.24.png"/>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dkissing_gate</help>\r
-    <point/>\r
-    <tag k="barrier" v="kissing_gate"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-\r
-  <feature name="Cycle Barrier">\r
-    <category>barrier</category>\r
-    <icon image="features/pois/barrier_cycle_barrier.24.png">\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dcycle_barrier</help>\r
-\r
-    <point/>\r
-    <tag k="barrier" v="cycle_barrier"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Big Concrete Blocks">\r
-    <category>barrier</category>\r
-    <icon image="features/pois/barrier_blocks.24.png">\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dblock</help>\r
-\r
-    <point/>\r
-    <tag k="barrier" v="block"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Cattle Grid">\r
-    <category>barrier</category>\r
-    <icon image="features/pois/barrier_cattle_grid.24.png">\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dcattle_grid</help>\r
-\r
-    <point/>\r
-    <tag k="barrier" v="cattle_grid"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Toll Booth">\r
-    <category>barrier</category>\r
-    <icon image="features/pois/barrier_toll_booth.n.24.png">\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dtoll_booth</help>\r
-\r
-    <point/>\r
-    <tag k="barrier" v="toll_booth"/>\r
-    <tagSet ref="fee"/>\r
-    <input type="freetext" presence="onTagMatch" category="Naming" name="Operator" key="operator" description="The provider of the toll" priority="low"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Stile">\r
-    <category>barrier</category>\r
-    <icon image="features/pois/barrier_stile.n.24.png"/>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dstile</help>\r
-    <point/>\r
-    <tag k="barrier" v="stile"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Wire fence">\r
-    <!-- no idea, but taginfo says 2700 uses -->\r
-    <category>barrier</category>\r
-    <icon image="features/barrier_generic.png"/>\r
-   \r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dwire_fence</help>\r
-\r
-    <line/>\r
-    <tag k="barrier" v="wire_fence"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
+<featureGroup>
+  <feature name="Wall">
+    <category>barrier</category>
+    <icon image="features/barrier_generic.png"/>
+    <icon>
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dwall</help>
+
+    <line/>
+    <tag k="barrier" v="wall"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Ditch">
+    <category>barrier</category>
+    <icon image="features/barrier_generic.png"/>
+    <icon>
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dditch</help>
+
+    <line/>
+    <tag k="barrier" v="ditch"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Retaining wall">
+    <category>barrier</category>
+    <icon image="features/barrier_generic.png"/>
+    <icon>
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dretaining_wall</help>
+
+    <line/>
+    <tag k="barrier" v="retaining_wall"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="City wall">
+    <category>barrier</category>
+    <icon image="features/barrier_generic.png"/>
+    <icon>
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dcity_wall</help>
+
+    <line/>
+    <tag k="barrier" v="city_wall"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Fence">
+    <category>barrier</category>
+    <icon image="features/barrier_generic.png"/>
+    <icon>
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dfence</help>
+
+    <line/>
+    <tag k="barrier" v="fence"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Hedge">
+    <category>barrier</category>
+    <icon image="features/barrier_generic.png"/>
+    <icon>
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dhedge</help>
+
+    <line/>
+    <tag k="barrier" v="hedge"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Bollard">
+    <category>barrier</category>
+    <icon image="features/pois/barrier_bollard.n.24.png">
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dbollard</help>
+
+    <point/>
+    <tag k="barrier" v="bollard"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Gate">
+    <category>barrier</category>
+    <icon image="features/pois/barrier_gate.n.24.png">
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dgate</help>
+
+    <point/>
+    <tag k="barrier" v="gate"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Lift Gate">
+    <category>barrier</category>
+    <icon image="features/pois/barrier_lift_gate.n.24.png"/>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dlift_gate</help>
+    <point/>
+    <tag k="barrier" v="lift_gate"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Kissing Gate">
+    <category>barrier</category>
+    <icon image="features/pois/barrier_kissing_gate.24.png"/>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dkissing_gate</help>
+    <point/>
+    <tag k="barrier" v="kissing_gate"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+
+  <feature name="Cycle Barrier">
+    <category>barrier</category>
+    <icon image="features/pois/barrier_cycle_barrier.24.png">
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dcycle_barrier</help>
+
+    <point/>
+    <tag k="barrier" v="cycle_barrier"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Big Concrete Blocks">
+    <category>barrier</category>
+    <icon image="features/pois/barrier_blocks.24.png">
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dblock</help>
+
+    <point/>
+    <tag k="barrier" v="block"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Cattle Grid">
+    <category>barrier</category>
+    <icon image="features/pois/barrier_cattle_grid.24.png">
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dcattle_grid</help>
+
+    <point/>
+    <tag k="barrier" v="cattle_grid"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Toll Booth">
+    <category>barrier</category>
+    <icon image="features/pois/barrier_toll_booth.n.24.png">
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dtoll_booth</help>
+
+    <point/>
+    <tag k="barrier" v="toll_booth"/>
+    <tagSet ref="fee"/>
+    <input type="freetext" presence="onTagMatch" category="Details" name="Operator" key="operator" description="The provider of the toll" priority="low"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Stile">
+    <category>barrier</category>
+    <icon image="features/pois/barrier_stile.n.24.png"/>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dstile</help>
+    <point/>
+    <tag k="barrier" v="stile"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Wire fence">
+    <!-- no idea, but taginfo says 2700 uses -->
+    <category>barrier</category>
+    <icon image="features/barrier_generic.png"/>
+   
+    <help>http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dwire_fence</help>
+
+    <line/>
+    <tag k="barrier" v="wire_fence"/>
+    <inputSet ref="common"/>
+  </feature>
 </featureGroup>
\ No newline at end of file
index d05720c..28775a9 100644 (file)
-<featureGroup>\r
-  <feature name="School">\r
-    <category>buildings</category>\r
-    <icon image="features/pois/education_school.n.24.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
-    <area/>\r
-    <tag k="amenity" v="school"/>\r
-    <inputSet ref="isBuilding"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="College">\r
-    <category>buildings</category>\r
-    <icon image="features/pois/education_university.n.24.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
-    <area/>\r
-    <tag k="amenity" v="college"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="isBuilding"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="University">\r
-    <category>buildings</category>\r
-    <icon image="features/pois/education_university.n.24.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
-    <area/>\r
-    <tag k="amenity" v="university"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="isBuilding"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Supermarket">\r
-    <category>buildings</category>\r
-    <icon image="features/pois/shopping_supermarket.n.24.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
-    <area/>\r
-    <tag k="shop" v="supermarket"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="isBuilding"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Place of worship">\r
-    <category>buildings</category>\r
-    <icon image="icons/place_of_worship.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
-    <area/>\r
-    <tag k="amenity" v="place_of_worship"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <!-- sorted in reverse order of popularity in taginfo. -->\r
-    <input type="choice" category="Religion" name="Religion" key="religion" description="The religion to which this place of worship belongs." presence="always">\r
-      <choice value="christian" text="Christianity (church)"/>\r
-      <choice value="muslim" text="Islam (mosque)"/>\r
-      <choice value="buddhist" text="Buddhist (temple)"/>\r
-      <choice value="jewish" text="Judaism (synagogue)"/>\r
-      <choice value="hindu" text="Hindu (temple)"/>\r
-      <choice value="sikh" text="Sikh (gurdwara)"/>\r
-      <choice value="spiritualist" text="Spiritualism"/>\r
-      <choice value="unitarian" text="Unitarianism"/>\r
-      <choice value="taoist" text="Taoism"/>\r
-      <choice value="multifaith" text="Multi-faith"/>\r
-      <choice value="scientologist" text="Scientology"/>\r
-      <choice value="bahai" text="Bahai"/>\r
-    </input>\r
-    <!-- sorted in reverse order of popularity in taginfo. -->\r
-    <input type="choice" category="Religion" name="Denomination" key="denomination" description="The denomination, or sub-branch of the main religion." presence="always">\r
-      <choice value="catholic" text="Catholic"/>\r
-      <choice value="baptist" text="Baptist"/>\r
-      <choice value="methodist" text="Methodist"/>\r
-      <choice value="lutheran" text="Lutheran"/>\r
-      <choice value="protestant" text="Prostant"/>\r
-      <choice value="orthodox" text="Orthodox"/>\r
-      <choice value="presbyterian" text="Presbyterian"/>\r
-      <choice value="anglican" text="Anglican"/>\r
-      <choice value="roman_catholic" text="Roman Catholic"/>\r
-      <choice value="evangelical" text="Evangelical"/>\r
-      <choice value="pentecostal" text="Pentecostal"/>\r
-      <choice value="mormon" text="Mormon"/>\r
-      <choice value="sunni" text="Sunni"/>\r
-      <choice value="jehovahs_witness" text="Jehovah's Witness"/>\r
-      <!-- duplicate of Anglican? -->\r
-      <choice value="church_of_england" text="Church of England"/>\r
-      <choice value="greek_orthodox" text="Greek Orthodox"/>\r
-      <choice value="new_apostolic" text="New Apostolic"/>\r
-      <choice value="episcopal" text="Episcopal"/>\r
-      <choice value="russian_orthodox" text="Russian Orthodox"/>\r
-      <choice value="adventist" text="Adventist"/>\r
-      <choice value="seventh_day_adventist" text="Seventh Day Adventist"/>\r
-      <choice value="united_reformed" text="United Reformed"/>\r
-      <choice value="reformed" text="Reformed"/>\r
-      <choice value="iglesia_ni_cristo" text="Iglesia Ni Cristo"/>\r
-      <choice value="uniting" text="Uniting"/>\r
-      <choice value="salvation_army" text="Salvation Army"/>\r
-      <choice value="church_of_scotland" text="Church of Scotland"/>\r
-      <choice value="quaker" text="Quaker"/>\r
-      <choice value="scientist" text="Scientist"/>\r
-      <choice value="shia" text="Shia"/>\r
-      <choice value="congregational" text="Congregational"/>\r
-      <choice value="assembly_of_god" text="Assembly of God"/>\r
-      <choice value="united" text="United"/>\r
-      <choice value="mennonite" text="Mennonite"/>\r
-      <choice value="nazarene" text="Nazarene"/>\r
-      <!-- duplicate of Mormon? -->\r
-      <choice value="latter_day_saints" text="Latter Day Saints"/>\r
-      <choice value="dutch_reformed" text="Dutch Reformed"/>\r
-      <choice value="tibetan" text="Tibetan"/>\r
-      <choice value="shingon" text="Shingon"/>\r
-      <choice value="georgian_orthodox" text="Georgian Orthodox"/>\r
-      <choice value="unitarian" text="Unitarian"/>\r
-      <choice value="brethren" text="Brethren"/>\r
-      <choice value="armenian_apostolic" text="Armenian Apostolic"/>\r
-      <choice value="maronite" text="Maronite"/>\r
-    </input>\r
-    <inputSet ref="isBuilding"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Public building">\r
-    <category>buildings</category>\r
-    <icon image="features/pois/building_generic.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
-    <area/>\r
-    <tag k="amenity" v="public_building"/>\r
-    <tag k="building" v="yes"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Hospital">\r
-    <category>buildings</category>\r
-    <icon image="features/pois/health_hospital.n.24.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
-    <area/>\r
-    <tag k="amenity" v="hospital"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="isBuilding"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-\r
-  <feature name="Museum">\r
-    <category>buildings</category>\r
-    <icon image="features/pois/tourist_museum.n.24.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
-    <area/>\r
-    <tag k="tourism" v="museum"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="isBuilding"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Shopping centre">\r
-    <category>buildings</category>\r
-    <category>shopping</category>\r
-    <node/>\r
-    <area/>\r
-    <tag k="shop" v="mall"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="isBuilding"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Zoo">\r
-    <category>buildings</category>\r
-    <icon image="features/pois/tourist_zoo.n.24.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
-    <area/>\r
-    <tag k="tourism" v="zoo"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="isBuilding"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Stadium">\r
-    <category>buildings</category>\r
-    <icon image="features/pois/sport_stadium.n.24.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
-    <area/>\r
-    <tag k="leisure" v="stadium"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="isBuilding"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Building">\r
-    <category>buildings</category>\r
-    <icon image="features/pois/building_generic.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
+<featureGroup>
+  <feature name="School">
+    <category>buildings</category>
+    <icon image="features/pois/education_school.n.24.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
     <area/>
-    <point/>\r
-    <!-- This should catch all the "building=*" tags in use: yes, hut, house, residential, entrance, apartments, garage, industrial,  garages, service, manufacture, collapsed... \r
-         Is this possible? -->\r
-    <!-- <tag k="building" v="*"/> -->\r
-    <tag k="building" v="yes"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Sports centre">\r
-    <category>buildings</category>\r
-    <icon image="features/pois/sport_leisure_centre.n.24.png">\r
-      <b>${name} ${addr:housename}</b><br/>\r
-      ${addr:housenumber} ${addr:street} ${addr:postcode}\r
-    </icon>\r
-\r
-    <area/>\r
-    <point/>\r
-    <tag k="leisure" v="sports_centre"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="pitchSport"/>\r
-    <inputSet ref="isBuilding"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-</featureGroup>\r
+    <tag k="amenity" v="school"/>
+    <inputSet ref="isBuilding"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="College">
+    <category>buildings</category>
+    <icon image="features/pois/education_university.n.24.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
+    <area/>
+    <tag k="amenity" v="college"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="isBuilding"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="University">
+    <category>buildings</category>
+    <icon image="features/pois/education_university.n.24.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
+    <area/>
+    <tag k="amenity" v="university"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="isBuilding"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Supermarket">
+    <category>buildings</category>
+    <icon image="features/pois/shopping_supermarket.n.24.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
+    <area/>
+    <tag k="shop" v="supermarket"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="isBuilding"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Place of worship">
+    <category>buildings</category>
+    <icon image="icons/place_of_worship.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
+    <area/>
+    <tag k="amenity" v="place_of_worship"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <!-- sorted in reverse order of popularity in taginfo. -->
+    <input type="choice" category="Details" name="Religion" key="religion" description="The religion to which this place of worship belongs." presence="always">
+      <choice value="christian" text="Christianity (church)"/>
+      <choice value="muslim" text="Islam (mosque)"/>
+      <choice value="buddhist" text="Buddhist (temple)"/>
+      <choice value="jewish" text="Judaism (synagogue)"/>
+      <choice value="hindu" text="Hindu (temple)"/>
+      <choice value="sikh" text="Sikh (gurdwara)"/>
+      <choice value="spiritualist" text="Spiritualism"/>
+      <choice value="unitarian" text="Unitarianism"/>
+      <choice value="taoist" text="Taoism"/>
+      <choice value="multifaith" text="Multi-faith"/>
+      <choice value="scientologist" text="Scientology"/>
+      <choice value="bahai" text="Bahai"/>
+    </input>
+    <!-- sorted in reverse order of popularity in taginfo. -->
+    <input type="choice" category="Details" name="Denomination" key="denomination" description="The denomination, or sub-branch of the main religion." presence="always">
+      <choice value="catholic" text="Catholic"/>
+      <choice value="baptist" text="Baptist"/>
+      <choice value="methodist" text="Methodist"/>
+      <choice value="lutheran" text="Lutheran"/>
+      <choice value="protestant" text="Prostant"/>
+      <choice value="orthodox" text="Orthodox"/>
+      <choice value="presbyterian" text="Presbyterian"/>
+      <choice value="anglican" text="Anglican"/>
+      <choice value="roman_catholic" text="Roman Catholic"/>
+      <choice value="evangelical" text="Evangelical"/>
+      <choice value="pentecostal" text="Pentecostal"/>
+      <choice value="mormon" text="Mormon"/>
+      <choice value="sunni" text="Sunni"/>
+      <choice value="jehovahs_witness" text="Jehovah's Witness"/>
+      <!-- duplicate of Anglican? -->
+      <choice value="church_of_england" text="Church of England"/>
+      <choice value="greek_orthodox" text="Greek Orthodox"/>
+      <choice value="new_apostolic" text="New Apostolic"/>
+      <choice value="episcopal" text="Episcopal"/>
+      <choice value="russian_orthodox" text="Russian Orthodox"/>
+      <choice value="adventist" text="Adventist"/>
+      <choice value="seventh_day_adventist" text="Seventh Day Adventist"/>
+      <choice value="united_reformed" text="United Reformed"/>
+      <choice value="reformed" text="Reformed"/>
+      <choice value="iglesia_ni_cristo" text="Iglesia Ni Cristo"/>
+      <choice value="uniting" text="Uniting"/>
+      <choice value="salvation_army" text="Salvation Army"/>
+      <choice value="church_of_scotland" text="Church of Scotland"/>
+      <choice value="quaker" text="Quaker"/>
+      <choice value="scientist" text="Scientist"/>
+      <choice value="shia" text="Shia"/>
+      <choice value="congregational" text="Congregational"/>
+      <choice value="assembly_of_god" text="Assembly of God"/>
+      <choice value="united" text="United"/>
+      <choice value="mennonite" text="Mennonite"/>
+      <choice value="nazarene" text="Nazarene"/>
+      <!-- duplicate of Mormon? -->
+      <choice value="latter_day_saints" text="Latter Day Saints"/>
+      <choice value="dutch_reformed" text="Dutch Reformed"/>
+      <choice value="tibetan" text="Tibetan"/>
+      <choice value="shingon" text="Shingon"/>
+      <choice value="georgian_orthodox" text="Georgian Orthodox"/>
+      <choice value="unitarian" text="Unitarian"/>
+      <choice value="brethren" text="Brethren"/>
+      <choice value="armenian_apostolic" text="Armenian Apostolic"/>
+      <choice value="maronite" text="Maronite"/>
+    </input>
+    <inputSet ref="isBuilding"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Public building">
+    <category>buildings</category>
+    <icon image="features/pois/building_generic.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
+    <area/>
+    <tag k="amenity" v="public_building"/>
+    <tag k="building" v="yes"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Hospital">
+    <category>buildings</category>
+    <icon image="features/pois/health_hospital.n.24.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
+    <area/>
+    <tag k="amenity" v="hospital"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="isBuilding"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+
+  <feature name="Museum">
+    <category>buildings</category>
+    <icon image="features/pois/tourist_museum.n.24.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
+    <area/>
+    <tag k="tourism" v="museum"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="isBuilding"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Shopping centre">
+    <category>buildings</category>
+    <category>shopping</category>
+    <node/>
+    <area/>
+    <tag k="shop" v="mall"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="isBuilding"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Zoo">
+    <category>buildings</category>
+    <icon image="features/pois/tourist_zoo.n.24.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
+    <area/>
+    <tag k="tourism" v="zoo"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="isBuilding"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Stadium">
+    <category>buildings</category>
+    <icon image="features/pois/sport_stadium.n.24.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
+    <area/>
+    <tag k="leisure" v="stadium"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="isBuilding"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Building">
+    <category>buildings</category>
+    <icon image="features/pois/building_generic.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
+    <area/>
+    <point/>
+    <!-- This should catch all the "building=*" tags in use: yes, hut, house, residential, entrance, apartments, garage, industrial,  garages, service, manufacture, collapsed... 
+         Is this possible? -->
+    <!-- <tag k="building" v="*"/> -->
+    <tag k="building" v="yes"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Sports centre">
+    <category>buildings</category>
+    <icon image="features/pois/sport_leisure_centre.n.24.png">
+      <b>${name} ${addr:housename}</b><br/>
+      ${addr:housenumber} ${addr:street} ${addr:postcode}
+    </icon>
+
+    <area/>
+    <point/>
+    <tag k="leisure" v="sports_centre"/>
+    <inputSet ref="names"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="pitchSport"/>
+    <inputSet ref="isBuilding"/>
+    <inputSet ref="common"/>
+  </feature>
+</featureGroup>
   
\ No newline at end of file
index e297d2e..b3b6a9d 100644 (file)
-<!-- This is a bit of a dumping ground for real landuse=*, but also outdoor natural/leisure/agriculture type keys. -->\r
-<featureGroup>\r
-  <feature name="Industrial Area">\r
-    <category>landuse</category>\r
-    <area/>\r
-    <icon image="features/pois/building_generic.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="landuse" v="industrial"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Offices">\r
-    <category>landuse</category>\r
-    <area/>\r
-    <icon image="features/pois/building_generic.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="landuse" v="commercial"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Residential Area">\r
-    <category>landuse</category>\r
-    <area/>\r
-    <icon image="features/pois/building_generic.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="landuse" v="residential"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Retail Area">\r
-    <category>landuse</category>\r
-    <area/>\r
-    <icon image="features/pois/building_generic.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="landuse" v="retail"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Construction Site">\r
-    <category>landuse</category>\r
-    <area/>\r
-    <icon image="features/pois/building_generic.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="landuse" v="construction"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Marketplace">\r
-    <category>shopping</category>\r
-    <point />\r
-    <area/>\r
-    <icon image="features/pois/shopping_marketplace.n.24.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="amenity" v="marketplace"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Cemetery">\r
-    <category>landuse</category>\r
-    <point />\r
-    <area/>\r
-    <icon image="features/pois/place_of_worship_unknown3.n.24.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="landuse" v="cemetery"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Graveyard">\r
-    <category>landuse</category>\r
-    <point />\r
-    <area/>\r
-    <icon image="features/pois/place_of_worship_unknown3.n.24.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="amenity" v="grave_yard"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Quarry">\r
-    <category>landuse</category>\r
-    <icon image="features/pois/poi_mine.n.24.png"/>\r
-    <area/>\r
-    <tag k="landuse" v="quarry"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Military">\r
-    <category>landuse</category>\r
-    <icon image="features/pois/poi_military_bunker.n.24.png"/>\r
-    <area/>\r
-    <tag k="landuse" v="military"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Conservation">\r
-    <category>natural</category>\r
-    <icon image="icons/natural_blank.png"/>\r
-    <area/>\r
-    <tag k="landuse" v="conservation"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-\r
-\r
-\r
-  <feature name="Playground">\r
-    <category>sport</category>\r
-    <area/>\r
-    <point/>\r
-    <icon image="features/pois/amenity_playground.n.24.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="leisure" v="playground"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Golf course">\r
-    <category>sport</category>\r
-    <area/>\r
-    <icon  image="features/pois/sport_golf.n.24.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="leisure" v="golf_course"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Recreation ground">\r
-    <category>sport</category>    \r
-    <area/>\r
-    <icon image="features/pois/sport_leisure_centre.n.24.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="leisure" v="recreation_ground"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Sports pitch">\r
-    <category>sport</category>\r
-    <area/>\r
-    <icon image="features/pois/sport_leisure_centre.n.24.png">\r
-      <b>${name}</b>\r
-    </icon>\r
-    <tag k="leisure" v="pitch"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="pitchSport"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <inputSet id="pitchSport">\r
-    <input name="Sport" presence="always" category="Sport" key="sport" type="choice" description="The sport that is predominantly played here.">\r
-      <choice value="9pin" text="9 pin bowling"/>\r
-      <choice value="10pin" text="10 pin bowling"/>\r
-      <choice value="american_football" text="American football"/>\r
-      <choice value="archery" text="Archery"/>\r
-      <choice value="athletics" text="Athletics"/>\r
-      <choice value="australian_football" text="Australian Rules Football"/>\r
-      <choice value="baseball" text="Baseball"/>\r
-      <choice value="basketball" text="Basketball"/>\r
-      <choice value="beachvolleyball" text="Beach volleyball"/>\r
-      <choice value="boules" text="Boules/petanque/bocci"/>\r
-      <choice value="bowls" text="Lawn bowls"/>\r
-      <choice value="canadian_football" text="Canadian football"/>\r
-      <choice value="chess" text="Chess"/>\r
-      <choice value="cricket" text="Cricket"/>\r
-      <choice value="cricket_nets" text="Cricket nets"/>\r
-      <choice value="croquet" text="Croquet"/>\r
-      <choice value="equestrian" text="Equestrian"/>\r
-      <choice value="gaelic_football" text="Gaelic football"/>\r
-      <choice value="gymnastics" text="Gymnastics"/>\r
-      <choice value="team_handball" text="(Team) handball"/>\r
-      <choice value="hockey" text="(Field) hockey"/>\r
-      <choice value="korfball" text="Korball"/>\r
-      <choice value="pelota" text="Pelota"/>\r
-      <choice value="rugby_league" text="Rugby league"/>\r
-      <choice value="rugby_union" text="Rugby union"/>\r
-      <choice value="shooting" text="Shooting"/>\r
-      <choice value="skating" text="Ice skating"/>\r
-      <choice value="skateboard" text="Skateboarding"/>\r
-      <choice value="soccer" text="Soccer/football"/>\r
-      <choice value="swimming" text="Swimming"/>\r
-      <choice value="table_tennis" text="Table tennis"/>\r
-      <choice value="tennis" text="Tennis"/>\r
-      <choice value="volleyball" text="Volleyball"/>\r
-    </input>\r
-  </inputSet>\r
-\r
-  <feature name="Sports track">\r
-    <category>sport</category>\r
-    <area/>\r
-    <line/>\r
-    <icon image="features/pois/sport_leisure_centre.n.24.png">\r
-      <b>${name}</b>\r
-      <font size="10pt">A purpose built track for running, cycling, greyhound racing, horse racing.</font>\r
-    </icon>\r
-    <tag k="leisure" v="track"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="roadPhysical"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <!-- **************** Agriculture *************** -->\r
-  <feature name="Farm">\r
-    <category>agriculture</category>\r
-    <icon image="features/pois/landuse_grass.n.24.png"/>\r
-    <area/>\r
-    <tag k="landuse" v="farm"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Farmyard">\r
-    <category>agriculture</category>\r
-    <icon image="features/pois/landuse_grass.n.24.png"/>\r
-    <area/>\r
-    <tag k="landuse" v="farmyard"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Farmland">\r
-    <category>agriculture</category>\r
-    <icon image="features/pois/landuse_grass.n.24.png"/>\r
-    <area/>\r
-    <tag k="landuse" v="farmland"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Field">\r
-    <category>agriculture</category>\r
-    <icon image="features/pois/landuse_grass.n.24.png"/>\r
-    <area/>\r
-    <tag k="landuse" v="meadow"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Orchard">\r
-    <category>agriculture</category>\r
-    <icon image="features/pois/landuse_grass.n.24.png"/>\r
-    <area/>\r
-    <tag k="landuse" v="orchard"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Vineyard">\r
-    <category>agriculture</category>\r
-    <icon image="features/pois/landuse_grass.n.24.png"/>\r
-    <area/>\r
-    <tag k="landuse" v="vineyard"/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-<!-- ************************************************************************\r
-       Natural\r
-       ************************************************************************ -->\r
-\r
-  <feature name="Park">\r
-    <category>natural</category>\r
-    <category>sport</category>\r
-    <icon image="icons/natural_blank.png">\r
-      <b>${name}</b>\r
-      <br/>\r
-    </icon>\r
-\r
-    <area/>\r
-    <tag k="leisure" v="park"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Forest">\r
-    <category>natural</category>\r
-    <icon image="/features/pois/landuse_coniferous.n.24.png"/>\r
-\r
-    <area/>\r
-    <tag k="landuse" v="forest"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Meadow">\r
-    <category>natural</category>\r
-    <icon image="icons/natural_blank.png"/>\r
-\r
-    <area/>\r
-    <tag k="landuse" v="meadow"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
+<!-- This is a bit of a dumping ground for real landuse=*, but also outdoor natural/leisure/agriculture type keys. -->
+<featureGroup>
+  <feature name="Industrial Area">
+    <category>landuse</category>
+    <area/>
+    <icon image="features/pois/building_generic.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="landuse" v="industrial"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Offices">
+    <category>landuse</category>
+    <area/>
+    <icon image="features/pois/building_generic.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="landuse" v="commercial"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Residential Area">
+    <category>landuse</category>
+    <area/>
+    <icon image="features/pois/building_generic.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="landuse" v="residential"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Retail Area">
+    <category>landuse</category>
+    <area/>
+    <icon image="features/pois/building_generic.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="landuse" v="retail"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Construction Site">
+    <category>landuse</category>
+    <area/>
+    <icon image="features/pois/building_generic.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="landuse" v="construction"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Marketplace">
+    <category>shopping</category>
+    <point />
+    <area/>
+    <icon image="features/pois/shopping_marketplace.n.24.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="amenity" v="marketplace"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Cemetery">
+    <category>landuse</category>
+    <point />
+    <area/>
+    <icon image="features/pois/place_of_worship_unknown3.n.24.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="landuse" v="cemetery"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Graveyard">
+    <category>landuse</category>
+    <point />
+    <area/>
+    <icon image="features/pois/place_of_worship_unknown3.n.24.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="amenity" v="grave_yard"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Quarry">
+    <category>landuse</category>
+    <icon image="features/pois/poi_mine.n.24.png"/>
+    <area/>
+    <tag k="landuse" v="quarry"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Military">
+    <category>landuse</category>
+    <icon image="features/pois/poi_military_bunker.n.24.png"/>
+    <area/>
+    <tag k="landuse" v="military"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Conservation">
+    <category>natural</category>
+    <icon image="icons/natural_blank.png"/>
+    <area/>
+    <tag k="landuse" v="conservation"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+
+
+
+  <feature name="Playground">
+    <category>sport</category>
+    <area/>
+    <point/>
+    <icon image="features/pois/amenity_playground.n.24.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="leisure" v="playground"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Golf course">
+    <category>sport</category>
+    <area/>
+    <icon  image="features/pois/sport_golf.n.24.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="leisure" v="golf_course"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Recreation ground">
+    <category>sport</category>    
+    <area/>
+    <icon image="features/pois/sport_leisure_centre.n.24.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="leisure" v="recreation_ground"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Sports pitch">
+    <category>sport</category>
+    <area/>
+    <icon image="features/pois/sport_leisure_centre.n.24.png">
+      <b>${name}</b>
+    </icon>
+    <tag k="leisure" v="pitch"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="pitchSport"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <inputSet id="pitchSport">
+    <input name="Sport" presence="always" category="Details" key="sport" type="choice" description="The sport that is predominantly played here.">
+      <choice value="9pin" text="9 pin bowling"/>
+      <choice value="10pin" text="10 pin bowling"/>
+      <choice value="american_football" text="American football"/>
+      <choice value="archery" text="Archery"/>
+      <choice value="athletics" text="Athletics"/>
+      <choice value="australian_football" text="Australian Rules Football"/>
+      <choice value="baseball" text="Baseball"/>
+      <choice value="basketball" text="Basketball"/>
+      <choice value="beachvolleyball" text="Beach volleyball"/>
+      <choice value="boules" text="Boules/petanque/bocci"/>
+      <choice value="bowls" text="Lawn bowls"/>
+      <choice value="canadian_football" text="Canadian football"/>
+      <choice value="chess" text="Chess"/>
+      <choice value="cricket" text="Cricket"/>
+      <choice value="cricket_nets" text="Cricket nets"/>
+      <choice value="croquet" text="Croquet"/>
+      <choice value="equestrian" text="Equestrian"/>
+      <choice value="gaelic_football" text="Gaelic football"/>
+      <choice value="gymnastics" text="Gymnastics"/>
+      <choice value="team_handball" text="(Team) handball"/>
+      <choice value="hockey" text="(Field) hockey"/>
+      <choice value="korfball" text="Korball"/>
+      <choice value="pelota" text="Pelota"/>
+      <choice value="rugby_league" text="Rugby league"/>
+      <choice value="rugby_union" text="Rugby union"/>
+      <choice value="shooting" text="Shooting"/>
+      <choice value="skating" text="Ice skating"/>
+      <choice value="skateboard" text="Skateboarding"/>
+      <choice value="soccer" text="Soccer/football"/>
+      <choice value="swimming" text="Swimming"/>
+      <choice value="table_tennis" text="Table tennis"/>
+      <choice value="tennis" text="Tennis"/>
+      <choice value="volleyball" text="Volleyball"/>
+    </input>
+  </inputSet>
+
+  <feature name="Sports track">
+    <category>sport</category>
+    <area/>
+    <line/>
+    <icon image="features/pois/sport_leisure_centre.n.24.png">
+      <b>${name}</b>
+      <font size="10pt">A purpose built track for running, cycling, greyhound racing, horse racing.</font>
+    </icon>
+    <tag k="leisure" v="track"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="roadPhysical"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <!-- **************** Agriculture *************** -->
+  <feature name="Farm">
+    <category>agriculture</category>
+    <icon image="features/pois/landuse_grass.n.24.png"/>
+    <area/>
+    <tag k="landuse" v="farm"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Farmyard">
+    <category>agriculture</category>
+    <icon image="features/pois/landuse_grass.n.24.png"/>
+    <area/>
+    <tag k="landuse" v="farmyard"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Farmland">
+    <category>agriculture</category>
+    <icon image="features/pois/landuse_grass.n.24.png"/>
+    <area/>
+    <tag k="landuse" v="farmland"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Field">
+    <category>agriculture</category>
+    <icon image="features/pois/landuse_grass.n.24.png"/>
+    <area/>
+    <tag k="landuse" v="meadow"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Orchard">
+    <category>agriculture</category>
+    <icon image="features/pois/landuse_grass.n.24.png"/>
+    <area/>
+    <tag k="landuse" v="orchard"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Vineyard">
+    <category>agriculture</category>
+    <icon image="features/pois/landuse_grass.n.24.png"/>
+    <area/>
+    <tag k="landuse" v="vineyard"/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="common"/>
+  </feature>
+
+<!-- ************************************************************************
+       Natural
+       ************************************************************************ -->
+
+  <feature name="Park">
+    <category>natural</category>
+    <category>sport</category>
+    <icon image="icons/natural_blank.png">
+      <b>${name}</b>
+      <br/>
+    </icon>
+
+    <area/>
+    <tag k="leisure" v="park"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Forest">
+    <category>natural</category>
+    <icon image="/features/pois/landuse_coniferous.n.24.png"/>
+
+    <area/>
+    <tag k="landuse" v="forest"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Meadow">
+    <category>natural</category>
+    <icon image="icons/natural_blank.png"/>
+
+    <area/>
+    <tag k="landuse" v="meadow"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
 </featureGroup>
\ No newline at end of file
index 87e7e0d..8b0a42f 100644 (file)
@@ -1,84 +1,84 @@
-<featureGroup>\r
-  <feature name="Footpath">\r
-    <category>paths</category>\r
-    <icon image="features/paths__footway.png">\r
-      ${name} <i>${ref}</i>\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:highway%3Dfootway</help>\r
-    <line/>\r
-    <tag k="highway" v="footway"/>\r
-    <inputSet ref="path"/>\r
-    <inputSet ref="common"/>\r
-    <inputset ref="naming"/>\r
-  </feature>\r
-\r
-  <feature name="Cycle path">\r
-    <category>paths</category>\r
-    <icon image="features/paths__bike.png">\r
-      ${name} <i>${ncn_ref} ${rcn_ref} ${lcn_ref} ${ref}</i>\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:highway%3Dcycleway</help>\r
-    <line/>\r
-    <tag k="highway" v="cycleway"/>\r
-    <inputSet ref="path"/>\r
-    <inputSet ref="common"/>\r
-    <inputset ref="naming"/>\r
-    <input type="choice"\r
-        name="Cycleway type" category="Cycle" description="What kind of bike path is this?"\r
-        key="cycleway" presence="onTagMatch" priority="low">\r
-        <choice value="segregated" text="Segregated" description="Cyclists and pedestrians are separated by a painted line or kerb."/>\r
-        <choice value="shared" text="Shared" description="Cyclists and pedestrians share the full width of the path."/>\r
-    </input> \r
-  </feature>\r
-\r
-  <feature name="Pedestrian street">\r
-    <category>paths</category>\r
-    <icon image="features/paths__pedestrian.png">\r
-      <font size="14pt">\r
-        <b>${name}</b>\r
-      </font>\r
-    </icon>\r
-\r
-    <tag k="highway" v="pedestrian"/>\r
-    <!-- pedestrian roads can be lines or areas, with different tags -->\r
-    <!-- TODO - implement this! -->\r
-    <line>\r
-      <tag k="highway" v="pedestrian"/>\r
-    </line>\r
-    <area>\r
-      <tag k="highway" v="pedestrian"/>\r
-      <tag k="area" v="yes"/>\r
-    </area>\r
-    <inputSet ref="minorRoad"/>\r
-    <inputSet ref="common"/>\r
-    <inputset ref="naming"/>\r
-  </feature>\r
-\r
-  <feature name="Bridleway">\r
-    <category>paths</category>\r
-    <icon image="features/paths__bridleway.png">\r
-    </icon>\r
-\r
-    <line/>\r
-    <tag k="highway" v="bridleway"/>\r
-    <inputSet ref="path"/>\r
-    <inputSet ref="common"/>\r
-    <inputset ref="naming"/>\r
-  </feature>\r
-\r
-  <feature name="Steps">\r
-    <category>paths</category>\r
-    <icon image="features/paths__steps.png">\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:highway%3Dsteps</help>\r
-\r
-    <line/>\r
-    <tag k="highway" v="steps"/>\r
-    <inputSet ref="path"/>\r
-    <input type="freetext" presence="always" category="Naming" name="Number of steps" key="step_count" description="The number of steps in the way" priority="low"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-  \r
+<featureGroup>
+  <feature name="Footpath">
+    <category>paths</category>
+    <icon image="features/paths__footway.png">
+      ${name} <i>${ref}</i>
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:highway%3Dfootway</help>
+    <line/>
+    <tag k="highway" v="footway"/>
+    <inputSet ref="path"/>
+    <inputSet ref="common"/>
+    <inputset ref="naming"/>
+  </feature>
+
+  <feature name="Cycle path">
+    <category>paths</category>
+    <icon image="features/paths__bike.png">
+      ${name} <i>${ncn_ref} ${rcn_ref} ${lcn_ref} ${ref}</i>
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:highway%3Dcycleway</help>
+    <line/>
+    <tag k="highway" v="cycleway"/>
+    <inputSet ref="path"/>
+    <inputSet ref="common"/>
+    <inputset ref="naming"/>
+    <input type="choice"
+        name="Cycleway type" category="Cycle" description="What kind of bike path is this?"
+        key="cycleway" presence="onTagMatch" priority="low">
+        <choice value="segregated" text="Segregated" description="Cyclists and pedestrians are separated by a painted line or kerb."/>
+        <choice value="shared" text="Shared" description="Cyclists and pedestrians share the full width of the path."/>
+    </input> 
+  </feature>
+
+  <feature name="Pedestrian street">
+    <category>paths</category>
+    <icon image="features/paths__pedestrian.png">
+      <font size="14pt">
+        <b>${name}</b>
+      </font>
+    </icon>
+
+    <tag k="highway" v="pedestrian"/>
+    <!-- pedestrian roads can be lines or areas, with different tags -->
+    <!-- TODO - implement this! -->
+    <line>
+      <tag k="highway" v="pedestrian"/>
+    </line>
+    <area>
+      <tag k="highway" v="pedestrian"/>
+      <tag k="area" v="yes"/>
+    </area>
+    <inputSet ref="minorRoad"/>
+    <inputSet ref="common"/>
+    <inputset ref="naming"/>
+  </feature>
+
+  <feature name="Bridleway">
+    <category>paths</category>
+    <icon image="features/paths__bridleway.png">
+    </icon>
+
+    <line/>
+    <tag k="highway" v="bridleway"/>
+    <inputSet ref="path"/>
+    <inputSet ref="common"/>
+    <inputset ref="naming"/>
+  </feature>
+
+  <feature name="Steps">
+    <category>paths</category>
+    <icon image="features/paths__steps.png">
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:highway%3Dsteps</help>
+
+    <line/>
+    <tag k="highway" v="steps"/>
+    <inputSet ref="path"/>
+    <input type="freetext" presence="always" category="Details" name="Number of steps" key="step_count" description="The number of steps in the way" priority="low"/>
+    <inputSet ref="common"/>
+  </feature>
+  
   <feature name="Generic path">
     <category>paths</category>
     <icon image="features/paths__unofficial.png">
     <inputset ref="naming"/>
   </feature>
 
-  \r
-  <!-- Bicycle routes -->\r
-  <feature name="National Cycle Network">\r
-    <category>paths</category>\r
+  
+  <!-- Bicycle routes -->
+  <feature name="National Cycle Network">
+    <category>paths</category>
     <icon image="features/route__ncn.png" background="red" foreground="white">
-      <font size="14pt">\r
-        <b>${ref}</b>\r
-      </font>\r
-      <br/>\r
-      <font size="12pt">${name}</font>\r
-    </icon>\r
-\r
-    <relation/>\r
-    <tag k="type" v="route"/>\r
+      <font size="14pt">
+        <b>${ref}</b>
+      </font>
+      <br/>
+      <font size="12pt">${name}</font>
+    </icon>
+
+    <relation/>
+    <tag k="type" v="route"/>
     <tag k="route" v="bicycle"/>
-    <tag k="network" v="ncn"/>\r
-\r
-    <inputSet ref="route"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Regional Cycle Network">\r
-    <category>paths</category>\r
+    <tag k="network" v="ncn"/>
+
+    <inputSet ref="route"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Regional Cycle Network">
+    <category>paths</category>
     <icon image="features/route__rcn.png" background="cyan" foreground="white">
-      <font size="14pt"><b>${ref}</b></font><br/>\r
-      <font size="12pt">${name}</font>\r
-    </icon>\r
-\r
-    <relation/>\r
-    <tag k="type" v="route"/>\r
-    <tag k="route" v="bicycle"/>\r
-    <tag k="network" v="rcn"/>\r
-\r
-    <inputSet ref="route"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Local Cycle Network">\r
-    <category>paths</category>\r
-    <icon image="features/route__lcn.png" background="blue" foreground="white">\r
-      <font size="14pt">\r
-        <b>${ref}</b>\r
-      </font>\r
-      <br/>\r
-      <font size="12pt">${name}</font>\r
-    </icon>\r
-\r
-    <relation/>\r
-    <tag k="type" v="route"/>\r
+      <font size="14pt"><b>${ref}</b></font><br/>
+      <font size="12pt">${name}</font>
+    </icon>
+
+    <relation/>
+    <tag k="type" v="route"/>
+    <tag k="route" v="bicycle"/>
+    <tag k="network" v="rcn"/>
+
+    <inputSet ref="route"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Local Cycle Network">
+    <category>paths</category>
+    <icon image="features/route__lcn.png" background="blue" foreground="white">
+      <font size="14pt">
+        <b>${ref}</b>
+      </font>
+      <br/>
+      <font size="12pt">${name}</font>
+    </icon>
+
+    <relation/>
+    <tag k="type" v="route"/>
     <tag k="route" v="bicycle"/>
-    <tag k="network" v="lcn"/>\r
-\r
-    <inputSet ref="route"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-  \r
-  <!-- hiking -->\r
-  \r
-  <feature name="Long Distance Path">\r
-    <category>paths</category>\r
+    <tag k="network" v="lcn"/>
+
+    <inputSet ref="route"/>
+    <inputSet ref="common"/>
+  </feature>
+  
+  <!-- hiking -->
+  
+  <feature name="Long Distance Path">
+    <category>paths</category>
     <icon image="features/route__nwn.png" background="green" foreground="white">
-      <font size="14pt">\r
-        <b>${ref}</b>\r
-      </font>\r
-      <br/>\r
-      <font size="12pt">${name}</font>\r
-    </icon>\r
-\r
-    <relation/>\r
-    <tag k="type" v="route"/>\r
-    <tag k="route" v="hiking" vmatch="hiking|foot"/>\r
-\r
-    <inputSet ref="route"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-  \r
+      <font size="14pt">
+        <b>${ref}</b>
+      </font>
+      <br/>
+      <font size="12pt">${name}</font>
+    </icon>
+
+    <relation/>
+    <tag k="type" v="route"/>
+    <tag k="route" v="hiking" vmatch="hiking|foot"/>
+
+    <inputSet ref="route"/>
+    <inputSet ref="common"/>
+  </feature>
+  
 </featureGroup>
\ No newline at end of file
index 2fafc86..87ff63f 100644 (file)
@@ -1,82 +1,82 @@
-<featureGroup>\r
-  <feature name="High-voltage line">\r
-    <category>power</category>\r
-    <icon image="features/power_high.png"/>\r
-    <line/>\r
-    <tag k="power" v="line"/>\r
-    <inputSet ref="powerCables"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Low-voltage line">\r
-    <category>power</category>\r
-    <icon image="features/power_low.png"/>\r
-    <line/>\r
-    <tag k="power" v="minor_line"/>\r
-    <inputSet ref="powerCables"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="High-voltage pylon">\r
-    <category>power</category>\r
-    <icon image="features/pois/power_tower_high2.n.24.png"/>\r
-    <point/>\r
-    <tag k="power" v="tower"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Power pole">\r
-    <category>power</category>\r
-    <icon image="features/pois/power_tower_low.n.24.png"/>\r
-    <point/>\r
-    <tag k="power" v="pole"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Plant (station)">\r
-    <category>power</category>\r
-    <icon image="features/pois/power_station.png"/>\r
-    <area/>\r
-    <point/>\r
-    <tag k="power" v="generator"/>\r
-    <inputSet ref="names"/>\r
-    <input type="choice" presence="always"  name="Energy source" key="power_source" category="Power">\r
-      <choice value="coal" text="Coal"/>\r
-      <choice value="gas" text="Gas"/>\r
-      <choice value="oil" text="Oil"/>\r
-      <choice value="fossil" text="Unspecified fossil fuel"/>\r
-      <choice value="hydro" text="Hydroelectric"/>\r
-      <choice value="geothermal" text="Geothermal"/>\r
-      <choice value="nuclear" text="Nuclear"/>\r
-      <choice value="wind" text="Wind"/>\r
-      <choice value="photovoltaic" text="Solar PV"/>\r
-      <choice value="solar_thermal" text="Solar thermal"/>\r
-      <choice value="biofuel" text="Biofuel"/>\r
-    </input>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Substation">\r
-    <category>power</category>\r
-    <icon image="features/pois/power_substation.n.24.png"/>"\r
-    <area/>\r
-    <point/>\r
-    <tag k="power" v="station"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Transformer">\r
-    <category>power</category>\r
-    <icon image="features/pois/power_transformer.n.24.png"/>\r
-    <area/>\r
-    <point/>\r
-    <tag k="power" v="sub_station"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
+<featureGroup>
+  <feature name="High-voltage line">
+    <category>power</category>
+    <icon image="features/power_high.png"/>
+    <line/>
+    <tag k="power" v="line"/>
+    <inputSet ref="powerCables"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Low-voltage line">
+    <category>power</category>
+    <icon image="features/power_low.png"/>
+    <line/>
+    <tag k="power" v="minor_line"/>
+    <inputSet ref="powerCables"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="High-voltage pylon">
+    <category>power</category>
+    <icon image="features/pois/power_tower_high2.n.24.png"/>
+    <point/>
+    <tag k="power" v="tower"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Power pole">
+    <category>power</category>
+    <icon image="features/pois/power_tower_low.n.24.png"/>
+    <point/>
+    <tag k="power" v="pole"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Plant (station)">
+    <category>power</category>
+    <icon image="features/pois/power_station.png"/>
+    <area/>
+    <point/>
+    <tag k="power" v="generator"/>
+    <inputSet ref="names"/>
+    <input type="choice" presence="always"  name="Energy source" key="power_source" category="Details">
+      <choice value="coal" text="Coal"/>
+      <choice value="gas" text="Gas"/>
+      <choice value="oil" text="Oil"/>
+      <choice value="fossil" text="Unspecified fossil fuel"/>
+      <choice value="hydro" text="Hydroelectric"/>
+      <choice value="geothermal" text="Geothermal"/>
+      <choice value="nuclear" text="Nuclear"/>
+      <choice value="wind" text="Wind"/>
+      <choice value="photovoltaic" text="Solar PV"/>
+      <choice value="solar_thermal" text="Solar thermal"/>
+      <choice value="biofuel" text="Biofuel"/>
+    </input>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Substation">
+    <category>power</category>
+    <icon image="features/pois/power_substation.n.24.png"/>"
+    <area/>
+    <point/>
+    <tag k="power" v="station"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Transformer">
+    <category>power</category>
+    <icon image="features/pois/power_transformer.n.24.png"/>
+    <area/>
+    <point/>
+    <tag k="power" v="sub_station"/>
+    <inputSet ref="common"/>
+  </feature>
 </featureGroup>
\ No newline at end of file
index 865138b..dc46eaf 100644 (file)
-<featureGroup>\r
-  <feature name="Supermarket">\r
-    <category>shopping</category>\r
-    <icon image="features/pois/shopping_supermarket.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:shop%3Dsupermarket</help>\r
-    <point/>\r
-    <area/>\r
-    <tag k="shop" v="supermarket"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Small Convenience Store">\r
-    <category>shopping</category>\r
-    <icon image="features/pois/shopping_convenience.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Tag:shop%3Dconvenience</help>\r
-    <point/>\r
-    <area/>\r
-    <tag k="shop" v="convenience"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Bakery">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_bakery.n.24.png"/>\r
-    <tag k="shop" v="bakery"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-\r
-\r
-  <feature name="Alcohol shop">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_alcohol.n.24.png"/>\r
-    <tag k="shop" v="alcohol"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-\r
-  <feature name="Bike shop">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_bicycle.n.24.png"/>\r
-    <tag k="shop" v="bicycle"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Bookshop">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_book.n.24.png"/>\r
-    <tag k="shop" v="books"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Butcher">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_butcher.n.24.png"/>\r
-    <tag k="shop" v="butcher"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Car sales">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_car.n.24.png"/>\r
-    <tag k="shop" v="car"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Car repair">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_car_repair.n.24.png"/>\r
-    <tag k="shop" v="car_repair"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Clothes shop">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_clothes.n.24.png"/>\r
-    <tag k="shop" v="clothes"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Confectionery">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_confectionery.n.24.png"/>\r
-    <tag k="shop" v="confectionery"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="DIY">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_diy.n.24.png"/>\r
-    <tag k="shop" v="doityourself"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Fishmonger">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_fish.n.24.png"/>\r
-    <tag k="shop" v="fishmonger"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Florist">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_florist.n.24.png"/>\r
-    <tag k="shop" v="florist"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Garden centre">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_garden_centre.n.24.png"/>\r
-    <tag k="shop" v="garden_centre"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Gift shop">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_gift.n.24.png"/>\r
-    <tag k="shop" v="gift"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Greengrocer">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_greengrocer.n.24.png"/>\r
-    <tag k="shop" v="greengrocer"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Hairdresser">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_hairdresser.n.24.png"/>\r
-    <tag k="shop" v="hairdresser"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Hifi shop">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_hifi.n.24.png"/>\r
-    <tag k="shop" v="hifi"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Jewellery">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_jewelry.n.24.png"/>\r
-    <tag k="shop" v="jewelry"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Kiosk">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_kiosk.n.24.png"/>\r
-    <tag k="shop" v="kiosk"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Laundrette">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_laundrette.n.24.png"/>\r
-    <tag k="shop" v="laundry"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Motorbike shop">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_motorcycle.n.24.png"/>\r
-    <tag k="shop" v="motorcycle"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Music shop">\r
-    <category>shopping</category>\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <icon image="features/pois/shopping_music.n.24.png"/>\r
-    <tag k="shop" v="music"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-\r
-  <feature name="Pharmacy">\r
-    <category>shopping</category>\r
-    <icon image="features/pois/health_pharmacy.n.24.png">\r
-      ${name}\r
-    </icon>\r
-    <help>http://wiki.openstreetmap.org/wiki/Pharmacy</help>\r
-    <point/>\r
-    <area/>\r
-    <tag k="amenity" v="pharmacy"/>\r
-    <inputSet ref="names"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <input type="checkbox" category="Amenity" presence="always" description="Does this pharmacy sell prescription drugs?" name="Dispensing" key="dispensing" layout="horizontal"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-\r
-  <feature name="Toy shop">\r
-    <category>shopping</category>\r
-    <icon image="features/pois/shopping_toys.n.24.png" />\r
-    <point/>\r
-    <area/>\r
-    <inputSet ref="simpleName"/>\r
-    <inputSet ref="web"/>\r
-    <inputSet ref="buildingAddress"/>\r
-    <tag k="shop" v="toys"/>\r
-    <inputSet ref="common"/>\r
-  </feature>\r
-</featureGroup>\r
-\r
+<featureGroup>
+  <feature name="Supermarket">
+    <category>shopping</category>
+    <icon image="features/pois/shopping_supermarket.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:shop%3Dsupermarket</help>
+    <point/>
+    <area/>
+    <tag k="shop" v="supermarket"/>
+    <inputSet ref="names"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Small Convenience Store">
+    <category>shopping</category>
+    <icon image="features/pois/shopping_convenience.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Tag:shop%3Dconvenience</help>
+    <point/>
+    <area/>
+    <tag k="shop" v="convenience"/>
+    <inputSet ref="names"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Bakery">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_bakery.n.24.png"/>
+    <tag k="shop" v="bakery"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+
+
+  <feature name="Alcohol shop">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_alcohol.n.24.png"/>
+    <tag k="shop" v="alcohol"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+
+  <feature name="Bike shop">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_bicycle.n.24.png"/>
+    <tag k="shop" v="bicycle"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Bookshop">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_book.n.24.png"/>
+    <tag k="shop" v="books"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Butcher">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_butcher.n.24.png"/>
+    <tag k="shop" v="butcher"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Car sales">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_car.n.24.png"/>
+    <tag k="shop" v="car"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Car repair">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_car_repair.n.24.png"/>
+    <tag k="shop" v="car_repair"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Clothes shop">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_clothes.n.24.png"/>
+    <tag k="shop" v="clothes"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Confectionery">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_confectionery.n.24.png"/>
+    <tag k="shop" v="confectionery"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="DIY">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_diy.n.24.png"/>
+    <tag k="shop" v="doityourself"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Fishmonger">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_fish.n.24.png"/>
+    <tag k="shop" v="fishmonger"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Florist">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_florist.n.24.png"/>
+    <tag k="shop" v="florist"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Garden centre">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_garden_centre.n.24.png"/>
+    <tag k="shop" v="garden_centre"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Gift shop">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_gift.n.24.png"/>
+    <tag k="shop" v="gift"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Greengrocer">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_greengrocer.n.24.png"/>
+    <tag k="shop" v="greengrocer"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Hairdresser">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_hairdresser.n.24.png"/>
+    <tag k="shop" v="hairdresser"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Hifi shop">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_hifi.n.24.png"/>
+    <tag k="shop" v="hifi"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Jewellery">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_jewelry.n.24.png"/>
+    <tag k="shop" v="jewelry"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Kiosk">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_kiosk.n.24.png"/>
+    <tag k="shop" v="kiosk"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Laundrette">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_laundrette.n.24.png"/>
+    <tag k="shop" v="laundry"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Motorbike shop">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_motorcycle.n.24.png"/>
+    <tag k="shop" v="motorcycle"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Music shop">
+    <category>shopping</category>
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <icon image="features/pois/shopping_music.n.24.png"/>
+    <tag k="shop" v="music"/>
+    <inputSet ref="common"/>
+  </feature>
+
+
+  <feature name="Pharmacy">
+    <category>shopping</category>
+    <icon image="features/pois/health_pharmacy.n.24.png">
+      ${name}
+    </icon>
+    <help>http://wiki.openstreetmap.org/wiki/Pharmacy</help>
+    <point/>
+    <area/>
+    <tag k="amenity" v="pharmacy"/>
+    <inputSet ref="names"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <input type="checkbox" category="Details" presence="always" description="Does this pharmacy sell prescription drugs?" name="Dispensing" key="dispensing" layout="horizontal"/>
+    <inputSet ref="common"/>
+  </feature>
+
+  <feature name="Toy shop">
+    <category>shopping</category>
+    <icon image="features/pois/shopping_toys.n.24.png" />
+    <point/>
+    <area/>
+    <inputSet ref="simpleName"/>
+    <inputSet ref="web"/>
+    <inputSet ref="buildingAddress"/>
+    <tag k="shop" v="toys"/>
+    <inputSet ref="common"/>
+  </feature>
+</featureGroup>
+
   
\ No newline at end of file
index 7c0bad0..f3a5076 100644 (file)
         <line/>
         <area/>
         <tag k="railway" v="platform"/>
-        <input type="freetext" presence="onTagMatch" category="Naming" name="Reference" key="ref" description="The number of the platform" priority="low"/>
+        <input type="freetext" presence="onTagMatch" category="Details" name="Reference" key="ref" description="The number of the platform" priority="low"/>
         <inputSet ref="common"/>
       </feature>
     
     <area/>
     <tag k="amenity" v="car_wash"/>
     <inputSet ref="names"/>
-    <input type="freetext" presence="onTagMatch" category="Naming" name="Operator" key="operator" description="The company/organisation that runs the car wash" priority="low"/>
-    <input type="freetext" presence="onTagMatch" category="Operation" name="Opening hours" key="opening_hours" priority="normal"/>
-    <input type="choice" presence="onTagMatch" category="Operation" name="Self service" key="self_service" priority="low">
+    <input type="freetext" presence="onTagMatch" category="Details" name="Operator" key="operator" description="The company/organisation that runs the car wash" priority="low"/>
+    <input type="freetext" presence="onTagMatch" category="Details" name="Opening hours" key="opening_hours" priority="normal"/>
+    <input type="choice" presence="onTagMatch" category="Details" name="Self service" key="self_service" priority="low">
        <choice value="yes" text="Yes" />
        <choice value="no" text="No" />
     </input>
-    <input type="choice" presence="onTagMatch" category="Operation" name="Automated" key="automated" priority="low">
+    <input type="choice" presence="onTagMatch" category="Details" name="Automated" key="automated" priority="low">
        <choice value="yes" text="Yes" />
        <choice value="no" text="No" />
     </input>
         <area/>
         <point/>
         <inputSet ref="names"/>
-        <input type="freetext" presence="always" category="Naming" name="International Air Transport Association (IATA) airport code" key="ref"/>
+        <input type="freetext" presence="always" category="Details" name="International Air Transport Association (IATA) airport code" key="ref"/>
         <help>http://wiki.openstreetmap.org/wiki/Key:aeroway</help>
         <inputSet ref="common"/>
       </feature>
         <tag k="aeroway" v="runway"/>
         <line/>
         <inputSet ref="names"/>
-        <input type="freetext" presence="always" category="Naming" name="Runway number (01-36)" key="ref"/>
+        <input type="freetext" presence="always" category="Details" name="Runway number (01-36)" key="ref"/>
         <help>http://wiki.openstreetmap.org/wiki/Key:aeroway</help>
         <inputSet ref="common"/>
       </feature>
         <tag k="aeroway" v="taxiway"/>
         <line/>
         <inputSet ref="names"/>
-        <input type="freetext" presence="always" category="Naming" name="Taxiway number" key="ref" />
+        <input type="freetext" presence="always" category="Details" name="Taxiway number" key="ref" />
         <help>http://wiki.openstreetmap.org/wiki/Key:aeroway</help>
         <inputSet ref="common"/>
       </feature>
         <icon image="features/pois/transport_airport_gate.n.24.png"/>
         <tag k="aeroway" v="gate"/>
         <point/>
-        <input type="freetext" presence="always" category="Naming" name="Gate number" key="ref"/>
+        <input type="freetext" presence="always" category="Details" name="Gate number" key="ref"/>
         <help>http://wiki.openstreetmap.org/wiki/Key:aeroway</help>
         <inputSet ref="common"/>
       </feature>
     <area/>
     <tag k="amenity" v="parking"/>
     <inputSet ref="names"/>
-    <input type="freetext" presence="onTagMatch" category="Naming" name="Operator" key="operator" description="The provider of the postal service" priority="low"/>
+    <input type="freetext" presence="onTagMatch" category="Details" name="Operator" key="operator" description="The provider of the postal service" priority="low"/>
     <input type="number" minimum="0" maximum="99999" stepSize="1" presence="always" category="Parking" name="Capacity" key="capacity" description="The number of cars that can be parked in the car park"/>
     <inputSet ref="fee"/>
     <inputSet ref="common"/>
     <point/>
     <tag k="amenity" v="bicycle_parking"/>
     <inputSet ref="names"/>
-    <input type="freetext" presence="onTagMatch" category="Naming" name="Operator" key="operator" description="The provider of the postal service" priority="low"/>
+    <input type="freetext" presence="onTagMatch" category="Details" name="Operator" key="operator" description="The provider of the postal service" priority="low"/>
     <input type="number" minimum="0" maximum="99999" stepSize="1"
         presence="always" category="Cycle" name="Capacity" key="capacity"
         description="The number of bicycles that can be parked in the group of bicycle parking racks"/>
     <point/>
     <tag k="railway" v="station"/>
     <inputSet ref="names"/>
-    <input type="freetext" presence="onTagMatch" category="Naming" name="Reference" key="ref" description="The shortcode/reference for the station" priority="low"/>
-    <input type="freetext" presence="onTagMatch" category="Naming" name="Operator" key="operator" description="The provider of the service" priority="low"/>
+    <input type="freetext" presence="onTagMatch" category="Details" name="Reference" key="ref" description="The shortcode/reference for the station" priority="low"/>
+    <input type="freetext" presence="onTagMatch" category="Details" name="Operator" key="operator" description="The provider of the service" priority="low"/>
     <inputSet ref="common"/>
   </feature>
 
     <inputSet ref="simpleName"/>
     <icon image="features/pois/transport_fuel.n.24.png"/>
     <tag k="amenity" v="fuel"/>
-    <input type="freetext" category="Naming" name="Operator" key="operator" description="The provider of the service"/>
-    <input type="choice" category="Fuels" name="Diesel" key="diesel" description="Is diesel fuel sold here?">
+    <input type="freetext" category="Details" name="Operator" key="operator" description="The provider of the service"/>
+    <input type="choice" category="Details" name="Diesel" key="diesel" description="Is diesel fuel sold here?">
       <choice value="yes" text="Yes"/>
       <choice value="no" text="No"/>
     </input>
-    <input type="choice" category="Fuels" name="Octane 91" key="diesel" description="Is octane 91 unleaded fuel sold here?">
+    <input type="choice" category="Details" name="Octane 91" key="diesel" description="Is octane 91 unleaded fuel sold here?">
       <choice value="yes" text="Yes"/>
       <choice value="no" text="No"/>
     </input>
-    <input type="choice" category="Fuels" name="Octane 95" key="octane_95" description="Is octane 95 unleaded fuel sold here?">
+    <input type="choice" category="Details" name="Octane 95" key="octane_95" description="Is octane 95 unleaded fuel sold here?">
       <choice value="yes" text="Yes"/>
       <choice value="no" text="No"/>
     </input>
-    <input type="choice" category="Fuels" name="Octane 98" key="octane_98" description="Is octane 98 unleaded fuel sold here?">
+    <input type="choice" category="Details" name="Octane 98" key="octane_98" description="Is octane 98 unleaded fuel sold here?">
       <choice value="yes" text="Yes"/>
       <choice value="no" text="No"/>
     </input>
-    <input type="choice" category="Fuels" name="Octane 100" key="octane_100" description="Is octane 100 unleaded fuel sold here?">
+    <input type="choice" category="Details" name="Octane 100" key="octane_100" description="Is octane 100 unleaded fuel sold here?">
       <choice value="yes" text="Yes"/>
       <choice value="no" text="No"/>
     </input>
-    <input type="choice" category="Fuels" name="Ethanol" key="ethanol" description="Is ethanol sold here?">
+    <input type="choice" category="Details" name="Ethanol" key="ethanol" description="Is ethanol sold here?">
       <choice value="yes" text="Yes"/>
       <choice value="no" text="No"/>
     </input>
-    <input type="choice" category="Fuels" name="LPG" key="lpg" description="Is LPG (liquid petroleum gas) sold here?">
+    <input type="choice" category="Details" name="LPG" key="lpg" description="Is LPG (liquid petroleum gas) sold here?">
       <choice value="yes" text="Yes"/>
       <choice value="no" text="No"/>
     </input>
-    <input type="choice" category="Fuels" name="Octane 91" key="diesel" description="Is octane 91 unleaded fuel sold here?">
+    <input type="choice" category="Details" name="Octane 91" key="diesel" description="Is octane 91 unleaded fuel sold here?">
       <choice value="yes" text="Yes"/>
       <choice value="no" text="No"/>
     </input>
-    <input type="choice" category="Fuels" name="Bio-diesel" key="biodiesel" description="Is biodiesel unleaded fuel sold here?">
+    <input type="choice" category="Details" name="Bio-diesel" key="biodiesel" description="Is biodiesel unleaded fuel sold here?">
       <choice value="yes" text="Yes"/>
       <choice value="no" text="No"/>
     </input>
     <tag k="amenity" v="ferry_terminal"/>
     <inputSet ref="simpleName" />
     <input type="freetext" presence="always" category="" name="Operator" key="operator" description="The operator of the ferry terminal." priority="low"/>
-    <input type="freetext" presence="onTagMatch" category="Cargo" name="Cargo" key="cargo" description="The cargo shipped from here." priority="low"/>
+    <input type="freetext" presence="onTagMatch" category="Details" name="Cargo" key="cargo" description="The cargo shipped from here." priority="low"/>
     <inputSet ref="common"/>
   </feature>
 
     <tag k="route" v="bus"/>
 
     <inputSet ref="route"/>
-    <input type="freetext" presence="always" category="Naming" name="Operator" key="operator" description="The provider of the bus service" priority="low"/>
-    <input type="freetext" presence="always" category="Naming" name="Network" key="network" description="The network of the bus service" priority="low"/>
+    <input type="freetext" presence="always" category="Details" name="Operator" key="operator" description="The provider of the bus service" priority="low"/>
+    <input type="freetext" presence="always" category="Details" name="Network" key="network" description="The network of the bus service" priority="low"/>
     <inputSet ref="common"/>
   </feature>
 
     <tag k="route" v="tram"/>
 
     <inputSet ref="route"/>
-    <input type="freetext" presence="always" category="Naming" name="Operator" key="operator" description="The provider of the tram service" priority="low"/>
-    <input type="freetext" presence="always" category="Naming" name="Network" key="network" description="The network of the tram service" priority="low"/>
+    <input type="freetext" presence="always" category="Details" name="Operator" key="operator" description="The provider of the tram service" priority="low"/>
+    <input type="freetext" presence="always" category="Details" name="Network" key="network" description="The network of the tram service" priority="low"/>
     <inputSet ref="common"/>
   </feature>
 
index 0c02f61..aaf1e48 100644 (file)
@@ -19,8 +19,8 @@ way :tiger { casing-color: #ff00ff;}
 node :dupe { z-index: 9; icon-image: circle; icon-width:8; color: white; opacity: 0.4; casing-opacity: 0.4; casing-color: red; casing-width: 3; }
 node :hoverway { z-index: 9; icon-image: square; icon-width: 7; color: blue; layer: 5; }
 node !:drawn :poi { z-index: 2; icon-image: circle; icon-width: 4; color: green; casing-color: black; casing-width: 1; }
+node !:drawn :hasTags :selectedway { z-index: 9; icon-image: square; icon-width: 8; color: black; layer: 5; }
 node !:drawn :hasTags { z-index: 9; icon-image: circle; icon-width: 4; color: black; }
-node :hasTags :selectedway { z-index: 9; icon-image: square; icon-width: 8; color: black; layer: 5; }
 node !:drawn :selectedway { z-index: 9; icon-image: square; icon-width: 8; color: red; casing-color: #cc0000; casing-width: 1; layer: 5; }
 node::selectedNode :selected { z-index: 1; icon-image: square; icon-width: eval('_width+10'); color: yellow; interactive: no; layer: 5; }
 node::selectedNode :selected :background { color: cyan; }