diff --git a/Docs/Layers/address.md b/Docs/Layers/address.md
index 9f287d389a..bd1a1c8452 100644
--- a/Docs/Layers/address.md
+++ b/Docs/Layers/address.md
@@ -1,4 +1,6 @@
-address
+
+
+ address
=========
@@ -7,77 +9,107 @@ address
Addresses
+
+
+
## Table of contents
1. [address](#address)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [housenumber](#housenumber)
+ [street](#street)
+ [fixme](#fixme)
-- This layer will automatically load [named_streets](./named_streets.md) into the layout as it depends on it: A
- calculated tag loads features from this layer (calculatedTag[0] which calculates the value for _
- closest_3_street_names)
+
+
+
+ - This layer will automatically load [named_streets](./named_streets.md) into the layout as it depends on it: A calculated tag loads features from this layer (calculatedTag[0] which calculates the value for _closest_3_street_names)
+
[Go to the source code](../assets/layers/address/address.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- addr:housenumber~^..*$|addr:street~^..*$
-Supported attributes
+
+ - addr:housenumber~^..*$|addr:street~^..*$
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
-[](https://taginfo.openstreetmap.org/keys/addr:housenumber#values) [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/addr:housenumber#values) [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber) | [string](../SpecialInputElements.md#string) |
[](https://taginfo.openstreetmap.org/keys/addr:street#values) [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D)
[](https://taginfo.openstreetmap.org/keys/fixme#values) [fixme](https://wiki.openstreetmap.org/wiki/Key:fixme) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:fixme%3D)
-### housenumber
+
+
+
+### housenumber
+
+
The question is **What is the number of this house?**
-This rendering asks information about the
-property [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber)
+This rendering asks information about the property [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber)
This is rendered with `The housenumber is {addr:housenumber}`
-- **This building has no house number** corresponds
- with nohousenumber
- =yes
-### street
+
+ - **This building has no house number** corresponds with nohousenumber=yes
+
+
+
+
+### street
+
+
The question is **What street is this address located in?**
-This rendering asks information about the property [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street)
+This rendering asks information about the property [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street)
This is rendered with `This address is in street {addr:street}`
-- **Located in {_closest_street:0:name}** corresponds with addr:street=
-- **Located in {_closest_street:1:name}** corresponds with addr:street=
-- **Located in {_closest_street:2:name}** corresponds with addr:street=
-### fixme
+
+ - **Located in {_closest_street:0:name}** corresponds with addr:street=
+ - **Located in {_closest_street:1:name}** corresponds with addr:street=
+ - **Located in {_closest_street:2:name}** corresponds with addr:street=
+
+
+
+
+### fixme
+
+
The question is **What should be fixed here? Please explain**
-This rendering asks information about the property [fixme](https://wiki.openstreetmap.org/wiki/Key:fixme)
+This rendering asks information about the property [fixme](https://wiki.openstreetmap.org/wiki/Key:fixme)
This is rendered with `Fixme description{fixme}`
-- **No fixme - write something here to explain complicated cases** corresponds with
+
+
+ - **No fixme - write something here to explain complicated cases** corresponds with
+
This document is autogenerated from assets/layers/address/address.json
\ No newline at end of file
diff --git a/Docs/Layers/ambulancestation.md b/Docs/Layers/ambulancestation.md
index acd737657f..721a0f7b6c 100644
--- a/Docs/Layers/ambulancestation.md
+++ b/Docs/Layers/ambulancestation.md
@@ -1,20 +1,23 @@
-ambulancestation
+
+
+ ambulancestation
==================
-An ambulance station is an area for storage of ambulance vehicles, medical equipment, personal protective equipment, and
-other medical supplies.
+An ambulance station is an area for storage of ambulance vehicles, medical equipment, personal protective equipment, and other medical supplies.
+
+
+
## Table of contents
1. [ambulancestation](#ambulancestation)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [ambulance-name](#ambulance-name)
+ [ambulance-street](#ambulance-street)
+ [ambulance-place](#ambulance-place)
@@ -22,91 +25,136 @@ other medical supplies.
+ [ambulance-operator-type](#ambulance-operator-type)
+ [images](#images)
-#### Themes using this layer
-- [hailhydrant](https://mapcomplete.osm.be/hailhydrant)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [hailhydrant](https://mapcomplete.osm.be/hailhydrant)
+
[Go to the source code](../assets/layers/ambulancestation/ambulancestation.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- emergency
- =ambulance_station
-Supported attributes
+
+ - emergency=ambulance_station
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
-[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/addr:street#values) [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/addr:place#values) [addr:place](https://wiki.openstreetmap.org/wiki/Key:addr:place) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/operator#values) [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/addr:street#values) [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/addr:place#values) [addr:place](https://wiki.openstreetmap.org/wiki/Key:addr:place) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/operator#values) [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) |
[](https://taginfo.openstreetmap.org/keys/operator:type#values) [operator:type](https://wiki.openstreetmap.org/wiki/Key:operator:type) | [string](../SpecialInputElements.md#string) | [government](https://wiki.openstreetmap.org/wiki/Tag:operator:type%3Dgovernment) [community](https://wiki.openstreetmap.org/wiki/Tag:operator:type%3Dcommunity) [ngo](https://wiki.openstreetmap.org/wiki/Tag:operator:type%3Dngo) [private](https://wiki.openstreetmap.org/wiki/Tag:operator:type%3Dprivate)
-### ambulance-name
+
+
+
+### ambulance-name
+
+
The question is **What is the name of this ambulance station?**
-This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
+This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
This is rendered with `This station is called {name}.`
-### ambulance-street
+
+
+### ambulance-street
+
+
The question is ** What is the street name where the station located?**
-This rendering asks information about the property [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street)
+This rendering asks information about the property [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street)
This is rendered with `This station is along a highway called {addr:street}.`
-### ambulance-place
+
+
+### ambulance-place
+
+
The question is **Where is the station located? (e.g. name of neighborhood, villlage, or town)**
-This rendering asks information about the property [addr:place](https://wiki.openstreetmap.org/wiki/Key:addr:place)
+This rendering asks information about the property [addr:place](https://wiki.openstreetmap.org/wiki/Key:addr:place)
This is rendered with `This station is found within {addr:place}.`
-### ambulance-agency
+
+
+### ambulance-agency
+
+
The question is **What agency operates this station?**
-This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
+This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
This is rendered with `This station is operated by {operator}.`
-### ambulance-operator-type
+
+
+
+
+
+
+
+### ambulance-operator-type
+
+
The question is **How is the station operator classified?**
-This rendering asks information about the
-property [operator:type](https://wiki.openstreetmap.org/wiki/Key:operator:type)
+This rendering asks information about the property [operator:type](https://wiki.openstreetmap.org/wiki/Key:operator:type)
This is rendered with `The operator is a(n) {operator:type} entity.`
-- **The station is operated by the government.** corresponds
- with operator:type
- =government
-- **The station is operated by a community-based, or informal organization.** corresponds
- with operator:type
- =community
-- **The station is operated by a formal group of volunteers.** corresponds
- with operator:type
- =ngo
-- **The station is privately operated.** corresponds
- with operator:type
- =private
-### images
+
+ - **The station is operated by the government.** corresponds with operator:type=government
+ - **The station is operated by a community-based, or informal organization.** corresponds with operator:type=community
+ - **The station is operated by a formal group of volunteers.** corresponds with operator:type=ngo
+ - **The station is privately operated.** corresponds with operator:type=private
+
+
+
+
+### images
+
+
_This tagrendering has no question and is thus read-only_
+
+
This document is autogenerated from assets/layers/ambulancestation/ambulancestation.json
\ No newline at end of file
diff --git a/Docs/Layers/artwork.md b/Docs/Layers/artwork.md
index 6e20a4754d..5846931e81 100644
--- a/Docs/Layers/artwork.md
+++ b/Docs/Layers/artwork.md
@@ -1,4 +1,6 @@
-artwork
+
+
+ artwork
=========
@@ -7,115 +9,142 @@ artwork
Diverse pieces of artwork
+
+
+
## Table of contents
1. [artwork](#artwork)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [artwork-artwork_type](#artwork-artwork_type)
+ [artwork-artist_name](#artwork-artist_name)
+ [artwork-website](#artwork-website)
+ [artwork-wikidata](#artwork-wikidata)
-#### Themes using this layer
-- [artwork](https://mapcomplete.osm.be/artwork)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [artwork](https://mapcomplete.osm.be/artwork)
+
[Go to the source code](../assets/layers/artwork/artwork.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- tourism
- =artwork
-Supported attributes
+
+ - tourism=artwork
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
[](https://taginfo.openstreetmap.org/keys/artwork_type#values) [artwork_type](https://wiki.openstreetmap.org/wiki/Key:artwork_type) | [string](../SpecialInputElements.md#string) | [architecture](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Darchitecture) [mural](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Dmural) [painting](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Dpainting) [sculpture](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Dsculpture) [statue](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Dstatue) [bust](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Dbust) [stone](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Dstone) [installation](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Dinstallation) [graffiti](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Dgraffiti) [relief](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Drelief) [azulejo](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Dazulejo) [tilework](https://wiki.openstreetmap.org/wiki/Tag:artwork_type%3Dtilework)
-[](https://taginfo.openstreetmap.org/keys/artist_name#values) [artist_name](https://wiki.openstreetmap.org/wiki/Key:artist_name) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
-[](https://taginfo.openstreetmap.org/keys/wikidata#values) [wikidata](https://wiki.openstreetmap.org/wiki/Key:wikidata) | [wikidata](../SpecialInputElements.md#wikidata) |
+[](https://taginfo.openstreetmap.org/keys/artist_name#values) [artist_name](https://wiki.openstreetmap.org/wiki/Key:artist_name) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
+[](https://taginfo.openstreetmap.org/keys/wikidata#values) [wikidata](https://wiki.openstreetmap.org/wiki/Key:wikidata) | [wikidata](../SpecialInputElements.md#wikidata) |
+
+
+
+
+### images
+
-### images
_This tagrendering has no question and is thus read-only_
-### artwork-artwork_type
+
+
+
+
+### artwork-artwork_type
+
+
The question is **What is the type of this artwork?**
-This rendering asks information about the property [artwork_type](https://wiki.openstreetmap.org/wiki/Key:artwork_type)
+This rendering asks information about the property [artwork_type](https://wiki.openstreetmap.org/wiki/Key:artwork_type)
This is rendered with `This is a {artwork_type}`
-- **Architecture** corresponds with
- artwork_type=
- architecture
-- **Mural** corresponds with
- artwork_type=mural
-- **Painting** corresponds with
- artwork_type=
- painting
-- **Sculpture** corresponds with
- artwork_type=
- sculpture
-- **Statue** corresponds with
- artwork_type=statue
-- **Bust** corresponds with
- artwork_type=bust
-- **Stone** corresponds with
- artwork_type=stone
-- **Installation** corresponds with
- artwork_type=
- installation
-- **Graffiti** corresponds with
- artwork_type=
- graffiti
-- **Relief** corresponds with
- artwork_type=relief
-- **Azulejo (Spanish decorative tilework)** corresponds
- with artwork_type
- =azulejo
-- **Tilework** corresponds with
- artwork_type=
- tilework
-### artwork-artist_name
+
+ - **Architecture** corresponds with artwork_type=architecture
+ - **Mural** corresponds with artwork_type=mural
+ - **Painting** corresponds with artwork_type=painting
+ - **Sculpture** corresponds with artwork_type=sculpture
+ - **Statue** corresponds with artwork_type=statue
+ - **Bust** corresponds with artwork_type=bust
+ - **Stone** corresponds with artwork_type=stone
+ - **Installation** corresponds with artwork_type=installation
+ - **Graffiti** corresponds with artwork_type=graffiti
+ - **Relief** corresponds with artwork_type=relief
+ - **Azulejo (Spanish decorative tilework)** corresponds with artwork_type=azulejo
+ - **Tilework** corresponds with artwork_type=tilework
+
+
+
+
+### artwork-artist_name
+
+
The question is **Which artist created this?**
-This rendering asks information about the property [artist_name](https://wiki.openstreetmap.org/wiki/Key:artist_name)
+This rendering asks information about the property [artist_name](https://wiki.openstreetmap.org/wiki/Key:artist_name)
This is rendered with `Created by {artist_name}`
-### artwork-website
+
+
+### artwork-website
+
+
The question is **Is there a website with more information about this artwork?**
-This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
+This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
This is rendered with `More information on this website`
-### artwork-wikidata
+
+
+### artwork-wikidata
+
+
The question is **Which Wikidata-entry corresponds with this artwork?**
-This rendering asks information about the property [wikidata](https://wiki.openstreetmap.org/wiki/Key:wikidata)
-This is rendered
-with `Corresponds with {wikidata}`
+This rendering asks information about the property [wikidata](https://wiki.openstreetmap.org/wiki/Key:wikidata)
+This is rendered with `Corresponds with {wikidata}`
This document is autogenerated from assets/layers/artwork/artwork.json
\ No newline at end of file
diff --git a/Docs/Layers/barrier.md b/Docs/Layers/barrier.md
index b57ec5627c..aff864247d 100644
--- a/Docs/Layers/barrier.md
+++ b/Docs/Layers/barrier.md
@@ -1,4 +1,6 @@
-barrier
+
+
+ barrier
=========
@@ -7,13 +9,15 @@ barrier
Obstacles while cycling, such as bollards and cycle barriers
+
+
+
## Table of contents
1. [barrier](#barrier)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [bicycle=yes/no](#bicycle=yesno)
+ [barrier_type](#barrier_type)
+ [Bollard type](#bollard-type)
@@ -24,139 +28,174 @@ Obstacles while cycling, such as bollards and cycle barriers
+ [Overlap (cyclebarrier)](#overlap-(cyclebarrier))
-- This layer will automatically load [cycleways_and_roads](./cycleways_and_roads.md) into the layout as it depends on
- it: a preset snaps to this layer (presets[0])
-- This layer will automatically load [cycleways_and_roads](./cycleways_and_roads.md) into the layout as it depends on
- it: a preset snaps to this layer (presets[1])
-#### Themes using this layer
-- [cycle_infra](https://mapcomplete.osm.be/cycle_infra)
-- [personal](https://mapcomplete.osm.be/personal)
+
+ - This layer will automatically load [cycleways_and_roads](./cycleways_and_roads.md) into the layout as it depends on it: a preset snaps to this layer (presets[0])
+ - This layer will automatically load [cycleways_and_roads](./cycleways_and_roads.md) into the layout as it depends on it: a preset snaps to this layer (presets[1])
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [cycle_infra](https://mapcomplete.osm.be/cycle_infra)
+
[Go to the source code](../assets/layers/barrier/barrier.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- barrier
- =bollard
- |barrier
- =cycle_barrier
-Supported attributes
+
+ - barrier=bollard|barrier=cycle_barrier
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
[](https://taginfo.openstreetmap.org/keys/bicycle#values) [bicycle](https://wiki.openstreetmap.org/wiki/Key:bicycle) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:bicycle%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:bicycle%3Dno)
[](https://taginfo.openstreetmap.org/keys/barrier#values) [barrier](https://wiki.openstreetmap.org/wiki/Key:barrier) | Multiple choice | [bollard](https://wiki.openstreetmap.org/wiki/Tag:barrier%3Dbollard) [cycle_barrier](https://wiki.openstreetmap.org/wiki/Tag:barrier%3Dcycle_barrier)
[](https://taginfo.openstreetmap.org/keys/bollard#values) [bollard](https://wiki.openstreetmap.org/wiki/Key:bollard) | Multiple choice | [removable](https://wiki.openstreetmap.org/wiki/Tag:bollard%3Dremovable) [fixed](https://wiki.openstreetmap.org/wiki/Tag:bollard%3Dfixed) [foldable](https://wiki.openstreetmap.org/wiki/Tag:bollard%3Dfoldable) [flexible](https://wiki.openstreetmap.org/wiki/Tag:bollard%3Dflexible) [rising](https://wiki.openstreetmap.org/wiki/Tag:bollard%3Drising)
[](https://taginfo.openstreetmap.org/keys/cycle_barrier#values) [cycle_barrier](https://wiki.openstreetmap.org/wiki/Key:cycle_barrier) | Multiple choice | [single](https://wiki.openstreetmap.org/wiki/Tag:cycle_barrier%3Dsingle) [double](https://wiki.openstreetmap.org/wiki/Tag:cycle_barrier%3Ddouble) [triple](https://wiki.openstreetmap.org/wiki/Tag:cycle_barrier%3Dtriple) [squeeze](https://wiki.openstreetmap.org/wiki/Tag:cycle_barrier%3Dsqueeze)
-[](https://taginfo.openstreetmap.org/keys/maxwidth:physical#values) [maxwidth:physical](https://wiki.openstreetmap.org/wiki/Key:maxwidth:physical) | [length](../SpecialInputElements.md#length) |
-[](https://taginfo.openstreetmap.org/keys/width:separation#values) [width:separation](https://wiki.openstreetmap.org/wiki/Key:width:separation) | [length](../SpecialInputElements.md#length) |
-[](https://taginfo.openstreetmap.org/keys/width:opening#values) [width:opening](https://wiki.openstreetmap.org/wiki/Key:width:opening) | [length](../SpecialInputElements.md#length) |
-[](https://taginfo.openstreetmap.org/keys/overlap#values) [overlap](https://wiki.openstreetmap.org/wiki/Key:overlap) | [length](../SpecialInputElements.md#length) |
+[](https://taginfo.openstreetmap.org/keys/maxwidth:physical#values) [maxwidth:physical](https://wiki.openstreetmap.org/wiki/Key:maxwidth:physical) | [length](../SpecialInputElements.md#length) |
+[](https://taginfo.openstreetmap.org/keys/width:separation#values) [width:separation](https://wiki.openstreetmap.org/wiki/Key:width:separation) | [length](../SpecialInputElements.md#length) |
+[](https://taginfo.openstreetmap.org/keys/width:opening#values) [width:opening](https://wiki.openstreetmap.org/wiki/Key:width:opening) | [length](../SpecialInputElements.md#length) |
+[](https://taginfo.openstreetmap.org/keys/overlap#values) [overlap](https://wiki.openstreetmap.org/wiki/Key:overlap) | [length](../SpecialInputElements.md#length) |
+
+
+
+
+### bicycle=yes/no
+
-### bicycle=yes/no
The question is **Can a bicycle go past this barrier?**
-- **A cyclist can go past this.** corresponds
- with bicycle
- =yes
-- **A cyclist can not go past this.** corresponds
- with bicycle
- =no
-### barrier_type
+
+
+
+ - **A cyclist can go past this.** corresponds with bicycle=yes
+ - **A cyclist can not go past this.** corresponds with bicycle=no
+
+
+
+
+### barrier_type
+
+
_This tagrendering has no question and is thus read-only_
-- **This is a single bollard in the road** corresponds
- with barrier
- =bollard
-- **This is a cycle barrier slowing down cyclists** corresponds
- with barrier
- =cycle_barrier
-### Bollard type
+
+
+
+ - **This is a single bollard in the road** corresponds with barrier=bollard
+ - **This is a cycle barrier slowing down cyclists** corresponds with barrier=cycle_barrier
+
+
+
+
+### Bollard type
+
+
The question is **What kind of bollard is this?**
-- **Removable bollard** corresponds with
- bollard=removable
-- **Fixed bollard** corresponds with
- bollard=fixed
-- **Bollard that can be folded down** corresponds
- with bollard
- =foldable
-- **Flexible bollard, usually plastic** corresponds
- with bollard
- =flexible
-- **Rising bollard** corresponds with
- bollard=rising
-### Cycle barrier type
+
+
+
+ - **Removable bollard** corresponds with bollard=removable
+ - **Fixed bollard** corresponds with bollard=fixed
+ - **Bollard that can be folded down** corresponds with bollard=foldable
+ - **Flexible bollard, usually plastic** corresponds with bollard=flexible
+ - **Rising bollard** corresponds with bollard=rising
+
+
+
+
+### Cycle barrier type
+
+
The question is **What kind of cycling barrier is this?**
-- **Single, just two barriers with a space
- inbetween ** corresponds
- with cycle_barrier
- =single
-- **Double, two barriers behind each
- other ** corresponds
- with cycle_barrier
- =double
-- **Triple, three barriers behind each
- other ** corresponds
- with cycle_barrier
- =triple
-- **Squeeze gate, gap is smaller at top, than at the
- bottom ** corresponds
- with cycle_barrier
- =squeeze
-### MaxWidth
+
+
+
+ - **Single, just two barriers with a space inbetween ** corresponds with cycle_barrier=single
+ - **Double, two barriers behind each other ** corresponds with cycle_barrier=double
+ - **Triple, three barriers behind each other ** corresponds with cycle_barrier=triple
+ - **Squeeze gate, gap is smaller at top, than at the bottom ** corresponds with cycle_barrier=squeeze
+
+
+
+
+### MaxWidth
+
+
The question is **How wide is the gap left over besides the barrier?**
-This rendering asks information about the
-property [maxwidth:physical](https://wiki.openstreetmap.org/wiki/Key:maxwidth:physical)
+This rendering asks information about the property [maxwidth:physical](https://wiki.openstreetmap.org/wiki/Key:maxwidth:physical)
This is rendered with `Maximum width: {maxwidth:physical} m`
-### Space between barrier (cyclebarrier)
+
+
+### Space between barrier (cyclebarrier)
+
+
The question is **How much space is there between the barriers (along the length of the road)?**
-This rendering asks information about the
-property [width:separation](https://wiki.openstreetmap.org/wiki/Key:width:separation)
+This rendering asks information about the property [width:separation](https://wiki.openstreetmap.org/wiki/Key:width:separation)
This is rendered with `Space between barriers (along the length of the road): {width:separation} m`
-### Width of opening (cyclebarrier)
+
+
+### Width of opening (cyclebarrier)
+
+
The question is **How wide is the smallest opening next to the barriers?**
-This rendering asks information about the
-property [width:opening](https://wiki.openstreetmap.org/wiki/Key:width:opening)
+This rendering asks information about the property [width:opening](https://wiki.openstreetmap.org/wiki/Key:width:opening)
This is rendered with `Width of opening: {width:opening} m`
-### Overlap (cyclebarrier)
+
+
+### Overlap (cyclebarrier)
+
+
The question is **How much overlap do the barriers have?**
-This rendering asks information about the property [overlap](https://wiki.openstreetmap.org/wiki/Key:overlap)
-This is rendered with `Overlap: {overlap} m`
+This rendering asks information about the property [overlap](https://wiki.openstreetmap.org/wiki/Key:overlap)
+This is rendered with `Overlap: {overlap} m`
This document is autogenerated from assets/layers/barrier/barrier.json
\ No newline at end of file
diff --git a/Docs/Layers/bench.md b/Docs/Layers/bench.md
index fd52ffff4c..553369ea3c 100644
--- a/Docs/Layers/bench.md
+++ b/Docs/Layers/bench.md
@@ -1,20 +1,23 @@
-bench
+
+
+ bench
=======
-A bench is a wooden, metal, stone, ... surface where a human can sit. This layers visualises them and asks a few
-questions about them.
+A bench is a wooden, metal, stone, ... surface where a human can sit. This layers visualises them and asks a few questions about them.
+
+
+
## Table of contents
1. [bench](#bench)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [bench-backrest](#bench-backrest)
+ [bench-seats](#bench-seats)
@@ -23,120 +26,168 @@ questions about them.
+ [bench-colour](#bench-colour)
+ [bench-survey:date](#bench-surveydate)
-#### Themes using this layer
-- [benches](https://mapcomplete.osm.be/benches)
-- [nature](https://mapcomplete.osm.be/nature)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [benches](https://mapcomplete.osm.be/benches)
+ - [nature](https://mapcomplete.osm.be/nature)
+
[Go to the source code](../assets/layers/bench/bench.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- amenity
- =bench
-Supported attributes
+
+ - amenity=bench
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
[](https://taginfo.openstreetmap.org/keys/backrest#values) [backrest](https://wiki.openstreetmap.org/wiki/Key:backrest) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dno)
-[](https://taginfo.openstreetmap.org/keys/seats#values) [seats](https://wiki.openstreetmap.org/wiki/Key:seats) | [nat](../SpecialInputElements.md#nat) |
+[](https://taginfo.openstreetmap.org/keys/seats#values) [seats](https://wiki.openstreetmap.org/wiki/Key:seats) | [nat](../SpecialInputElements.md#nat) |
[](https://taginfo.openstreetmap.org/keys/material#values) [material](https://wiki.openstreetmap.org/wiki/Key:material) | [string](../SpecialInputElements.md#string) | [wood](https://wiki.openstreetmap.org/wiki/Tag:material%3Dwood) [metal](https://wiki.openstreetmap.org/wiki/Tag:material%3Dmetal) [stone](https://wiki.openstreetmap.org/wiki/Tag:material%3Dstone) [concrete](https://wiki.openstreetmap.org/wiki/Tag:material%3Dconcrete) [plastic](https://wiki.openstreetmap.org/wiki/Tag:material%3Dplastic) [steel](https://wiki.openstreetmap.org/wiki/Tag:material%3Dsteel)
-[](https://taginfo.openstreetmap.org/keys/direction#values) [direction](https://wiki.openstreetmap.org/wiki/Key:direction) | [direction](../SpecialInputElements.md#direction) |
+[](https://taginfo.openstreetmap.org/keys/direction#values) [direction](https://wiki.openstreetmap.org/wiki/Key:direction) | [direction](../SpecialInputElements.md#direction) |
[](https://taginfo.openstreetmap.org/keys/colour#values) [colour](https://wiki.openstreetmap.org/wiki/Key:colour) | [color](../SpecialInputElements.md#color) | [brown](https://wiki.openstreetmap.org/wiki/Tag:colour%3Dbrown) [green](https://wiki.openstreetmap.org/wiki/Tag:colour%3Dgreen) [gray](https://wiki.openstreetmap.org/wiki/Tag:colour%3Dgray) [white](https://wiki.openstreetmap.org/wiki/Tag:colour%3Dwhite) [red](https://wiki.openstreetmap.org/wiki/Tag:colour%3Dred) [black](https://wiki.openstreetmap.org/wiki/Tag:colour%3Dblack) [blue](https://wiki.openstreetmap.org/wiki/Tag:colour%3Dblue) [yellow](https://wiki.openstreetmap.org/wiki/Tag:colour%3Dyellow)
[](https://taginfo.openstreetmap.org/keys/survey:date#values) [survey:date](https://wiki.openstreetmap.org/wiki/Key:survey:date) | [date](../SpecialInputElements.md#date) | [](https://wiki.openstreetmap.org/wiki/Tag:survey:date%3D)
-### images
+
+
+
+### images
+
+
_This tagrendering has no question and is thus read-only_
-### bench-backrest
+
+
+
+
+### bench-backrest
+
+
The question is **Does this bench have a backrest?**
-- **Backrest: Yes** corresponds with
- backrest=yes
-- **Backrest: No** corresponds with
- backrest=no
-### bench-seats
+
+
+
+ - **Backrest: Yes** corresponds with backrest=yes
+ - **Backrest: No** corresponds with backrest=no
+
+
+
+
+### bench-seats
+
+
The question is **How many seats does this bench have?**
-This rendering asks information about the property [seats](https://wiki.openstreetmap.org/wiki/Key:seats)
+This rendering asks information about the property [seats](https://wiki.openstreetmap.org/wiki/Key:seats)
This is rendered with `{seats} seats`
-### bench-material
+
+
+### bench-material
+
+
The question is **What is the bench (seating) made from?**
-This rendering asks information about the property [material](https://wiki.openstreetmap.org/wiki/Key:material)
+This rendering asks information about the property [material](https://wiki.openstreetmap.org/wiki/Key:material)
This is rendered with `Material: {material}`
-- **Material: wood** corresponds with
- material=wood
-- **Material: metal** corresponds with
- material=metal
-- **Material: stone** corresponds with
- material=stone
-- **Material: concrete** corresponds with
- material=concrete
-- **Material: plastic** corresponds with
- material=plastic
-- **Material: steel** corresponds with
- material=steel
-### bench-direction
+
+ - **Material: wood** corresponds with material=wood
+ - **Material: metal** corresponds with material=metal
+ - **Material: stone** corresponds with material=stone
+ - **Material: concrete** corresponds with material=concrete
+ - **Material: plastic** corresponds with material=plastic
+ - **Material: steel** corresponds with material=steel
+
+
+
+
+### bench-direction
+
+
The question is **In which direction are you looking when sitting on the bench?**
-This rendering asks information about the property [direction](https://wiki.openstreetmap.org/wiki/Key:direction)
+This rendering asks information about the property [direction](https://wiki.openstreetmap.org/wiki/Key:direction)
This is rendered with `When sitting on the bench, one looks towards {direction}°.`
-### bench-colour
+
+
+### bench-colour
+
+
The question is **Which colour does this bench have?**
-This rendering asks information about the property [colour](https://wiki.openstreetmap.org/wiki/Key:colour)
+This rendering asks information about the property [colour](https://wiki.openstreetmap.org/wiki/Key:colour)
This is rendered with `Colour: {colour}`
-- **Colour: brown** corresponds with colour
- =brown
-- **Colour: green** corresponds with colour
- =green
-- **Colour: gray** corresponds with colour
- =gray
-- **Colour: white** corresponds with colour
- =white
-- **Colour: red** corresponds with colour
- =red
-- **Colour: black** corresponds with colour
- =black
-- **Colour: blue** corresponds with colour
- =blue
-- **Colour: yellow** corresponds with
- colour=yellow
-### bench-survey:date
+
+ - **Colour: brown** corresponds with colour=brown
+ - **Colour: green** corresponds with colour=green
+ - **Colour: gray** corresponds with colour=gray
+ - **Colour: white** corresponds with colour=white
+ - **Colour: red** corresponds with colour=red
+ - **Colour: black** corresponds with colour=black
+ - **Colour: blue** corresponds with colour=blue
+ - **Colour: yellow** corresponds with colour=yellow
+
+
+
+
+### bench-survey:date
+
+
The question is **When was this bench last surveyed?**
-This rendering asks information about the property [survey:date](https://wiki.openstreetmap.org/wiki/Key:survey:date)
+This rendering asks information about the property [survey:date](https://wiki.openstreetmap.org/wiki/Key:survey:date)
This is rendered with `This bench was last surveyed on {survey:date}`
-- **Surveyed today!** corresponds with survey:date=
+
+
+ - **Surveyed today!** corresponds with survey:date=
+
This document is autogenerated from assets/layers/bench/bench.json
\ No newline at end of file
diff --git a/Docs/Layers/bench_at_pt.md b/Docs/Layers/bench_at_pt.md
index 979e1713b0..4653d1311c 100644
--- a/Docs/Layers/bench_at_pt.md
+++ b/Docs/Layers/bench_at_pt.md
@@ -1,4 +1,6 @@
-bench_at_pt
+
+
+ bench_at_pt
=============
@@ -7,71 +9,106 @@ bench_at_pt
A layer showing all public-transport-stops which do have a bench
+
+
+
## Table of contents
1. [bench_at_pt](#bench_at_pt)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [bench_at_pt-name](#bench_at_pt-name)
+ [bench_at_pt-bench_type](#bench_at_pt-bench_type)
-#### Themes using this layer
-- [benches](https://mapcomplete.osm.be/benches)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [benches](https://mapcomplete.osm.be/benches)
+
[Go to the source code](../assets/layers/bench_at_pt/bench_at_pt.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- bench
- =yes
- |bench
- =stand_up_bench
-Supported attributes
+
+ - bench=yes|bench=stand_up_bench
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
-[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
[](https://taginfo.openstreetmap.org/keys/bench#values) [bench](https://wiki.openstreetmap.org/wiki/Key:bench) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:bench%3Dyes) [stand_up_bench](https://wiki.openstreetmap.org/wiki/Tag:bench%3Dstand_up_bench) [no](https://wiki.openstreetmap.org/wiki/Tag:bench%3Dno)
-### images
+
+
+
+### images
+
+
_This tagrendering has no question and is thus read-only_
-### bench_at_pt-name
+
+
+
+
+### bench_at_pt-name
+
+
_This tagrendering has no question and is thus read-only_
-This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
+This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
This is rendered with `{name}`
-### bench_at_pt-bench_type
+
+
+### bench_at_pt-bench_type
+
+
The question is **What kind of bench is this?**
-- **There is a normal, sit-down bench here** corresponds
- with bench
- =yes
-- **Stand up bench** corresponds with bench
- =stand_up_bench
-- **There is no bench here** corresponds with
- bench=no
+
+
+
+
+ - **There is a normal, sit-down bench here** corresponds with bench=yes
+ - **Stand up bench** corresponds with bench=stand_up_bench
+ - **There is no bench here** corresponds with bench=no
+
This document is autogenerated from assets/layers/bench_at_pt/bench_at_pt.json
\ No newline at end of file
diff --git a/Docs/Layers/bicycle_library.md b/Docs/Layers/bicycle_library.md
index 7e7a1045a0..e3017e3e15 100644
--- a/Docs/Layers/bicycle_library.md
+++ b/Docs/Layers/bicycle_library.md
@@ -1,19 +1,23 @@
-bicycle_library
+
+
+ bicycle_library
=================
-
+
A facility where bicycles can be lent for longer period of times
+
+
+
## Table of contents
1. [bicycle_library](#bicycle_library)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [bicycle_library-name](#bicycle_library-name)
+ [website](#website)
@@ -24,129 +28,187 @@ A facility where bicycles can be lent for longer period of times
+ [bicycle-library-target-group](#bicycle-library-target-group)
+ [description](#description)
-#### Themes using this layer
-- [bicyclelib](https://mapcomplete.osm.be/bicyclelib)
-- [cyclofix](https://mapcomplete.osm.be/cyclofix)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [bicyclelib](https://mapcomplete.osm.be/bicyclelib)
+ - [cyclofix](https://mapcomplete.osm.be/cyclofix)
+
[Go to the source code](../assets/layers/bicycle_library/bicycle_library.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- amenity
- =bicycle_library
-Supported attributes
+
+ - amenity=bicycle_library
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
-[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
-[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
-[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
-[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
+[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
+[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
+[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
+[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
[](https://taginfo.openstreetmap.org/keys/charge#values) [charge](https://wiki.openstreetmap.org/wiki/Key:charge) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:charge%3D) [€20warranty + €20/year](https://wiki.openstreetmap.org/wiki/Tag:charge%3D€20warranty + €20/year)
[](https://taginfo.openstreetmap.org/keys/bicycle_library:for#values) [bicycle_library:for](https://wiki.openstreetmap.org/wiki/Key:bicycle_library:for) | Multiple choice | [child](https://wiki.openstreetmap.org/wiki/Tag:bicycle_library:for%3Dchild) [adult](https://wiki.openstreetmap.org/wiki/Tag:bicycle_library:for%3Dadult) [disabled](https://wiki.openstreetmap.org/wiki/Tag:bicycle_library:for%3Ddisabled)
-[](https://taginfo.openstreetmap.org/keys/description#values) [description](https://wiki.openstreetmap.org/wiki/Key:description) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/description#values) [description](https://wiki.openstreetmap.org/wiki/Key:description) | [string](../SpecialInputElements.md#string) |
+
+
+
+
+### images
+
-### images
_This tagrendering has no question and is thus read-only_
-### bicycle_library-name
+
+
+
+
+### bicycle_library-name
+
+
The question is **What is the name of this bicycle library?**
-This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
+This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
This is rendered with `This bicycle library is called {name}`
-### website
+
+
+### website
+
+
The question is **What is the website of {name}?**
-This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
+This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
This is rendered with `{website}`
-- **{contact:website}** corresponds with contact:website~^..*$_This
- option cannot be chosen as answer_
-### phone
+
+ - **{contact:website}** corresponds with contact:website~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### phone
+
+
The question is **What is the phone number of {name}?**
-This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
+This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
This is rendered with `{phone}`
-- **{contact:phone}** corresponds with contact:phone~^..*$_This option cannot be
- chosen as answer_
-### email
+
+ - **{contact:phone}** corresponds with contact:phone~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### email
+
+
The question is **What is the email address of {name}?**
-This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
+This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
This is rendered with `{email}`
-- **{contact:email}** corresponds with contact:email~^..*$_This
- option cannot be chosen as answer_
-### opening_hours
+
+ - **{contact:email}** corresponds with contact:email~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### opening_hours
+
+
The question is **What are the opening hours of {name}?**
-This rendering asks information about the
-property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
+This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
This is rendered with `
Opening hours
{opening_hours_table(opening_hours)}`
-### bicycle_library-charge
+
+
+### bicycle_library-charge
+
+
The question is **How much does lending a bicycle cost?**
-This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
+This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
This is rendered with `Lending a bicycle costs {charge}`
-- **Lending a bicycle is free** corresponds with
- fee=no
-- **Lending a bicycle costs €20/year and €20 warranty** corresponds
- with fee
- =yes
- &charge
- =€20warranty +
- €20/year
-### bicycle-library-target-group
+
+ - **Lending a bicycle is free** corresponds with fee=no
+ - **Lending a bicycle costs €20/year and €20 warranty** corresponds with fee=yes&charge=€20warranty + €20/year
+
+
+
+
+### bicycle-library-target-group
+
+
The question is **Who can lend bicycles here?**
-- **Bikes for children available** corresponds
- with bicycle_library:for
- =child
-- **Bikes for adult available** corresponds
- with bicycle_library:for
- =adult
-- **Bikes for disabled persons available** corresponds
- with bicycle_library:for
- =disabled
-### description
-The question is **Is there still something relevant you couldn't give in the previous questions? Add it
-here. Don't repeat already stated facts**
-This rendering asks information about the property [description](https://wiki.openstreetmap.org/wiki/Key:description)
-This is rendered with `{description}`
+
+ - **Bikes for children available** corresponds with bicycle_library:for=child
+ - **Bikes for adult available** corresponds with bicycle_library:for=adult
+ - **Bikes for disabled persons available** corresponds with bicycle_library:for=disabled
+
+
+
+
+### description
+
+
+
+The question is **Is there still something relevant you couldn't give in the previous questions? Add it here. Don't repeat already stated facts**
+
+This rendering asks information about the property [description](https://wiki.openstreetmap.org/wiki/Key:description)
+This is rendered with `{description}`
This document is autogenerated from assets/layers/bicycle_library/bicycle_library.json
\ No newline at end of file
diff --git a/Docs/Layers/bicycle_rental.md b/Docs/Layers/bicycle_rental.md
index 5ea76a073b..e818dd0a5d 100644
--- a/Docs/Layers/bicycle_rental.md
+++ b/Docs/Layers/bicycle_rental.md
@@ -1,4 +1,6 @@
-bicycle_rental
+
+
+ bicycle_rental
================
@@ -7,13 +9,15 @@ bicycle_rental
Bicycle rental stations
+
+
+
## Table of contents
1. [bicycle_rental](#bicycle_rental)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [bicycle_rental_type](#bicycle_rental_type)
+ [website](#website)
+ [email](#email)
@@ -35,252 +39,323 @@ Bicycle rental stations
+ [rental-capacity-bicycle-type](#rental-capacity-bicycle-type)
+ [questions](#questions)
-#### Themes using this layer
-- [bicycle_rental](https://mapcomplete.osm.be/bicycle_rental)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [bicycle_rental](https://mapcomplete.osm.be/bicycle_rental)
+
[Go to the source code](../assets/layers/bicycle_rental/bicycle_rental.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- amenity
- =bicycle_rental
- |bicycle_rental~^..*$|
- service:bicycle:rental
- =yes|rental~^.*
- bicycle.*$
-Supported attributes
+
+ - amenity=bicycle_rental|bicycle_rental~^..*$|service:bicycle:rental=yes|rental~^.*bicycle.*$
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
-[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
-[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
-[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
-[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
+[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
+[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
+[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
+[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
[](https://taginfo.openstreetmap.org/keys/rental#values) [rental](https://wiki.openstreetmap.org/wiki/Key:rental) | [string](../SpecialInputElements.md#string) | [city_bike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dcity_bike) [ebike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Debike) [bmx](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dbmx) [mtb](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dmtb) [kid_bike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dkid_bike)
-[](https://taginfo.openstreetmap.org/keys/capacity:city_bike#values) [capacity:city_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:city_bike) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/capacity:ebike#values) [capacity:ebike](https://wiki.openstreetmap.org/wiki/Key:capacity:ebike) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/capacity:kid_bike#values) [capacity:kid_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:kid_bike) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/capacity:bmx#values) [capacity:bmx](https://wiki.openstreetmap.org/wiki/Key:capacity:bmx) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/capacity:mtb#values) [capacity:mtb](https://wiki.openstreetmap.org/wiki/Key:capacity:mtb) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/capacity:bicycle_pannier#values) [capacity:bicycle_pannier](https://wiki.openstreetmap.org/wiki/Key:capacity:bicycle_pannier) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/capacity:city_bike#values) [capacity:city_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:city_bike) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/capacity:ebike#values) [capacity:ebike](https://wiki.openstreetmap.org/wiki/Key:capacity:ebike) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/capacity:kid_bike#values) [capacity:kid_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:kid_bike) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/capacity:bmx#values) [capacity:bmx](https://wiki.openstreetmap.org/wiki/Key:capacity:bmx) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/capacity:mtb#values) [capacity:mtb](https://wiki.openstreetmap.org/wiki/Key:capacity:mtb) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/capacity:bicycle_pannier#values) [capacity:bicycle_pannier](https://wiki.openstreetmap.org/wiki/Key:capacity:bicycle_pannier) | [pnat](../SpecialInputElements.md#pnat) |
+
+
+
+
+### bicycle_rental_type
+
-### bicycle_rental_type
The question is **What kind of bicycle rental is this?**
-- **This is a shop whose main focus is bicycle rental** corresponds
- with shop
- =bicycle_rental
- &bicycle_rental
- =shop
-- **This is a rental buisiness which rents out various objects and/or vehicles. It rents out bicycles too, but this is
- not the main focus** corresponds with shop
- =rental_This option cannot be
- chosen as answer_
-- **This is a shop which sells or repairs bicycles, but also rents out bicycles** corresponds
- with service:bicycle:
- rental=yes
- &shop
- =bicycle
-- **This is an automated docking station, where a bicycle is mechanically locked into a structure** corresponds
- with bicycle_rental
- =
- docking_station
-- **A machine is present which dispenses and accepts keys, eventually after authentication and/or payment. The bicycles
- are parked nearby** corresponds with
- bicycle_rental
- =
- key_dispensing_machine
-- **This is a dropoff point: a designated bicycle parking for this cycle rental** corresponds
- with bicycle_rental
- =dropoff_point
-### website
+
+
+
+ - **This is a shop whose main focus is bicycle rental** corresponds with shop=bicycle_rental&bicycle_rental=shop
+ - **This is a rental buisiness which rents out various objects and/or vehicles. It rents out bicycles too, but this is not the main focus** corresponds with shop=rental_This option cannot be chosen as answer_
+ - **This is a shop which sells or repairs bicycles, but also rents out bicycles** corresponds with service:bicycle:rental=yes&shop=bicycle
+ - **This is an automated docking station, where a bicycle is mechanically locked into a structure** corresponds with bicycle_rental=docking_station
+ - **A machine is present which dispenses and accepts keys, eventually after authentication and/or payment. The bicycles are parked nearby** corresponds with bicycle_rental=key_dispensing_machine
+ - **This is a dropoff point: a designated bicycle parking for this cycle rental** corresponds with bicycle_rental=dropoff_point
+
+
+
+
+### website
+
+
The question is **What is the website of {name}?**
-This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
+This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
This is rendered with `{website}`
-- **{contact:website}** corresponds with contact:website~^..*$_This
- option cannot be chosen as answer_
-### email
+
+ - **{contact:website}** corresponds with contact:website~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### email
+
+
The question is **What is the email address of {name}?**
-This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
+This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
This is rendered with `{email}`
-- **{contact:email}** corresponds with contact:email~^..*$_This
- option cannot be chosen as answer_
-### phone
+
+ - **{contact:email}** corresponds with contact:email~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### phone
+
+
The question is **What is the phone number of {name}?**
-This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
+This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
This is rendered with `{phone}`
-- **{contact:phone}** corresponds with contact:phone~^..*$_This option cannot be
- chosen as answer_
-### opening_hours
+
+ - **{contact:phone}** corresponds with contact:phone~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### opening_hours
+
+
The question is **What are the opening hours of {name}?**
-This rendering asks information about the
-property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
+This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
This is rendered with `
Opening hours
{opening_hours_table(opening_hours)}`
-### payment-options
+
+
+### payment-options
+
+
The question is **Which methods of payment are accepted here?**
-- **Cash is accepted here** corresponds
- with payment:cash
- =yesUnselecting this answer
- will add payment:cash
- =no
-- **Payment cards are accepted here** corresponds
- with payment:cards
- =yesUnselecting this answer
- will add payment:cards
- =no
-### payment-options-advanced
+
+
+
+ - **Cash is accepted here** corresponds with payment:cash=yesUnselecting this answer will add payment:cash=no
+ - **Payment cards are accepted here** corresponds with payment:cards=yesUnselecting this answer will add payment:cards=no
+
+
+
+
+### payment-options-advanced
+
+
The question is **Which methods of payment are accepted here?**
-- **Cash is accepted here** corresponds
- with payment:cash
- =yesUnselecting this answer
- will add payment:cash
- =no
-- **Payment cards are accepted here** corresponds
- with payment:cards
- =yesUnselecting this answer
- will add payment:cards
- =no
-- **Payment is done using a dedicated app** corresponds
- with payment:app
- =yesUnselecting this answer
- will add payment:app
- =no
-- **Payment is done using a membership card** corresponds
- with payment:
- membership_card=
- yesUnselecting this answer will
- add payment:
- membership_card=
- no
-### bicycle-types
+
+
+
+ - **Cash is accepted here** corresponds with payment:cash=yesUnselecting this answer will add payment:cash=no
+ - **Payment cards are accepted here** corresponds with payment:cards=yesUnselecting this answer will add payment:cards=no
+ - **Payment is done using a dedicated app** corresponds with payment:app=yesUnselecting this answer will add payment:app=no
+ - **Payment is done using a membership card** corresponds with payment:membership_card=yesUnselecting this answer will add payment:membership_card=no
+
+
+
+
+### bicycle-types
+
+
The question is **What kind of bicycles and accessories are rented here?**
-This rendering asks information about the property [rental](https://wiki.openstreetmap.org/wiki/Key:rental)
+This rendering asks information about the property [rental](https://wiki.openstreetmap.org/wiki/Key:rental)
This is rendered with `{rental} is rented here`
-- **Normal city bikes can be rented here** corresponds
- with rental
- =city_bike
-- **Electrical bikes can be rented here** corresponds
- with rental
- =ebike
-- **BMX bikes can be rented here** corresponds
- with rental
- =bmx
-- **Mountainbikes can be rented here** corresponds
- with rental
- =mtb
-- **Bikes for childs can be rented here** corresponds
- with rental
- =kid_bike
-### rental-capacity-bicycle-type
+
+ - **Normal city bikes can be rented here** corresponds with rental=city_bike
+ - **Electrical bikes can be rented here** corresponds with rental=ebike
+ - **BMX bikes can be rented here** corresponds with rental=bmx
+ - **Mountainbikes can be rented here** corresponds with rental=mtb
+ - **Bikes for childs can be rented here** corresponds with rental=kid_bike
+
+
+
+
+### rental-capacity-bicycle-type
+
+
The question is **How much city bikes can be rented here? **
-This rendering asks information about the
-property [capacity:city_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:city_bike)
+This rendering asks information about the property [capacity:city_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:city_bike)
This is rendered with `{capacity:city_bike} city bikes can be rented here`
-### questions
+
+
+### questions
+
+
_This tagrendering has no question and is thus read-only_
-### rental-capacity-bicycle-type
+
+
+
+
+### rental-capacity-bicycle-type
+
+
The question is **How much electrical bikes can be rented here? **
-This rendering asks information about the
-property [capacity:ebike](https://wiki.openstreetmap.org/wiki/Key:capacity:ebike)
+This rendering asks information about the property [capacity:ebike](https://wiki.openstreetmap.org/wiki/Key:capacity:ebike)
This is rendered with `{capacity:ebike} electrical bikes can be rented here`
-### questions
+
+
+### questions
+
+
_This tagrendering has no question and is thus read-only_
-### rental-capacity-bicycle-type
+
+
+
+
+### rental-capacity-bicycle-type
+
+
The question is **How much bikes for children can be rented here? **
-This rendering asks information about the
-property [capacity:kid_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:kid_bike)
+This rendering asks information about the property [capacity:kid_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:kid_bike)
This is rendered with `{capacity:kid_bike} bikes for children can be rented here`
-### questions
+
+
+### questions
+
+
_This tagrendering has no question and is thus read-only_
-### rental-capacity-bicycle-type
+
+
+
+
+### rental-capacity-bicycle-type
+
+
The question is **How much BMX bikes can be rented here? **
-This rendering asks information about the property [capacity:bmx](https://wiki.openstreetmap.org/wiki/Key:capacity:bmx)
+This rendering asks information about the property [capacity:bmx](https://wiki.openstreetmap.org/wiki/Key:capacity:bmx)
This is rendered with `{capacity:bmx} BMX bikes can be rented here`
-### questions
+
+
+### questions
+
+
_This tagrendering has no question and is thus read-only_
-### rental-capacity-bicycle-type
+
+
+
+
+### rental-capacity-bicycle-type
+
+
The question is **How much mountainbike can be rented here? **
-This rendering asks information about the property [capacity:mtb](https://wiki.openstreetmap.org/wiki/Key:capacity:mtb)
+This rendering asks information about the property [capacity:mtb](https://wiki.openstreetmap.org/wiki/Key:capacity:mtb)
This is rendered with `{capacity:mtb} mountainbike can be rented here`
-### questions
+
+
+### questions
+
+
_This tagrendering has no question and is thus read-only_
-### rental-capacity-bicycle-type
+
+
+
+
+### rental-capacity-bicycle-type
+
+
The question is **How much bicycle panniers can be rented here? **
-This rendering asks information about the
-property [capacity:bicycle_pannier](https://wiki.openstreetmap.org/wiki/Key:capacity:bicycle_pannier)
+This rendering asks information about the property [capacity:bicycle_pannier](https://wiki.openstreetmap.org/wiki/Key:capacity:bicycle_pannier)
This is rendered with `{capacity:bicycle_pannier} bicycle panniers can be rented here`
-### questions
+
+
+### questions
+
+
_This tagrendering has no question and is thus read-only_
+
+
This document is autogenerated from assets/layers/bicycle_rental/bicycle_rental.json
\ No newline at end of file
diff --git a/Docs/Layers/bicycle_tube_vending_machine.md b/Docs/Layers/bicycle_tube_vending_machine.md
index 2e36758b04..77a05e667c 100644
--- a/Docs/Layers/bicycle_tube_vending_machine.md
+++ b/Docs/Layers/bicycle_tube_vending_machine.md
@@ -1,21 +1,23 @@
-bicycle_tube_vending_machine
+
+
+ bicycle_tube_vending_machine
==============================
-
+
+
+A layer showing vending machines for bicycle tubes (either purpose-built bicycle tube vending machines or classical vending machines with bicycle tubes and optionally additional bicycle related objects such as lights, gloves, locks, ...)
+
+
-A layer showing vending machines for bicycle tubes (either purpose-built bicycle tube vending machines or classical
-vending machines with bicycle tubes and optionally additional bicycle related objects such as lights, gloves, locks,
-...)
## Table of contents
1. [bicycle_tube_vending_machine](#bicycle_tube_vending_machine)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [Still in use?](#still-in-use)
+ [bicycle_tube_vending_machine-charge](#bicycle_tube_vending_machine-charge)
@@ -24,145 +26,167 @@ vending machines with bicycle tubes and optionally additional bicycle related ob
+ [bicycle_tube_vending_machine-operator](#bicycle_tube_vending_machine-operator)
+ [bicycle_tube_vending_maching-other-items](#bicycle_tube_vending_maching-other-items)
-#### Themes using this layer
-- [cyclofix](https://mapcomplete.osm.be/cyclofix)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [cyclofix](https://mapcomplete.osm.be/cyclofix)
+
[Go to the source code](../assets/layers/bicycle_tube_vending_machine/bicycle_tube_vending_machine.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- amenity
- =vending_machine
-- vending~^.*bicycle_tube.*$
-Supported attributes
+
+ - amenity=vending_machine
+ - vending~^.*bicycle_tube.*$
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
[](https://taginfo.openstreetmap.org/keys/operational_status#values) [operational_status](https://wiki.openstreetmap.org/wiki/Key:operational_status) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:operational_status%3D) [broken](https://wiki.openstreetmap.org/wiki/Tag:operational_status%3Dbroken) [closed](https://wiki.openstreetmap.org/wiki/Tag:operational_status%3Dclosed)
-[](https://taginfo.openstreetmap.org/keys/charge#values) [charge](https://wiki.openstreetmap.org/wiki/Key:charge) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/charge#values) [charge](https://wiki.openstreetmap.org/wiki/Key:charge) | [string](../SpecialInputElements.md#string) |
[](https://taginfo.openstreetmap.org/keys/brand#values) [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | [Continental](https://wiki.openstreetmap.org/wiki/Tag:brand%3DContinental) [Schwalbe](https://wiki.openstreetmap.org/wiki/Tag:brand%3DSchwalbe)
[](https://taginfo.openstreetmap.org/keys/operator#values) [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) | [Schwalbe](https://wiki.openstreetmap.org/wiki/Tag:operator%3DSchwalbe) [Continental](https://wiki.openstreetmap.org/wiki/Tag:operator%3DContinental)
-### images
+
+
+
+### images
+
+
_This tagrendering has no question and is thus read-only_
-### Still in use?
+
+
+
+
+### Still in use?
+
+
The question is **Is this vending machine still operational?**
-This rendering asks information about the
-property [operational_status](https://wiki.openstreetmap.org/wiki/Key:operational_status)
+This rendering asks information about the property [operational_status](https://wiki.openstreetmap.org/wiki/Key:operational_status)
This is rendered with `The operational status is {operational_status}`
-- **This vending machine works** corresponds with
-- **This vending machine is broken** corresponds
- with operational_status
- =broken
-- **This vending machine is closed** corresponds
- with operational_status
- =closed
-### bicycle_tube_vending_machine-charge
+
+ - **This vending machine works** corresponds with
+ - **This vending machine is broken** corresponds with operational_status=broken
+ - **This vending machine is closed** corresponds with operational_status=closed
+
+
+
+
+### bicycle_tube_vending_machine-charge
+
+
The question is **How much does a bicycle tube cost?**
-This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
+This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
This is rendered with `A bicycle tube costs {charge}`
-### vending-machine-payment-methods
+
+
+### vending-machine-payment-methods
+
+
The question is **How can one pay at this tube vending machine?**
-- **Payment with coins is possible** corresponds
- with payment:coins
- =yesUnselecting this answer
- will add payment:coins
- =no
-- **Payment with notes is possible** corresponds
- with payment:notes
- =yesUnselecting this answer
- will add payment:notes
- =no
-- **Payment with cards is possible** corresponds
- with payment:cards
- =yesUnselecting this answer
- will add payment:cards
- =no
-### bicycle_tube_vending_machine-brand
+
+
+
+ - **Payment with coins is possible** corresponds with payment:coins=yesUnselecting this answer will add payment:coins=no
+ - **Payment with notes is possible** corresponds with payment:notes=yesUnselecting this answer will add payment:notes=no
+ - **Payment with cards is possible** corresponds with payment:cards=yesUnselecting this answer will add payment:cards=no
+
+
+
+
+### bicycle_tube_vending_machine-brand
+
+
The question is **Which brand of tubes are sold here?**
-This rendering asks information about the property [brand](https://wiki.openstreetmap.org/wiki/Key:brand)
+This rendering asks information about the property [brand](https://wiki.openstreetmap.org/wiki/Key:brand)
This is rendered with `{brand} tubes are sold here`
-- **Continental tubes are sold here** corresponds
- with brand
- =Continental
-- **Schwalbe tubes are sold here** corresponds
- with brand
- =Schwalbe
-### bicycle_tube_vending_machine-operator
+
+ - **Continental tubes are sold here** corresponds with brand=Continental
+ - **Schwalbe tubes are sold here** corresponds with brand=Schwalbe
+
+
+
+
+### bicycle_tube_vending_machine-operator
+
+
The question is **Who maintains this vending machine?**
-This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
+This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
This is rendered with `This vending machine is maintained by {operator}`
-- **Maintained by Schwalbe** corresponds
- with operator
- =Schwalbe
-- **Maintained by Continental** corresponds
- with operator
- =Continental
-### bicycle_tube_vending_maching-other-items
+
+ - **Maintained by Schwalbe** corresponds with operator=Schwalbe
+ - **Maintained by Continental** corresponds with operator=Continental
+
+
+
+
+### bicycle_tube_vending_maching-other-items
+
+
The question is **Are other bicycle bicycle accessories sold here?**
-- **Bicycle lights are sold here** corresponds
- with vending:bicycle_light
- =yesUnselecting this
- answer will add vending:
- bicycle_light=no
-- **Gloves are sold here** corresponds
- with vending:gloves
- =yesUnselecting this answer
- will add vending:gloves
- =no
-- **Bicycle repair kits are sold here** corresponds
- with vending:
- bicycle_repair_kit
- =yesUnselecting
- this answer will add
- vending:bicycle_repair_kit
- =no
-- **Bicycle pumps are sold here** corresponds
- with vending:bicycle_pump
- =yesUnselecting this
- answer will add vending:
- bicycle_pump=no
-- **Bicycle locks are sold here** corresponds
- with vending:bicycle_lock
- =yesUnselecting this
- answer will add vending:
- bicycle_lock=no
+
+
+
+
+ - **Bicycle lights are sold here** corresponds with vending:bicycle_light=yesUnselecting this answer will add vending:bicycle_light=no
+ - **Gloves are sold here** corresponds with vending:gloves=yesUnselecting this answer will add vending:gloves=no
+ - **Bicycle repair kits are sold here** corresponds with vending:bicycle_repair_kit=yesUnselecting this answer will add vending:bicycle_repair_kit=no
+ - **Bicycle pumps are sold here** corresponds with vending:bicycle_pump=yesUnselecting this answer will add vending:bicycle_pump=no
+ - **Bicycle locks are sold here** corresponds with vending:bicycle_lock=yesUnselecting this answer will add vending:bicycle_lock=no
+
This document is autogenerated from assets/layers/bicycle_tube_vending_machine/bicycle_tube_vending_machine.json
\ No newline at end of file
diff --git a/Docs/Layers/bike_cafe.md b/Docs/Layers/bike_cafe.md
index c1c0c1da42..18e6d980ef 100644
--- a/Docs/Layers/bike_cafe.md
+++ b/Docs/Layers/bike_cafe.md
@@ -1,20 +1,23 @@
-bike_cafe
+
+
+ bike_cafe
===========
-A bike café is a café geared towards cyclists, for example with services such as a pump, with lots of bicycle-related
-decoration, ...
+A bike café is a café geared towards cyclists, for example with services such as a pump, with lots of bicycle-related decoration, ...
+
+
+
## Table of contents
1. [bike_cafe](#bike_cafe)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [bike_cafe-name](#bike_cafe-name)
+ [bike_cafe-bike-pump](#bike_cafe-bike-pump)
@@ -25,129 +28,175 @@ decoration, ...
+ [bike_cafe-email](#bike_cafe-email)
+ [bike_cafe-opening_hours](#bike_cafe-opening_hours)
-#### Themes using this layer
-- [cyclofix](https://mapcomplete.osm.be/cyclofix)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [cyclofix](https://mapcomplete.osm.be/cyclofix)
+
[Go to the source code](../assets/layers/bike_cafe/bike_cafe.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- amenity
- =pub
- |amenity
- =bar
- |amenity
- =cafe
- |amenity
- =restaurant
-- pub
- =cycling
- |pub
- =bicycle
- |theme
- =cycling
- |theme
- =bicycle|service:bicycle:.*~^..*
- $
-Supported attributes
+
+ - amenity=pub|amenity=bar|amenity=cafe|amenity=restaurant
+ - pub=cycling|pub=bicycle|theme=cycling|theme=bicycle|service:bicycle:.*~^..*$
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
-[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
[](https://taginfo.openstreetmap.org/keys/service:bicycle:pump#values) [service:bicycle:pump](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:pump) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump%3Dno)
[](https://taginfo.openstreetmap.org/keys/service:bicycle:diy#values) [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno)
[](https://taginfo.openstreetmap.org/keys/service:bicycle:repair#values) [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno)
-[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
-[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
-[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
+[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
+[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
+[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
+
+
+
+
+### images
+
-### images
_This tagrendering has no question and is thus read-only_
-### bike_cafe-name
+
+
+
+
+### bike_cafe-name
+
+
The question is **What is the name of this bike cafe?**
-This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
+This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
This is rendered with `This bike cafe is called {name}`
-### bike_cafe-bike-pump
+
+
+### bike_cafe-bike-pump
+
+
The question is **Does this bike cafe offer a bike pump for use by anyone?**
-- **This bike cafe offers a bike pump for anyone** corresponds
- with service:bicycle:pump
- =yes
-- **This bike cafe doesn't offer a bike pump for anyone** corresponds
- with service:bicycle:pump
- =no
-### bike_cafe-repair-tools
+
+
+
+ - **This bike cafe offers a bike pump for anyone** corresponds with service:bicycle:pump=yes
+ - **This bike cafe doesn't offer a bike pump for anyone** corresponds with service:bicycle:pump=no
+
+
+
+
+### bike_cafe-repair-tools
+
+
The question is **Are there tools here to repair your own bike?**
-- **This bike cafe offers tools for DIY repair** corresponds
- with service:bicycle:diy
- =yes
-- **This bike cafe doesn't offer tools for DIY repair** corresponds
- with service:bicycle:diy
- =no
-### bike_cafe-repair-service
+
+
+
+ - **This bike cafe offers tools for DIY repair** corresponds with service:bicycle:diy=yes
+ - **This bike cafe doesn't offer tools for DIY repair** corresponds with service:bicycle:diy=no
+
+
+
+
+### bike_cafe-repair-service
+
+
The question is **Does this bike cafe repair bikes?**
-- **This bike cafe repairs bikes** corresponds
- with service:bicycle:
- repair=yes
-- **This bike cafe doesn't repair bikes** corresponds
- with service:bicycle:
- repair=no
-### bike_cafe-website
+
+
+
+ - **This bike cafe repairs bikes** corresponds with service:bicycle:repair=yes
+ - **This bike cafe doesn't repair bikes** corresponds with service:bicycle:repair=no
+
+
+
+
+### bike_cafe-website
+
+
The question is **What is the website of {name}?**
-This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
+This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
This is rendered with `{website}`
-### bike_cafe-phone
+
+
+### bike_cafe-phone
+
+
The question is **What is the phone number of {name}?**
-This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
+This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
This is rendered with `{phone}`
-### bike_cafe-email
+
+
+### bike_cafe-email
+
+
The question is **What is the email address of {name}?**
-This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
+This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
This is rendered with `{email}`
-### bike_cafe-opening_hours
+
+
+### bike_cafe-opening_hours
+
+
The question is **When it this bike café opened?**
-This rendering asks information about the
-property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
-This is rendered with `{opening_hours_table(opening_hours)}`
+This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
+This is rendered with `{opening_hours_table(opening_hours)}`
This document is autogenerated from assets/layers/bike_cafe/bike_cafe.json
\ No newline at end of file
diff --git a/Docs/Layers/bike_cleaning.md b/Docs/Layers/bike_cleaning.md
index ff2cd9bd8d..67bee58646 100644
--- a/Docs/Layers/bike_cleaning.md
+++ b/Docs/Layers/bike_cleaning.md
@@ -1,4 +1,6 @@
-bike_cleaning
+
+
+ bike_cleaning
===============
@@ -7,96 +9,114 @@ bike_cleaning
A layer showing facilities where one can clean their bike
+
+
+
## Table of contents
1. [bike_cleaning](#bike_cleaning)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [bike_cleaning-service:bicycle:cleaning:charge](#bike_cleaning-servicebicycle:cleaning:charge)
+ [bike_cleaning-charge](#bike_cleaning-charge)
-#### Themes using this layer
-- [cyclofix](https://mapcomplete.osm.be/cyclofix)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [cyclofix](https://mapcomplete.osm.be/cyclofix)
+
[Go to the source code](../assets/layers/bike_cleaning/bike_cleaning.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- service:bicycle:
- cleaning=yes
- |service:bicycle:
- cleaning=diy
- |amenity
- =bicycle_wash
- |amenity
- =bike_wash
-Supported attributes
+
+ - service:bicycle:cleaning=yes|service:bicycle:cleaning=diy|amenity=bicycle_wash|amenity=bike_wash
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
-[](https://taginfo.openstreetmap.org/keys/service:bicycle:cleaning:charge#values) [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/charge#values) [charge](https://wiki.openstreetmap.org/wiki/Key:charge) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/service:bicycle:cleaning:charge#values) [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/charge#values) [charge](https://wiki.openstreetmap.org/wiki/Key:charge) | [string](../SpecialInputElements.md#string) |
+
+
+
+
+### images
+
-### images
_This tagrendering has no question and is thus read-only_
-### bike_cleaning-service:bicycle:cleaning:charge
+
+
+
+
+### bike_cleaning-service:bicycle:cleaning:charge
+
+
The question is **How much does it cost to use the cleaning service?**
-This rendering asks information about the
-property [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge)
+This rendering asks information about the property [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge)
This is rendered with `Using the cleaning service costs {service:bicycle:cleaning:charge}`
-- **The cleaning service is free to use** corresponds
- with service:bicycle:
- cleaning:fee
- =
- no&service:bicycle:cleaning:charge=
-- **Free to use** corresponds
- with service:bicycle:
- cleaning:fee=
- no_This option cannot be chosen as answer_
-- **The cleaning service has a fee, but the amount is not known** corresponds
- with service:bicycle:
- cleaning:fee
- =
- yes&service:bicycle:cleaning:charge=_This option cannot be chosen as answer_
-### bike_cleaning-charge
+
+ - **The cleaning service is free to use** corresponds with service:bicycle:cleaning:fee=no&service:bicycle:cleaning:charge=
+ - **Free to use** corresponds with service:bicycle:cleaning:fee=no_This option cannot be chosen as answer_
+ - **The cleaning service has a fee, but the amount is not known** corresponds with service:bicycle:cleaning:fee=yes&service:bicycle:cleaning:charge=_This option cannot be chosen as answer_
+
+
+
+
+### bike_cleaning-charge
+
+
The question is **How much does it cost to use the cleaning service?**
-This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
+This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
This is rendered with `Using the cleaning service costs {charge}`
-- **Free to use cleaning service** corresponds
- with fee
- =no&charge=
-- **Free to use** corresponds with fee
- =no_This option cannot be chosen as
- answer_
-- **The cleaning service has a fee** corresponds
- with fee
- =yes
+
+
+ - **Free to use cleaning service** corresponds with fee=no&charge=
+ - **Free to use** corresponds with fee=no_This option cannot be chosen as answer_
+ - **The cleaning service has a fee** corresponds with fee=yes
+
This document is autogenerated from assets/layers/bike_cleaning/bike_cleaning.json
\ No newline at end of file
diff --git a/Docs/Layers/bike_parking.md b/Docs/Layers/bike_parking.md
index 040263ed78..6a8629e796 100644
--- a/Docs/Layers/bike_parking.md
+++ b/Docs/Layers/bike_parking.md
@@ -1,19 +1,23 @@
-bike_parking
+
+
+ bike_parking
==============
-
+
A layer showing where you can park your bike
+
+
+
## Table of contents
1. [bike_parking](#bike_parking)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [Bicycle parking type](#bicycle-parking-type)
+ [Underground?](#underground)
@@ -23,148 +27,185 @@ A layer showing where you can park your bike
+ [Cargo bike spaces?](#cargo-bike-spaces)
+ [Cargo bike capacity?](#cargo-bike-capacity)
-#### Themes using this layer
-- [cyclofix](https://mapcomplete.osm.be/cyclofix)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [cyclofix](https://mapcomplete.osm.be/cyclofix)
+
[Go to the source code](../assets/layers/bike_parking/bike_parking.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- amenity
- =bicycle_parking
-Supported attributes
+
+ - amenity=bicycle_parking
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
[](https://taginfo.openstreetmap.org/keys/bicycle_parking#values) [bicycle_parking](https://wiki.openstreetmap.org/wiki/Key:bicycle_parking) | [string](../SpecialInputElements.md#string) | [stands](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dstands) [wall_loops](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dwall_loops) [handlebar_holder](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dhandlebar_holder) [rack](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Drack) [two_tier](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dtwo_tier) [shed](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dshed) [bollard](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dbollard) [floor](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dfloor)
[](https://taginfo.openstreetmap.org/keys/location#values) [location](https://wiki.openstreetmap.org/wiki/Key:location) | Multiple choice | [underground](https://wiki.openstreetmap.org/wiki/Tag:location%3Dunderground) [surface](https://wiki.openstreetmap.org/wiki/Tag:location%3Dsurface) [rooftop](https://wiki.openstreetmap.org/wiki/Tag:location%3Drooftop) [rooftop](https://wiki.openstreetmap.org/wiki/Tag:location%3Drooftop)
[](https://taginfo.openstreetmap.org/keys/covered#values) [covered](https://wiki.openstreetmap.org/wiki/Key:covered) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:covered%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:covered%3Dno)
-[](https://taginfo.openstreetmap.org/keys/capacity#values) [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity) | [nat](../SpecialInputElements.md#nat) |
+[](https://taginfo.openstreetmap.org/keys/capacity#values) [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity) | [nat](../SpecialInputElements.md#nat) |
[](https://taginfo.openstreetmap.org/keys/access#values) [access](https://wiki.openstreetmap.org/wiki/Key:access) | [string](../SpecialInputElements.md#string) | [yes](https://wiki.openstreetmap.org/wiki/Tag:access%3Dyes) [customers](https://wiki.openstreetmap.org/wiki/Tag:access%3Dcustomers) [private](https://wiki.openstreetmap.org/wiki/Tag:access%3Dprivate)
[](https://taginfo.openstreetmap.org/keys/cargo_bike#values) [cargo_bike](https://wiki.openstreetmap.org/wiki/Key:cargo_bike) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:cargo_bike%3Dyes) [designated](https://wiki.openstreetmap.org/wiki/Tag:cargo_bike%3Ddesignated) [no](https://wiki.openstreetmap.org/wiki/Tag:cargo_bike%3Dno)
-[](https://taginfo.openstreetmap.org/keys/capacity:cargo_bike#values) [capacity:cargo_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:cargo_bike) | [nat](../SpecialInputElements.md#nat) |
+[](https://taginfo.openstreetmap.org/keys/capacity:cargo_bike#values) [capacity:cargo_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:cargo_bike) | [nat](../SpecialInputElements.md#nat) |
+
+
+
+
+### images
+
-### images
_This tagrendering has no question and is thus read-only_
-### Bicycle parking type
+
+
+
+
+### Bicycle parking type
+
+
The question is **What is the type of this bicycle parking?**
-This rendering asks information about the
-property [bicycle_parking](https://wiki.openstreetmap.org/wiki/Key:bicycle_parking)
+This rendering asks information about the property [bicycle_parking](https://wiki.openstreetmap.org/wiki/Key:bicycle_parking)
This is rendered with `This is a bicycle parking of the type: {bicycle_parking}`
-- **Staple racks ** corresponds
- with bicycle_parking
- =stands
-- **Wheel rack/loops ** corresponds
- with bicycle_parking
- =wall_loops
-- **Handlebar holder ** corresponds
- with bicycle_parking
- =
- handlebar_holder
-- **Rack ** corresponds
- with bicycle_parking
- =rack
-- **Two-tiered ** corresponds
- with bicycle_parking
- =two_tier
-- **Shed ** corresponds
- with bicycle_parking
- =shed
-- **Bollard ** corresponds
- with bicycle_parking
- =bollard
-- **An area on the floor which is marked for bicycle parking** corresponds
- with bicycle_parking
- =floor
-### Underground?
+
+ - **Staple racks ** corresponds with bicycle_parking=stands
+ - **Wheel rack/loops ** corresponds with bicycle_parking=wall_loops
+ - **Handlebar holder ** corresponds with bicycle_parking=handlebar_holder
+ - **Rack ** corresponds with bicycle_parking=rack
+ - **Two-tiered ** corresponds with bicycle_parking=two_tier
+ - **Shed ** corresponds with bicycle_parking=shed
+ - **Bollard ** corresponds with bicycle_parking=bollard
+ - **An area on the floor which is marked for bicycle parking** corresponds with bicycle_parking=floor
+
+
+
+
+### Underground?
+
+
The question is **What is the relative location of this bicycle parking?**
-- **Underground parking** corresponds with
- location=underground
-- **Surface level parking** corresponds with
- location=surface
-- **Rooftop parking** corresponds with
- location=rooftop
-- **Surface level parking** corresponds with _This option cannot be chosen as answer_
-- **Rooftop parking** corresponds with
- location=rooftop
-### Is covered?
+
+
+
+ - **Underground parking** corresponds with location=underground
+ - **Surface level parking** corresponds with location=surface
+ - **Rooftop parking** corresponds with location=rooftop
+ - **Surface level parking** corresponds with _This option cannot be chosen as answer_
+ - **Rooftop parking** corresponds with location=rooftop
+
+
+
+
+### Is covered?
+
+
The question is **Is this parking covered? Also select "covered" for indoor parkings.**
-- **This parking is covered (it has a roof)** corresponds
- with covered
- =yes
-- **This parking is not covered** corresponds
- with covered
- =no
-### Capacity
+
+
+
+ - **This parking is covered (it has a roof)** corresponds with covered=yes
+ - **This parking is not covered** corresponds with covered=no
+
+
+
+
+### Capacity
+
+
The question is **How many bicycles fit in this bicycle parking (including possible cargo bicycles)?**
-This rendering asks information about the property [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity)
+This rendering asks information about the property [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity)
This is rendered with `Place for {capacity} bikes`
-### Access
+
+
+### Access
+
+
The question is **Who can use this bicycle parking?**
-This rendering asks information about the property [access](https://wiki.openstreetmap.org/wiki/Key:access)
+This rendering asks information about the property [access](https://wiki.openstreetmap.org/wiki/Key:access)
This is rendered with `{access}`
-- **Publicly accessible** corresponds with
- access=yes
-- **Access is primarily for visitors to a business** corresponds
- with access
- =customers
-- **Access is limited to members of a school, company or organisation** corresponds
- with access
- =private
-### Cargo bike spaces?
+
+ - **Publicly accessible** corresponds with access=yes
+ - **Access is primarily for visitors to a business** corresponds with access=customers
+ - **Access is limited to members of a school, company or organisation** corresponds with access=private
+
+
+
+
+### Cargo bike spaces?
+
+
The question is **Does this bicycle parking have spots for cargo bikes?**
-- **This parking has room for cargo bikes** corresponds
- with cargo_bike
- =yes
-- **This parking has designated (official) spots for cargo bikes.** corresponds
- with cargo_bike
- =designated
-- **You're not allowed to park cargo bikes** corresponds
- with cargo_bike
- =no
-### Cargo bike capacity?
+
+
+
+ - **This parking has room for cargo bikes** corresponds with cargo_bike=yes
+ - **This parking has designated (official) spots for cargo bikes.** corresponds with cargo_bike=designated
+ - **You're not allowed to park cargo bikes** corresponds with cargo_bike=no
+
+
+
+
+### Cargo bike capacity?
+
+
The question is **How many cargo bicycles fit in this bicycle parking?**
-This rendering asks information about the
-property [capacity:cargo_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:cargo_bike)
-This is rendered with `This parking fits {capacity:cargo_bike} cargo bikes`
+This rendering asks information about the property [capacity:cargo_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:cargo_bike)
+This is rendered with `This parking fits {capacity:cargo_bike} cargo bikes`
This document is autogenerated from assets/layers/bike_parking/bike_parking.json
\ No newline at end of file
diff --git a/Docs/Layers/bike_repair_station.md b/Docs/Layers/bike_repair_station.md
index 245639590d..8c7db97cc6 100644
--- a/Docs/Layers/bike_repair_station.md
+++ b/Docs/Layers/bike_repair_station.md
@@ -1,230 +1,302 @@
-bike_repair_station
+
+
+ bike_repair_station
=====================
-
+
A layer showing bicycle pumps and bicycle repair tool stands
+
+
+
## Table of contents
1. [bike_repair_station](#bike_repair_station)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [bike_repair_station-available-services](#bike_repair_station-available-services)
+ + [Operational status](#operational-status)
+ + [bike_repair_station-opening_hours](#bike_repair_station-opening_hours)
+ [bike_repair_station-operator](#bike_repair_station-operator)
+ [bike_repair_station-email](#bike_repair_station-email)
+ [bike_repair_station-phone](#bike_repair_station-phone)
- + [bike_repair_station-opening_hours](#bike_repair_station-opening_hours)
+ [bike_repair_station-bike-chain-tool](#bike_repair_station-bike-chain-tool)
+ [bike_repair_station-bike-stand](#bike_repair_station-bike-stand)
- + [Operational status](#operational-status)
+ [Email maintainer](#email-maintainer)
+ [bike_repair_station-valves](#bike_repair_station-valves)
+ [bike_repair_station-electrical_pump](#bike_repair_station-electrical_pump)
+ [bike_repair_station-manometer](#bike_repair_station-manometer)
+ [level](#level)
-#### Themes using this layer
-- [cyclofix](https://mapcomplete.osm.be/cyclofix)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [cyclofix](https://mapcomplete.osm.be/cyclofix)
+
[Go to the source code](../assets/layers/bike_repair_station/bike_repair_station.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- amenity
- =
- bicycle_repair_station
-Supported attributes
+
+ - amenity=bicycle_repair_station
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
[](https://taginfo.openstreetmap.org/keys/service:bicycle:tools#values) [service:bicycle:tools](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:tools) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:tools%3Dno) [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:tools%3Dyes) [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:tools%3Dyes)
-[](https://taginfo.openstreetmap.org/keys/operator#values) [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) | [De Fietsambassade Gent](https://wiki.openstreetmap.org/wiki/Tag:operator%3DDe Fietsambassade Gent)
-[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
-[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
+[](https://taginfo.openstreetmap.org/keys/service:bicycle:pump:operational_status#values) [service:bicycle:pump:operational_status](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:pump:operational_status) | Multiple choice | [broken](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump:operational_status%3Dbroken) [operational](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump:operational_status%3Doperational)
[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7)
+[](https://taginfo.openstreetmap.org/keys/operator#values) [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
+[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
[](https://taginfo.openstreetmap.org/keys/service:bicycle:chain_tool#values) [service:bicycle:chain_tool](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:chain_tool) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:chain_tool%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:chain_tool%3Dno)
[](https://taginfo.openstreetmap.org/keys/service:bicycle:stand#values) [service:bicycle:stand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:stand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:stand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:stand%3Dno)
-[](https://taginfo.openstreetmap.org/keys/service:bicycle:pump:operational_status#values) [service:bicycle:pump:operational_status](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:pump:operational_status) | Multiple choice | [broken](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump:operational_status%3Dbroken) [](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump:operational_status%3D)
[](https://taginfo.openstreetmap.org/keys/valves#values) [valves](https://wiki.openstreetmap.org/wiki/Key:valves) | [string](../SpecialInputElements.md#string) | [sclaverand](https://wiki.openstreetmap.org/wiki/Tag:valves%3Dsclaverand) [dunlop](https://wiki.openstreetmap.org/wiki/Tag:valves%3Ddunlop) [schrader](https://wiki.openstreetmap.org/wiki/Tag:valves%3Dschrader)
[](https://taginfo.openstreetmap.org/keys/manual#values) [manual](https://wiki.openstreetmap.org/wiki/Key:manual) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:manual%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:manual%3Dno)
[](https://taginfo.openstreetmap.org/keys/manometer#values) [manometer](https://wiki.openstreetmap.org/wiki/Key:manometer) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:manometer%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:manometer%3Dno) [broken](https://wiki.openstreetmap.org/wiki/Tag:manometer%3Dbroken)
-[](https://taginfo.openstreetmap.org/keys/level#values) [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1)
+[](https://taginfo.openstreetmap.org/keys/level#values) [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1)
+
+
+
+
+### images
+
-### images
_This tagrendering has no question and is thus read-only_
-### bike_repair_station-available-services
-The question is **Which services are available at this bike station?**
-- **There is only a pump present** corresponds
- with service:bicycle:tools
- =no
- &service:bicycle:pump
- =yes
-- **There are only tools (screwdrivers, pliers...) present** corresponds
- with service:bicycle:tools
- =yes
- &service:bicycle:pump
- =no
-- **There are both tools and a pump present** corresponds
- with service:bicycle:tools
- =yes
- &service:bicycle:pump
- =yes
-### bike_repair_station-operator
-The question is **Who maintains this cycle pump?**
+### bike_repair_station-available-services
-This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
-This is rendered with `Maintained by {operator}`
-- **De Fietsambassade Gent** corresponds
- with operator
- =De Fietsambassade
- Gent
-### bike_repair_station-email
+The question is **Which services are available at this location?**
-The question is **What is the email address of the maintainer?**
-This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
-This is rendered with `{email}`
-### bike_repair_station-phone
-The question is **What is the phone number of the maintainer?**
-This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
-This is rendered with `{phone}`
+ - **There is only a pump present** corresponds with service:bicycle:tools=no&service:bicycle:pump=yes
+ - **There are only tools (screwdrivers, pliers...) present** corresponds with service:bicycle:tools=yes&service:bicycle:pump=no
+ - **There are both tools and a pump present** corresponds with service:bicycle:tools=yes&service:bicycle:pump=yes
-### bike_repair_station-opening_hours
-The question is **When is this bicycle repair point open?**
-This rendering asks information about the
-property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
-This is rendered with `{opening_hours_table()}`
-- **Always open** corresponds with
- opening_hours=24/7
-- **Always open** corresponds with _This option cannot be chosen as answer_
+### Operational status
-### bike_repair_station-bike-chain-tool
-The question is **Does this bike repair station have a special tool to repair your bike chain?**
-
-- **There is a chain tool** corresponds
- with service:bicycle:
- chain_tool=
- yes
-- **There is no chain tool** corresponds
- with service:bicycle:
- chain_tool=
- no
-
-### bike_repair_station-bike-stand
-
-The question is **Does this bike station have a hook to hang your bike on or a stand to raise it?**
-
-- **There is a hook or stand** corresponds
- with service:bicycle:stand
- =yes
-- **There is no hook or stand** corresponds
- with service:bicycle:stand
- =no
-
-### Operational status
The question is **Is the bike pump still operational?**
-- **The bike pump is broken** corresponds
- with
- service:bicycle:pump:operational_status
- =
- broken
-- **The bike pump is operational** corresponds with
-### Email maintainer
+
+
+
+ - **The bike pump is broken** corresponds with service:bicycle:pump:operational_status=broken
+ - **The bike pump is operational** corresponds with service:bicycle:pump:operational_status=operational
+
+
+
+
+### bike_repair_station-opening_hours
+
+
+
+The question is **When is this bicycle repair point open?**
+
+This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
+This is rendered with `{opening_hours_table()}`
+
+
+
+ - **Always open** corresponds with opening_hours=24/7
+
+
+
+
+### bike_repair_station-operator
+
+
+
+The question is **Who maintains this cycle pump?**
+
+This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
+This is rendered with `Maintained by {operator}`
+
+
+
+### bike_repair_station-email
+
+
+
+The question is **What is the email address of the maintainer?**
+
+This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
+This is rendered with `{email}`
+
+
+
+### bike_repair_station-phone
+
+
+
+The question is **What is the phone number of the maintainer?**
+
+This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
+This is rendered with `{phone}`
+
+
+
+### bike_repair_station-bike-chain-tool
+
+
+
+The question is **Does this bike repair station have a special tool to repair your bike chain?**
+
+
+
+
+
+ - **There is a chain tool** corresponds with service:bicycle:chain_tool=yes
+ - **There is no chain tool** corresponds with service:bicycle:chain_tool=no
+
+
+
+
+### bike_repair_station-bike-stand
+
+
+
+The question is **Does this bike station have a hook to hang your bike on or a stand to raise it?**
+
+
+
+
+
+ - **There is a hook or stand** corresponds with service:bicycle:stand=yes
+ - **There is no hook or stand** corresponds with service:bicycle:stand=no
+
+
+
+
+### Email maintainer
+
+
_This tagrendering has no question and is thus read-only_
-### bike_repair_station-valves
+
+
+
+
+### bike_repair_station-valves
+
+
The question is **What valves are supported?**
-This rendering asks information about the property [valves](https://wiki.openstreetmap.org/wiki/Key:valves)
+This rendering asks information about the property [valves](https://wiki.openstreetmap.org/wiki/Key:valves)
This is rendered with `This pump supports the following valves: {valves}`
-- **Sclaverand (also known as Presta)** corresponds
- with valves
- =sclaverand
-- **Dunlop** corresponds with valves
- =dunlop
-- **Schrader (cars)** corresponds with
- valves=schrader
-### bike_repair_station-electrical_pump
+
+ - **Sclaverand (also known as Presta)** corresponds with valves=sclaverand
+ - **Dunlop** corresponds with valves=dunlop
+ - **Schrader (cars)** corresponds with valves=schrader
+
+
+
+
+### bike_repair_station-electrical_pump
+
+
The question is **Is this an electric bike pump?**
-- **Manual pump** corresponds with manual
- =yes
-- **Electrical pump** corresponds with
- manual=no
-### bike_repair_station-manometer
+
+
+
+ - **Manual pump** corresponds with manual=yes
+ - **Electrical pump** corresponds with manual=no
+
+
+
+
+### bike_repair_station-manometer
+
+
The question is **Does the pump have a pressure indicator or manometer?**
-- **There is a manometer** corresponds with
- manometer=yes
-- **There is no manometer** corresponds
- with manometer
- =no
-- **There is manometer but it is broken** corresponds
- with manometer
- =broken
-### level
+
+
+
+ - **There is a manometer** corresponds with manometer=yes
+ - **There is no manometer** corresponds with manometer=no
+ - **There is manometer but it is broken** corresponds with manometer=broken
+
+
+
+
+### level
+
+
The question is **On what level is this feature located?**
-This rendering asks information about the property [level](https://wiki.openstreetmap.org/wiki/Key:level)
+This rendering asks information about the property [level](https://wiki.openstreetmap.org/wiki/Key:level)
This is rendered with `Located on the {level}th floor`
-- **Located underground** corresponds with
- location=underground_
- This option cannot be chosen as answer_
-- **Located on the ground floor** corresponds
- with level
- =0
-- **Located on the ground floor** corresponds with _This option cannot be chosen as answer_
-- **Located on the first floor** corresponds
- with level
- =1
+
+
+ - **Located underground** corresponds with location=underground_This option cannot be chosen as answer_
+ - **Located on the ground floor** corresponds with level=0
+ - **Located on the ground floor** corresponds with _This option cannot be chosen as answer_
+ - **Located on the first floor** corresponds with level=1
+ - **Located on the first basement level** corresponds with level=-1
+
This document is autogenerated from assets/layers/bike_repair_station/bike_repair_station.json
\ No newline at end of file
diff --git a/Docs/Layers/bike_shop.md b/Docs/Layers/bike_shop.md
index 9ef84a28e4..b5cf88a190 100644
--- a/Docs/Layers/bike_shop.md
+++ b/Docs/Layers/bike_shop.md
@@ -1,4 +1,6 @@
-bike_shop
+
+
+ bike_shop
===========
@@ -7,13 +9,15 @@ bike_shop
A shop specifically selling bicycles or related items
+
+
+
## Table of contents
1. [bike_shop](#bike_shop)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [bike_shop-is-bicycle_shop](#bike_shop-is-bicycle_shop)
+ [bike_shop-name](#bike_shop-name)
@@ -32,49 +36,60 @@ A shop specifically selling bicycles or related items
+ [bike_repair_bike-wash](#bike_repair_bike-wash)
+ [bike_cleaning-service:bicycle:cleaning:charge](#bike_cleaning-servicebicycle:cleaning:charge)
-#### Themes using this layer
-- [cyclofix](https://mapcomplete.osm.be/cyclofix)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [cyclofix](https://mapcomplete.osm.be/cyclofix)
+
[Go to the source code](../assets/layers/bike_shop/bike_shop.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- shop
- =bicycle
- |amenity
- =bicycle_rental
- |shop
- =sports&service:bicycle:retail!~
- ^no$&service:bicycle:repair!~^no$&sport
- =bicycle
- |sport
- =cycling|
-Supported attributes
+
+ - shop=bicycle|amenity=bicycle_rental|shop=sports&service:bicycle:retail!~^no$&service:bicycle:repair!~^no$&sport=bicycle|sport=cycling|
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
-[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
-[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
-[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
-[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
-[](https://taginfo.openstreetmap.org/keys/description#values) [description](https://wiki.openstreetmap.org/wiki/Key:description) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/access#values) [access](https://wiki.openstreetmap.org/wiki/Key:access) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
+[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
+[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
+[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
+[](https://taginfo.openstreetmap.org/keys/description#values) [description](https://wiki.openstreetmap.org/wiki/Key:description) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/access#values) [access](https://wiki.openstreetmap.org/wiki/Key:access) | [string](../SpecialInputElements.md#string) |
[](https://taginfo.openstreetmap.org/keys/service:bicycle:retail#values) [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno)
[](https://taginfo.openstreetmap.org/keys/service:bicycle:repair#values) [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand)
[](https://taginfo.openstreetmap.org/keys/service:bicycle:rental#values) [service:bicycle:rental](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:rental) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:rental%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:rental%3Dno)
@@ -82,187 +97,240 @@ attribute | type | values which are supported by this layer
[](https://taginfo.openstreetmap.org/keys/service:bicycle:pump#values) [service:bicycle:pump](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:pump) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump%3Dno) [separate](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump%3Dseparate)
[](https://taginfo.openstreetmap.org/keys/service:bicycle:diy#values) [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold)
[](https://taginfo.openstreetmap.org/keys/service:bicycle:cleaning#values) [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno)
-[](https://taginfo.openstreetmap.org/keys/service:bicycle:cleaning:charge#values) [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/service:bicycle:cleaning:charge#values) [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) |
+
+
+
+
+### images
+
-### images
_This tagrendering has no question and is thus read-only_
-### bike_shop-is-bicycle_shop
+
+
+
+
+### bike_shop-is-bicycle_shop
+
+
_This tagrendering has no question and is thus read-only_
-### bike_shop-name
+
+
+
+
+### bike_shop-name
+
+
The question is **What is the name of this bicycle shop?**
-This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
+This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
This is rendered with `This bicycle shop is called {name}`
-### bike_shop-website
+
+
+### bike_shop-website
+
+
The question is **What is the website of {name}?**
-This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
+This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
This is rendered with `{website}`
-### bike_shop-phone
+
+
+### bike_shop-phone
+
+
The question is **What is the phone number of {name}?**
-This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
+This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
This is rendered with `{phone}`
-### bike_shop-email
+
+
+### bike_shop-email
+
+
The question is **What is the email address of {name}?**
-This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
+This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
This is rendered with `{email}`
-### bike_shop-opening_hours
+
+
+### bike_shop-opening_hours
+
+
The question is **When is this shop opened?**
-This rendering asks information about the
-property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
+This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
This is rendered with `{opening_hours_table(opening_hours)}`
-### description
-The question is **Is there still something relevant you couldn't give in the previous questions? Add it
-here. Don't repeat already stated facts**
-This rendering asks information about the property [description](https://wiki.openstreetmap.org/wiki/Key:description)
+### description
+
+
+
+The question is **Is there still something relevant you couldn't give in the previous questions? Add it here. Don't repeat already stated facts**
+
+This rendering asks information about the property [description](https://wiki.openstreetmap.org/wiki/Key:description)
This is rendered with `{description}`
-### bike_shop-access
+
+
+### bike_shop-access
+
+
_This tagrendering has no question and is thus read-only_
-This rendering asks information about the property [access](https://wiki.openstreetmap.org/wiki/Key:access)
+This rendering asks information about the property [access](https://wiki.openstreetmap.org/wiki/Key:access)
This is rendered with `Enkel voor {access}`
-### bike_repair_sells-bikes
+
+
+### bike_repair_sells-bikes
+
+
The question is **Does this shop sell bikes?**
-- **This shop sells bikes** corresponds
- with service:bicycle:
- retail=yes
-- **This shop doesn't sell bikes** corresponds
- with service:bicycle:
- retail=no
-### bike_repair_repairs-bikes
+
+
+
+ - **This shop sells bikes** corresponds with service:bicycle:retail=yes
+ - **This shop doesn't sell bikes** corresponds with service:bicycle:retail=no
+
+
+
+
+### bike_repair_repairs-bikes
+
+
The question is **Does this shop repair bikes?**
-- **This shop repairs bikes** corresponds
- with service:bicycle:
- repair=yes
-- **This shop doesn't repair bikes** corresponds
- with service:bicycle:
- repair=no
-- **This shop only repairs bikes bought here** corresponds
- with service:bicycle:
- repair=
- only_sold
-- **This shop only repairs bikes of a certain brand** corresponds
- with service:bicycle:
- repair=brand
-### bike_repair_rents-bikes
+
+
+
+ - **This shop repairs bikes** corresponds with service:bicycle:repair=yes
+ - **This shop doesn't repair bikes** corresponds with service:bicycle:repair=no
+ - **This shop only repairs bikes bought here** corresponds with service:bicycle:repair=only_sold
+ - **This shop only repairs bikes of a certain brand** corresponds with service:bicycle:repair=brand
+
+
+
+
+### bike_repair_rents-bikes
+
+
The question is **Does this shop rent out bikes?**
-- **This shop rents out bikes** corresponds
- with service:bicycle:
- rental=yes
-- **This shop doesn't rent out bikes** corresponds
- with service:bicycle:
- rental=no
-### bike_repair_second-hand-bikes
+
+
+
+ - **This shop rents out bikes** corresponds with service:bicycle:rental=yes
+ - **This shop doesn't rent out bikes** corresponds with service:bicycle:rental=no
+
+
+
+
+### bike_repair_second-hand-bikes
+
+
The question is **Does this shop sell second-hand bikes?**
-- **This shop sells second-hand bikes** corresponds
- with service:bicycle:
- second_hand=
- yes
-- **This shop doesn't sell second-hand bikes** corresponds
- with service:bicycle:
- second_hand=
- no
-- **This shop only sells second-hand bikes** corresponds
- with service:bicycle:
- second_hand=
- only
-### bike_repair_bike-pump-service
+
+
+
+ - **This shop sells second-hand bikes** corresponds with service:bicycle:second_hand=yes
+ - **This shop doesn't sell second-hand bikes** corresponds with service:bicycle:second_hand=no
+ - **This shop only sells second-hand bikes** corresponds with service:bicycle:second_hand=only
+
+
+
+
+### bike_repair_bike-pump-service
+
+
The question is **Does this shop offer a bike pump for use by anyone?**
-- **This shop offers a bike pump for anyone** corresponds
- with service:bicycle:pump
- =yes
-- **This shop doesn't offer a bike pump for anyone** corresponds
- with service:bicycle:pump
- =no
-- **There is bicycle pump, it is shown as a separate point ** corresponds
- with service:bicycle:pump
- =separate
-### bike_repair_tools-service
+
+
+
+ - **This shop offers a bike pump for anyone** corresponds with service:bicycle:pump=yes
+ - **This shop doesn't offer a bike pump for anyone** corresponds with service:bicycle:pump=no
+ - **There is bicycle pump, it is shown as a separate point ** corresponds with service:bicycle:pump=separate
+
+
+
+
+### bike_repair_tools-service
+
+
The question is **Are there tools here to repair your own bike?**
-- **This shop offers tools for DIY repair** corresponds
- with service:bicycle:diy
- =yes
-- **This shop doesn't offer tools for DIY repair** corresponds
- with service:bicycle:diy
- =no
-- **Tools for DIY repair are only available if you bought/hire the bike in the shop** corresponds
- with service:bicycle:diy
- =only_sold
-### bike_repair_bike-wash
+
+
+
+ - **This shop offers tools for DIY repair** corresponds with service:bicycle:diy=yes
+ - **This shop doesn't offer tools for DIY repair** corresponds with service:bicycle:diy=no
+ - **Tools for DIY repair are only available if you bought/hire the bike in the shop** corresponds with service:bicycle:diy=only_sold
+
+
+
+
+### bike_repair_bike-wash
+
+
The question is **Are bicycles washed here?**
-- **This shop cleans bicycles** corresponds
- with service:bicycle:
- cleaning=yes
-- **This shop has an installation where one can clean bicycles themselves** corresponds
- with service:bicycle:
- cleaning=diy
-- **This shop doesn't offer bicycle cleaning** corresponds
- with service:bicycle:
- cleaning=no
-### bike_cleaning-service:bicycle:cleaning:charge
+
+
+
+ - **This shop cleans bicycles** corresponds with service:bicycle:cleaning=yes
+ - **This shop has an installation where one can clean bicycles themselves** corresponds with service:bicycle:cleaning=diy
+ - **This shop doesn't offer bicycle cleaning** corresponds with service:bicycle:cleaning=no
+
+
+
+
+### bike_cleaning-service:bicycle:cleaning:charge
+
+
The question is **How much does it cost to use the cleaning service?**
-This rendering asks information about the
-property [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge)
+This rendering asks information about the property [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge)
This is rendered with `Using the cleaning service costs {service:bicycle:cleaning:charge}`
-- **The cleaning service is free to use** corresponds
- with service:bicycle:
- cleaning:fee
- =
- no&service:bicycle:cleaning:charge=
-- **Free to use** corresponds
- with service:bicycle:
- cleaning:fee=
- no_This option cannot be chosen as answer_
-- **The cleaning service has a fee, but the amount is not known** corresponds
- with service:bicycle:
- cleaning:fee
- =
- yes&service:bicycle:cleaning:charge=_This option cannot be chosen as answer_
+
+
+ - **The cleaning service is free to use** corresponds with service:bicycle:cleaning:fee=no&service:bicycle:cleaning:charge=
+ - **Free to use** corresponds with service:bicycle:cleaning:fee=no_This option cannot be chosen as answer_
+ - **The cleaning service has a fee, but the amount is not known** corresponds with service:bicycle:cleaning:fee=yes&service:bicycle:cleaning:charge=_This option cannot be chosen as answer_
+
This document is autogenerated from assets/layers/bike_shop/bike_shop.json
\ No newline at end of file
diff --git a/Docs/Layers/bike_themed_object.md b/Docs/Layers/bike_themed_object.md
index 0c10faefab..150c95317c 100644
--- a/Docs/Layers/bike_themed_object.md
+++ b/Docs/Layers/bike_themed_object.md
@@ -1,4 +1,6 @@
-bike_themed_object
+
+
+ bike_themed_object
====================
@@ -7,13 +9,15 @@ bike_themed_object
A layer with bike-themed objects but who don't match any other layer
+
+
+
## Table of contents
1. [bike_themed_object](#bike_themed_object)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [description](#description)
+ [website](#website)
@@ -21,104 +25,138 @@ A layer with bike-themed objects but who don't match any other layer
+ [phone](#phone)
+ [opening_hours](#opening_hours)
-#### Themes using this layer
-- [cyclofix](https://mapcomplete.osm.be/cyclofix)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [cyclofix](https://mapcomplete.osm.be/cyclofix)
+
[Go to the source code](../assets/layers/bike_themed_object/bike_themed_object.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- theme
- =bicycle
- |theme
- =cycling
- |sport
- =cycling
- |association
- =cycling
- |association
- =bicycle
- |ngo
- =cycling
- |ngo
- =bicycle
- |club
- =bicycle
- |club
- =cycling
-Supported attributes
+
+ - theme=bicycle|theme=cycling|sport=cycling|association=cycling|association=bicycle|ngo=cycling|ngo=bicycle|club=bicycle|club=cycling
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
-[](https://taginfo.openstreetmap.org/keys/description#values) [description](https://wiki.openstreetmap.org/wiki/Key:description) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
-[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
-[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
-[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
+[](https://taginfo.openstreetmap.org/keys/description#values) [description](https://wiki.openstreetmap.org/wiki/Key:description) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
+[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
+[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
+[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
+
+
+
+
+### images
+
-### images
_This tagrendering has no question and is thus read-only_
-### description
-The question is **Is there still something relevant you couldn't give in the previous questions? Add it
-here. Don't repeat already stated facts**
-This rendering asks information about the property [description](https://wiki.openstreetmap.org/wiki/Key:description)
+
+
+### description
+
+
+
+The question is **Is there still something relevant you couldn't give in the previous questions? Add it here. Don't repeat already stated facts**
+
+This rendering asks information about the property [description](https://wiki.openstreetmap.org/wiki/Key:description)
This is rendered with `{description}`
-### website
+
+
+### website
+
+
The question is **What is the website of {name}?**
-This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
+This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
This is rendered with `{website}`
-- **{contact:website}** corresponds with contact:website~^..*$_This
- option cannot be chosen as answer_
-### email
+
+ - **{contact:website}** corresponds with contact:website~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### email
+
+
The question is **What is the email address of {name}?**
-This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
+This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
This is rendered with `{email}`
-- **{contact:email}** corresponds with contact:email~^..*$_This
- option cannot be chosen as answer_
-### phone
+
+ - **{contact:email}** corresponds with contact:email~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### phone
+
+
The question is **What is the phone number of {name}?**
-This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
+This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
This is rendered with `{phone}`
-- **{contact:phone}** corresponds with contact:phone~^..*$_This option cannot be
- chosen as answer_
-### opening_hours
+
+ - **{contact:phone}** corresponds with contact:phone~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### opening_hours
+
+
The question is **What are the opening hours of {name}?**
-This rendering asks information about the
-property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
-This is rendered with `
Opening hours
{opening_hours_table(opening_hours)}`
+This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
+This is rendered with `
Opening hours
{opening_hours_table(opening_hours)}`
This document is autogenerated from assets/layers/bike_themed_object/bike_themed_object.json
\ No newline at end of file
diff --git a/Docs/Layers/binocular.md b/Docs/Layers/binocular.md
index ff88c682c1..b10ce7f783 100644
--- a/Docs/Layers/binocular.md
+++ b/Docs/Layers/binocular.md
@@ -1,73 +1,113 @@
-binocular
+
+
+ binocular
===========
-
+
Binoculas
+
+
+
## Table of contents
1. [binocular](#binocular)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [binocular-charge](#binocular-charge)
+ [binocular-direction](#binocular-direction)
-#### Themes using this layer
-- [binoculars](https://mapcomplete.osm.be/binoculars)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [binoculars](https://mapcomplete.osm.be/binoculars)
+
[Go to the source code](../assets/layers/binocular/binocular.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- amenity
- =binoculars
-Supported attributes
+
+ - amenity=binoculars
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
[](https://taginfo.openstreetmap.org/keys/charge#values) [charge](https://wiki.openstreetmap.org/wiki/Key:charge) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:charge%3D)
-[](https://taginfo.openstreetmap.org/keys/direction#values) [direction](https://wiki.openstreetmap.org/wiki/Key:direction) | [direction](../SpecialInputElements.md#direction) |
+[](https://taginfo.openstreetmap.org/keys/direction#values) [direction](https://wiki.openstreetmap.org/wiki/Key:direction) | [direction](../SpecialInputElements.md#direction) |
+
+
+
+
+### images
+
-### images
_This tagrendering has no question and is thus read-only_
-### binocular-charge
+
+
+
+
+### binocular-charge
+
+
The question is **How much does one have to pay to use these binoculars?**
-This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
+This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
This is rendered with `Using these binoculars costs {charge}`
-- **Free to use** corresponds with fee
- =no
-### binocular-direction
+
+ - **Free to use** corresponds with fee=no
+
+
+
+
+### binocular-direction
+
+
The question is **When looking through this binocular, in what direction does one look?**
-This rendering asks information about the property [direction](https://wiki.openstreetmap.org/wiki/Key:direction)
-This is rendered with `Looks towards {direction}°`
+This rendering asks information about the property [direction](https://wiki.openstreetmap.org/wiki/Key:direction)
+This is rendered with `Looks towards {direction}°`
This document is autogenerated from assets/layers/binocular/binocular.json
\ No newline at end of file
diff --git a/Docs/Layers/birdhide.md b/Docs/Layers/birdhide.md
index e0bf91153f..bb001465c2 100644
--- a/Docs/Layers/birdhide.md
+++ b/Docs/Layers/birdhide.md
@@ -1,4 +1,6 @@
-birdhide
+
+
+ birdhide
==========
@@ -7,108 +9,133 @@ birdhide
Een vogelkijkhut
+
+
+
## Table of contents
1. [birdhide](#birdhide)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [bird-hide-shelter-or-wall](#bird-hide-shelter-or-wall)
+ [bird-hide-wheelchair](#bird-hide-wheelchair)
+ [birdhide-operator](#birdhide-operator)
-#### Themes using this layer
-- [nature](https://mapcomplete.osm.be/nature)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [nature](https://mapcomplete.osm.be/nature)
+
[Go to the source code](../assets/layers/birdhide/birdhide.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- leisure
- =bird_hide
-Supported attributes
+
+ - leisure=bird_hide
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
[](https://taginfo.openstreetmap.org/keys/building#values) [building](https://wiki.openstreetmap.org/wiki/Key:building) | Multiple choice | [](https://wiki.openstreetmap.org/wiki/Tag:building%3D) [yes](https://wiki.openstreetmap.org/wiki/Tag:building%3Dyes) [tower](https://wiki.openstreetmap.org/wiki/Tag:building%3Dtower)
[](https://taginfo.openstreetmap.org/keys/wheelchair#values) [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno)
[](https://taginfo.openstreetmap.org/keys/operator#values) [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) | [Natuurpunt](https://wiki.openstreetmap.org/wiki/Tag:operator%3DNatuurpunt) [Agentschap Natuur en Bos](https://wiki.openstreetmap.org/wiki/Tag:operator%3DAgentschap Natuur en Bos)
-### images
+
+
+
+### images
+
+
_This tagrendering has no question and is thus read-only_
-### bird-hide-shelter-or-wall
+
+
+
+
+### bird-hide-shelter-or-wall
+
+
The question is **Is dit een kijkwand of kijkhut?**
-- **Vogelkijkwand** corresponds with
- shelter=no
-- **Vogelkijkhut** corresponds with
- amenity=shelter
- &building
- =yes
- &shelter
- =yes
-- **Vogelkijktoren** corresponds with
- building=tower
- &bird_hide
- =tower
-- **Vogelkijkhut** corresponds with
- amenity=shelter
- |building
- =yes
- |shelter
- =yes_This option cannot be chosen
- as answer_
-### bird-hide-wheelchair
+
+
+
+ - **Vogelkijkwand** corresponds with shelter=no
+ - **Vogelkijkhut** corresponds with amenity=shelter&building=yes&shelter=yes
+ - **Vogelkijktoren** corresponds with building=tower&bird_hide=tower
+ - **Vogelkijkhut** corresponds with amenity=shelter|building=yes|shelter=yes_This option cannot be chosen as answer_
+
+
+
+
+### bird-hide-wheelchair
+
+
The question is **Is deze vogelkijkplaats rolstoeltoegankelijk?**
-- **Er zijn speciale voorzieningen voor rolstoelen** corresponds
- with wheelchair
- =designated
-- **Een rolstoel raakt er vlot** corresponds
- with wheelchair
- =yes
-- **Je kan er raken met een rolstoel, maar het is niet makkelijk** corresponds
- with wheelchair
- =limited
-- **Niet rolstoeltoegankelijk** corresponds
- with wheelchair
- =no
-### birdhide-operator
+
+
+
+ - **Er zijn speciale voorzieningen voor rolstoelen** corresponds with wheelchair=designated
+ - **Een rolstoel raakt er vlot** corresponds with wheelchair=yes
+ - **Je kan er raken met een rolstoel, maar het is niet makkelijk** corresponds with wheelchair=limited
+ - **Niet rolstoeltoegankelijk** corresponds with wheelchair=no
+
+
+
+
+### birdhide-operator
+
+
The question is **Wie beheert deze vogelkijkplaats?**
-This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
+This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
This is rendered with `Beheer door {operator}`
-- **Beheer door Natuurpunt** corresponds
- with operator
- =Natuurpunt
-- **Beheer door het Agentschap Natuur en Bos ** corresponds
- with operator
- =Agentschap
- Natuur en Bos
+
+
+ - **Beheer door Natuurpunt** corresponds with operator=Natuurpunt
+ - **Beheer door het Agentschap Natuur en Bos ** corresponds with operator=Agentschap Natuur en Bos
+
This document is autogenerated from assets/layers/birdhide/birdhide.json
\ No newline at end of file
diff --git a/Docs/Layers/cafe_pub.md b/Docs/Layers/cafe_pub.md
index e3c68e09ae..af04b67009 100644
--- a/Docs/Layers/cafe_pub.md
+++ b/Docs/Layers/cafe_pub.md
@@ -1,19 +1,23 @@
-cafe_pub
+
+
+ cafe_pub
==========
-
+
A layer showing cafés and pubs where one can gather around a drink. The layer asks for some relevant questions
+
+
+
## Table of contents
1. [cafe_pub](#cafe_pub)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [Name](#name)
+ [Classification](#classification)
@@ -26,185 +30,231 @@ A layer showing cafés and pubs where one can gather around a drink. The layer a
+ [service:electricity](#serviceelectricity)
+ [dog-access](#dog-access)
-#### Themes using this layer
-- [cafes_and_pubs](https://mapcomplete.osm.be/cafes_and_pubs)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [cafes_and_pubs](https://mapcomplete.osm.be/cafes_and_pubs)
+
[Go to the source code](../assets/layers/cafe_pub/cafe_pub.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- amenity
- =bar
- |amenity
- =pub
- |amenity
- =cafe
- |amenity
- =biergarten
-Supported attributes
+
+ - amenity=bar|amenity=pub|amenity=cafe|amenity=biergarten
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
-[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
[](https://taginfo.openstreetmap.org/keys/amenity#values) [amenity](https://wiki.openstreetmap.org/wiki/Key:amenity) | Multiple choice | [pub](https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dpub) [bar](https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dbar) [cafe](https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dcafe) [restaurant](https://wiki.openstreetmap.org/wiki/Tag:amenity%3Drestaurant) [biergarten](https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dbiergarten)
-[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
-[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
-[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
-[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
+[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
+[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
+[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
+[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
[](https://taginfo.openstreetmap.org/keys/wheelchair#values) [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno)
[](https://taginfo.openstreetmap.org/keys/service:electricity#values) [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno)
[](https://taginfo.openstreetmap.org/keys/dog#values) [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed)
-### images
+
+
+
+### images
+
+
_This tagrendering has no question and is thus read-only_
-### Name
+
+
+
+
+### Name
+
+
The question is **What is the name of this pub?**
-This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
+This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
This is rendered with `This pub is named {name}`
-### Classification
+
+
+### Classification
+
+
The question is **What kind of cafe is this**
-- **Dit is een bruin café of een kroeg waar voornamelijk bier wordt gedronken. De inrichting is typisch gezellig
- met veel houtwerk ** corresponds with
- amenity=pub
-- **Dit is een bar waar men ter plaatse alcoholische drank nuttigt. De inrichting is typisch modern en
- commercieel, soms met lichtinstallatie en feestmuziek** corresponds
- with amenity
- =bar
-- **Dit is een cafe - een plaats waar men rustig kan zitten om een thee, koffie of alcoholische drank te
- nuttigen.** corresponds with amenity
- =cafe
-- **Dit is een restaurant waar men een maaltijd geserveerd krijgt** corresponds
- with amenity
- =restaurant
-- **Een open ruimte waar bier geserveerd wordt. Typisch in Duitsland** corresponds
- with amenity
- =biergarten
-### opening_hours
+
+
+
+ - **Dit is een bruin café of een kroeg waar voornamelijk bier wordt gedronken. De inrichting is typisch gezellig met veel houtwerk ** corresponds with amenity=pub
+ - **Dit is een bar waar men ter plaatse alcoholische drank nuttigt. De inrichting is typisch modern en commercieel, soms met lichtinstallatie en feestmuziek** corresponds with amenity=bar
+ - **Dit is een cafe - een plaats waar men rustig kan zitten om een thee, koffie of alcoholische drank te nuttigen.** corresponds with amenity=cafe
+ - **Dit is een restaurant waar men een maaltijd geserveerd krijgt** corresponds with amenity=restaurant
+ - **Een open ruimte waar bier geserveerd wordt. Typisch in Duitsland** corresponds with amenity=biergarten
+
+
+
+
+### opening_hours
+
+
The question is **What are the opening hours of {name}?**
-This rendering asks information about the
-property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
+This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
This is rendered with `
Opening hours
{opening_hours_table(opening_hours)}`
-### website
+
+
+### website
+
+
The question is **What is the website of {name}?**
-This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
+This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
This is rendered with `{website}`
-- **{contact:website}** corresponds with contact:website~^..*$_This
- option cannot be chosen as answer_
-### email
+
+ - **{contact:website}** corresponds with contact:website~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### email
+
+
The question is **What is the email address of {name}?**
-This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
+This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
This is rendered with `{email}`
-- **{contact:email}** corresponds with contact:email~^..*$_This
- option cannot be chosen as answer_
-### phone
+
+ - **{contact:email}** corresponds with contact:email~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### phone
+
+
The question is **What is the phone number of {name}?**
-This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
+This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
This is rendered with `{phone}`
-- **{contact:phone}** corresponds with contact:phone~^..*$_This option cannot be
- chosen as answer_
-### payment-options
+
+ - **{contact:phone}** corresponds with contact:phone~^..*$_This option cannot be chosen as answer_
+
+
+
+
+### payment-options
+
+
The question is **Which methods of payment are accepted here?**
-- **Cash is accepted here** corresponds
- with payment:cash
- =yesUnselecting this answer
- will add payment:cash
- =no
-- **Payment cards are accepted here** corresponds
- with payment:cards
- =yesUnselecting this answer
- will add payment:cards
- =no
-### wheelchair-access
+
+
+
+ - **Cash is accepted here** corresponds with payment:cash=yesUnselecting this answer will add payment:cash=no
+ - **Payment cards are accepted here** corresponds with payment:cards=yesUnselecting this answer will add payment:cards=no
+
+
+
+
+### wheelchair-access
+
+
The question is **Is this place accessible with a wheelchair?**
-- **This place is specially adapted for wheelchair users** corresponds
- with wheelchair
- =designated
-- **This place is easily reachable with a wheelchair** corresponds
- with wheelchair
- =yes
-- **It is possible to reach this place in a wheelchair, but it is not easy** corresponds
- with wheelchair
- =limited
-- **This place is not reachable with a wheelchair** corresponds
- with wheelchair
- =no
-### service:electricity
+
+
+
+ - **This place is specially adapted for wheelchair users** corresponds with wheelchair=designated
+ - **This place is easily reachable with a wheelchair** corresponds with wheelchair=yes
+ - **It is possible to reach this place in a wheelchair, but it is not easy** corresponds with wheelchair=limited
+ - **This place is not reachable with a wheelchair** corresponds with wheelchair=no
+
+
+
+
+### service:electricity
+
+
The question is **Does this amenity have electrical outlets, available to customers when they are inside?**
-- **There are plenty of domestic sockets available to customers seated indoors, where they can charge their
- electronics** corresponds with
- service:electricity=
- yes
-- **There are a few domestic sockets available to customers seated indoors, where they can charge their electronics**
- corresponds with service:
- electricity=
- limited
-- **There are no sockets available indoors to customers, but charging might be possible if the staff is asked**
- corresponds with service:
- electricity=ask
-- **There are a no domestic sockets available to customers seated indoors** corresponds
- with service:electricity
- =no
-### dog-access
+
+
+
+ - **There are plenty of domestic sockets available to customers seated indoors, where they can charge their electronics** corresponds with service:electricity=yes
+ - **There are a few domestic sockets available to customers seated indoors, where they can charge their electronics** corresponds with service:electricity=limited
+ - **There are no sockets available indoors to customers, but charging might be possible if the staff is asked** corresponds with service:electricity=ask
+ - **There are a no domestic sockets available to customers seated indoors** corresponds with service:electricity=no
+
+
+
+
+### dog-access
+
+
The question is **Are dogs allowed in this business?**
-- **Dogs are allowed** corresponds with dog
- =yes
-- **Dogs are not allowed** corresponds
- with dog
- =no
-- **Dogs are allowed, but they have to be leashed** corresponds
- with dog
- =leashed
-- **Dogs are allowed and can run around freely** corresponds
- with dog
- =unleashed
+
+
+
+
+ - **Dogs are allowed** corresponds with dog=yes
+ - **Dogs are not allowed** corresponds with dog=no
+ - **Dogs are allowed, but they have to be leashed** corresponds with dog=leashed
+ - **Dogs are allowed and can run around freely** corresponds with dog=unleashed
+
This document is autogenerated from assets/layers/cafe_pub/cafe_pub.json
\ No newline at end of file
diff --git a/Docs/Layers/charging_station.md b/Docs/Layers/charging_station.md
index 3023a71beb..39add11cc1 100644
--- a/Docs/Layers/charging_station.md
+++ b/Docs/Layers/charging_station.md
@@ -1,19 +1,23 @@
-charging_station
+
+
+ charging_station
==================
-
+
A charging station
+
+
+
## Table of contents
1. [charging_station](#charging_station)
- * [Themes using this layer](#themes-using-this-layer)
-
-- [Basic tags for this layer](#basic-tags-for-this-layer)
-- [Supported attributes](#supported-attributes)
+ * [Themes using this layer](#themes-using-this-layer)
+ - [Basic tags for this layer](#basic-tags-for-this-layer)
+ - [Supported attributes](#supported-attributes)
+ [images](#images)
+ [Type](#type)
+ [access](#access)
@@ -102,1843 +106,1486 @@ A charging station
+ [questions](#questions)
+ [questions](#questions)
-#### Themes using this layer
-- [charging_stations](https://mapcomplete.osm.be/charging_stations)
-- [personal](https://mapcomplete.osm.be/personal)
+
+
+
+
+
+
+
+
+#### Themes using this layer
+
+
+
+
+
+ - [charging_stations](https://mapcomplete.osm.be/charging_stations)
+
[Go to the source code](../assets/layers/charging_station/charging_station.json)
-Basic tags for this layer
+ Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
-- amenity
- =charging_station
- |disused:amenity
- =
- charging_station|planned:
- amenity=
- charging_station|
- construction:amenity
- =
- charging_station
-Supported attributes
+
+ - amenity=charging_station|disused:amenity=charging_station|planned:amenity=charging_station|construction:amenity=charging_station
+
+
+
+
+ Supported attributes
----------------------
**Warning** This quick overview is incomplete
+
+
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
[](https://taginfo.openstreetmap.org/keys/access#values) [access](https://wiki.openstreetmap.org/wiki/Key:access) | [string](../SpecialInputElements.md#string) | [yes](https://wiki.openstreetmap.org/wiki/Tag:access%3Dyes) [customers](https://wiki.openstreetmap.org/wiki/Tag:access%3Dcustomers) [private](https://wiki.openstreetmap.org/wiki/Tag:access%3Dprivate)
-[](https://taginfo.openstreetmap.org/keys/capacity#values) [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:schuko#values) [socket:schuko](https://wiki.openstreetmap.org/wiki/Key:socket:schuko) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:typee#values) [socket:typee](https://wiki.openstreetmap.org/wiki/Key:socket:typee) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:chademo#values) [socket:chademo](https://wiki.openstreetmap.org/wiki/Key:socket:chademo) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1_cable#values) [socket:type1_cable](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1#values) [socket:type1](https://wiki.openstreetmap.org/wiki/Key:socket:type1) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1_combo#values) [socket:type1_combo](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger#values) [socket:tesla_supercharger](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2#values) [socket:type2](https://wiki.openstreetmap.org/wiki/Key:socket:type2) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2_combo#values) [socket:type2_combo](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2_cable#values) [socket:type2_cable](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger_ccs#values) [socket:tesla_supercharger_ccs](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination#values) [socket:tesla_destination](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination#values) [socket:tesla_destination](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:USB-A#values) [socket:USB-A](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:bosch_3pin#values) [socket:bosch_3pin](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:bosch_5pin#values) [socket:bosch_5pin](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin) | [pnat](../SpecialInputElements.md#pnat) |
-[](https://taginfo.openstreetmap.org/keys/socket:schuko:voltage#values) [socket:schuko:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:schuko:current#values) [socket:schuko:current](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:schuko:output#values) [socket:schuko:output](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:typee:voltage#values) [socket:typee:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:typee:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:typee:current#values) [socket:typee:current](https://wiki.openstreetmap.org/wiki/Key:socket:typee:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:typee:output#values) [socket:typee:output](https://wiki.openstreetmap.org/wiki/Key:socket:typee:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:chademo:voltage#values) [socket:chademo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:chademo:current#values) [socket:chademo:current](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:chademo:output#values) [socket:chademo:output](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1_cable:voltage#values) [socket:type1_cable:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1_cable:current#values) [socket:type1_cable:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1_cable:output#values) [socket:type1_cable:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1:voltage#values) [socket:type1:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1:current#values) [socket:type1:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1:output#values) [socket:type1:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1_combo:voltage#values) [socket:type1_combo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1_combo:current#values) [socket:type1_combo:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type1_combo:output#values) [socket:type1_combo:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger:voltage#values) [socket:tesla_supercharger:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger:current#values) [socket:tesla_supercharger:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger:output#values) [socket:tesla_supercharger:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2:voltage#values) [socket:type2:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2:current#values) [socket:type2:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2:output#values) [socket:type2:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2_combo:voltage#values) [socket:type2_combo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2_combo:current#values) [socket:type2_combo:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2_combo:output#values) [socket:type2_combo:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2_cable:voltage#values) [socket:type2_cable:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2_cable:current#values) [socket:type2_cable:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:type2_cable:output#values) [socket:type2_cable:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger_ccs:voltage#values) [socket:tesla_supercharger_ccs:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger_ccs:current#values) [socket:tesla_supercharger_ccs:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger_ccs:output#values) [socket:tesla_supercharger_ccs:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:voltage#values) [socket:tesla_destination:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:current#values) [socket:tesla_destination:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:output#values) [socket:tesla_destination:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:voltage#values) [socket:tesla_destination:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:current#values) [socket:tesla_destination:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:output#values) [socket:tesla_destination:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:USB-A:voltage#values) [socket:USB-A:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:USB-A:current#values) [socket:USB-A:current](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:USB-A:output#values) [socket:USB-A:output](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:bosch_3pin:voltage#values) [socket:bosch_3pin:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:bosch_3pin:current#values) [socket:bosch_3pin:current](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:bosch_3pin:output#values) [socket:bosch_3pin:output](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:output) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:bosch_5pin:voltage#values) [socket:bosch_5pin:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:bosch_5pin:current#values) [socket:bosch_5pin:current](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:current) | [pfloat](../SpecialInputElements.md#pfloat) |
-[](https://taginfo.openstreetmap.org/keys/socket:bosch_5pin:output#values) [socket:bosch_5pin:output](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/capacity#values) [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:schuko#values) [socket:schuko](https://wiki.openstreetmap.org/wiki/Key:socket:schuko) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:typee#values) [socket:typee](https://wiki.openstreetmap.org/wiki/Key:socket:typee) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:chademo#values) [socket:chademo](https://wiki.openstreetmap.org/wiki/Key:socket:chademo) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1_cable#values) [socket:type1_cable](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1#values) [socket:type1](https://wiki.openstreetmap.org/wiki/Key:socket:type1) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1_combo#values) [socket:type1_combo](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger#values) [socket:tesla_supercharger](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2#values) [socket:type2](https://wiki.openstreetmap.org/wiki/Key:socket:type2) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2_combo#values) [socket:type2_combo](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2_cable#values) [socket:type2_cable](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger_ccs#values) [socket:tesla_supercharger_ccs](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination#values) [socket:tesla_destination](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination#values) [socket:tesla_destination](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:USB-A#values) [socket:USB-A](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:bosch_3pin#values) [socket:bosch_3pin](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:bosch_5pin#values) [socket:bosch_5pin](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin) | [pnat](../SpecialInputElements.md#pnat) |
+[](https://taginfo.openstreetmap.org/keys/socket:schuko:voltage#values) [socket:schuko:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:schuko:current#values) [socket:schuko:current](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:schuko:output#values) [socket:schuko:output](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:typee:voltage#values) [socket:typee:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:typee:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:typee:current#values) [socket:typee:current](https://wiki.openstreetmap.org/wiki/Key:socket:typee:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:typee:output#values) [socket:typee:output](https://wiki.openstreetmap.org/wiki/Key:socket:typee:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:chademo:voltage#values) [socket:chademo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:chademo:current#values) [socket:chademo:current](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:chademo:output#values) [socket:chademo:output](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1_cable:voltage#values) [socket:type1_cable:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1_cable:current#values) [socket:type1_cable:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1_cable:output#values) [socket:type1_cable:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1:voltage#values) [socket:type1:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1:current#values) [socket:type1:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1:output#values) [socket:type1:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1_combo:voltage#values) [socket:type1_combo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1_combo:current#values) [socket:type1_combo:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type1_combo:output#values) [socket:type1_combo:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger:voltage#values) [socket:tesla_supercharger:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger:current#values) [socket:tesla_supercharger:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger:output#values) [socket:tesla_supercharger:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2:voltage#values) [socket:type2:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2:current#values) [socket:type2:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2:output#values) [socket:type2:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2_combo:voltage#values) [socket:type2_combo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2_combo:current#values) [socket:type2_combo:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2_combo:output#values) [socket:type2_combo:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2_cable:voltage#values) [socket:type2_cable:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2_cable:current#values) [socket:type2_cable:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:type2_cable:output#values) [socket:type2_cable:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger_ccs:voltage#values) [socket:tesla_supercharger_ccs:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger_ccs:current#values) [socket:tesla_supercharger_ccs:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_supercharger_ccs:output#values) [socket:tesla_supercharger_ccs:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:voltage#values) [socket:tesla_destination:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:current#values) [socket:tesla_destination:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:output#values) [socket:tesla_destination:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:voltage#values) [socket:tesla_destination:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:current#values) [socket:tesla_destination:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:tesla_destination:output#values) [socket:tesla_destination:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:USB-A:voltage#values) [socket:USB-A:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:USB-A:current#values) [socket:USB-A:current](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:USB-A:output#values) [socket:USB-A:output](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:bosch_3pin:voltage#values) [socket:bosch_3pin:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:bosch_3pin:current#values) [socket:bosch_3pin:current](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:bosch_3pin:output#values) [socket:bosch_3pin:output](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:output) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:bosch_5pin:voltage#values) [socket:bosch_5pin:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:voltage) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:bosch_5pin:current#values) [socket:bosch_5pin:current](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:current) | [pfloat](../SpecialInputElements.md#pfloat) |
+[](https://taginfo.openstreetmap.org/keys/socket:bosch_5pin:output#values) [socket:bosch_5pin:output](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:output) | [pfloat](../SpecialInputElements.md#pfloat) |
[](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7)
[](https://taginfo.openstreetmap.org/keys/fee#values) [fee](https://wiki.openstreetmap.org/wiki/Key:fee) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:fee%3Dno) [no](https://wiki.openstreetmap.org/wiki/Tag:fee%3Dno) [yes](https://wiki.openstreetmap.org/wiki/Tag:fee%3Dyes) [yes](https://wiki.openstreetmap.org/wiki/Tag:fee%3Dyes)
-[](https://taginfo.openstreetmap.org/keys/charge#values) [charge](https://wiki.openstreetmap.org/wiki/Key:charge) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/authentication:phone_call:number#values) [authentication:phone_call:number](https://wiki.openstreetmap.org/wiki/Key:authentication:phone_call:number) | [phone](../SpecialInputElements.md#phone) |
+[](https://taginfo.openstreetmap.org/keys/charge#values) [charge](https://wiki.openstreetmap.org/wiki/Key:charge) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/authentication:phone_call:number#values) [authentication:phone_call:number](https://wiki.openstreetmap.org/wiki/Key:authentication:phone_call:number) | [phone](../SpecialInputElements.md#phone) |
[](https://taginfo.openstreetmap.org/keys/maxstay#values) [maxstay](https://wiki.openstreetmap.org/wiki/Key:maxstay) | [string](../SpecialInputElements.md#string) | [unlimited](https://wiki.openstreetmap.org/wiki/Tag:maxstay%3Dunlimited)
[](https://taginfo.openstreetmap.org/keys/network#values) [network](https://wiki.openstreetmap.org/wiki/Key:network) | [string](../SpecialInputElements.md#string) | [AeroVironment](https://wiki.openstreetmap.org/wiki/Tag:network%3DAeroVironment) [Blink](https://wiki.openstreetmap.org/wiki/Tag:network%3DBlink) [EVgo](https://wiki.openstreetmap.org/wiki/Tag:network%3DEVgo) [Allego](https://wiki.openstreetmap.org/wiki/Tag:network%3DAllego) [Blue Corner](https://wiki.openstreetmap.org/wiki/Tag:network%3DBlue Corner) [Tesla](https://wiki.openstreetmap.org/wiki/Tag:network%3DTesla)
-[](https://taginfo.openstreetmap.org/keys/operator#values) [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) |
-[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
-[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
-[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
-[](https://taginfo.openstreetmap.org/keys/level#values) [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1)
-[](https://taginfo.openstreetmap.org/keys/ref#values) [ref](https://wiki.openstreetmap.org/wiki/Key:ref) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/operator#values) [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) |
+[](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
+[](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
+[](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
+[](https://taginfo.openstreetmap.org/keys/level#values) [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1)
+[](https://taginfo.openstreetmap.org/keys/ref#values) [ref](https://wiki.openstreetmap.org/wiki/Key:ref) | [string](../SpecialInputElements.md#string) |
[](https://taginfo.openstreetmap.org/keys/planned:amenity#values) [planned:amenity](https://wiki.openstreetmap.org/wiki/Key:planned:amenity) | Multiple choice | [](https://wiki.openstreetmap.org/wiki/Tag:planned:amenity%3D) [](https://wiki.openstreetmap.org/wiki/Tag:planned:amenity%3D) [charging_station](https://wiki.openstreetmap.org/wiki/Tag:planned:amenity%3Dcharging_station) [](https://wiki.openstreetmap.org/wiki/Tag:planned:amenity%3D) [](https://wiki.openstreetmap.org/wiki/Tag:planned:amenity%3D)
[](https://taginfo.openstreetmap.org/keys/parking:fee#values) [parking:fee](https://wiki.openstreetmap.org/wiki/Key:parking:fee) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:parking:fee%3Dno) [yes](https://wiki.openstreetmap.org/wiki/Tag:parking:fee%3Dyes)
-### images
+
+
+
+### images
+
+
_This tagrendering has no question and is thus read-only_
-### Type
+
+
+
+
+### Type
+
+
The question is **Which vehicles are allowed to charge here?**
-- **Bicycles can be charged here** corresponds
- with bicycle
- =yesUnselecting this answer will
- add bicycle
- =no
-- **Cars can be charged here** corresponds
- with motorcar
- =yesUnselecting this answer will
- add motorcar
- =no
-- **Scooters can be charged here** corresponds
- with scooter
- =yesUnselecting this answer will
- add scooter
- =no
-- **Heavy good vehicles (such as trucks) can be charged here** corresponds
- with hgv
- =yesUnselecting this answer will
- add hgv
- =no
-- **Buses can be charged here** corresponds
- with bus
- =yesUnselecting this answer will
- add bus
- =no
-### access
+
+
+
+ - **Bicycles can be charged here** corresponds with bicycle=yesUnselecting this answer will add bicycle=no
+ - **Cars can be charged here** corresponds with motorcar=yesUnselecting this answer will add motorcar=no
+ - **Scooters can be charged here** corresponds with scooter=yesUnselecting this answer will add scooter=no
+ - **Heavy good vehicles (such as trucks) can be charged here** corresponds with hgv=yesUnselecting this answer will add hgv=no
+ - **Buses can be charged here** corresponds with bus=yesUnselecting this answer will add bus=no
+
+
+
+
+### access
+
+
The question is **Who is allowed to use this charging station?**
-This rendering asks information about the property [access](https://wiki.openstreetmap.org/wiki/Key:access)
+This rendering asks information about the property [access](https://wiki.openstreetmap.org/wiki/Key:access)
This is rendered with `Access is {access}`
-- **Anyone can use this charging station (payment might be needed)** corresponds
- with access
- =yes
-- **Anyone can use this charging station (payment might be needed)** corresponds
- with access
- =permissive
- |access
- =public_This option cannot be
- chosen as answer_
-- **Only customers of the place this station belongs to can use this charging station E.g. a
- charging station operated by hotel which is only usable by their guests** corresponds
- with access
- =customers
-- **Not accessible to the general public (e.g. only accessible to the owners, employees, ...)** corresponds
- with access
- =private
-### capacity
+
+ - **Anyone can use this charging station (payment might be needed)** corresponds with access=yes
+ - **Anyone can use this charging station (payment might be needed)** corresponds with access=permissive|access=public_This option cannot be chosen as answer_
+ - **Only customers of the place this station belongs to can use this charging station E.g. a charging station operated by hotel which is only usable by their guests** corresponds with access=customers
+ - **Not accessible to the general public (e.g. only accessible to the owners, employees, ...)** corresponds with access=private
+
+
+
+
+### capacity
+
+
The question is **How much vehicles can be charged here at the same time?**
-This rendering asks information about the property [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity)
+This rendering asks information about the property [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity)
This is rendered with `{capacity} vehicles can be charged here at the same time`
-### Available_charging_stations (generated)
+
+
+### Available_charging_stations (generated)
+
+
The question is **Which charging connections are available here?**
-- **
Schuko wall
- plug without ground pin (CEE7/4 type F)
** corresponds
- with socket:schuko
- =1Unselecting this answer will
- add
-- **
Schuko wall
- plug without ground pin (CEE7/4 type F)
** corresponds with socket:schuko~^..*$&socket:schuko!~^1$_
- This option cannot be chosen as answer_
-- **
European wall
- plug with ground pin (CEE7/4 type E)
** corresponds
- with socket:typee
- =1Unselecting this answer will
- add
-- **
European wall
- plug with ground pin (CEE7/4 type E)
** corresponds with socket:typee~^..*$&socket:typee!~^1$_This
- option cannot be chosen as answer_
-- **
- Chademo
** corresponds
- with socket:chademo
- =1Unselecting this answer
- will add
-- **
- Chademo
** corresponds with socket:chademo~^..*$&socket:chademo!~^1$_This option cannot be chosen as
- answer_
-- **
Type 1
- with cable (J1772)
** corresponds
- with socket:type1_cable
- =1Unselecting this answer
- will add
-- **
Type 1
- with cable (J1772)
** corresponds with socket:type1_cable~^..*$&socket:type1_cable!~^1$_This option
- cannot be chosen as answer_
-- **
Type
- 1 without cable (J1772)
** corresponds
- with socket:type1
- =1Unselecting this answer will
- add
-- **
Type
- 1 without cable (J1772)
** corresponds with socket:type1~^..*$&socket:type1!~^1$_This option
- cannot be chosen as answer_
-- **
Type 1
- CCS (aka Type 1 Combo)
** corresponds
- with socket:type1_combo
- =1Unselecting this answer
- will add
-- **
Type 1
- CCS (aka Type 1 Combo)
** corresponds with socket:type1_combo~^..*$&socket:type1_combo!~^1$_This
- option cannot be chosen as answer_
-- **
Tesla
- supercharger (destination) (A Type 2 with cable branded as tesla)
** corresponds with socket:
- tesla_destination~^..*$&socket:tesla_destination!~^1$&_country!~^us$_This option cannot be chosen as answer_
-- **
USB to
- charge phones and small electronics
** corresponds
- with socket:USB-A
- =1Unselecting this answer will
- add
-- **
USB to
- charge phones and small electronics
** corresponds with socket:USB-A~^..*$&socket:USB-A!~^1$_This option
- cannot be chosen as answer_
-- **
Bosch
- Active Connect with 3 pins and cable
** corresponds
- with socket:bosch_3pin
- =1Unselecting this answer
- will add
-- **
Bosch
- Active Connect with 3 pins and cable
** corresponds with socket:bosch_3pin~^..*$&socket:bosch_3pin!~
- ^1$_This option cannot be chosen as answer_
-- **
Bosch
- Active Connect with 5 pins and cable
** corresponds
- with socket:bosch_5pin
- =1Unselecting this answer
- will add
-- **
Bosch
- Active Connect with 5 pins and cable
** corresponds with socket:bosch_5pin~^..*$&socket:bosch_5pin!~
- ^1$_This option cannot be chosen as answer_
-
-### plugs-0
-
-The question is **How much plugs of type
Schuko wall plug without ground
-pin (CEE7/4 type
-F)
are
-available here?**
-
-This rendering asks information about the
-property [socket:schuko](https://wiki.openstreetmap.org/wiki/Key:socket:schuko)
-This is rendered
-with `There are {socket:schuko} plugs of type
Schuko wall plug without ground pin (CEE7/4 type F)
available here`
-
-### plugs-1
-
-The question is **How much plugs of type
European wall plug with ground
-pin (CEE7/4 type
-E)
are
-available here?**
-
-This rendering asks information about the property [socket:typee](https://wiki.openstreetmap.org/wiki/Key:socket:typee)
-This is rendered
-with `There are {socket:typee} plugs of type
European wall plug with ground pin (CEE7/4 type E)
available here`
-
-### plugs-2
-
-The question is **How much plugs of type
-Chademo
-are available here?**
-
-This rendering asks information about the
-property [socket:chademo](https://wiki.openstreetmap.org/wiki/Key:socket:chademo)
-This is rendered
-with `There are {socket:chademo} plugs of type
Chademo
available here`
-
-### plugs-3
-
-The question is **How much plugs of type
Type 1 with cable (
-J1772)
-are available here?**
-
-This rendering asks information about the
-property [socket:type1_cable](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable)
-This is rendered
-with `There are {socket:type1_cable} plugs of type
Type 1 with cable (J1772)
available here`
-
-### plugs-4
-
-The question is **How much plugs of type
Type 1 without cable (
-J1772)
-are available here?**
-
-This rendering asks information about the property [socket:type1](https://wiki.openstreetmap.org/wiki/Key:socket:type1)
-This is rendered
-with `There are {socket:type1} plugs of type
Type 1 without cable (J1772)
available here`
-
-### plugs-5
-
-The question is **How much plugs of type
Type 1 CCS (aka Type 1
-Combo)
-are available here?**
-
-This rendering asks information about the
-property [socket:type1_combo](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo)
-This is rendered
-with `There are {socket:type1_combo} plugs of type
Type 1 CCS (aka Type 1 Combo)
available here`
-
-### plugs-6
-
-The question is **How much plugs of type
Tesla
-Supercharger
-are available here?**
-
-This rendering asks information about the
-property [socket:tesla_supercharger](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger)
-This is rendered
-with `There are {socket:tesla_supercharger} plugs of type
Tesla Supercharger
available here`
-
-### plugs-7
-The question is **How much plugs of type
Type 2 (
-mennekes)
-are available here?**
-This rendering asks information about the property [socket:type2](https://wiki.openstreetmap.org/wiki/Key:socket:type2)
-This is rendered
-with `There are {socket:type2} plugs of type
Type 2 (mennekes)
available here`
-### plugs-8
-The question is **How much plugs of type
Type 2 CCS (
-mennekes)
-are available here?**
+ - **
Schuko wall plug without ground pin (CEE7/4 type F)
** corresponds with socket:schuko=1Unselecting this answer will add
+ - **
Schuko wall plug without ground pin (CEE7/4 type F)
** corresponds with socket:schuko~^..*$&socket:schuko!~^1$_This option cannot be chosen as answer_
+ - **
European wall plug with ground pin (CEE7/4 type E)
** corresponds with socket:typee=1Unselecting this answer will add
+ - **
European wall plug with ground pin (CEE7/4 type E)
** corresponds with socket:typee~^..*$&socket:typee!~^1$_This option cannot be chosen as answer_
+ - **
Chademo
** corresponds with socket:chademo=1Unselecting this answer will add
+ - **
Chademo
** corresponds with socket:chademo~^..*$&socket:chademo!~^1$_This option cannot be chosen as answer_
+ - **
Type 1 with cable (J1772)
** corresponds with socket:type1_cable=1Unselecting this answer will add
+ - **
Type 1 with cable (J1772)
** corresponds with socket:type1_cable~^..*$&socket:type1_cable!~^1$_This option cannot be chosen as answer_
+ - **
Type 1 without cable (J1772)
** corresponds with socket:type1=1Unselecting this answer will add
+ - **
Type 1 without cable (J1772)
** corresponds with socket:type1~^..*$&socket:type1!~^1$_This option cannot be chosen as answer_
+ - **
Type 1 CCS (aka Type 1 Combo)
** corresponds with socket:type1_combo=1Unselecting this answer will add
+ - **
Type 1 CCS (aka Type 1 Combo)
** corresponds with socket:type1_combo~^..*$&socket:type1_combo!~^1$_This option cannot be chosen as answer_
+ - **
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
** corresponds with socket:tesla_destination~^..*$&socket:tesla_destination!~^1$&_country!~^us$_This option cannot be chosen as answer_
+ - **
USB to charge phones and small electronics
** corresponds with socket:USB-A=1Unselecting this answer will add
+ - **
USB to charge phones and small electronics
** corresponds with socket:USB-A~^..*$&socket:USB-A!~^1$_This option cannot be chosen as answer_
+ - **
Bosch Active Connect with 3 pins and cable
** corresponds with socket:bosch_3pin=1Unselecting this answer will add
+ - **
Bosch Active Connect with 3 pins and cable
** corresponds with socket:bosch_3pin~^..*$&socket:bosch_3pin!~^1$_This option cannot be chosen as answer_
+ - **
Bosch Active Connect with 5 pins and cable
** corresponds with socket:bosch_5pin=1Unselecting this answer will add
+ - **
Bosch Active Connect with 5 pins and cable
** corresponds with socket:bosch_5pin~^..*$&socket:bosch_5pin!~^1$_This option cannot be chosen as answer_
-This rendering asks information about the
-property [socket:type2_combo](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo)
-This is rendered
-with `There are {socket:type2_combo} plugs of type
Type 2 CCS (mennekes)
available here`
-### plugs-9
-The question is **How much plugs of type
Type 2 with cable (
-mennekes)
-are available here?**
-This rendering asks information about the
-property [socket:type2_cable](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable)
-This is rendered
-with `There are {socket:type2_cable} plugs of type
Type 2 with cable (mennekes)
available here`
+### plugs-0
-### plugs-10
-The question is **How much plugs of type
Tesla Supercharger CCS (a branded
-type2_css)
-are available here?**
-This rendering asks information about the
-property [socket:tesla_supercharger_ccs](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs)
-This is rendered
-with `There are {socket:tesla_supercharger_ccs} plugs of type
Tesla Supercharger CCS (a branded type2_css)
available here`
+The question is **How much plugs of type
Schuko wall plug without ground pin (CEE7/4 type F)
are available here?**
-### plugs-11
+This rendering asks information about the property [socket:schuko](https://wiki.openstreetmap.org/wiki/Key:socket:schuko)
+This is rendered with `There are {socket:schuko} plugs of type
Schuko wall plug without ground pin (CEE7/4 type F)
available here`
-The question is **How much plugs of type
Tesla Supercharger (
-destination)
-are available here?**
-This rendering asks information about the
-property [socket:tesla_destination](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination)
-This is rendered
-with `There are {socket:tesla_destination} plugs of type
Tesla Supercharger (destination)
available here`
-### plugs-12
+### plugs-1
-The question is **How much plugs of type
Tesla supercharger (destination) (
-A Type 2 with cable branded as
-tesla)
-are available here?**
-This rendering asks information about the
-property [socket:tesla_destination](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination)
-This is rendered
-with `There are {socket:tesla_destination} plugs of type
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
available here`
-### plugs-13
+The question is **How much plugs of type
European wall plug with ground pin (CEE7/4 type E)
are available here?**
-The question is **How much plugs of type
USB to charge phones and small
-electronics
-are available here?**
+This rendering asks information about the property [socket:typee](https://wiki.openstreetmap.org/wiki/Key:socket:typee)
+This is rendered with `There are {socket:typee} plugs of type
European wall plug with ground pin (CEE7/4 type E)
available here`
-This rendering asks information about the property [socket:USB-A](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A)
-This is rendered
-with `There are {socket:USB-A} plugs of type
USB to charge phones and small electronics
available here`
-### plugs-14
-The question is **How much plugs of type
Bosch Active Connect with 3 pins
-and
-cable
-are available here?**
+### plugs-2
-This rendering asks information about the
-property [socket:bosch_3pin](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin)
-This is rendered
-with `There are {socket:bosch_3pin} plugs of type
Bosch Active Connect with 3 pins and cable
available here`
-### plugs-15
-
-The question is **How much plugs of type
Bosch Active Connect with 5 pins
-and
-cable
-are available here?**
-This rendering asks information about the
-property [socket:bosch_5pin](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin)
-This is rendered
-with `There are {socket:bosch_5pin} plugs of type
Bosch Active Connect with 5 pins and cable
available here`
+The question is **How much plugs of type
Chademo
are available here?**
+
+This rendering asks information about the property [socket:chademo](https://wiki.openstreetmap.org/wiki/Key:socket:chademo)
+This is rendered with `There are {socket:chademo} plugs of type
Chademo
available here`
+
+
+
+### plugs-3
+
+
+
+The question is **How much plugs of type
Type 1 with cable (J1772)
are available here?**
+
+This rendering asks information about the property [socket:type1_cable](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable)
+This is rendered with `There are {socket:type1_cable} plugs of type
Type 1 with cable (J1772)
available here`
+
+
+
+### plugs-4
+
+
+
+The question is **How much plugs of type
Type 1 without cable (J1772)
are available here?**
+
+This rendering asks information about the property [socket:type1](https://wiki.openstreetmap.org/wiki/Key:socket:type1)
+This is rendered with `There are {socket:type1} plugs of type
Type 1 without cable (J1772)
available here`
+
+
+
+### plugs-5
+
+
+
+The question is **How much plugs of type
Type 1 CCS (aka Type 1 Combo)
are available here?**
+
+This rendering asks information about the property [socket:type1_combo](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo)
+This is rendered with `There are {socket:type1_combo} plugs of type
Type 1 CCS (aka Type 1 Combo)
available here`
+
+
+
+### plugs-6
+
+
+
+The question is **How much plugs of type
Tesla Supercharger
are available here?**
+
+This rendering asks information about the property [socket:tesla_supercharger](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger)
+This is rendered with `There are {socket:tesla_supercharger} plugs of type
Tesla Supercharger
available here`
+
+
+
+### plugs-7
+
+
+
+The question is **How much plugs of type
Type 2 (mennekes)
are available here?**
+
+This rendering asks information about the property [socket:type2](https://wiki.openstreetmap.org/wiki/Key:socket:type2)
+This is rendered with `There are {socket:type2} plugs of type
Type 2 (mennekes)
available here`
+
+
+
+### plugs-8
+
+
+
+The question is **How much plugs of type
Type 2 CCS (mennekes)
are available here?**
+
+This rendering asks information about the property [socket:type2_combo](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo)
+This is rendered with `There are {socket:type2_combo} plugs of type
Type 2 CCS (mennekes)
available here`
+
+
+
+### plugs-9
+
+
+
+The question is **How much plugs of type
Type 2 with cable (mennekes)
are available here?**
+
+This rendering asks information about the property [socket:type2_cable](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable)
+This is rendered with `There are {socket:type2_cable} plugs of type
Type 2 with cable (mennekes)
available here`
+
+
+
+### plugs-10
+
+
+
+The question is **How much plugs of type
Tesla Supercharger CCS (a branded type2_css)
are available here?**
+
+This rendering asks information about the property [socket:tesla_supercharger_ccs](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs)
+This is rendered with `There are {socket:tesla_supercharger_ccs} plugs of type
Tesla Supercharger CCS (a branded type2_css)
available here`
+
+
+
+### plugs-11
+
+
+
+The question is **How much plugs of type
Tesla Supercharger (destination)
are available here?**
+
+This rendering asks information about the property [socket:tesla_destination](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination)
+This is rendered with `There are {socket:tesla_destination} plugs of type
Tesla Supercharger (destination)
available here`
+
+
+
+### plugs-12
+
+
+
+The question is **How much plugs of type
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
are available here?**
+
+This rendering asks information about the property [socket:tesla_destination](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination)
+This is rendered with `There are {socket:tesla_destination} plugs of type
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
available here`
+
+
+
+### plugs-13
+
+
+
+The question is **How much plugs of type
USB to charge phones and small electronics
are available here?**
+
+This rendering asks information about the property [socket:USB-A](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A)
+This is rendered with `There are {socket:USB-A} plugs of type
USB to charge phones and small electronics
available here`
+
+
+
+### plugs-14
+
+
+
+The question is **How much plugs of type
Bosch Active Connect with 3 pins and cable
are available here?**
+
+This rendering asks information about the property [socket:bosch_3pin](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin)
+This is rendered with `There are {socket:bosch_3pin} plugs of type
Bosch Active Connect with 3 pins and cable
available here`
+
+
+
+### plugs-15
+
+
+
+The question is **How much plugs of type
Bosch Active Connect with 5 pins and cable
are available here?**
+
+This rendering asks information about the property [socket:bosch_5pin](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin)
+This is rendered with `There are {socket:bosch_5pin} plugs of type
Bosch Active Connect with 5 pins and cable
available here`
+
+
+
+### voltage-0
+
+
+
+The question is **What voltage do the plugs with
Schuko wall plug without ground pin (CEE7/4 type F)
offer?**
+
+This rendering asks information about the property [socket:schuko:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:voltage)
+This is rendered with `
Schuko wall plug without ground pin (CEE7/4 type F)
Schuko wall plug without ground pin (CEE7/4 type F)
outputs 230 volt** corresponds with socket:socket:schuko:voltage=230 V
+
+
+
+
+### current-0
+
+
+
+The question is **What current do the plugs with
Schuko wall plug without ground pin (CEE7/4 type F)
offer?**
+
+This rendering asks information about the property [socket:schuko:current](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:current)
+This is rendered with `
Schuko wall plug without ground pin (CEE7/4 type F)
outputs at most {socket:schuko:current}A`
+
+
+
+ - **
Schuko wall plug without ground pin (CEE7/4 type F)
outputs at most 16 A** corresponds with socket:socket:schuko:current=16 A
+
+
+
+
+### power-output-0
+
+
+
+The question is **What power output does a single plug of type
Schuko wall plug without ground pin (CEE7/4 type F)
offer?**
+
+This rendering asks information about the property [socket:schuko:output](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:output)
+This is rendered with `
Schuko wall plug without ground pin (CEE7/4 type F)
outputs at most {socket:schuko:output}`
+
+
+
+ - **
Schuko wall plug without ground pin (CEE7/4 type F)
outputs at most 3.6 kw** corresponds with socket:socket:schuko:output=3.6 kw
+
+
+
+
+### voltage-1
+
+
+
+The question is **What voltage do the plugs with
European wall plug with ground pin (CEE7/4 type E)
offer?**
+
+This rendering asks information about the property [socket:typee:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:typee:voltage)
+This is rendered with `
European wall plug with ground pin (CEE7/4 type E)
outputs {socket:typee:voltage} volt`
+
+
+
+ - **
European wall plug with ground pin (CEE7/4 type E)
outputs 230 volt** corresponds with socket:socket:typee:voltage=230 V
+
+
+
+
+### current-1
+
+
+
+The question is **What current do the plugs with
European wall plug with ground pin (CEE7/4 type E)
offer?**
+
+This rendering asks information about the property [socket:typee:current](https://wiki.openstreetmap.org/wiki/Key:socket:typee:current)
+This is rendered with `
European wall plug with ground pin (CEE7/4 type E)
outputs at most {socket:typee:current}A`
+
+
+
+ - **
European wall plug with ground pin (CEE7/4 type E)
outputs at most 16 A** corresponds with socket:socket:typee:current=16 A
+
+
+
+
+### power-output-1
+
+
+
+The question is **What power output does a single plug of type
European wall plug with ground pin (CEE7/4 type E)
offer?**
+
+This rendering asks information about the property [socket:typee:output](https://wiki.openstreetmap.org/wiki/Key:socket:typee:output)
+This is rendered with `
European wall plug with ground pin (CEE7/4 type E)
outputs at most {socket:typee:output}`
+
+
+
+ - **
European wall plug with ground pin (CEE7/4 type E)
European wall plug with ground pin (CEE7/4 type E)
outputs at most 22 kw** corresponds with socket:socket:typee:output=22 kw
+
+
+
+
+### voltage-2
+
+
+
+The question is **What voltage do the plugs with
Chademo
offer?**
+
+This rendering asks information about the property [socket:chademo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:voltage)
+This is rendered with `
outputs 500 volt** corresponds with socket:socket:chademo:voltage=500 V
+
+
+
+
+### current-2
+
+
+
+The question is **What current do the plugs with
Chademo
offer?**
+
+This rendering asks information about the property [socket:chademo:current](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:current)
+This is rendered with `
Chademo
outputs at most {socket:chademo:current}A`
+
+
+
+ - **
Chademo
outputs at most 120 A** corresponds with socket:socket:chademo:current=120 A
+
+
+
+
+### power-output-2
+
+
+
+The question is **What power output does a single plug of type
Chademo
offer?**
+
+This rendering asks information about the property [socket:chademo:output](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:output)
+This is rendered with `
Chademo
outputs at most {socket:chademo:output}`
+
+
+
+ - **
Chademo
outputs at most 50 kw** corresponds with socket:socket:chademo:output=50 kw
+
+
+
+
+### voltage-3
+
+
+
+The question is **What voltage do the plugs with
Type 1 with cable (J1772)
offer?**
+
+This rendering asks information about the property [socket:type1_cable:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:voltage)
+This is rendered with `
outputs 240 volt** corresponds with socket:socket:type1_cable:voltage=240 V
+
+
+
+
+### current-3
+
+
+
+The question is **What current do the plugs with
Type 1 with cable (J1772)
offer?**
+
+This rendering asks information about the property [socket:type1_cable:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:current)
+This is rendered with `
Type 1 with cable (J1772)
outputs at most {socket:type1_cable:current}A`
+
+
+
+ - **
Type 1 with cable (J1772)
outputs at most 32 A** corresponds with socket:socket:type1_cable:current=32 A
+
+
+
+
+### power-output-3
+
+
+
+The question is **What power output does a single plug of type
Type 1 with cable (J1772)
offer?**
+
+This rendering asks information about the property [socket:type1_cable:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:output)
+This is rendered with `
Type 1 with cable (J1772)
outputs at most {socket:type1_cable:output}`
+
+
+
+ - **
outputs at most 7 kw** corresponds with socket:socket:type1_cable:output=7 kw
+
+
+
+
+### voltage-4
+
+
+
+The question is **What voltage do the plugs with
Type 1 without cable (J1772)
offer?**
+
+This rendering asks information about the property [socket:type1:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1:voltage)
+This is rendered with `
outputs 240 volt** corresponds with socket:socket:type1:voltage=240 V
+
+
+
+
+### current-4
+
+
+
+The question is **What current do the plugs with
Type 1 without cable (J1772)
offer?**
+
+This rendering asks information about the property [socket:type1:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1:current)
+This is rendered with `
Type 1 without cable (J1772)
outputs at most {socket:type1:current}A`
+
+
+
+ - **
Type 1 without cable (J1772)
outputs at most 32 A** corresponds with socket:socket:type1:current=32 A
+
+
+
+
+### power-output-4
+
+
+
+The question is **What power output does a single plug of type
Type 1 without cable (J1772)
offer?**
+
+This rendering asks information about the property [socket:type1:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1:output)
+This is rendered with `
Type 1 without cable (J1772)
outputs at most {socket:type1:output}`
+
+
+
+ - **
outputs at most 7.2 kw** corresponds with socket:socket:type1:output=7.2 kw
+
+
+
+
+### voltage-5
+
+
+
+The question is **What voltage do the plugs with
Type 1 CCS (aka Type 1 Combo)
offer?**
+
+This rendering asks information about the property [socket:type1_combo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:voltage)
+This is rendered with `
outputs 1000 volt** corresponds with socket:socket:type1_combo:voltage=1000 V
+
+
+
+
+### current-5
+
+
+
+The question is **What current do the plugs with
Type 1 CCS (aka Type 1 Combo)
offer?**
+
+This rendering asks information about the property [socket:type1_combo:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:current)
+This is rendered with `
Type 1 CCS (aka Type 1 Combo)
outputs at most {socket:type1_combo:current}A`
+
+
+
+ - **
outputs at most 125 A** corresponds with socket:socket:type1_combo:current=125 A
+
+
+
+
+### power-output-5
+
+
+
+The question is **What power output does a single plug of type
Type 1 CCS (aka Type 1 Combo)
offer?**
+
+This rendering asks information about the property [socket:type1_combo:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:output)
+This is rendered with `
Type 1 CCS (aka Type 1 Combo)
outputs at most {socket:type1_combo:output}`
+
+
+
+ - **
outputs at most 350 kw** corresponds with socket:socket:type1_combo:output=350 kw
+
+
+
+
+### voltage-6
+
+
+
+The question is **What voltage do the plugs with
Tesla Supercharger
offer?**
+
+This rendering asks information about the property [socket:tesla_supercharger:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:voltage)
+This is rendered with `
offer?**
+
+This rendering asks information about the property [socket:tesla_supercharger:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:current)
+This is rendered with `
Tesla Supercharger
outputs at most {socket:tesla_supercharger:current}A`
+
+
+
+ - **
outputs at most 350 A** corresponds with socket:socket:tesla_supercharger:current=350 A
+
+
+
+
+### power-output-6
+
+
+
+The question is **What power output does a single plug of type
Tesla Supercharger
offer?**
+
+This rendering asks information about the property [socket:tesla_supercharger:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:output)
+This is rendered with `
Tesla Supercharger
outputs at most {socket:tesla_supercharger:output}`
+
+
+
+ - **
offer?**
+
+This rendering asks information about the property [socket:type2:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2:voltage)
+This is rendered with `
outputs 400 volt** corresponds with socket:socket:type2:voltage=400 V
+
+
+
+
+### current-7
+
+
+
+The question is **What current do the plugs with
Type 2 (mennekes)
offer?**
+
+This rendering asks information about the property [socket:type2:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2:current)
+This is rendered with `
Type 2 (mennekes)
outputs at most {socket:type2:current}A`
+
+
+
+ - **
outputs at most 32 A** corresponds with socket:socket:type2:current=32 A
+
+
+
+
+### power-output-7
+
+
+
+The question is **What power output does a single plug of type
Type 2 (mennekes)
offer?**
+
+This rendering asks information about the property [socket:type2:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2:output)
+This is rendered with `
Type 2 (mennekes)
outputs at most {socket:type2:output}`
+
+
+
+ - **
outputs at most 22 kw** corresponds with socket:socket:type2:output=22 kw
+
+
+
+
+### voltage-8
+
+
+
+The question is **What voltage do the plugs with
Type 2 CCS (mennekes)
offer?**
+
+This rendering asks information about the property [socket:type2_combo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:voltage)
+This is rendered with `
outputs 920 volt** corresponds with socket:socket:type2_combo:voltage=920 V
+
+
+
+
+### current-8
+
+
+
+The question is **What current do the plugs with
Type 2 CCS (mennekes)
offer?**
+
+This rendering asks information about the property [socket:type2_combo:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:current)
+This is rendered with `
Type 2 CCS (mennekes)
outputs at most {socket:type2_combo:current}A`
+
+
+
+ - **
outputs at most 350 A** corresponds with socket:socket:type2_combo:current=350 A
+
+
+
+
+### power-output-8
+
+
+
+The question is **What power output does a single plug of type
Type 2 CCS (mennekes)
offer?**
+
+This rendering asks information about the property [socket:type2_combo:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:output)
+This is rendered with `
Type 2 CCS (mennekes)
outputs at most {socket:type2_combo:output}`
+
+
+
+ - **
Type 2 CCS (mennekes)
outputs at most 50 kw** corresponds with socket:socket:type2_combo:output=50 kw
+
+
+
+
+### voltage-9
+
+
+
+The question is **What voltage do the plugs with
Type 2 with cable (mennekes)
offer?**
+
+This rendering asks information about the property [socket:type2_cable:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:voltage)
+This is rendered with `
outputs 400 volt** corresponds with socket:socket:type2_cable:voltage=400 V
+
+
+
+
+### current-9
+
+
+
+The question is **What current do the plugs with
Type 2 with cable (mennekes)
offer?**
+
+This rendering asks information about the property [socket:type2_cable:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:current)
+This is rendered with `
Type 2 with cable (mennekes)
outputs at most {socket:type2_cable:current}A`
+
+
+
+ - **
outputs at most 32 A** corresponds with socket:socket:type2_cable:current=32 A
+
+
+
+
+### power-output-9
+
+
+
+The question is **What power output does a single plug of type
Type 2 with cable (mennekes)
offer?**
+
+This rendering asks information about the property [socket:type2_cable:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:output)
+This is rendered with `
Type 2 with cable (mennekes)
outputs at most {socket:type2_cable:output}`
+
+
+
+ - **
outputs at most 22 kw** corresponds with socket:socket:type2_cable:output=22 kw
+
+
+
+
+### voltage-10
+
+
+
+The question is **What voltage do the plugs with
Tesla Supercharger CCS (a branded type2_css)
offer?**
+
+This rendering asks information about the property [socket:tesla_supercharger_ccs:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:voltage)
+This is rendered with `
offer?**
+
+This rendering asks information about the property [socket:tesla_supercharger_ccs:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:current)
+This is rendered with `
Tesla Supercharger CCS (a branded type2_css)
outputs at most {socket:tesla_supercharger_ccs:current}A`
+
+
+
+ - **
offer?**
+
+This rendering asks information about the property [socket:tesla_supercharger_ccs:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:output)
+This is rendered with `
Tesla Supercharger CCS (a branded type2_css)
outputs at most {socket:tesla_supercharger_ccs:output}`
+
+
+
+ - **
offer?**
+
+This rendering asks information about the property [socket:tesla_destination:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:voltage)
+This is rendered with `
offer?**
+
+This rendering asks information about the property [socket:tesla_destination:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:current)
+This is rendered with `
Tesla Supercharger (destination)
outputs at most {socket:tesla_destination:current}A`
+
+
+
+ - **
outputs at most 350 A** corresponds with socket:socket:tesla_destination:current=350 A
+
+
+
+
+### power-output-11
+
+
+
+The question is **What power output does a single plug of type
Tesla Supercharger (destination)
offer?**
+
+This rendering asks information about the property [socket:tesla_destination:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:output)
+This is rendered with `
Tesla Supercharger (destination)
outputs at most {socket:tesla_destination:output}`
+
+
+
+ - **
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
offer?**
+
+This rendering asks information about the property [socket:tesla_destination:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:voltage)
+This is rendered with `
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
offer?**
+
+This rendering asks information about the property [socket:tesla_destination:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:current)
+This is rendered with `
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
outputs at most {socket:tesla_destination:current}A`
+
+
+
+ - **
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
outputs at most 32 A** corresponds with socket:socket:tesla_destination:current=32 A
+
+
+
+
+### power-output-12
+
+
+
+The question is **What power output does a single plug of type
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
offer?**
+
+This rendering asks information about the property [socket:tesla_destination:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:output)
+This is rendered with `
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
outputs at most {socket:tesla_destination:output}`
+
+
+
+ - **
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
offer?**
+
+This rendering asks information about the property [socket:USB-A:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:voltage)
+This is rendered with `
USB to charge phones and small electronics
outputs {socket:USB-A:voltage} volt`
+
+
+
+ - **
USB to charge phones and small electronics
outputs 5 volt** corresponds with socket:socket:USB-A:voltage=5 V
+
+
+
+
+### current-13
+
+
+
+The question is **What current do the plugs with
USB to charge phones and small electronics
offer?**
+
+This rendering asks information about the property [socket:USB-A:current](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:current)
+This is rendered with `
USB to charge phones and small electronics
outputs at most {socket:USB-A:current}A`
+
+
+
+ - **
outputs at most 2 A** corresponds with socket:socket:USB-A:current=2 A
+
+
+
+
+### power-output-13
+
+
+
+The question is **What power output does a single plug of type
USB to charge phones and small electronics
offer?**
+
+This rendering asks information about the property [socket:USB-A:output](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:output)
+This is rendered with `
USB to charge phones and small electronics
outputs at most {socket:USB-A:output}`
+
+
+
+ - **
outputs at most 10w** corresponds with socket:socket:USB-A:output=10w
+
+
+
+
+### voltage-14
+
+
+
+The question is **What voltage do the plugs with
Bosch Active Connect with 3 pins and cable
offer?**
+
+This rendering asks information about the property [socket:bosch_3pin:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:voltage)
+This is rendered with `
Bosch Active Connect with 3 pins and cable
outputs {socket:bosch_3pin:voltage} volt`
+
+
+
+
+
+
+
+
+### current-14
+
+
+
+The question is **What current do the plugs with
Bosch Active Connect with 3 pins and cable
offer?**
+
+This rendering asks information about the property [socket:bosch_3pin:current](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:current)
+This is rendered with `
Bosch Active Connect with 3 pins and cable
outputs at most {socket:bosch_3pin:current}A`
+
+
+
+
+
+
+
+
+### power-output-14
+
+
+
+The question is **What power output does a single plug of type
Bosch Active Connect with 3 pins and cable
offer?**
+
+This rendering asks information about the property [socket:bosch_3pin:output](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:output)
+This is rendered with `
Bosch Active Connect with 3 pins and cable
outputs at most {socket:bosch_3pin:output}`
+
+
+
+
+
+
+
+
+### voltage-15
+
+
+
+The question is **What voltage do the plugs with
Bosch Active Connect with 5 pins and cable
offer?**
+
+This rendering asks information about the property [socket:bosch_5pin:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:voltage)
+This is rendered with `
Bosch Active Connect with 5 pins and cable
outputs {socket:bosch_5pin:voltage} volt`
+
+
+
+
+
+
+
+
+### current-15
+
+
+
+The question is **What current do the plugs with
Bosch Active Connect with 5 pins and cable
offer?**
+
+This rendering asks information about the property [socket:bosch_5pin:current](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:current)
+This is rendered with `
Bosch Active Connect with 5 pins and cable
outputs at most {socket:bosch_5pin:current}A`
+
+
+
+
+
+
+
+
+### power-output-15
+
+
+
+The question is **What power output does a single plug of type
Bosch Active Connect with 5 pins and cable
offer?**
+
+This rendering asks information about the property [socket:bosch_5pin:output](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:output)
+This is rendered with `
Bosch Active Connect with 5 pins and cable
outputs at most {socket:bosch_5pin:output}`
+
+
+
+
+
+
+
+
+### OH
+
-### voltage-0
-
-The question is **What voltage do the plugs with
Schuko wall plug without
-ground pin (CEE7/4 type
-F)
-offer?**
-
-This rendering asks information about the
-property [socket:schuko:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:voltage)
-This is rendered
-with `
Schuko wall plug without ground pin (CEE7/4 type F)
outputs {socket:schuko:voltage} volt`
-
-- **
Schuko wall plug without ground pin (CEE7/4 type
- F)
- outputs 230 volt** corresponds
- with socket:socket:
- schuko:voltage
- =230 V
-
-### current-0
-
-The question is **What current do the plugs with
Schuko wall plug without
-ground pin (CEE7/4 type
-F)
-offer?**
-
-This rendering asks information about the
-property [socket:schuko:current](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:current)
-This is rendered
-with `
Schuko wall plug without ground pin (CEE7/4 type F)
outputs at most {socket:schuko:current}A`
-
-- **
Schuko wall plug without ground pin (CEE7/4 type
- F)
- outputs at most 16 A** corresponds
- with socket:socket:
- schuko:current
- =16 A
-
-### power-output-0
-
-The question is **What power output does a single plug of type
Schuko wall
-plug without ground pin (CEE7/4 type
-F)
-offer?**
-
-This rendering asks information about the
-property [socket:schuko:output](https://wiki.openstreetmap.org/wiki/Key:socket:schuko:output)
-This is rendered
-with `
Schuko wall plug without ground pin (CEE7/4 type F)
outputs at most {socket:schuko:output}`
-
-- **
Schuko wall plug without ground pin (CEE7/4 type
- F)
- outputs at most 3.6 kw** corresponds
- with socket:socket:
- schuko:output
- =3.6 kw
-
-### voltage-1
-
-The question is **What voltage do the plugs with
European wall plug with
-ground pin (CEE7/4 type
-E)
offer?**
-
-This rendering asks information about the
-property [socket:typee:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:typee:voltage)
-This is rendered
-with `
European wall plug with ground pin (CEE7/4 type E)
outputs {socket:typee:voltage} volt`
-
-- **
European wall plug with ground pin (CEE7/4 type
- E)
outputs
- 230 volt** corresponds
- with socket:socket:
- typee:voltage
- =230 V
-
-### current-1
-
-The question is **What current do the plugs with
European wall plug with
-ground pin (CEE7/4 type
-E)
offer?**
-
-This rendering asks information about the
-property [socket:typee:current](https://wiki.openstreetmap.org/wiki/Key:socket:typee:current)
-This is rendered
-with `
European wall plug with ground pin (CEE7/4 type E)
outputs at most {socket:typee:current}A`
-
-- **
European wall plug with ground pin (CEE7/4 type
- E)
outputs
- at most 16 A** corresponds
- with socket:socket:
- typee:current
- =16 A
-
-### power-output-1
-
-The question is **What power output does a single plug of type
European wall
-plug with ground pin (CEE7/4 type
-E)
offer?**
-
-This rendering asks information about the
-property [socket:typee:output](https://wiki.openstreetmap.org/wiki/Key:socket:typee:output)
-This is rendered
-with `
European wall plug with ground pin (CEE7/4 type E)
outputs at most {socket:typee:output}`
-
-- **
European wall plug with ground pin (CEE7/4 type
- E)
European wall plug with ground pin (CEE7/4 type
- E)
outputs
- at most 22 kw** corresponds
- with socket:socket:typee:
- output=22
- kw
-
-### voltage-2
-
-The question is **What voltage do the plugs with
-Chademo
-offer?**
-
-This rendering asks information about the
-property [socket:chademo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:voltage)
-This is rendered
-with `
Chademo
outputs {socket:chademo:voltage} volt`
-
-- **
- Chademo
- outputs 500 volt** corresponds
- with socket:socket:
- chademo:voltage
- =500 V
-
-### current-2
-
-The question is **What current do the plugs with
-Chademo
-offer?**
-
-This rendering asks information about the
-property [socket:chademo:current](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:current)
-This is rendered
-with `
Chademo
outputs at most {socket:chademo:current}A`
-
-- **
- Chademo
- outputs at most 120 A** corresponds
- with socket:socket:
- chademo:current
- =120 A
-
-### power-output-2
-
-The question is **What power output does a single plug of type
-Chademo
-offer?**
-
-This rendering asks information about the
-property [socket:chademo:output](https://wiki.openstreetmap.org/wiki/Key:socket:chademo:output)
-This is rendered
-with `
Chademo
outputs at most {socket:chademo:output}`
-
-- **
- Chademo
- outputs at most 50 kw** corresponds
- with socket:socket:
- chademo:output
- =50 kw
-
-### voltage-3
-
-The question is **What voltage do the plugs with
Type 1 with cable (
-J1772)
-offer?**
-
-This rendering asks information about the
-property [socket:type1_cable:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:voltage)
-This is rendered
-with `
-offer?**
-
-This rendering asks information about the
-property [socket:type1_cable:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:current)
-This is rendered
-with `
Type 1 with cable (J1772)
outputs at most {socket:type1_cable:current}A`
-
-- **
Type 1 with cable (
- J1772)
- outputs at most 32 A** corresponds
- with socket:
- socket:type1_cable:current
- =32 A
-
-### power-output-3
-
-The question is **What power output does a single plug of type
Type 1 with
-cable (
-J1772)
-offer?**
-
-This rendering asks information about the
-property [socket:type1_cable:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1_cable:output)
-This is rendered
-with `
Type 1 with cable (J1772)
outputs at most {socket:type1_cable:output}`
-
-- **
- outputs at most 7 kw** corresponds
- with socket:socket:
- type1_cable:output
- =7 kw
-
-### voltage-4
-
-The question is **What voltage do the plugs with
Type 1 without
-cable (
-J1772)
-offer?**
-
-This rendering asks information about the
-property [socket:type1:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1:voltage)
-This is rendered
-with `
- outputs 240 volt** corresponds
- with socket:socket:
- type1:voltage
- =240 V
-
-### current-4
-
-The question is **What current do the plugs with
Type 1 without
-cable (
-J1772)
-offer?**
-
-This rendering asks information about the
-property [socket:type1:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1:current)
-This is rendered
-with `
Type 1 without cable (J1772)
outputs at most {socket:type1:current}A`
-
-- **
Type 1 without cable (
- J1772)
- outputs at most 32 A** corresponds
- with socket:socket:
- type1:current
- =32 A
-
-### power-output-4
-
-The question is **What power output does a single plug of type
Type 1
-without cable (
-J1772)
-offer?**
-
-This rendering asks information about the
-property [socket:type1:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1:output)
-This is rendered
-with `
- outputs at most 7.2 kw** corresponds
- with socket:socket:type1:
- output=7.2
- kw
-
-### voltage-5
-
-The question is **What voltage do the plugs with
Type 1 CCS (aka Type 1
-Combo)
-offer?**
-
-This rendering asks information about the
-property [socket:type1_combo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:voltage)
-This is rendered
-with `
-offer?**
-
-This rendering asks information about the
-property [socket:type1_combo:current](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:current)
-This is rendered
-with `
Type 1 CCS (aka Type 1 Combo)
outputs at most {socket:type1_combo:current}A`
-
-- **
- outputs at most 125 A** corresponds
- with socket:
- socket:type1_combo:current
- =125 A
-
-### power-output-5
-
-The question is **What power output does a single plug of type
Type 1 CCS (
-aka Type 1
-Combo)
-offer?**
-
-This rendering asks information about the
-property [socket:type1_combo:output](https://wiki.openstreetmap.org/wiki/Key:socket:type1_combo:output)
-This is rendered
-with `
Type 1 CCS (aka Type 1 Combo)
outputs at most {socket:type1_combo:output}`
-
-- **
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_supercharger:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:voltage)
-This is rendered
-with `
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_supercharger:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:current)
-This is rendered
-with `
Tesla Supercharger
outputs at most {socket:tesla_supercharger:current}A`
-
-- **
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_supercharger:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger:output)
-This is rendered
-with `
Tesla Supercharger
outputs at most {socket:tesla_supercharger:output}`
-
-- **
-offer?**
-
-This rendering asks information about the
-property [socket:type2:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2:voltage)
-This is rendered
-with `
- outputs 400 volt** corresponds
- with socket:socket:
- type2:voltage
- =400 V
-
-### current-7
-
-The question is **What current do the plugs with
Type 2 (
-mennekes)
-offer?**
-
-This rendering asks information about the
-property [socket:type2:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2:current)
-This is rendered
-with `
- outputs at most 32 A** corresponds
- with socket:socket:
- type2:current
- =32 A
-
-### power-output-7
-
-The question is **What power output does a single plug of type
Type 2 (
-mennekes)
-offer?**
-
-This rendering asks information about the
-property [socket:type2:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2:output)
-This is rendered
-with `
- outputs at most 22 kw** corresponds
- with socket:socket:type2:
- output=22
- kw
-
-### voltage-8
-
-The question is **What voltage do the plugs with
Type 2 CCS (
-mennekes)
-offer?**
-
-This rendering asks information about the
-property [socket:type2_combo:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:voltage)
-This is rendered
-with `
-offer?**
-
-This rendering asks information about the
-property [socket:type2_combo:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:current)
-This is rendered
-with `
Type 2 CCS (mennekes)
outputs at most {socket:type2_combo:current}A`
-
-- **
- outputs at most 350 A** corresponds
- with socket:
- socket:type2_combo:current
- =350 A
-
-### power-output-8
-
-The question is **What power output does a single plug of type
Type 2 CCS (
-mennekes)
-offer?**
-
-This rendering asks information about the
-property [socket:type2_combo:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2_combo:output)
-This is rendered
-with `
Type 2 CCS (mennekes)
outputs at most {socket:type2_combo:output}`
-
-- **
-offer?**
-
-This rendering asks information about the
-property [socket:type2_cable:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:voltage)
-This is rendered
-with `
-offer?**
-
-This rendering asks information about the
-property [socket:type2_cable:current](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:current)
-This is rendered
-with `
Type 2 with cable (mennekes)
outputs at most {socket:type2_cable:current}A`
-
-- **
- outputs at most 32 A** corresponds
- with socket:
- socket:type2_cable:current
- =32 A
-
-### power-output-9
-
-The question is **What power output does a single plug of type
Type 2 with
-cable (
-mennekes)
-offer?**
-
-This rendering asks information about the
-property [socket:type2_cable:output](https://wiki.openstreetmap.org/wiki/Key:socket:type2_cable:output)
-This is rendered
-with `
Type 2 with cable (mennekes)
outputs at most {socket:type2_cable:output}`
-
-- **
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_supercharger_ccs:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:voltage)
-This is rendered
-with `
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_supercharger_ccs:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:current)
-This is rendered
-with `
Tesla Supercharger CCS (a branded type2_css)
outputs at most {socket:tesla_supercharger_ccs:current}A`
-
-- **
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_supercharger_ccs:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_supercharger_ccs:output)
-This is rendered
-with `
Tesla Supercharger CCS (a branded type2_css)
outputs at most {socket:tesla_supercharger_ccs:output}`
-
-- **
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_destination:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:voltage)
-This is rendered
-with `
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_destination:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:current)
-This is rendered
-with `
Tesla Supercharger (destination)
outputs at most {socket:tesla_destination:current}A`
-
-- **
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_destination:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:output)
-This is rendered
-with `
Tesla Supercharger (destination)
outputs at most {socket:tesla_destination:output}`
-
-- **
Tesla supercharger (
-destination) (A Type 2 with cable branded as
-tesla)
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_destination:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:voltage)
-This is rendered
-with `
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
Tesla supercharger (
-destination) (A Type 2 with cable branded as
-tesla)
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_destination:current](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:current)
-This is rendered
-with `
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
outputs at most {socket:tesla_destination:current}A`
-
-- **
Tesla supercharger (destination) (A Type 2 with cable branded as
- tesla)
Tesla
-supercharger (destination) (A Type 2 with cable branded as
-tesla)
-offer?**
-
-This rendering asks information about the
-property [socket:tesla_destination:output](https://wiki.openstreetmap.org/wiki/Key:socket:tesla_destination:output)
-This is rendered
-with `
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
outputs at most {socket:tesla_destination:output}`
-
-- **
Tesla supercharger (destination) (A Type 2 with cable branded as
- tesla)
-offer?**
-
-This rendering asks information about the
-property [socket:USB-A:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:voltage)
-This is rendered
-with `
USB to charge phones and small electronics
outputs {socket:USB-A:voltage} volt`
-
-- **
USB to charge phones and small
- electronics
- outputs 5 volt** corresponds
- with socket:socket:
- USB-A:voltage=
- 5 V
-
-### current-13
-
-The question is **What current do the plugs with
USB to charge phones and
-small
-electronics
-offer?**
-
-This rendering asks information about the
-property [socket:USB-A:current](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:current)
-This is rendered
-with `
- outputs at most 2 A** corresponds
- with socket:socket:
- USB-A:current=
- 2 A
-
-### power-output-13
-
-The question is **What power output does a single plug of type
USB to
-charge phones and small
-electronics
-offer?**
-
-This rendering asks information about the
-property [socket:USB-A:output](https://wiki.openstreetmap.org/wiki/Key:socket:USB-A:output)
-This is rendered
-with `
- outputs at most 10w** corresponds
- with socket:socket:USB-A:
- output=10w
-
-### voltage-14
-
-The question is **What voltage do the plugs with
Bosch Active Connect with 3
-pins and
-cable
-offer?**
-
-This rendering asks information about the
-property [socket:bosch_3pin:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:voltage)
-This is rendered
-with `
Bosch Active Connect with 3 pins and cable
outputs {socket:bosch_3pin:voltage} volt`
-
-### current-14
-
-The question is **What current do the plugs with
Bosch Active Connect with 3
-pins and
-cable
-offer?**
-
-This rendering asks information about the
-property [socket:bosch_3pin:current](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:current)
-This is rendered
-with `
Bosch Active Connect with 3 pins and cable
outputs at most {socket:bosch_3pin:current}A`
-
-### power-output-14
-
-The question is **What power output does a single plug of type
Bosch Active
-Connect with 3 pins and
-cable
-offer?**
-
-This rendering asks information about the
-property [socket:bosch_3pin:output](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_3pin:output)
-This is rendered
-with `
Bosch Active Connect with 3 pins and cable
outputs at most {socket:bosch_3pin:output}`
-
-### voltage-15
-
-The question is **What voltage do the plugs with
Bosch Active Connect with 5
-pins and
-cable
-offer?**
-
-This rendering asks information about the
-property [socket:bosch_5pin:voltage](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:voltage)
-This is rendered
-with `
Bosch Active Connect with 5 pins and cable
outputs {socket:bosch_5pin:voltage} volt`
-
-### current-15
-
-The question is **What current do the plugs with
Bosch Active Connect with 5
-pins and
-cable
-offer?**
-
-This rendering asks information about the
-property [socket:bosch_5pin:current](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:current)
-This is rendered
-with `
Bosch Active Connect with 5 pins and cable
outputs at most {socket:bosch_5pin:current}A`
-
-### power-output-15
-
-The question is **What power output does a single plug of type
Bosch Active
-Connect with 5 pins and
-cable
-offer?**
-
-This rendering asks information about the
-property [socket:bosch_5pin:output](https://wiki.openstreetmap.org/wiki/Key:socket:bosch_5pin:output)
-This is rendered
-with `
Bosch Active Connect with 5 pins and cable
outputs at most {socket:bosch_5pin:output}`
-
-### OH
The question is **When is this charging station opened?**
-This rendering asks information about the
-property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
+This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
This is rendered with `{opening_hours_table(opening_hours)}`
-- **24/7 opened (including holidays)** corresponds
- with opening_hours
- =24/7
-### fee
+
+ - **24/7 opened (including holidays)** corresponds with opening_hours=24/7
+
+
+
+
+### fee
+
+
The question is **Does one have to pay to use this charging station?**
-- **Free to use** corresponds with fee
- =no_This option cannot be chosen as
- answer_
-- **Free to use (without authenticating)** corresponds
- with fee
- =no
- &authentication:none
- =yes
-- **Free to use, but one has to authenticate** corresponds
- with fee
- =no
- &authentication:none
- =no
-- **Paid use, but free for customers of the hotel/pub/hospital/... who operates the charging station** corresponds
- with fee
- =yes
- &fee:conditional
- =no @ customers
-- **Paid use** corresponds with fee
- =yes
-### charge
+
+
+
+ - **Free to use** corresponds with fee=no_This option cannot be chosen as answer_
+ - **Free to use (without authenticating)** corresponds with fee=no&authentication:none=yes
+ - **Free to use, but one has to authenticate** corresponds with fee=no&authentication:none=no
+ - **Paid use, but free for customers of the hotel/pub/hospital/... who operates the charging station** corresponds with fee=yes&fee:conditional=no @ customers
+ - **Paid use** corresponds with fee=yes
+
+
+
+
+### charge
+
+
The question is **How much does one have to pay to use this charging station?**
-This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
+This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
This is rendered with `Using this charging station costs {charge}`
-### payment-options-advanced
+
+
+### payment-options-advanced
+
+
The question is **Which methods of payment are accepted here?**
-- **Cash is accepted here** corresponds
- with payment:cash
- =yesUnselecting this answer
- will add payment:cash
- =no
-- **Payment cards are accepted here** corresponds
- with payment:cards
- =yesUnselecting this answer
- will add payment:cards
- =no
-- **Payment is done using a dedicated app** corresponds
- with payment:app
- =yesUnselecting this answer
- will add payment:app
- =no
-- **Payment is done using a membership card** corresponds
- with payment:
- membership_card=
- yesUnselecting this answer will
- add payment:
- membership_card=
- no
-### Authentication
+
+
+
+ - **Cash is accepted here** corresponds with payment:cash=yesUnselecting this answer will add payment:cash=no
+ - **Payment cards are accepted here** corresponds with payment:cards=yesUnselecting this answer will add payment:cards=no
+ - **Payment is done using a dedicated app** corresponds with payment:app=yesUnselecting this answer will add payment:app=no
+ - **Payment is done using a membership card** corresponds with payment:membership_card=yesUnselecting this answer will add payment:membership_card=no
+
+
+
+
+### Authentication
+
+
The question is **What kind of authentication is available at the charging station?**
-- **Authentication by a membership card** corresponds
- with authentication:
- membership_card
- =yes
- Unselecting this answer will
- add authentication:
- membership_card
- =no
-- **Authentication by an app** corresponds
- with authentication:app
- =yesUnselecting this
- answer will add authentication:
- app=no
-- **Authentication via phone call is available** corresponds
- with authentication:
- phone_call=
- yesUnselecting this answer will
- add authentication:
- phone_call=no
-- **Authentication via SMS is available** corresponds
- with authentication:
- short_message
- =yes
- Unselecting this answer will
- add authentication:
- short_message=
- no
-- **Authentication via NFC is available** corresponds
- with authentication:nfc
- =yesUnselecting this
- answer will add authentication:
- nfc=no
-- **Authentication via Money Card is available** corresponds
- with authentication:
- money_card=
- yesUnselecting this answer will
- add authentication:
- money_card=no
-- **Authentication via debit card is available** corresponds
- with authentication:
- debit_card=
- yesUnselecting this answer will
- add authentication:
- debit_card=no
-- **Charging here is (also) possible without authentication** corresponds
- with authentication:none
- =yesUnselecting this
- answer will add authentication:
- none=no
-### Auth phone
+
+
+
+ - **Authentication by a membership card** corresponds with authentication:membership_card=yesUnselecting this answer will add authentication:membership_card=no
+ - **Authentication by an app** corresponds with authentication:app=yesUnselecting this answer will add authentication:app=no
+ - **Authentication via phone call is available** corresponds with authentication:phone_call=yesUnselecting this answer will add authentication:phone_call=no
+ - **Authentication via SMS is available** corresponds with authentication:short_message=yesUnselecting this answer will add authentication:short_message=no
+ - **Authentication via NFC is available** corresponds with authentication:nfc=yesUnselecting this answer will add authentication:nfc=no
+ - **Authentication via Money Card is available** corresponds with authentication:money_card=yesUnselecting this answer will add authentication:money_card=no
+ - **Authentication via debit card is available** corresponds with authentication:debit_card=yesUnselecting this answer will add authentication:debit_card=no
+ - **Charging here is (also) possible without authentication** corresponds with authentication:none=yesUnselecting this answer will add authentication:none=no
+
+
+
+
+### Auth phone
+
+
The question is **What's the phone number for authentication call or SMS?**
-This rendering asks information about the
-property [authentication:phone_call:number](https://wiki.openstreetmap.org/wiki/Key:authentication:phone_call:number)
-This is rendered
-with `Authenticate by calling or SMS'ing to {authentication:phone_call:number}`
+This rendering asks information about the property [authentication:phone_call:number](https://wiki.openstreetmap.org/wiki/Key:authentication:phone_call:number)
+This is rendered with `Authenticate by calling or SMS'ing to {authentication:phone_call:number}`
+
+
+
+### maxstay
+
-### maxstay
The question is **What is the maximum amount of time one is allowed to stay here?**
-This rendering asks information about the property [maxstay](https://wiki.openstreetmap.org/wiki/Key:maxstay)
+This rendering asks information about the property [maxstay](https://wiki.openstreetmap.org/wiki/Key:maxstay)
This is rendered with `One can stay at most {canonical(maxstay)}`
-- **No timelimit on leaving your vehicle here** corresponds
- with maxstay
- =unlimited
-### Network
+
+ - **No timelimit on leaving your vehicle here** corresponds with maxstay=unlimited
+
+
+
+
+### Network
+
+
The question is **Is this charging station part of a network?**
-This rendering asks information about the property [network](https://wiki.openstreetmap.org/wiki/Key:network)
+This rendering asks information about the property [network](https://wiki.openstreetmap.org/wiki/Key:network)
This is rendered with `Part of the network {network}`
-- **Not part of a bigger network, e.g. because the charging station is maintained by a local business** corresponds
- with no:network
- =yes
-- **Not part of a bigger network** corresponds
- with network
- =none_This option cannot be
- chosen as answer_
-- **AeroVironment** corresponds with
- network=
- AeroVironment
-- **Blink** corresponds with network
- =Blink
-- **EVgo** corresponds with network
- =EVgo
-- **Allego** corresponds with network
- =Allego
-- **Blue Corner** corresponds with network
- =Blue Corner
-- **Tesla** corresponds with network
- =Tesla
-### Operator
+
+ - **Not part of a bigger network, e.g. because the charging station is maintained by a local business** corresponds with no:network=yes
+ - **Not part of a bigger network** corresponds with network=none_This option cannot be chosen as answer_
+ - **AeroVironment** corresponds with network=AeroVironment
+ - **Blink** corresponds with network=Blink
+ - **EVgo** corresponds with network=EVgo
+ - **Allego** corresponds with network=Allego
+ - **Blue Corner** corresponds with network=Blue Corner
+ - **Tesla** corresponds with network=Tesla
+
+
+
+
+### Operator
+
+
The question is **Who is the operator of this charging station?**
-This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
+This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
This is rendered with `This charging station is operated by {operator}`
-- **Actually, {operator} is the network** corresponds with network=
-### phone
+
+ - **Actually, {operator} is the network** corresponds with network=
+
+
+
+
+### phone
+
+
The question is **What number can one call if there is a problem with this charging station?**
-This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
+This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
This is rendered with `In case of problems, call {phone}`
-### email
+
+
+### email
+
+
The question is **What is the email address of the operator?**
-This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
+This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
This is rendered with `In case of problems, send an email to {email}`
-### website
+
+
+### website
+
+
The question is **What is the website where one can find more information about this charging station?**
-This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
+This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
This is rendered with `More info on {website}`
-### level
+
+
+### level
+
+
The question is **On what level is this feature located?**
-This rendering asks information about the property [level](https://wiki.openstreetmap.org/wiki/Key:level)
+This rendering asks information about the property [level](https://wiki.openstreetmap.org/wiki/Key:level)
This is rendered with `Located on the {level}th floor`
-- **Located underground** corresponds with
- location=underground_
- This option cannot be chosen as answer_
-- **Located on the ground floor** corresponds
- with level
- =0
-- **Located on the ground floor** corresponds with _This option cannot be chosen as answer_
-- **Located on the first floor** corresponds
- with level
- =1
-### ref
+
+ - **Located underground** corresponds with location=underground_This option cannot be chosen as answer_
+ - **Located on the ground floor** corresponds with level=0
+ - **Located on the ground floor** corresponds with _This option cannot be chosen as answer_
+ - **Located on the first floor** corresponds with level=1
+ - **Located on the first basement level** corresponds with level=-1
+
+
+
+
+### ref
+
+
The question is **What is the reference number of this charging station?**
-This rendering asks information about the property [ref](https://wiki.openstreetmap.org/wiki/Key:ref)
+This rendering asks information about the property [ref](https://wiki.openstreetmap.org/wiki/Key:ref)
This is rendered with `Reference number is {ref}`
-### Operational status
+
+
+### Operational status
+
+
The question is **Is this charging point in use?**
-- **This charging station works** corresponds
- with amenity
- =charging_station
-- **This charging station is broken** corresponds
- with operational_status
- =broken
- &amenity
- =charging_station
-- **A charging station is planned here** corresponds
- with planned:amenity
- =
- charging_station
-- **A charging station is constructed here** corresponds
- with construction:amenity
- =
- charging_station
-- **This charging station has beed permanently disabled and is not in use anymore but is still visible** corresponds
- with disused:amenity
- =
- charging_station
-### Parking:fee
+
+
+
+ - **This charging station works** corresponds with amenity=charging_station
+ - **This charging station is broken** corresponds with operational_status=broken&amenity=charging_station
+ - **A charging station is planned here** corresponds with planned:amenity=charging_station
+ - **A charging station is constructed here** corresponds with construction:amenity=charging_station
+ - **This charging station has beed permanently disabled and is not in use anymore but is still visible** corresponds with disused:amenity=charging_station
+
+
+
+
+### Parking:fee
+
+
The question is **Does one have to pay a parking fee while charging?**
-- **No additional parking cost while charging** corresponds
- with parking:fee
- =no
-- **An additional parking fee should be paid while charging** corresponds
- with parking:fee
- =yes
-### questions
+
+
+
+ - **No additional parking cost while charging** corresponds with parking:fee=no
+ - **An additional parking fee should be paid while charging** corresponds with parking:fee=yes
+
+
+
+
+### questions
+
+
_This tagrendering has no question and is thus read-only_
-### questions
+
+
+
+
+### questions
+
+
_This tagrendering has no question and is thus read-only_
+
+
This document is autogenerated from assets/layers/charging_station/charging_station.json
\ No newline at end of file
diff --git a/Docs/Schemas/LayerConfigJson.schema.json b/Docs/Schemas/LayerConfigJson.schema.json
index ea431e4b21..d5aa2df92f 100644
--- a/Docs/Schemas/LayerConfigJson.schema.json
+++ b/Docs/Schemas/LayerConfigJson.schema.json
@@ -212,7 +212,7 @@
"description": "The _first sentence_ of the description is shown on the button of the `add` menu.\nThe full description is shown in the confirmation dialog.\n\n(The first sentence is until the first '.'-character in the description)"
},
"exampleImages": {
- "description": "Example images, which show real-life pictures of what such a feature might look like\n\nType: image[]",
+ "description": "Example images, which show real-life pictures of what such a feature might look like\n\nType: image",
"type": "array",
"items": {
"type": "string"
@@ -511,11 +511,8 @@
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -590,7 +587,7 @@
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
diff --git a/Docs/Schemas/LayerConfigJsonJSC.ts b/Docs/Schemas/LayerConfigJsonJSC.ts
index 7484d06128..ccafa9158a 100644
--- a/Docs/Schemas/LayerConfigJsonJSC.ts
+++ b/Docs/Schemas/LayerConfigJsonJSC.ts
@@ -212,7 +212,7 @@ export default {
"description": "The _first sentence_ of the description is shown on the button of the `add` menu.\nThe full description is shown in the confirmation dialog.\n\n(The first sentence is until the first '.'-character in the description)"
},
"exampleImages": {
- "description": "Example images, which show real-life pictures of what such a feature might look like\n\nType: image[]",
+ "description": "Example images, which show real-life pictures of what such a feature might look like\n\nType: image",
"type": "array",
"items": {
"type": "string"
@@ -509,11 +509,8 @@ export default {
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -588,7 +585,7 @@ export default {
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
diff --git a/Docs/Schemas/LayoutConfigJson.schema.json b/Docs/Schemas/LayoutConfigJson.schema.json
index 02b809e299..cd18248bdb 100644
--- a/Docs/Schemas/LayoutConfigJson.schema.json
+++ b/Docs/Schemas/LayoutConfigJson.schema.json
@@ -367,11 +367,8 @@
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -446,7 +443,7 @@
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
@@ -1087,7 +1084,7 @@
"description": "The _first sentence_ of the description is shown on the button of the `add` menu.\nThe full description is shown in the confirmation dialog.\n\n(The first sentence is until the first '.'-character in the description)"
},
"exampleImages": {
- "description": "Example images, which show real-life pictures of what such a feature might look like\n\nType: image[]",
+ "description": "Example images, which show real-life pictures of what such a feature might look like\n\nType: image",
"type": "array",
"items": {
"type": "string"
diff --git a/Docs/Schemas/LayoutConfigJsonJSC.ts b/Docs/Schemas/LayoutConfigJsonJSC.ts
index 47568c09f7..8ae08a4331 100644
--- a/Docs/Schemas/LayoutConfigJsonJSC.ts
+++ b/Docs/Schemas/LayoutConfigJsonJSC.ts
@@ -365,11 +365,8 @@ export default {
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -444,7 +441,7 @@ export default {
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
@@ -1077,7 +1074,7 @@ export default {
"description": "The _first sentence_ of the description is shown on the button of the `add` menu.\nThe full description is shown in the confirmation dialog.\n\n(The first sentence is until the first '.'-character in the description)"
},
"exampleImages": {
- "description": "Example images, which show real-life pictures of what such a feature might look like\n\nType: image[]",
+ "description": "Example images, which show real-life pictures of what such a feature might look like\n\nType: image",
"type": "array",
"items": {
"type": "string"
diff --git a/Docs/Schemas/LineRenderingConfigJson.schema.json b/Docs/Schemas/LineRenderingConfigJson.schema.json
index a36c943445..0488403041 100644
--- a/Docs/Schemas/LineRenderingConfigJson.schema.json
+++ b/Docs/Schemas/LineRenderingConfigJson.schema.json
@@ -177,11 +177,8 @@
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -256,7 +253,7 @@
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
diff --git a/Docs/Schemas/LineRenderingConfigJsonJSC.ts b/Docs/Schemas/LineRenderingConfigJsonJSC.ts
index d6ffd75ba5..65e192785f 100644
--- a/Docs/Schemas/LineRenderingConfigJsonJSC.ts
+++ b/Docs/Schemas/LineRenderingConfigJsonJSC.ts
@@ -175,11 +175,8 @@ export default {
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -254,7 +251,7 @@ export default {
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
diff --git a/Docs/Schemas/PointRenderingConfigJson.schema.json b/Docs/Schemas/PointRenderingConfigJson.schema.json
index 1808a0c3d6..895df91e5f 100644
--- a/Docs/Schemas/PointRenderingConfigJson.schema.json
+++ b/Docs/Schemas/PointRenderingConfigJson.schema.json
@@ -181,11 +181,8 @@
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -260,7 +257,7 @@
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
diff --git a/Docs/Schemas/PointRenderingConfigJsonJSC.ts b/Docs/Schemas/PointRenderingConfigJsonJSC.ts
index cb262c92bc..0da1093833 100644
--- a/Docs/Schemas/PointRenderingConfigJsonJSC.ts
+++ b/Docs/Schemas/PointRenderingConfigJsonJSC.ts
@@ -179,11 +179,8 @@ export default {
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -258,7 +255,7 @@ export default {
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
diff --git a/Docs/Schemas/TagRenderingConfigJson.schema.json b/Docs/Schemas/TagRenderingConfigJson.schema.json
index 2c745037a2..5c8809cccb 100644
--- a/Docs/Schemas/TagRenderingConfigJson.schema.json
+++ b/Docs/Schemas/TagRenderingConfigJson.schema.json
@@ -17,11 +17,8 @@
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -96,7 +93,7 @@
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
diff --git a/Docs/Schemas/TagRenderingConfigJsonJSC.ts b/Docs/Schemas/TagRenderingConfigJsonJSC.ts
index b556ddf752..3d15c6b6d7 100644
--- a/Docs/Schemas/TagRenderingConfigJsonJSC.ts
+++ b/Docs/Schemas/TagRenderingConfigJsonJSC.ts
@@ -17,11 +17,8 @@ export default {
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -96,7 +93,7 @@ export default {
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
diff --git a/Docs/Schemas/TilesourceConfigJson.schema.json b/Docs/Schemas/TilesourceConfigJson.schema.json
index a6a2925a5f..b8d102661c 100644
--- a/Docs/Schemas/TilesourceConfigJson.schema.json
+++ b/Docs/Schemas/TilesourceConfigJson.schema.json
@@ -125,11 +125,8 @@
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -204,7 +201,7 @@
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
diff --git a/Docs/Schemas/TilesourceConfigJsonJSC.ts b/Docs/Schemas/TilesourceConfigJsonJSC.ts
index 3443d7840b..d2d6631b21 100644
--- a/Docs/Schemas/TilesourceConfigJsonJSC.ts
+++ b/Docs/Schemas/TilesourceConfigJsonJSC.ts
@@ -123,11 +123,8 @@ export default {
"type": "string"
}
},
- "render": {
- "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `"
- },
"question": {
- "description": "If it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `\ntype: rendered\n/\nrender?: string | any,\n\n/**\nIf it turns out that this tagRendering doesn't match _any_ value, then we show this question.\nIf undefined, the question is never asked and this tagrendering is read-only"
},
"condition": {
"description": "Only show this question if the object also matches the following tags.\n\nThis is useful to ask a follow-up question. E.g. if there is a diaper table, then ask a follow-up question on diaper tables...",
@@ -202,7 +199,7 @@ export default {
]
},
"then": {
- "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option"
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\ntype: rendered"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
diff --git a/Logic/DetermineLayout.ts b/Logic/DetermineLayout.ts
index df6ea07e1b..7441982963 100644
--- a/Logic/DetermineLayout.ts
+++ b/Logic/DetermineLayout.ts
@@ -10,7 +10,7 @@ import {UIEventSource} from "./UIEventSource";
import {LocalStorageSource} from "./Web/LocalStorageSource";
import LZString from "lz-string";
import * as personal from "../assets/themes/personal/personal.json";
-import {FixImages, FixLegacyTheme} from "../Models/ThemeConfig/Conversion/LegacyJsonConvert";
+import {FixLegacyTheme} from "../Models/ThemeConfig/Conversion/LegacyJsonConvert";
import {LayerConfigJson} from "../Models/ThemeConfig/Json/LayerConfigJson";
import SharedTagRenderings from "../Customizations/SharedTagRenderings";
import * as known_layers from "../assets/generated/known_layers.json"
@@ -18,6 +18,7 @@ import {LayoutConfigJson} from "../Models/ThemeConfig/Json/LayoutConfigJson";
import {PrepareTheme} from "../Models/ThemeConfig/Conversion/PrepareTheme";
import * as licenses from "../assets/generated/license_info.json"
import TagRenderingConfig from "../Models/ThemeConfig/TagRenderingConfig";
+import {FixImages} from "../Models/ThemeConfig/Conversion/FixImages";
export default class DetermineLayout {
diff --git a/Logic/FeatureSource/Actors/MetaTagRecalculator.ts b/Logic/FeatureSource/Actors/MetaTagRecalculator.ts
index 6e1284ba91..f17c27afe8 100644
--- a/Logic/FeatureSource/Actors/MetaTagRecalculator.ts
+++ b/Logic/FeatureSource/Actors/MetaTagRecalculator.ts
@@ -50,7 +50,7 @@ class MetatagUpdater {
this.isDirty.setData(true)
}
- private updateMetaTags() {
+ public updateMetaTags() {
const features = this.source.features.data
if (features.length === 0) {
@@ -77,12 +77,23 @@ export default class MetaTagRecalculator {
private readonly _notifiers: MetatagUpdater[] = []
/**
- * The meta tag recalculator receives tiles of layers.
+ * The meta tag recalculator receives tiles of layers via the 'registerSource'-function.
* It keeps track of which sources have had their share calculated, and which should be re-updated if some other data is loaded
*/
- constructor(state: { allElements?: ElementStorage }, featurePipeline: FeaturePipeline) {
+ constructor(state: { allElements?: ElementStorage, currentView: FeatureSourceForLayer & Tiled }, featurePipeline: FeaturePipeline) {
this._featurePipeline = featurePipeline;
this._state = state;
+
+ if(state.currentView !== undefined){
+ const currentViewUpdater = new MetatagUpdater(state.currentView, this._state, this._featurePipeline)
+ this._alreadyRegistered.add(state.currentView)
+ this._notifiers.push(currentViewUpdater)
+ state.currentView.features.addCallback(_ => {
+ console.debug("Requesting an update for currentView")
+ currentViewUpdater.updateMetaTags();
+ })
+ }
+
}
public registerSource(source: FeatureSourceForLayer & Tiled, recalculateOnEveryChange = false) {
diff --git a/Logic/FeatureSource/Sources/StaticFeatureSource.ts b/Logic/FeatureSource/Sources/StaticFeatureSource.ts
index d5795a1d51..2d8aef37df 100644
--- a/Logic/FeatureSource/Sources/StaticFeatureSource.ts
+++ b/Logic/FeatureSource/Sources/StaticFeatureSource.ts
@@ -10,17 +10,20 @@ export default class StaticFeatureSource implements FeatureSource {
constructor(features: any[] | UIEventSource>, useFeaturesDirectly) {
const now = new Date();
+ if(features === undefined){
+ throw "Static feature source received undefined as source"
+ }
if (useFeaturesDirectly) {
// @ts-ignore
this.features = features
} else if (features instanceof UIEventSource) {
// @ts-ignore
- this.features = features.map(features => features.map(f => ({feature: f, freshness: now})))
+ this.features = features.map(features => features?.map(f => ({feature: f, freshness: now}) ?? []))
} else {
- this.features = new UIEventSource(features.map(f => ({
+ this.features = new UIEventSource(features?.map(f => ({
feature: f,
freshness: now
- })))
+ }))??[])
}
}
diff --git a/Logic/State/MapState.ts b/Logic/State/MapState.ts
index 34b6675467..07e45a0e43 100644
--- a/Logic/State/MapState.ts
+++ b/Logic/State/MapState.ts
@@ -18,6 +18,7 @@ import {LocalStorageSource} from "../Web/LocalStorageSource";
import {GeoOperations} from "../GeoOperations";
import TitleHandler from "../Actors/TitleHandler";
import {BBox} from "../BBox";
+import MetaTagging from "../MetaTagging";
/**
* Contains all the leaflet-map related state
diff --git a/Models/Constants.ts b/Models/Constants.ts
index 22bbaffd31..f354362923 100644
--- a/Models/Constants.ts
+++ b/Models/Constants.ts
@@ -2,7 +2,7 @@ import {Utils} from "../Utils";
export default class Constants {
- public static vNumber = "0.15.6";
+ public static vNumber = "0.15.7";
public static ImgurApiKey = '7070e7167f0a25a'
public static readonly mapillary_client_token_v4 = "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85"
diff --git a/Models/ThemeConfig/Conversion/Conversion.ts b/Models/ThemeConfig/Conversion/Conversion.ts
index a5e9df2c8c..d90bfca0bd 100644
--- a/Models/ThemeConfig/Conversion/Conversion.ts
+++ b/Models/ThemeConfig/Conversion/Conversion.ts
@@ -18,11 +18,15 @@ export abstract class Conversion {
this.name = name ?? this.constructor.name
}
- public static strict(fixed: { errors?: string[], warnings?: string[], result?: T }): T {
+ public static strict(fixed: { errors?: string[], warnings?: string[], information?: string[], result?: T }): T {
if (fixed?.errors !== undefined && fixed?.errors?.length > 0) {
throw fixed.errors.join("\n\n");
}
- fixed.warnings?.forEach(w => console.warn(w))
+ fixed.information?.forEach(i => console.log(" ", i))
+ const yellow = (s) => "\x1b[33m"+s+"\x1b[0m"
+ const red = s => '\x1b[31m'+s+'\x1b[0m'
+
+ fixed.warnings?.forEach(w => console.warn(red(` `), yellow (w)))
return fixed.result;
}
@@ -31,26 +35,29 @@ export abstract class Conversion {
return DesugaringStep.strict(fixed)
}
- abstract convert(json: TIn, context: string): { result: TOut, errors?: string[], warnings?: string[] }
+ abstract convert(json: TIn, context: string): { result: TOut, errors?: string[], warnings?: string[], information?: string[] }
- public convertAll(jsons: TIn[], context: string): { result: TOut[], errors: string[], warnings: string[] } {
+ public convertAll(jsons: TIn[], context: string): { result: TOut[], errors: string[], warnings: string[], information?: string[] } {
if(jsons === undefined){
throw "convertAll received undefined - don't do this (at "+context+")"
}
const result = []
const errors = []
const warnings = []
+ const information = []
for (let i = 0; i < jsons.length; i++) {
const json = jsons[i];
const r = this.convert(json, context + "[" + i + "]")
result.push(r.result)
errors.push(...r.errors ?? [])
warnings.push(...r.warnings ?? [])
+ information.push(...r.information ?? [])
}
return {
result,
errors,
- warnings
+ warnings,
+ information
}
}
@@ -69,16 +76,15 @@ export class OnEvery extends DesugaringStep {
this.key = key;
}
- convert(json: T, context: string): { result: T; errors?: string[]; warnings?: string[] } {
+ convert(json: T, context: string): { result: T; errors?: string[]; warnings?: string[], information?: string[] } {
json = {...json}
const step = this.step
const key = this.key;
const r = step.convertAll((json[key]), context + "." + key)
json[key] = r.result
return {
+ ...r,
result: json,
- errors: r.errors,
- warnings: r.warnings
};
}
}
@@ -94,7 +100,7 @@ export class OnEveryConcat extends DesugaringStep {
this.key = key;
}
- convert(json: T, context: string): { result: T; errors: string[]; warnings: string[] } {
+ convert(json: T, context: string): { result: T; errors?: string[]; warnings?: string[], information?: string[] } {
json = {...json}
const step = this.step
const key = this.key;
@@ -103,17 +109,14 @@ export class OnEveryConcat extends DesugaringStep {
// Move on - nothing to see here!
return {
result: json,
- errors: [],
- warnings: []
}
}
const r = step.convertAll((values), context + "." + key)
const vals: X[][] = r.result
json[key] = [].concat(...vals)
return {
+ ...r,
result: json,
- errors: r.errors,
- warnings: r.warnings
};
}
@@ -129,14 +132,16 @@ export class Fuse extends DesugaringStep {
this.steps = steps;
}
- convert(json: T, context: string): { result: T; errors: string[]; warnings: string[] } {
+ convert(json: T, context: string): { result: T; errors: string[]; warnings: string[], information: string[] } {
const errors = []
const warnings = []
+ const information = []
for (let i = 0; i < this.steps.length; i++) {
const step = this.steps[i];
let r = step.convert(json, "While running step " +step.name + ": " + context)
errors.push(...r.errors ?? [])
warnings.push(...r.warnings ?? [])
+ information.push(...r.information ?? [])
json = r.result
if (errors.length > 0) {
break;
@@ -145,7 +150,8 @@ export class Fuse extends DesugaringStep {
return {
result: json,
errors,
- warnings
+ warnings,
+ information
};
}
@@ -163,14 +169,13 @@ export class SetDefault extends DesugaringStep {
this._overrideEmptyString = overrideEmptyString;
}
- convert(json: T, context: string): { result: T; errors: string[]; warnings: string[] } {
+ convert(json: T, context: string): { result: T } {
if (json[this.key] === undefined || (json[this.key] === "" && this._overrideEmptyString)) {
json = {...json}
json[this.key] = this.value
}
return {
- errors: [], warnings: [],
result: json
};
}
diff --git a/Models/ThemeConfig/Conversion/CreateNoteImportLayer.ts b/Models/ThemeConfig/Conversion/CreateNoteImportLayer.ts
index e5ba8ad766..c51437d7fd 100644
--- a/Models/ThemeConfig/Conversion/CreateNoteImportLayer.ts
+++ b/Models/ThemeConfig/Conversion/CreateNoteImportLayer.ts
@@ -20,9 +20,7 @@ export default class CreateNoteImportLayer extends Conversion {
+ constructor() {
+ super("Extract all images from a layoutConfig using the meta paths");
+ }
+
+ convert(json: LayoutConfigJson, context: string): { result: string[] } {
+ const paths = metapaths["default"] ?? metapaths
+ const trpaths = tagrenderingmetapaths["default"] ?? tagrenderingmetapaths
+ const allFoundImages = []
+ for (const metapath of paths) {
+ if (metapath.typeHint === undefined) {
+ continue
+ }
+ if (metapath.typeHint !== "image" && metapath.typeHint !== "icon") {
+ continue
+ }
+
+ const mightBeTr = Array.isArray(metapath.type) && metapath.type.some(t => t["$ref"] == "#/definitions/TagRenderingConfigJson")
+ const found = Utils.CollectPath(metapath.path, json)
+ if (mightBeTr) {
+ // We might have tagRenderingConfigs containing icons here
+ for (const foundImage of found) {
+ if (typeof foundImage === "string") {
+ allFoundImages.push(foundImage)
+ } else {
+ // This is a tagRendering where every rendered value might be an icon!
+ for (const trpath of trpaths) {
+ if (trpath.typeHint !== "rendered") {
+ continue
+ }
+ Utils.CollectPath(trpath.path, foundImage, allFoundImages)
+ }
+
+ }
+ }
+ } else {
+ allFoundImages.push(...found)
+ }
+ }
+
+ const splitParts = [].concat(...allFoundImages.map(img => img.split(";")))
+ .map(img => img.split(":")[0])
+ return {result: Utils.Dedup(splitParts)};
+ }
+
+}
+
+export class FixImages extends DesugaringStep {
+ private readonly _knownImages: Set;
+
+ constructor(knownImages: Set) {
+ super("Walks over the entire theme and replaces images to the relative URL. Only works if the ID of the theme is an URL");
+ this._knownImages = knownImages;
+ }
+
+ convert(json: LayoutConfigJson, context: string): { result: LayoutConfigJson } {
+ let url: URL;
+ try {
+ url = new URL(json.id)
+ } catch (e) {
+ // Not a URL, we don't rewrite
+ return {result: json}
+ }
+
+ const absolute = url.protocol + "//" + url.host
+ let relative = url.protocol + "//" + url.host + url.pathname
+ relative = relative.substring(0, relative.lastIndexOf("/"))
+ const self = this;
+
+ function replaceString(leaf: string) {
+ if (self._knownImages.has(leaf)) {
+ return leaf;
+ }
+ if (leaf.startsWith("./")) {
+ return relative + leaf.substring(1)
+ }
+ if (leaf.startsWith("/")) {
+ return absolute + leaf
+ }
+ return leaf;
+ }
+
+ json = Utils.Clone(json)
+
+ let paths = metapaths["default"] ?? metapaths
+ let trpaths = tagrenderingmetapaths["default"] ?? tagrenderingmetapaths
+
+ for (const metapath of paths) {
+ if (metapath.typeHint !== "image" && metapath.typeHint !== "icon") {
+ continue
+ }
+ const mightBeTr = Array.isArray(metapath.type) && metapath.type.some(t => t["$ref"] == "#/definitions/TagRenderingConfigJson")
+ Utils.WalkPath(metapath.path, json, leaf => {
+ if (typeof leaf === "string") {
+ return replaceString(leaf)
+ }
+
+ if (mightBeTr) {
+ // We might have reached a tagRenderingConfig containing icons
+ // lets walk every rendered value and fix the images in there
+ for (const trpath of trpaths) {
+ if (trpath.typeHint !== "rendered") {
+ continue
+ }
+ Utils.WalkPath(trpath.path, leaf, (rendered => {
+ return replaceString(rendered)
+ }))
+ }
+ }
+
+
+ return leaf;
+ })
+ }
+
+
+ return {
+ result: json
+ };
+ }
+}
\ No newline at end of file
diff --git a/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts b/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts
index 5959790ad9..cf89a51722 100644
--- a/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts
+++ b/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts
@@ -3,7 +3,6 @@ import {Utils} from "../../../Utils";
import LineRenderingConfigJson from "../Json/LineRenderingConfigJson";
import {LayerConfigJson} from "../Json/LayerConfigJson";
import {DesugaringStep, Fuse, OnEvery} from "./Conversion";
-import * as metapaths from "../../../assets/layoutconfigmeta.json"
export class UpdateLegacyLayer extends DesugaringStep {
@@ -160,101 +159,3 @@ export class FixLegacyTheme extends Fuse {
}
-export class FixImages extends DesugaringStep {
- private readonly _knownImages: Set;
-
- constructor(knownImages: Set) {
- super("Walks over the entire theme and replaces images to the relative URL. Only works if the ID of the theme is an URL");
- this._knownImages = knownImages;
- }
-
- /**
- * Walks the path into the object till the end.
- *
- * If a list is encountered, this is tranparently walked recursively on every object.
- *
- * The leaf objects are replaced
- */
- private static WalkPath(path: string[], object: any, replaceLeaf: ((leaf: any) => any)) {
- const head = path[0]
- if (path.length === 1) {
- // We have reached the leaf
- const leaf = object[head];
- if (leaf !== undefined) {
- object[head] = replaceLeaf(leaf)
- }
- return
-
- }
- const sub = object[head]
- if (sub === undefined) {
- return;
- }
- if (typeof sub !== "object") {
- return;
- }
- if (sub["forEach"] !== undefined) {
- sub.forEach(el => FixImages.WalkPath(path.slice(1), el, replaceLeaf))
- return;
- }
- FixImages.WalkPath(path.slice(1), sub, replaceLeaf)
-
- }
-
- convert(json: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors?: string[]; warnings?: string[] } {
- let url: URL;
- console.log("Fixing images!")
- try {
- url = new URL(json.id)
- } catch (e) {
- // Not a URL, we don't rewrite
- return {result: json}
- }
-
- const absolute = url.protocol +"//"+url.host
- let relative = url.protocol +"//"+ url.host + url.pathname
- relative = relative.substring(0, relative.lastIndexOf("/"))
- const self = this;
-
- function replaceString(leaf: string) {
- if (self._knownImages.has(leaf)) {
- return leaf;
- }
- if (leaf.startsWith("./")) {
- return relative + leaf.substring(1)
- }
- if (leaf.startsWith("/")) {
- return absolute + leaf
- }
- return leaf;
- }
-
- json = Utils.Clone(json)
-
- let paths = metapaths["default"] ?? metapaths
-
- for (const metapath of paths) {
- if (metapath.typeHint !== "image" && metapath.typeHint !== "icon") {
- continue
- }
- FixImages.WalkPath(metapath.path, json, leaf => {
- console.log("Detected leaf: ", leaf)
- if (typeof leaf === "string") {
- return replaceString(leaf)
- }
-
- if (metapath.type["some"] !== undefined && (metapath.type).some(t => t["$ref"] == "\"#/definitions/TagRenderingConfigJson\"")) {
- console.log("Possibly found a tagrendering")
-
- }
-
- return leaf;
- })
- }
-
-
- return {
- result: json
- };
- }
-}
\ No newline at end of file
diff --git a/Models/ThemeConfig/Conversion/PrepareLayer.ts b/Models/ThemeConfig/Conversion/PrepareLayer.ts
index a362172e40..94b664df0e 100644
--- a/Models/ThemeConfig/Conversion/PrepareLayer.ts
+++ b/Models/ThemeConfig/Conversion/PrepareLayer.ts
@@ -213,7 +213,6 @@ class ExpandGroupRewrite extends Conversion<{
for (let i = 0; i < sourceStrings.length; i++) {
const source = sourceStrings[i]
const target = targets[i] // This is a string OR a translation
- console.log("Replacing every "+source+" with "+JSON.stringify(target))
rewritten = this.prepConfig(source, target, rewritten)
}
rewritten.group = rewritten.group ?? groupName
diff --git a/Models/ThemeConfig/Conversion/PrepareTheme.ts b/Models/ThemeConfig/Conversion/PrepareTheme.ts
index a1b3379717..f2270c014d 100644
--- a/Models/ThemeConfig/Conversion/PrepareTheme.ts
+++ b/Models/ThemeConfig/Conversion/PrepareTheme.ts
@@ -20,8 +20,9 @@ class SubstituteLayer extends Conversion<(string | LayerConfigJson), LayerConfig
this._state = state;
}
- convert(json: string | LayerConfigJson, context: string): { result: LayerConfigJson[]; errors: string[], warnings?: string[] } {
+ convert(json: string | LayerConfigJson, context: string): { result: LayerConfigJson[]; errors: string[], information?: string[] } {
const errors = []
+ const information = []
const state= this._state
function reportNotFound(name: string){
const knownLayers = Array.from(state.sharedLayers.keys())
@@ -55,7 +56,6 @@ class SubstituteLayer extends Conversion<(string | LayerConfigJson), LayerConfig
names = [names]
}
const layers = []
- const warnings = []
for (const name of names) {
const found = Utils.Clone(state.sharedLayers.get(name))
@@ -84,20 +84,20 @@ class SubstituteLayer extends Conversion<(string | LayerConfigJson), LayerConfig
const forbiddenLabel = labels.findIndex(l => hideLabels.has(l))
if(forbiddenLabel >= 0){
usedLabels.add(labels[forbiddenLabel])
- warnings.push(context+": Dropping tagRendering "+tr["id"]+" as it has a forbidden label: "+labels[forbiddenLabel])
+ information.push(context+": Dropping tagRendering "+tr["id"]+" as it has a forbidden label: "+labels[forbiddenLabel])
continue
}
}
if(hideLabels.has(tr["id"])){
usedLabels.add(tr["id"])
- warnings.push(context+": Dropping tagRendering "+tr["id"]+" as its id is a forbidden label")
+ information.push(context+": Dropping tagRendering "+tr["id"]+" as its id is a forbidden label")
continue
}
if(hideLabels.has(tr["group"])){
usedLabels.add(tr["group"])
- warnings.push(context+": Dropping tagRendering "+tr["id"]+" as its group `"+tr["group"]+"` is a forbidden label")
+ information.push(context+": Dropping tagRendering "+tr["id"]+" as its group `"+tr["group"]+"` is a forbidden label")
continue
}
@@ -113,7 +113,7 @@ class SubstituteLayer extends Conversion<(string | LayerConfigJson), LayerConfig
return {
result: layers,
errors,
- warnings
+ information
}
}
@@ -185,9 +185,8 @@ class AddImportLayers extends DesugaringStep {
super("For every layer in the 'layers'-list, create a new layer which'll import notes. (Note that priviliged layers and layers which have a geojson-source set are ignored)", ["layers"]);
}
- convert(json: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors: string[]; warnings: string[] } {
+ convert(json: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors: string[] } {
const errors = []
- const warnings = []
json = {...json}
const allLayers: LayerConfigJson[] = json.layers;
@@ -221,8 +220,6 @@ class AddImportLayers extends DesugaringStep {
try {
const importLayerResult = creator.convert(layer, context + ".(noteimportlayer)[" + i1 + "]")
- errors.push(...importLayerResult.errors)
- warnings.push(...importLayerResult.warnings)
if (importLayerResult.result !== undefined) {
json.layers.push(importLayerResult.result)
}
@@ -234,7 +231,6 @@ class AddImportLayers extends DesugaringStep {
return {
errors,
- warnings,
result: json
};
}
@@ -274,7 +270,7 @@ export class AddMiniMap extends DesugaringStep {
return false;
}
- convert(layerConfig: LayerConfigJson, context: string): { result: LayerConfigJson; errors: string[]; warnings: string[] } {
+ convert(layerConfig: LayerConfigJson, context: string): { result: LayerConfigJson } {
const state = this._state;
const hasMinimap = layerConfig.tagRenderings?.some(tr => AddMiniMap.hasMinimap(tr)) ?? true
@@ -286,8 +282,6 @@ export class AddMiniMap extends DesugaringStep {
}
return {
- errors: [],
- warnings: [],
result: layerConfig
};
}
@@ -384,12 +378,11 @@ class AddDependencyLayersToTheme extends DesugaringStep {
});
}
- convert(theme: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors: string[]; warnings: string[] } {
+ convert(theme: LayoutConfigJson, context: string): { result: LayoutConfigJson; information: string[] } {
const state = this._state
const allKnownLayers: Map = state.sharedLayers;
const knownTagRenderings: Map = state.tagRenderings;
- const errors = [];
- const warnings = [];
+ const information = [];
const layers: LayerConfigJson[] = theme.layers; // Layers should be expanded at this point
knownTagRenderings.forEach((value, key) => {
@@ -399,7 +392,7 @@ class AddDependencyLayersToTheme extends DesugaringStep {
const dependencies = AddDependencyLayersToTheme.CalculateDependencies(layers, allKnownLayers, theme.id);
if (dependencies.length > 0) {
- warnings.push(context + ": added " + dependencies.map(d => d.id).join(", ") + " to the theme as they are needed")
+ information.push(context + ": added " + dependencies.map(d => d.id).join(", ") + " to the theme as they are needed")
}
layers.unshift(...dependencies);
@@ -408,8 +401,7 @@ class AddDependencyLayersToTheme extends DesugaringStep {
...theme,
layers: layers
},
- errors,
- warnings
+ information
};
}
}
diff --git a/Models/ThemeConfig/Conversion/Validation.ts b/Models/ThemeConfig/Conversion/Validation.ts
index 863d9cf28e..777e9c614b 100644
--- a/Models/ThemeConfig/Conversion/Validation.ts
+++ b/Models/ThemeConfig/Conversion/Validation.ts
@@ -8,6 +8,8 @@ import {LayoutConfigJson} from "../Json/LayoutConfigJson";
import LayoutConfig from "../LayoutConfig";
import {TagRenderingConfigJson} from "../Json/TagRenderingConfigJson";
import {TagUtils} from "../../../Logic/Tags/TagUtils";
+import {ExtractImages} from "./FixImages";
+import ScriptUtils from "../../../scripts/ScriptUtils";
class ValidateLanguageCompleteness extends DesugaringStep {
@@ -54,8 +56,10 @@ class ValidateTheme extends DesugaringStep {
this._isBuiltin = isBuiltin;
}
- convert(json: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors: string[] } {
+ convert(json: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors: string[], warnings: string[], information: string[] } {
const errors = []
+ const warnings = []
+ const information = []
{
// Legacy format checks
if (this._isBuiltin) {
@@ -67,7 +71,50 @@ class ValidateTheme extends DesugaringStep {
}
}
}
+ {
+ // Check images: are they local, are the licenses there, is the theme icon square, ...
+ const images = new ExtractImages().convertStrict(json, "validation")
+ const remoteImages = images.filter(img => img.indexOf("http") == 0)
+ for (const remoteImage of remoteImages) {
+ errors.push("Found a remote image: " + remoteImage + " in theme " + json.id + ", please download it.")
+ }
+ for (const image of images) {
+ if (image.indexOf("{") >= 0) {
+ information.push("Ignoring image with { in the path: " + image)
+ continue
+ }
+ if (image === "assets/SocialImage.png") {
+ continue
+ }
+ if (image.match(/[a-z]*/)) {
+ // This is a builtin img, e.g. 'checkmark' or 'crosshair'
+ continue;
+ }
+
+ if (this.knownImagePaths !== undefined && !this.knownImagePaths.has(image)) {
+ const ctx = context === undefined ? "" : ` in a layer defined in the theme ${context}`
+ errors.push(`Image with path ${image} not found or not attributed; it is used in ${json.id}${ctx}`)
+ }
+ }
+
+ if (json.icon.endsWith(".svg")) {
+ try {
+ ScriptUtils.ReadSvgSync(json.icon, svg => {
+ const width: string = svg.$.width;
+ const height: string = svg.$.height;
+ if (width !== height) {
+ const e = `the icon for theme ${json.id} is not square. Please square the icon at ${json.icon}` +
+ ` Width = ${width} height = ${height}`;
+ (json.hideFromOverview ? warnings : errors).push(e)
+ }
+ })
+ } catch (e) {
+ console.error("Could not read " + json.icon + " due to " + e)
+ }
+ }
+
+ }
try {
const theme = new LayoutConfig(json, true, "test")
if (theme.id !== theme.id.toLowerCase()) {
@@ -97,7 +144,9 @@ class ValidateTheme extends DesugaringStep {
return {
result: json,
- errors
+ errors,
+ warnings,
+ information
};
}
}
@@ -112,60 +161,60 @@ export class ValidateThemeAndLayers extends Fuse {
}
-class OverrideShadowingCheck extends DesugaringStep{
-
+class OverrideShadowingCheck extends DesugaringStep {
+
constructor() {
super("Checks that an 'overrideAll' does not override a single override");
}
convert(json: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors?: string[]; warnings?: string[] } {
-
+
const overrideAll = json.overrideAll;
- if(overrideAll === undefined){
+ if (overrideAll === undefined) {
return {result: json}
}
-
+
const errors = []
- const withOverride = json.layers.filter(l => l["override"] !== undefined)
+ const withOverride = json.layers.filter(l => l["override"] !== undefined)
for (const layer of withOverride) {
for (const key in overrideAll) {
- if(layer["override"][key] !== undefined || layer["override"]["="+key] !== undefined){
- const w = "The override of layer "+JSON.stringify(layer["builtin"])+" has a shadowed property: "+key+" is overriden by overrideAll of the theme";
- errors.push(w)
- }
+ if (layer["override"][key] !== undefined || layer["override"]["=" + key] !== undefined) {
+ const w = "The override of layer " + JSON.stringify(layer["builtin"]) + " has a shadowed property: " + key + " is overriden by overrideAll of the theme";
+ errors.push(w)
+ }
}
}
-
- return {result: json, errors}
+
+ return {result: json, errors}
}
-
+
}
-export class PrevalidateTheme extends Fuse{
-
+export class PrevalidateTheme extends Fuse {
+
constructor() {
super("Various consistency checks on the raw JSON",
new OverrideShadowingCheck()
- );
-
+ );
+
}
}
-export class DetectShadowedMappings extends DesugaringStep{
+export class DetectShadowedMappings extends DesugaringStep {
constructor() {
super("Checks that the mappings don't shadow each other");
}
-
+
convert(json: TagRenderingConfigJson, context: string): { result: TagRenderingConfigJson; errors?: string[]; warnings?: string[] } {
const errors = []
- if(json.mappings === undefined || json.mappings.length === 0){
+ if (json.mappings === undefined || json.mappings.length === 0) {
return {result: json}
}
const parsedConditions = json.mappings.map(m => TagUtils.Tag(m.if))
- for (let i = 0; i < json.mappings.length; i++){
- if(!parsedConditions[i].isUsableAsAnswer()){
+ for (let i = 0; i < json.mappings.length; i++) {
+ if (!parsedConditions[i].isUsableAsAnswer()) {
continue
}
const keyValues = parsedConditions[i].asChange({});
@@ -173,12 +222,12 @@ export class DetectShadowedMappings extends DesugaringStep {
properties[k] = v
})
- for (let j = 0; j < i; j++){
+ for (let j = 0; j < i; j++) {
const doesMatch = parsedConditions[j].matchesProperties(properties)
- if(doesMatch){
+ if (doesMatch) {
// The current mapping is shadowed!
errors.push(`Mapping ${i} is shadowed by mapping ${j} and will thus never be shown:
- The mapping ${parsedConditions[i].asHumanString(false,false, {})} is fully matched by a previous mapping, which matches:
+ The mapping ${parsedConditions[i].asHumanString(false, false, {})} is fully matched by a previous mapping, which matches:
${parsedConditions[j].asHumanString(false, false, {})}.
Move the mapping up to fix this problem
@@ -187,7 +236,7 @@ export class DetectShadowedMappings extends DesugaringStep {
errors.push(context + ": layer " + json.id + " contains an old 'hideUnderlayingFeaturesMinPercentage'")
}
}
- {
- // Check for remote images
- const layer = new LayerConfig(json, "test", true)
- const images = Array.from(layer.ExtractImages())
- const remoteImages = images.filter(img => img.indexOf("http") == 0)
- for (const remoteImage of remoteImages) {
- errors.push("Found a remote image: " + remoteImage + " in layer " + layer.id + ", please download it. You can use the fixTheme script to automate this")
- }
- for (const image of images) {
- if (image.indexOf("{") >= 0) {
- warnings.push("Ignoring image with { in the path: ", image)
- continue
- }
-
- if (this.knownImagePaths !== undefined && !this.knownImagePaths.has(image)) {
- const ctx = context === undefined ? "" : ` in a layer defined in the theme ${context}`
- errors.push(`Image with path ${image} not found or not attributed; it is used in ${layer.id}${ctx}`)
- }
- }
-
- }
{
// CHeck location of layer file
const expected: string = `assets/layers/${json.id}/${json.id}.json`
@@ -307,17 +335,15 @@ export class ValidateLayer extends DesugaringStep {
}
}
}
- if(json.tagRenderings !== undefined){
- new DetectShadowedMappings().convertAll( json.tagRenderings, context+".tagRenderings")
+ if (json.tagRenderings !== undefined) {
+ new DetectShadowedMappings().convertAll(json.tagRenderings, context + ".tagRenderings")
}
-
+
} catch (e) {
errors.push(e)
}
-
-
-
-
+
+
return {
result: json,
errors,
diff --git a/Models/ThemeConfig/Json/LayerConfigJson.ts b/Models/ThemeConfig/Json/LayerConfigJson.ts
index 8a90248ba6..df5ecd66b3 100644
--- a/Models/ThemeConfig/Json/LayerConfigJson.ts
+++ b/Models/ThemeConfig/Json/LayerConfigJson.ts
@@ -195,7 +195,7 @@ export interface LayerConfigJson {
/**
* Example images, which show real-life pictures of what such a feature might look like
*
- * Type: image[]
+ * Type: image
*/
exampleImages?: string[]
diff --git a/Models/ThemeConfig/Json/LayoutConfigJson.ts b/Models/ThemeConfig/Json/LayoutConfigJson.ts
index 11dbbde538..bd0b7df5a9 100644
--- a/Models/ThemeConfig/Json/LayoutConfigJson.ts
+++ b/Models/ThemeConfig/Json/LayoutConfigJson.ts
@@ -242,7 +242,7 @@ export interface LayoutConfigJson {
* If set to [[lon, lat], [lon, lat]], the map will not scroll outside of those bounds.
* Off by default, which will enable panning to the entire world
*/
- lockLocation?: boolean | [[number, number], [number, number]] | number[][];
+ lockLocation?: [[number, number], [number, number]] | number[][];
enableUserBadge?: boolean;
enableShareScreen?: boolean;
diff --git a/Models/ThemeConfig/Json/TagRenderingConfigJson.ts b/Models/ThemeConfig/Json/TagRenderingConfigJson.ts
index 879fe929b2..f1aee4ff60 100644
--- a/Models/ThemeConfig/Json/TagRenderingConfigJson.ts
+++ b/Models/ThemeConfig/Json/TagRenderingConfigJson.ts
@@ -30,6 +30,7 @@ export interface TagRenderingConfigJson {
* If neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.
*
* Note that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A `
+ * type: rendered
*/
render?: string | any,
@@ -114,6 +115,7 @@ export interface TagRenderingConfigJson {
/**
* If the condition `if` is met, the text `then` will be rendered.
* If not known yet, the user will be presented with `then` as an option
+ * type: rendered
*/
then: string | any,
/**
diff --git a/Models/ThemeConfig/LayerConfig.ts b/Models/ThemeConfig/LayerConfig.ts
index 3e00bce67e..5fa89867dc 100644
--- a/Models/ThemeConfig/LayerConfig.ts
+++ b/Models/ThemeConfig/LayerConfig.ts
@@ -311,8 +311,11 @@ export default class LayerConfig extends WithContextLoader {
if (mapRendering === undefined) {
return undefined
}
- const baseTags = TagUtils.changeAsProperties(this.source.osmTags.asChange({id: "node/-1"}))
- return mapRendering.GetSimpleIcon(new UIEventSource(baseTags))
+ return mapRendering.GetBaseIcon(this.GetBaseTags())
+ }
+
+ public GetBaseTags(): any{
+ return TagUtils.changeAsProperties(this.source.osmTags.asChange({id: "node/-1"}))
}
public GenerateDocumentation(usedInThemes: string[], layerIsNeededBy: Map, dependencies: {
@@ -365,12 +368,6 @@ export default class LayerConfig extends WithContextLoader {
extraProps.push(new Combine(["This layer is needed as dependency for layer", new Link(revDep, "#" + revDep)]))
}
- const icon = Array.from(this.mapRendering[0]?.icon?.ExtractImages(true) ?? [])[0]
- let iconImg = ""
- if (icon !== undefined) {
- iconImg = ` `
- }
-
let neededTags: TagsFilter[] = [this.source.osmTags]
if (this.source.osmTags["and"] !== undefined) {
neededTags = this.source.osmTags["and"]
@@ -402,6 +399,16 @@ export default class LayerConfig extends WithContextLoader {
]).SetClass("flex-col flex")
}
+ const icon = this.mapRendering
+ .filter(mr => mr.location.has("point"))
+ .map(mr => mr.icon.render.txt)
+ .find(i => i !== undefined)
+ let iconImg = ""
+ if (icon !== undefined) {
+ // This is for the documentation, so we have to use raw HTML
+ iconImg = ` `
+ }
+
return new Combine([
new Combine([
new Title(this.id, 1),
@@ -435,25 +442,6 @@ export default class LayerConfig extends WithContextLoader {
return Utils.NoNull([...this.tagRenderings, ...this.titleIcons, this.title, this.isShown])
}
- public ExtractImages(): Set {
- const parts: Set[] = [];
- parts.push(...this.tagRenderings?.map((tr) => tr.ExtractImages(false)));
- parts.push(...this.titleIcons?.map((tr) => tr.ExtractImages(true)));
- for (const preset of this.presets) {
- parts.push(new Set(preset.description?.ExtractImages(false)));
- parts.push(new Set(preset.exampleImages ?? []))
- }
- for (const pointRenderingConfig of this.mapRendering) {
- parts.push(pointRenderingConfig.ExtractImages())
- }
- const allIcons = new Set();
- for (const part of parts) {
- part?.forEach(allIcons.add, allIcons);
- }
-
- return allIcons;
- }
-
public isLeftRightSensitive(): boolean {
return this.lineRendering.some(lr => lr.leftRightSensitive)
}
diff --git a/Models/ThemeConfig/LayoutConfig.ts b/Models/ThemeConfig/LayoutConfig.ts
index 10cff4db63..b1f5052681 100644
--- a/Models/ThemeConfig/LayoutConfig.ts
+++ b/Models/ThemeConfig/LayoutConfig.ts
@@ -4,6 +4,7 @@ import LayerConfig from "./LayerConfig";
import {LayerConfigJson} from "./Json/LayerConfigJson";
import Constants from "../Constants";
import TilesourceConfig from "./TilesourceConfig";
+import {ExtractImages} from "./Conversion/FixImages";
export default class LayoutConfig {
public readonly id: string;
@@ -50,6 +51,8 @@ export default class LayoutConfig {
public readonly overpassMaxZoom: number
public readonly osmApiTileSize: number
public readonly official: boolean;
+
+ public readonly usedImages : string[]
constructor(json: LayoutConfigJson, official = true, context?: string) {
this.official = official;
@@ -67,7 +70,7 @@ export default class LayoutConfig {
this.credits = json.credits;
this.version = json.version;
this.language = json.mustHaveLanguage ?? Array.from(Object.keys(json.title));
-
+ this.usedImages =Array.from( new ExtractImages().convertStrict(json, "while extracting the images")).sort()
{
if (typeof json.title === "string") {
throw `The title of a theme should always be a translation, as it sets the corresponding languages (${context}.title). The themenID is ${this.id}; the offending object is ${JSON.stringify(json.title)} which is a ${typeof json.title})`
@@ -177,63 +180,6 @@ export default class LayoutConfig {
return custom;
}
- public ExtractImages(): Set {
- const icons = new Set()
- for (const layer of this.layers) {
- layer.ExtractImages().forEach(icons.add, icons)
- }
- icons.add(this.icon)
- icons.add(this.socialImage)
- return icons
- }
-
- /**
- * Replaces all the relative image-urls with a fixed image url
- * This is to fix loading from external sources
- *
- * It should be passed the location where the original theme file is hosted.
- *
- * If no images are rewritten, the same object is returned, otherwise a new copy is returned
- */
- public patchImages(originalURL: string, originalJson: string): LayoutConfig {
- const allImages = Array.from(this.ExtractImages())
- const rewriting = new Map()
-
- // Needed for absolute urls: note that it doesn't contain a trailing slash
- const origin = new URL(originalURL).origin
- let path = new URL(originalURL).href
- path = path.substring(0, path.lastIndexOf("/"))
- for (const image of allImages) {
- if (image == "" || image == undefined) {
- continue
- }
- if (image.startsWith("http://") || image.startsWith("https://")) {
- continue
- }
- if (image.startsWith("/")) {
- // This is an absolute path
- rewriting.set(image, origin + image)
- } else if (image.startsWith("./assets/themes")) {
- // Legacy workaround
- rewriting.set(image, path + image.substring(image.lastIndexOf("/")))
- } else if (image.startsWith("./")) {
- // This is a relative url
- rewriting.set(image, path + image.substring(1))
- } else {
- // This is a relative URL with only the path
- rewriting.set(image, path + image)
- }
- }
- if (rewriting.size == 0) {
- return this;
- }
- rewriting.forEach((value, key) => {
- console.log("Rewriting", key, "==>", value)
- originalJson = originalJson.replace(new RegExp(key, "g"), value)
- })
- return new LayoutConfig(JSON.parse(originalJson), false, "Layout rewriting")
- }
-
public isLeftRightSensitive() {
return this.layers.some(l => l.isLeftRightSensitive())
}
diff --git a/Models/ThemeConfig/PointRenderingConfig.ts b/Models/ThemeConfig/PointRenderingConfig.ts
index 781b7bf656..caab1507fc 100644
--- a/Models/ThemeConfig/PointRenderingConfig.ts
+++ b/Models/ThemeConfig/PointRenderingConfig.ts
@@ -116,35 +116,23 @@ export default class PointRenderingConfig extends WithContextLoader {
}
}
- public ExtractImages(): Set {
- const parts: Set[] = [];
- parts.push(this.icon?.ExtractImages(true));
- parts.push(
- ...this.iconBadges?.map((overlay) => overlay.then.ExtractImages(true))
- );
-
- const allIcons = new Set();
- for (const part of parts) {
- part?.forEach(allIcons.add, allIcons);
+ public GetBaseIcon(tags?: any): BaseUIElement {
+ tags = tags ?? {id: "node/-1"}
+ const rotation = Utils.SubstituteKeys(this.rotation?.GetRenderValue(tags)?.txt ?? "0deg", tags)
+ const htmlDefs = Utils.SubstituteKeys(this.icon.GetRenderValue(tags)?.txt, tags)
+ let defaultPin: BaseUIElement = undefined
+ if (this.label === undefined) {
+ defaultPin = Svg.teardrop_with_hole_green_svg()
}
- return allIcons;
+ return PointRenderingConfig.FromHtmlMulti(htmlDefs, rotation, false, defaultPin)
}
-
+
public GetSimpleIcon(tags: UIEventSource): BaseUIElement {
const self = this;
if (this.icon === undefined) {
return undefined;
}
- return new VariableUiElement(tags.map(tags => {
- const rotation = Utils.SubstituteKeys(self.rotation?.GetRenderValue(tags)?.txt ?? "0deg", tags)
-
- const htmlDefs = Utils.SubstituteKeys(self.icon.GetRenderValue(tags)?.txt, tags)
- let defaultPin: BaseUIElement = undefined
- if (self.label === undefined) {
- defaultPin = Svg.teardrop_with_hole_green_svg()
- }
- return PointRenderingConfig.FromHtmlMulti(htmlDefs, rotation, false, defaultPin)
- })).SetClass("w-full h-full block")
+ return new VariableUiElement(tags.map(tags => self.GetBaseIcon(tags))).SetClass("w-full h-full block")
}
public GenerateLeafletStyle(
diff --git a/Models/ThemeConfig/TagRenderingConfig.ts b/Models/ThemeConfig/TagRenderingConfig.ts
index 5674a24f58..c98c18d91b 100644
--- a/Models/ThemeConfig/TagRenderingConfig.ts
+++ b/Models/ThemeConfig/TagRenderingConfig.ts
@@ -425,18 +425,6 @@ export default class TagRenderingConfig {
return translations;
}
- public ExtractImages(isIcon: boolean): Set {
-
- const usedIcons = new Set()
- this.render?.ExtractImages(isIcon)?.forEach(usedIcons.add, usedIcons)
-
- for (const mapping of this.mappings ?? []) {
- mapping.then.ExtractImages(isIcon).forEach(usedIcons.add, usedIcons)
- }
-
- return usedIcons;
- }
-
FreeformValues(): { key: string, type?: string, values?: string [] } {
try {
diff --git a/UI/AutomatonGui.ts b/UI/AutomatonGui.ts
index 385a354e97..db5d6a6455 100644
--- a/UI/AutomatonGui.ts
+++ b/UI/AutomatonGui.ts
@@ -254,9 +254,9 @@ class AutomatonGui {
LocalStorageSource.Get("automation-theme-id", "missing_streets").syncWith(themeSelect.GetValue())
-
const tilepath = ValidatedTextField.InputForType("url", {
placeholder: "Specifiy the path of the overview",
+ inputStyle: "width: 100%"
})
tilepath.SetClass("w-full")
LocalStorageSource.Get("automation-tile_path").syncWith(tilepath.GetValue(), true)
diff --git a/UI/Base/MinimapImplementation.ts b/UI/Base/MinimapImplementation.ts
index 29c38e6e19..4a240bd56b 100644
--- a/UI/Base/MinimapImplementation.ts
+++ b/UI/Base/MinimapImplementation.ts
@@ -43,6 +43,7 @@ export default class MinimapImplementation extends BaseUIElement implements Mini
this._addLayerControl = options.addLayerControl ?? false
this._options = options
MinimapImplementation._nextId++
+ this.SetClass("relative")
}
diff --git a/UI/BigComponents/CopyrightPanel.ts b/UI/BigComponents/CopyrightPanel.ts
index f9a3bfc5c3..fd8bf6b504 100644
--- a/UI/BigComponents/CopyrightPanel.ts
+++ b/UI/BigComponents/CopyrightPanel.ts
@@ -20,6 +20,8 @@ import Toggle from "../Input/Toggle";
import {OsmConnection} from "../../Logic/Osm/OsmConnection";
import Constants from "../../Models/Constants";
import ContributorCount from "../../Logic/ContributorCount";
+import {icon} from "leaflet";
+import Img from "../Base/Img";
export class OpenIdEditor extends VariableUiElement {
constructor(state: { locationControl: UIEventSource }, iconStyle?: string, objectId?: string) {
@@ -131,8 +133,7 @@ export default class CopyrightPanel extends Combine {
new OpenJosm(state, iconStyle)
]
- const iconAttributions = Utils.NoNull(Array.from(layoutToUse.ExtractImages()))
- .map(CopyrightPanel.IconAttribution)
+ const iconAttributions = layoutToUse.usedImages.map(CopyrightPanel.IconAttribution)
let maintainer: BaseUIElement = undefined
if (layoutToUse.maintainer !== undefined && layoutToUse.maintainer !== "" && layoutToUse.maintainer.toLowerCase() !== "mapcomplete") {
@@ -224,23 +225,19 @@ export default class CopyrightPanel extends Combine {
const sources = Utils.NoNull(Utils.NoEmpty(license.sources))
return new Combine([
- ``,
+ new Img(iconPath).SetClass("w-12 min-h-12 mr-2 mb-2"),
new Combine([
new FixedUiElement(license.authors.join("; ")).SetClass("font-bold"),
- new Combine([license.license,
- sources.length > 0 ? " - " : "",
- ...sources.map(lnk => {
+ license.license,
+ new Combine([ ...sources.map(lnk => {
let sourceLinkContent = lnk;
try {
sourceLinkContent = new URL(lnk).hostname
} catch {
console.error("Not a valid URL:", lnk)
}
- return new Link(sourceLinkContent, lnk, true);
- })
- ]
- ).SetClass("block m-2")
-
+ return new Link(sourceLinkContent, lnk, true).SetClass("mr-2 mb-2");
+ })]).SetClass("flex flex-wrap")
]).SetClass("flex flex-col").SetStyle("width: calc(100% - 50px - 0.5em); min-width: 12rem;")
]).SetClass("flex flex-wrap border-b border-gray-300 m-2 border-box")
}
diff --git a/UI/BigComponents/FullWelcomePaneWithTabs.ts b/UI/BigComponents/FullWelcomePaneWithTabs.ts
index 9654eef1c9..b9e149800f 100644
--- a/UI/BigComponents/FullWelcomePaneWithTabs.ts
+++ b/UI/BigComponents/FullWelcomePaneWithTabs.ts
@@ -56,10 +56,8 @@ export default class FullWelcomePaneWithTabs extends ScrollableFullScreen {
isShown: UIEventSource):
{ header: string | BaseUIElement; content: BaseUIElement }[] {
- let welcome: BaseUIElement = new ThemeIntroductionPanel(isShown);
-
const tabs: { header: string | BaseUIElement, content: BaseUIElement }[] = [
- {header: ``, content: welcome},
+ {header: ``, content: new ThemeIntroductionPanel(isShown)},
]
diff --git a/UI/BigComponents/LeftControls.ts b/UI/BigComponents/LeftControls.ts
index 750aff5fc7..0681322d4e 100644
--- a/UI/BigComponents/LeftControls.ts
+++ b/UI/BigComponents/LeftControls.ts
@@ -51,7 +51,7 @@ export default class LeftControls extends Combine {
return new FeatureInfoBox(tagsSource, currentViewFL.layerDef, state, "currentview", guiState.currentViewControlIsOpened)
.SetClass("md:floating-element-width")
})
- }))
+ })).SetStyle("width: 40rem").SetClass("block")
return new Toggle(
diff --git a/UI/BigComponents/MoreScreen.ts b/UI/BigComponents/MoreScreen.ts
index 1dd04ecb41..22674db520 100644
--- a/UI/BigComponents/MoreScreen.ts
+++ b/UI/BigComponents/MoreScreen.ts
@@ -126,6 +126,9 @@ export default class MoreScreen extends Combine {
for (let i = 0; i < length; i++) {
str += allPreferences[id + "-" + i]
}
+ if(str === undefined || str === "undefined"){
+ return undefined
+ }
try {
const value: {
id: string
@@ -157,13 +160,9 @@ export default class MoreScreen extends Combine {
return ids
});
- currentIds.addCallback(ids => {
- console.log("Current special ids are:", ids)
- })
+
var stableIds = UIEventSource.ListStabilized(currentIds)
- currentIds.addCallback(ids => {
- console.log("Stabilized special ids are:", ids)
- })
+
return new VariableUiElement(
stableIds.map(ids => {
const allThemes: BaseUIElement[] = []
diff --git a/UI/ImportFlow/CompareToAlreadyExistingNotes.ts b/UI/ImportFlow/CompareToAlreadyExistingNotes.ts
index f058eae018..6054e34349 100644
--- a/UI/ImportFlow/CompareToAlreadyExistingNotes.ts
+++ b/UI/ImportFlow/CompareToAlreadyExistingNotes.ts
@@ -35,17 +35,11 @@ export class CompareToAlreadyExistingNotes extends Combine implements FlowStep<{
constructor(state, params: { bbox: BBox, layer: LayerConfig, geojson: { features: any[] } }) {
- const convertState: DesugaringContext = {
- sharedLayers: new Map(),
- tagRenderings: new Map()
- }
-
-
const layerConfig = known_layers.layers.filter(l => l.id === params.layer.id)[0]
if (layerConfig === undefined) {
console.error("WEIRD: layer not found in the builtin layer overview")
}
- const importLayerJson = new CreateNoteImportLayer(365).convertStrict(convertState, layerConfig, "CompareToAlreadyExistingNotes")
+ const importLayerJson = new CreateNoteImportLayer(365).convertStrict(layerConfig, "CompareToAlreadyExistingNotes")
const importLayer = new LayerConfig(importLayerJson, "import-layer-dynamic")
const flayer: FilteredLayer = {
appliedFilters: new UIEventSource