Regenerate docs

This commit is contained in:
pietervdvn 2022-02-01 13:21:45 +01:00
parent f3f7fde29d
commit e6ac080019
98 changed files with 10369 additions and 3821 deletions

View file

@ -18,6 +18,7 @@ Index of builtin TagRendering
+ [wheelchair-access](#wheelchair-access)
+ [service:electricity](#serviceelectricity)
+ [dog-access](#dog-access)
+ [payment-options-advanced](#payment-options-advanced)
+ [all_tags](#all_tags)
+ [questions](#questions)
+ [reviews](#reviews)
@ -60,6 +61,7 @@ Existing builtin tagrenderings
- nature_reserve
- observation_tower
- parking
- picnic_table
- play_forest
- playground
- public_bookcase
@ -123,7 +125,6 @@ Existing builtin tagrenderings
### payment-options
- cafe_pub
- charging_station
- food
- observation_tower
- toilet
@ -145,6 +146,10 @@ Existing builtin tagrenderings
- cafe_pub
- food
### payment-options-advanced
- charging_station
### all_tags
- cluster_style

View file

@ -112,8 +112,6 @@ the [`Coordinates`-object](https://developer.mozilla.org/en-US/docs/Web/API/Geol
browser.
- **This layer is included automatically in every theme. This layer might contain no points**
- This layer cannot be toggled in the filter view. If you import this layer in your theme, override `title` to make this
toggleable.
- Not visible in the layer selection by default. If you want to make this layer toggable, override `name`
[Go to the source code](../assets/layers/gps_location/gps_location.json)

View file

@ -25,6 +25,7 @@ other medical supplies.
#### Themes using this layer
- [hailhydrant](https://mapcomplete.osm.be/hailhydrant)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/ambulancestation/ambulancestation.json)

View file

@ -23,6 +23,7 @@ Diverse pieces of artwork
#### Themes using this layer
- [artwork](https://mapcomplete.osm.be/artwork)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/artwork/artwork.json)

View file

@ -32,6 +32,7 @@ Obstacles while cycling, such as bollards and cycle barriers
#### Themes using this layer
- [cycle_infra](https://mapcomplete.osm.be/cycle_infra)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/barrier/barrier.json)

View file

@ -26,6 +26,7 @@ questions about them.
#### Themes using this layer
- [benches](https://mapcomplete.osm.be/benches)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/bench/bench.json)

View file

@ -21,6 +21,7 @@ A layer showing all public-transport-stops which do have a bench
#### Themes using this layer
- [benches](https://mapcomplete.osm.be/benches)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/bench_at_pt/bench_at_pt.json)

View file

@ -28,6 +28,7 @@ A facility where bicycles can be lent for longer period of times
- [bicyclelib](https://mapcomplete.osm.be/bicyclelib)
- [cyclofix](https://mapcomplete.osm.be/cyclofix)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/bicycle_library/bicycle_library.json)

View file

@ -27,6 +27,7 @@ vending machines with bicycle tubes and optionally additional bicycle related ob
#### Themes using this layer
- [cyclofix](https://mapcomplete.osm.be/cyclofix)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/bicycle_tube_vending_machine/bicycle_tube_vending_machine.json)

View file

@ -28,6 +28,7 @@ decoration, ...
#### Themes using this layer
- [cyclofix](https://mapcomplete.osm.be/cyclofix)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/bike_cafe/bike_cafe.json)

View file

@ -21,6 +21,7 @@ A layer showing facilities where one can clean their bike
#### Themes using this layer
- [cyclofix](https://mapcomplete.osm.be/cyclofix)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/bike_cleaning/bike_cleaning.json)
@ -39,6 +40,8 @@ Elements must have the all of following tags to be shown on this layer:
cleaning</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy' target='_blank'>diy</a>
|<a href='https://wiki.openstreetmap.org/wiki/Key:amenity' target='_blank'>amenity</a>
=<a href='https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dbicycle_wash' target='_blank'>bicycle_wash</a>
|<a href='https://wiki.openstreetmap.org/wiki/Key:amenity' target='_blank'>amenity</a>
=<a href='https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dbike_wash' target='_blank'>bike_wash</a>
Supported attributes
----------------------
@ -75,8 +78,9 @@ This is rendered with `Using the cleaning service costs {service:bicycle:cleanin
no</a>_This option cannot be chosen as answer_
- **The cleaning service has a fee, but the amount is not known** corresponds
with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:
cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>
yes</a>
cleaning:fee</a>
=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes&service:bicycle:cleaning:charge=' target='_blank'>
yes&service:bicycle:cleaning:charge=</a>_This option cannot be chosen as answer_
### bike_cleaning-charge

View file

@ -26,6 +26,7 @@ A layer showing where you can park your bike
#### Themes using this layer
- [cyclofix](https://mapcomplete.osm.be/cyclofix)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/bike_parking/bike_parking.json)

View file

@ -32,6 +32,7 @@ A layer showing bicycle pumps and bicycle repair tool stands
#### Themes using this layer
- [cyclofix](https://mapcomplete.osm.be/cyclofix)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/bike_repair_station/bike_repair_station.json)

View file

@ -35,6 +35,7 @@ A shop specifically selling bicycles or related items
#### Themes using this layer
- [cyclofix](https://mapcomplete.osm.be/cyclofix)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/bike_shop/bike_shop.json)
@ -260,7 +261,8 @@ This is rendered with `Using the cleaning service costs {service:bicycle:cleanin
no</a>_This option cannot be chosen as answer_
- **The cleaning service has a fee, but the amount is not known** corresponds
with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:
cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>
yes</a>
cleaning:fee</a>
=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes&service:bicycle:cleaning:charge=' target='_blank'>
yes&service:bicycle:cleaning:charge=</a>_This option cannot be chosen as answer_
This document is autogenerated from assets/layers/bike_shop/bike_shop.json

View file

@ -24,6 +24,7 @@ A layer with bike-themed objects but who don't match any other layer
#### Themes using this layer
- [cyclofix](https://mapcomplete.osm.be/cyclofix)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/bike_themed_object/bike_themed_object.json)

View file

@ -21,6 +21,7 @@ Binoculas
#### Themes using this layer
- [binoculars](https://mapcomplete.osm.be/binoculars)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/binocular/binocular.json)

View file

@ -22,6 +22,7 @@ Een vogelkijkhut
#### Themes using this layer
- [nature](https://mapcomplete.osm.be/nature)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/birdhide/birdhide.json)

View file

@ -29,6 +29,7 @@ A layer showing cafés and pubs where one can gather around a drink. The layer a
#### Themes using this layer
- [cafes_and_pubs](https://mapcomplete.osm.be/cafes_and_pubs)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/cafe_pub/cafe_pub.json)

View file

@ -86,7 +86,7 @@ A charging station
+ [OH](#oh)
+ [fee](#fee)
+ [charge](#charge)
+ [payment-options](#payment-options)
+ [payment-options-advanced](#payment-options-advanced)
+ [Authentication](#authentication)
+ [Auth phone](#auth-phone)
+ [maxstay](#maxstay)
@ -105,6 +105,7 @@ A charging station
#### Themes using this layer
- [charging_stations](https://mapcomplete.osm.be/charging_stations)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/charging_station/charging_station.json)
@ -1712,7 +1713,7 @@ 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 is rendered with `Using this charging station costs <b>{charge}</b>`
### payment-options
### payment-options-advanced
The question is **Which methods of payment are accepted here?**

View file

@ -32,6 +32,7 @@ Crossings for pedestrians and cyclists
#### Themes using this layer
- [cycle_infra](https://mapcomplete.osm.be/cycle_infra)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/crossings/crossings.json)

View file

@ -40,6 +40,7 @@ All infrastructure that someone can cycle over, accompanied with questions about
#### Themes using this layer
- [cycle_infra](https://mapcomplete.osm.be/cycle_infra)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/cycleways_and_roads/cycleways_and_roads.json)

View file

@ -39,6 +39,7 @@ defibrillators which might need staff to fetch the actual device
#### Themes using this layer
- [aed](https://mapcomplete.osm.be/aed)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/defibrillator/defibrillator.json)

View file

@ -21,6 +21,7 @@ This layer visualizes directions
#### Themes using this layer
- [personal](https://mapcomplete.osm.be/personal)
- [surveillance](https://mapcomplete.osm.be/surveillance)
[Go to the source code](../assets/layers/direction/direction.json)

View file

@ -30,6 +30,7 @@ A layer showing drinking water fountains
- [cyclofix](https://mapcomplete.osm.be/cyclofix)
- [drinking_water](https://mapcomplete.osm.be/drinking_water)
- [nature](https://mapcomplete.osm.be/nature)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/drinking_water/drinking_water.json)

View file

@ -30,6 +30,7 @@ users (but also bicycle users, people who want to deliver, ...)
#### Themes using this layer
- [entrances](https://mapcomplete.osm.be/entrances)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/entrance/entrance.json)

View file

@ -27,6 +27,7 @@ All objects which have an etymology known
#### Themes using this layer
- [etymology](https://mapcomplete.osm.be/etymology)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/etymology/etymology.json)

View file

@ -20,6 +20,7 @@ Map layer to show fire hydrants.
#### Themes using this layer
- [hailhydrant](https://mapcomplete.osm.be/hailhydrant)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/extinguisher/extinguisher.json)

View file

@ -24,6 +24,7 @@ Map layer to show fire stations.
#### Themes using this layer
- [hailhydrant](https://mapcomplete.osm.be/hailhydrant)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/fire_station/fire_station.json)

View file

@ -40,6 +40,7 @@ A layer showing restaurants and fast-food amenities (with a special rendering fo
- [food](https://mapcomplete.osm.be/food)
- [fritures](https://mapcomplete.osm.be/fritures)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/food/food.json)

View file

@ -24,6 +24,7 @@ A layer showing memorials for cyclists, killed in road accidents
#### Themes using this layer
- [ghostbikes](https://mapcomplete.osm.be/ghostbikes)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/ghost_bike/ghost_bike.json)

View file

@ -22,6 +22,7 @@ Map layer to show fire hydrants.
#### Themes using this layer
- [hailhydrant](https://mapcomplete.osm.be/hailhydrant)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/hydrant/hydrant.json)

View file

@ -20,6 +20,7 @@ feature, a map, ...)
#### Themes using this layer
- [nature](https://mapcomplete.osm.be/nature)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/information_board/information_board.json)

View file

@ -22,6 +22,7 @@ A map, meant for tourists which is permanently installed in the public space
- [maps](https://mapcomplete.osm.be/maps)
- [nature](https://mapcomplete.osm.be/nature)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/map/map.json)

View file

@ -33,6 +33,7 @@ Natuurpunt of het Agentschap Natuur en Bos of zijn deze erkend door de overheid.
#### Themes using this layer
- [nature](https://mapcomplete.osm.be/nature)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/nature_reserve/nature_reserve.json)
@ -111,15 +112,15 @@ The question is **Wie beheert dit gebied?**
This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
This is rendered with `Beheer door {operator}`
- **<img src="./assets/layers/nature_reserve/Natuurpunt.jpg" style="width:1.5em">Dit gebied wordt beheerd door
Natuurpunt** corresponds with <a href='https://wiki.openstreetmap.org/wiki/Key:operator' target='_blank'>operator</a>
- **Dit gebied wordt beheerd door Natuurpunt** corresponds
with <a href='https://wiki.openstreetmap.org/wiki/Key:operator' target='_blank'>operator</a>
=<a href='https://wiki.openstreetmap.org/wiki/Tag:operator%3DNatuurpunt' target='_blank'>Natuurpunt</a>
- **<img src="./assets/layers/nature_reserve/Natuurpunt.jpg" style="width:1.5em">Dit gebied wordt beheerd door
{operator}** corresponds with operator~^(n|N)atuurpunt.*$_This option cannot be chosen as answer_
- **<img src="./assets/layers/nature_reserve/ANB.jpg" style="width:1.5em">Dit gebied wordt beheerd door het Agentschap
Natuur en Bos** corresponds with <a href='https://wiki.openstreetmap.org/wiki/Key:operator' target='_blank'>
operator</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:operator%3DAgentschap Natuur en Bos' target='_blank'>
Agentschap Natuur en Bos</a>
- **Dit gebied wordt beheerd door {operator}** corresponds with operator~^(n|N)atuurpunt.*$_This option cannot be chosen
as answer_
- **Dit gebied wordt beheerd door het Agentschap Natuur en Bos** corresponds
with <a href='https://wiki.openstreetmap.org/wiki/Key:operator' target='_blank'>operator</a>
=<a href='https://wiki.openstreetmap.org/wiki/Tag:operator%3DAgentschap Natuur en Bos' target='_blank'>Agentschap
Natuur en Bos</a>
### Name:nl-tag

View file

@ -27,6 +27,7 @@ Towers with a panoramic view
#### Themes using this layer
- [observation_towers](https://mapcomplete.osm.be/observation_towers)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/observation_tower/observation_tower.json)

View file

@ -19,6 +19,7 @@ A layer showing car parkings
#### Themes using this layer
- [parkings](https://mapcomplete.osm.be/parkings)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/parking/parking.json)

View file

@ -21,6 +21,7 @@ Pedestrian footpaths, especially used for indoor navigation and snapping entranc
#### Themes using this layer
- [entrances](https://mapcomplete.osm.be/entrances)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/pedestrian_path/pedestrian_path.json)

View file

@ -14,11 +14,13 @@ The layer showing picnic tables
- [Basic tags for this layer](#basic-tags-for-this-layer)
- [Supported attributes](#supported-attributes)
+ [images](#images)
+ [picnic_table-material](#picnic_table-material)
#### Themes using this layer
- [benches](https://mapcomplete.osm.be/benches)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/picnic_table/picnic_table.json)
@ -45,6 +47,10 @@ attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](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) [concrete](https://wiki.openstreetmap.org/wiki/Tag:material%3Dconcrete)
### images
_This tagrendering has no question and is thus read-only_
### picnic_table-material
The question is **What material is this picnic table made of?**

View file

@ -30,6 +30,7 @@ Playgrounds
#### Themes using this layer
- [personal](https://mapcomplete.osm.be/personal)
- [playgrounds](https://mapcomplete.osm.be/playgrounds)
[Go to the source code](../assets/layers/playground/playground.json)

View file

@ -32,6 +32,7 @@ A streetside cabinet with books, accessible to anyone
#### Themes using this layer
- [bookcases](https://mapcomplete.osm.be/bookcases)
- [personal](https://mapcomplete.osm.be/personal)
[Go to the source code](../assets/layers/public_bookcase/public_bookcase.json)

View file

@ -26,6 +26,7 @@ A shop
#### Themes using this layer
- [personal](https://mapcomplete.osm.be/personal)
- [shops](https://mapcomplete.osm.be/shops)
[Go to the source code](../assets/layers/shops/shops.json)

View file

@ -27,6 +27,7 @@ A sport pitch
#### Themes using this layer
- [personal](https://mapcomplete.osm.be/personal)
- [sport_pitches](https://mapcomplete.osm.be/sport_pitches)
[Go to the source code](../assets/layers/sport_pitch/sport_pitch.json)

View file

@ -25,6 +25,7 @@ A layer showing street lights
#### Themes using this layer
- [personal](https://mapcomplete.osm.be/personal)
- [street_lighting](https://mapcomplete.osm.be/street_lighting)
[Go to the source code](../assets/layers/street_lamps/street_lamps.json)

View file

@ -30,6 +30,7 @@ This layer shows surveillance cameras and allows a contributor to update informa
#### Themes using this layer
- [personal](https://mapcomplete.osm.be/personal)
- [surveillance](https://mapcomplete.osm.be/surveillance)
[Go to the source code](../assets/layers/surveillance_camera/surveillance_camera.json)

View file

@ -31,6 +31,7 @@ A layer showing (public) toilets
#### Themes using this layer
- [personal](https://mapcomplete.osm.be/personal)
- [toilets](https://mapcomplete.osm.be/toilets)
[Go to the source code](../assets/layers/toilet/toilet.json)

View file

@ -26,6 +26,7 @@ A layer showing trees
#### Themes using this layer
- [personal](https://mapcomplete.osm.be/personal)
- [trees](https://mapcomplete.osm.be/trees)
[Go to the source code](../assets/layers/tree_node/tree_node.json)

View file

@ -29,6 +29,7 @@ default and not toggleable by the user.
- [aed](https://mapcomplete.osm.be/aed)
- [entrances](https://mapcomplete.osm.be/entrances)
- [personal](https://mapcomplete.osm.be/personal)
- [surveillance](https://mapcomplete.osm.be/surveillance)
[Go to the source code](../assets/layers/walls_and_buildings/walls_and_buildings.json)

View file

@ -19,6 +19,7 @@ This is a public waste basket, thrash can, where you can throw away your thrash.
#### Themes using this layer
- [personal](https://mapcomplete.osm.be/personal)
- [waste_basket](https://mapcomplete.osm.be/waste_basket)
[Go to the source code](../assets/layers/waste_basket/waste_basket.json)

View file

@ -1,37 +1,37 @@
export default {
"$ref": "#/definitions/AndOrTagConfigJson",
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
"$ref": "#/definitions/AndOrTagConfigJson",
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
}
}
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
"$schema": "http://json-schema.org/draft-07/schema#"
}

View file

@ -1,91 +1,91 @@
export default {
"type": "object",
"properties": {
"extraDeleteReasons": {
"description": "*\nBy default, three reasons to delete a point are shown:\n\n- The point does not exist anymore\n- The point was a testing point\n- THe point could not be found\n\nHowever, for some layers, there might be different or more specific reasons for deletion which can be user friendly to set, e.g.:\n\n- the shop has closed\n- the climbing route has been closed of for nature conservation reasons\n- ...\n\nThese reasons can be stated here and will be shown in the list of options the user can choose from",
"type": "array",
"items": {
"type": "object",
"properties": {
"explanation": {
"description": "The text that will be shown to the user - translatable"
},
"changesetMessage": {
"description": "The text that will be uploaded into the changeset or will be used in the fixme in case of a soft deletion\nShould be a few words, in english",
"type": "string"
}
"type": "object",
"properties": {
"extraDeleteReasons": {
"description": "*\nBy default, three reasons to delete a point are shown:\n\n- The point does not exist anymore\n- The point was a testing point\n- THe point could not be found\n\nHowever, for some layers, there might be different or more specific reasons for deletion which can be user friendly to set, e.g.:\n\n- the shop has closed\n- the climbing route has been closed of for nature conservation reasons\n- ...\n\nThese reasons can be stated here and will be shown in the list of options the user can choose from",
"type": "array",
"items": {
"type": "object",
"properties": {
"explanation": {
"description": "The text that will be shown to the user - translatable"
},
"changesetMessage": {
"description": "The text that will be uploaded into the changeset or will be used in the fixme in case of a soft deletion\nShould be a few words, in english",
"type": "string"
}
},
"required": [
"changesetMessage",
"explanation"
]
}
},
"required": [
"changesetMessage",
"explanation"
]
}
},
"nonDeleteMappings": {
"description": "In some cases, a (starting) contributor might wish to delete a feature even though deletion is not appropriate.\n(The most relevant case are small paths running over private property. These should be marked as 'private' instead of deleted, as the community might trace the path again from aerial imagery, gettting us back to the original situation).\n\nBy adding a 'nonDeleteMapping', an option can be added into the list which will retag the feature.\nIt is important that the feature will be retagged in such a way that it won't be picked up by the layer anymore!",
"type": "array",
"items": {
"type": "object",
"properties": {
"if": {
"$ref": "#/definitions/AndOrTagConfigJson"
},
"then": {}
"nonDeleteMappings": {
"description": "In some cases, a (starting) contributor might wish to delete a feature even though deletion is not appropriate.\n(The most relevant case are small paths running over private property. These should be marked as 'private' instead of deleted, as the community might trace the path again from aerial imagery, gettting us back to the original situation).\n\nBy adding a 'nonDeleteMapping', an option can be added into the list which will retag the feature.\nIt is important that the feature will be retagged in such a way that it won't be picked up by the layer anymore!",
"type": "array",
"items": {
"type": "object",
"properties": {
"if": {
"$ref": "#/definitions/AndOrTagConfigJson"
},
"then": {}
},
"required": [
"if",
"then"
]
}
},
"required": [
"if",
"then"
]
}
},
"softDeletionTags": {
"description": "In some cases, the contributor is not allowed to delete the current feature (e.g. because it isn't a point, the point is referenced by a relation or the user isn't experienced enough).\nTo still offer the user a 'delete'-option, the feature is retagged with these tags. This is a soft deletion, as the point isn't actually removed from OSM but rather marked as 'disused'\nIt is important that the feature will be retagged in such a way that it won't be picked up by the layer anymore!\n\nExample (note that \"amenity=\" erases the 'amenity'-key alltogether):\n```\n{\n \"and\": [\"disussed:amenity=public_bookcase\", \"amenity=\"]\n}\n```\n\nor (notice the use of the ':='-tag to copy the old value of 'shop=*' into 'disused:shop='):\n```\n{\n \"and\": [\"disused:shop:={shop}\", \"shop=\"]\n}\n```",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"neededChangesets": {
"description": "*\nBy default, the contributor needs 20 previous changesets to delete points edited by others.\nFor some small features (e.g. bicycle racks) this is too much and this requirement can be lowered or dropped, which can be done here.",
"type": "number"
}
},
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"softDeletionTags": {
"description": "In some cases, the contributor is not allowed to delete the current feature (e.g. because it isn't a point, the point is referenced by a relation or the user isn't experienced enough).\nTo still offer the user a 'delete'-option, the feature is retagged with these tags. This is a soft deletion, as the point isn't actually removed from OSM but rather marked as 'disused'\nIt is important that the feature will be retagged in such a way that it won't be picked up by the layer anymore!\n\nExample (note that \"amenity=\" erases the 'amenity'-key alltogether):\n```\n{\n \"and\": [\"disussed:amenity=public_bookcase\", \"amenity=\"]\n}\n```\n\nor (notice the use of the ':='-tag to copy the old value of 'shop=*' into 'disused:shop='):\n```\n{\n \"and\": [\"disused:shop:={shop}\", \"shop=\"]\n}\n```",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
"neededChangesets": {
"description": "*\nBy default, the contributor needs 20 previous changesets to delete points edited by others.\nFor some small features (e.g. bicycle racks) this is too much and this requirement can be lowered or dropped, which can be done here.",
"type": "number"
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}

View file

@ -1,87 +1,87 @@
export default {
"type": "object",
"properties": {
"id": {
"description": "An id/name for this filter, used to set the URL parameters",
"type": "string"
},
"options": {
"description": "The options for a filter\nIf there are multiple options these will be a list of radio buttons\nIf there is only one option this will be a checkbox\nFiltering is done based on the given osmTags that are compared to the objects in that layer.",
"type": "array",
"items": {
"type": "object",
"properties": {
"question": {},
"osmTags": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"fields": {
"type": "object",
"properties": {
"id": {
"description": "An id/name for this filter, used to set the URL parameters",
"type": "string"
},
"options": {
"description": "The options for a filter\nIf there are multiple options these will be a list of radio buttons\nIf there is only one option this will be a checkbox\nFiltering is done based on the given osmTags that are compared to the objects in that layer.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
"type": "object",
"properties": {
"question": {},
"osmTags": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"name"
]
}
}
},
"type": {
"type": "string"
}
},
"required": [
"name"
]
"required": [
"question"
]
}
}
},
"required": [
"question"
]
}
}
},
"required": [
"id",
"options"
],
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
"required": [
"id",
"options"
],
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,296 +1,296 @@
export default {
"description": "The LineRenderingConfig gives all details onto how to render a single line of a feature.\n\nThis can be used if:\n\n- The feature is a line\n- The feature is an area",
"type": "object",
"properties": {
"color": {
"description": "The color for way-elements and SVG-elements.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"width": {
"description": "The stroke-width for way-elements",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": [
"string",
"number"
]
}
]
},
"dashArray": {
"description": "A dasharray, e.g. \"5 6\"\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap',\nDefault value: \"\" (empty string == full line)",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"lineCap": {
"description": "The form at the end of a line",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"fill": {
"description": "Wehter or not to fill polygons",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"enum": [
"no",
"yes"
],
"type": "string"
}
]
},
"fillColor": {
"description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"offset": {
"description": "The number of pixels this line should be moved.\nUse a positive numbe to move to the right, a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "number"
}
]
}
},
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"description": "The LineRenderingConfig gives all details onto how to render a single line of a feature.\n\nThis can be used if:\n\n- The feature is a line\n- The feature is an area",
"type": "object",
"properties": {
"color": {
"description": "The color for way-elements and SVG-elements.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"width": {
"description": "The stroke-width for way-elements",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": [
"string",
"number"
]
}
]
},
"dashArray": {
"description": "A dasharray, e.g. \"5 6\"\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap',\nDefault value: \"\" (empty string == full line)",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"lineCap": {
"description": "The form at the end of a line",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"fill": {
"description": "Wehter or not to fill polygons",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"enum": [
"no",
"yes"
],
"type": "string"
}
]
},
"fillColor": {
"description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"offset": {
"description": "The number of pixels this line should be moved.\nUse a positive numbe to move to the right, a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "number"
}
]
}
}
}
},
"ApplicableUnitJson": {
"type": "object",
"properties": {
"canonicalDenomination": {
"description": "The canonical value which will be added to the text.\ne.g. \"m\" for meters\nIf the user inputs '42', the canonical value will be added and it'll become '42m'",
"type": "string"
},
"canonicalDenominationSingular": {
"description": "The canonical denomination in the case that the unit is precisely '1'",
"type": "string"
},
"alternativeDenomination": {
"description": "A list of alternative values which can occur in the OSM database - used for parsing.",
"type": "array",
"items": {
"type": "string"
}
},
"human": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"meter\",\n \"fr\": \"metre\"\n}"
},
"humanSingular": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"minute\",\n \"nl\": \"minuut\"x²\n}"
},
"prefix": {
"description": "If set, then the canonical value will be prefixed instead, e.g. for '€'\nNote that if all values use 'prefix', the dropdown might move to before the text field",
"type": "boolean"
},
"default": {
"description": "The default interpretation - only one can be set.\nIf none is set, the first unit will be considered the default interpretation of a value without a unit",
"type": "boolean"
}
},
"required": [
"canonicalDenomination"
]
},
"TagRenderingConfigJson": {
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nIf the desired tags are missing and a question is defined, a question will be shown instead.",
"type": "object",
"properties": {
"id": {
"description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)",
"type": "string"
},
"group": {
"description": "If 'group' is defined on many tagRenderings, these are grouped together when shown. The questions are grouped together as well.\nThe first tagRendering of a group will always be a sticky element.",
"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. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`"
},
"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"
},
"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...",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"freeform": {
"description": "Allow freeform text input from the user",
"type": "object",
"properties": {
"key": {
"description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
"type": "string"
},
"type": {
"description": "The type of the text-field, e.g. 'string', 'nat', 'float', 'date',...\nSee Docs/SpecialInputElements.md and UI/Input/ValidatedTextField.ts for supported values",
"type": "string"
},
"helperArgs": {
"description": "Extra parameters to initialize the input helper arguments.\nFor semantics, see the 'SpecialInputElements.md'",
"type": "array",
"items": {}
},
"addExtraTags": {
"description": "If a value is added with the textfield, these extra tag is addded.\nUseful to add a 'fixme=freeform textfield used - to be checked'",
"type": "array",
"items": {
"type": "string"
}
},
"inline": {
"description": "When set, influences the way a question is asked.\nInstead of showing a full-widht text field, the text field will be shown within the rendering of the question.\n\nThis combines badly with special input elements, as it'll distort the layout.",
"type": "boolean"
},
"default": {
"description": "default value to enter if no previous tagging is present.\nNormally undefined (aka do not enter anything)",
"type": "string"
}
},
"required": [
"key"
]
},
"multiAnswer": {
"description": "If true, use checkboxes instead of radio buttons when asking the question",
"type": "boolean"
},
"mappings": {
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
"type": "array",
"items": {
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"if": {
"description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"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"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small",
"type": "string"
},
"hideInAnswer": {
"description": "In some cases, multiple taggings exist (e.g. a default assumption, or a commonly mapped abbreviation and a fully written variation).\n\nIn the latter case, a correct text should be shown, but only a single, canonical tagging should be selectable by the user.\nIn this case, one of the mappings can be hiden by setting this flag.\n\nTo demonstrate an example making a default assumption:\n\nmappings: [\n {\n if: \"access=\", -- no access tag present, we assume accessible\n then: \"Accessible to the general public\",\n hideInAnswer: true\n },\n {\n if: \"access=yes\",\n then: \"Accessible to the general public\", -- the user selected this, we add that to OSM\n },\n {\n if: \"access=no\",\n then: \"Not accessible to the public\"\n }\n]\n\n\nFor example, for an operator, we have `operator=Agentschap Natuur en Bos`, which is often abbreviated to `operator=ANB`.\nThen, we would add two mappings:\n{\n if: \"operator=Agentschap Natuur en Bos\" -- the non-abbreviated version which should be uploaded\n then: \"Maintained by Agentschap Natuur en Bos\"\n},\n{\n if: \"operator=ANB\", -- we don't want to upload abbreviations\n then: \"Maintained by Agentschap Natuur en Bos\"\n hideInAnswer: true\n}\n\nHide in answer can also be a tagsfilter, e.g. to make sure an option is only shown when appropriate.\nKeep in mind that this is reverse logic: it will be hidden in the answer if the condition is true, it will thus only show in the case of a mismatch\n\ne.g., for toilets: if \"wheelchair=no\", we know there is no wheelchair dedicated room.\nFor the location of the changing table, the option \"in the wheelchair accessible toilet is weird\", so we write:\n\n{\n \"question\": \"Where is the changing table located?\"\n \"mappings\": [\n {\"if\":\"changing_table:location=female\",\"then\":\"In the female restroom\"},\n {\"if\":\"changing_table:location=male\",\"then\":\"In the male restroom\"},\n {\"if\":\"changing_table:location=wheelchair\",\"then\":\"In the wheelchair accessible restroom\", \"hideInAnswer\": \"wheelchair=no\"},\n \n ]\n}\n\nAlso have a look for the meta-tags\n{\n if: \"operator=Agentschap Natuur en Bos\",\n then: \"Maintained by Agentschap Natuur en Bos\",\n hideInAnswer: \"_country!=be\"\n}",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": [
"string",
"boolean"
]
}
]
},
"ifnot": {
"description": "Only applicable if 'multiAnswer' is set.\nThis is for situations such as:\n`accepts:coins=no` where one can select all the possible payment methods. However, we want to make explicit that some options _were not_ selected.\nThis can be done with `ifnot`\nNote that we can not explicitly render this negative case to the user, we cannot show `does _not_ accept coins`.\nIf this is important to your usecase, consider using multiple radiobutton-fields without `multiAnswer`",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"addExtraTags": {
"description": "If chosen as answer, these tags will be applied as well onto the object.\nNot compatible with multiAnswer",
"type": "array",
"items": {
"type": "string"
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
}
}
},
"ApplicableUnitJson": {
"type": "object",
"properties": {
"canonicalDenomination": {
"description": "The canonical value which will be added to the text.\ne.g. \"m\" for meters\nIf the user inputs '42', the canonical value will be added and it'll become '42m'",
"type": "string"
},
"canonicalDenominationSingular": {
"description": "The canonical denomination in the case that the unit is precisely '1'",
"type": "string"
},
"alternativeDenomination": {
"description": "A list of alternative values which can occur in the OSM database - used for parsing.",
"type": "array",
"items": {
"type": "string"
}
},
"human": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"meter\",\n \"fr\": \"metre\"\n}"
},
"humanSingular": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"minute\",\n \"nl\": \"minuut\"x²\n}"
},
"prefix": {
"description": "If set, then the canonical value will be prefixed instead, e.g. for '€'\nNote that if all values use 'prefix', the dropdown might move to before the text field",
"type": "boolean"
},
"default": {
"description": "The default interpretation - only one can be set.\nIf none is set, the first unit will be considered the default interpretation of a value without a unit",
"type": "boolean"
}
}
},
"required": [
"if",
"then"
"canonicalDenomination"
]
}
},
"TagRenderingConfigJson": {
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nIf the desired tags are missing and a question is defined, a question will be shown instead.",
"type": "object",
"properties": {
"id": {
"description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)",
"type": "string"
},
"group": {
"description": "If 'group' is defined on many tagRenderings, these are grouped together when shown. The questions are grouped together as well.\nThe first tagRendering of a group will always be a sticky element.",
"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. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`"
},
"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"
},
"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...",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"freeform": {
"description": "Allow freeform text input from the user",
"type": "object",
"properties": {
"key": {
"description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
"type": "string"
},
"type": {
"description": "The type of the text-field, e.g. 'string', 'nat', 'float', 'date',...\nSee Docs/SpecialInputElements.md and UI/Input/ValidatedTextField.ts for supported values",
"type": "string"
},
"helperArgs": {
"description": "Extra parameters to initialize the input helper arguments.\nFor semantics, see the 'SpecialInputElements.md'",
"type": "array",
"items": {}
},
"addExtraTags": {
"description": "If a value is added with the textfield, these extra tag is addded.\nUseful to add a 'fixme=freeform textfield used - to be checked'",
"type": "array",
"items": {
"type": "string"
}
},
"inline": {
"description": "When set, influences the way a question is asked.\nInstead of showing a full-widht text field, the text field will be shown within the rendering of the question.\n\nThis combines badly with special input elements, as it'll distort the layout.",
"type": "boolean"
},
"default": {
"description": "default value to enter if no previous tagging is present.\nNormally undefined (aka do not enter anything)",
"type": "string"
}
},
"required": [
"key"
]
},
"multiAnswer": {
"description": "If true, use checkboxes instead of radio buttons when asking the question",
"type": "boolean"
},
"mappings": {
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
"type": "array",
"items": {
"type": "object",
"properties": {
"if": {
"description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"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"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small",
"type": "string"
},
"hideInAnswer": {
"description": "In some cases, multiple taggings exist (e.g. a default assumption, or a commonly mapped abbreviation and a fully written variation).\n\nIn the latter case, a correct text should be shown, but only a single, canonical tagging should be selectable by the user.\nIn this case, one of the mappings can be hiden by setting this flag.\n\nTo demonstrate an example making a default assumption:\n\nmappings: [\n {\n if: \"access=\", -- no access tag present, we assume accessible\n then: \"Accessible to the general public\",\n hideInAnswer: true\n },\n {\n if: \"access=yes\",\n then: \"Accessible to the general public\", -- the user selected this, we add that to OSM\n },\n {\n if: \"access=no\",\n then: \"Not accessible to the public\"\n }\n]\n\n\nFor example, for an operator, we have `operator=Agentschap Natuur en Bos`, which is often abbreviated to `operator=ANB`.\nThen, we would add two mappings:\n{\n if: \"operator=Agentschap Natuur en Bos\" -- the non-abbreviated version which should be uploaded\n then: \"Maintained by Agentschap Natuur en Bos\"\n},\n{\n if: \"operator=ANB\", -- we don't want to upload abbreviations\n then: \"Maintained by Agentschap Natuur en Bos\"\n hideInAnswer: true\n}\n\nHide in answer can also be a tagsfilter, e.g. to make sure an option is only shown when appropriate.\nKeep in mind that this is reverse logic: it will be hidden in the answer if the condition is true, it will thus only show in the case of a mismatch\n\ne.g., for toilets: if \"wheelchair=no\", we know there is no wheelchair dedicated room.\nFor the location of the changing table, the option \"in the wheelchair accessible toilet is weird\", so we write:\n\n{\n \"question\": \"Where is the changing table located?\"\n \"mappings\": [\n {\"if\":\"changing_table:location=female\",\"then\":\"In the female restroom\"},\n {\"if\":\"changing_table:location=male\",\"then\":\"In the male restroom\"},\n {\"if\":\"changing_table:location=wheelchair\",\"then\":\"In the wheelchair accessible restroom\", \"hideInAnswer\": \"wheelchair=no\"},\n \n ]\n}\n\nAlso have a look for the meta-tags\n{\n if: \"operator=Agentschap Natuur en Bos\",\n then: \"Maintained by Agentschap Natuur en Bos\",\n hideInAnswer: \"_country!=be\"\n}",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": [
"string",
"boolean"
]
}
]
},
"ifnot": {
"description": "Only applicable if 'multiAnswer' is set.\nThis is for situations such as:\n`accepts:coins=no` where one can select all the possible payment methods. However, we want to make explicit that some options _were not_ selected.\nThis can be done with `ifnot`\nNote that we can not explicitly render this negative case to the user, we cannot show `does _not_ accept coins`.\nIf this is important to your usecase, consider using multiple radiobutton-fields without `multiAnswer`",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"addExtraTags": {
"description": "If chosen as answer, these tags will be applied as well onto the object.\nNot compatible with multiAnswer",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"if",
"then"
]
}
}
}
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
"$schema": "http://json-schema.org/draft-07/schema#"
}

View file

@ -1,84 +1,84 @@
export default {
"type": "object",
"properties": {
"enableImproveAccuracy": {
"description": "One default reason to move a point is to improve accuracy.\nSet to false to disable this reason",
"type": "boolean"
},
"enableRelocation": {
"description": "One default reason to move a point is because it has relocated\nSet to false to disable this reason",
"type": "boolean"
}
},
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
"type": "object",
"properties": {
"enableImproveAccuracy": {
"description": "One default reason to move a point is to improve accuracy.\nSet to false to disable this reason",
"type": "boolean"
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
"enableRelocation": {
"description": "One default reason to move a point is because it has relocated\nSet to false to disable this reason",
"type": "boolean"
}
}
},
"ApplicableUnitJson": {
"type": "object",
"properties": {
"canonicalDenomination": {
"description": "The canonical value which will be added to the text.\ne.g. \"m\" for meters\nIf the user inputs '42', the canonical value will be added and it'll become '42m'",
"type": "string"
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
}
}
},
"canonicalDenominationSingular": {
"description": "The canonical denomination in the case that the unit is precisely '1'",
"type": "string"
},
"alternativeDenomination": {
"description": "A list of alternative values which can occur in the OSM database - used for parsing.",
"type": "array",
"items": {
"type": "string"
}
},
"human": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"meter\",\n \"fr\": \"metre\"\n}"
},
"humanSingular": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"minute\",\n \"nl\": \"minuut\"x²\n}"
},
"prefix": {
"description": "If set, then the canonical value will be prefixed instead, e.g. for '€'\nNote that if all values use 'prefix', the dropdown might move to before the text field",
"type": "boolean"
},
"default": {
"description": "The default interpretation - only one can be set.\nIf none is set, the first unit will be considered the default interpretation of a value without a unit",
"type": "boolean"
"ApplicableUnitJson": {
"type": "object",
"properties": {
"canonicalDenomination": {
"description": "The canonical value which will be added to the text.\ne.g. \"m\" for meters\nIf the user inputs '42', the canonical value will be added and it'll become '42m'",
"type": "string"
},
"canonicalDenominationSingular": {
"description": "The canonical denomination in the case that the unit is precisely '1'",
"type": "string"
},
"alternativeDenomination": {
"description": "A list of alternative values which can occur in the OSM database - used for parsing.",
"type": "array",
"items": {
"type": "string"
}
},
"human": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"meter\",\n \"fr\": \"metre\"\n}"
},
"humanSingular": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"minute\",\n \"nl\": \"minuut\"x²\n}"
},
"prefix": {
"description": "If set, then the canonical value will be prefixed instead, e.g. for '€'\nNote that if all values use 'prefix', the dropdown might move to before the text field",
"type": "boolean"
},
"default": {
"description": "The default interpretation - only one can be set.\nIf none is set, the first unit will be considered the default interpretation of a value without a unit",
"type": "boolean"
}
},
"required": [
"canonicalDenomination"
]
}
},
"required": [
"canonicalDenomination"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
"$schema": "http://json-schema.org/draft-07/schema#"
}

View file

@ -1,300 +1,300 @@
export default {
"description": "The PointRenderingConfig gives all details onto how to render a single point of a feature.\n\nThis can be used if:\n\n- The feature is a point\n- To render something at the centroid of an area, or at the start, end or projected centroid of a way",
"type": "object",
"properties": {
"location": {
"description": "All the locations that this point should be rendered at.\nUsing `location: [\"point\", \"centroid\"] will always render centerpoint",
"type": "array",
"items": {
"type": "string"
}
},
"icon": {
"description": "The icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one can use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"iconBadges": {
"description": "A list of extra badges to show next to the icon as small badge\nThey will be added as a 25% height icon at the bottom right of the icon, with all the badges in a flex layout.\n\nNote: strings are interpreted as icons, so layering and substituting is supported. You can use `circle:white;./my_icon.svg` to add a background circle",
"type": "array",
"items": {
"type": "object",
"properties": {
"if": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"description": "The PointRenderingConfig gives all details onto how to render a single point of a feature.\n\nThis can be used if:\n\n- The feature is a point\n- To render something at the centroid of an area, or at the start, end or projected centroid of a way",
"type": "object",
"properties": {
"location": {
"description": "All the locations that this point should be rendered at.\nUsing `location: [\"point\", \"centroid\"] will always render centerpoint",
"type": "array",
"items": {
"type": "string"
}
]
},
"then": {
"description": "Badge to show\nType: icon[]",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
}
},
"required": [
"if",
"then"
]
}
},
"iconSize": {
"description": "A string containing \"width,height\" or \"width,height,anchorpoint\" where anchorpoint is any of 'center', 'top', 'bottom', 'left', 'right', 'bottomleft','topright', ...\nDefault is '40,40,center'",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"rotation": {
"description": "The rotation of an icon, useful for e.g. directions.\nUsage: as if it were a css property for 'rotate', thus has to end with 'deg', e.g. `90deg`, `{direction}deg`, `calc(90deg - {camera:direction}deg)``",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"label": {
"description": "A HTML-fragment that is shown below the icon, for example:\n<div style=\"background: white; display: block\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\nNote that, if the wayhandling hides the icon then no label is shown as well.",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
}
},
"required": [
"location"
],
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
}
}
},
"ApplicableUnitJson": {
"type": "object",
"properties": {
"canonicalDenomination": {
"description": "The canonical value which will be added to the text.\ne.g. \"m\" for meters\nIf the user inputs '42', the canonical value will be added and it'll become '42m'",
"type": "string"
},
"canonicalDenominationSingular": {
"description": "The canonical denomination in the case that the unit is precisely '1'",
"type": "string"
},
"alternativeDenomination": {
"description": "A list of alternative values which can occur in the OSM database - used for parsing.",
"type": "array",
"items": {
"type": "string"
}
},
"human": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"meter\",\n \"fr\": \"metre\"\n}"
},
"humanSingular": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"minute\",\n \"nl\": \"minuut\"x²\n}"
},
"prefix": {
"description": "If set, then the canonical value will be prefixed instead, e.g. for '€'\nNote that if all values use 'prefix', the dropdown might move to before the text field",
"type": "boolean"
},
"default": {
"description": "The default interpretation - only one can be set.\nIf none is set, the first unit will be considered the default interpretation of a value without a unit",
"type": "boolean"
}
},
"required": [
"canonicalDenomination"
]
},
"TagRenderingConfigJson": {
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nIf the desired tags are missing and a question is defined, a question will be shown instead.",
"type": "object",
"properties": {
"id": {
"description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)",
"type": "string"
},
"group": {
"description": "If 'group' is defined on many tagRenderings, these are grouped together when shown. The questions are grouped together as well.\nThe first tagRendering of a group will always be a sticky element.",
"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. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`"
},
"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"
},
"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...",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"freeform": {
"description": "Allow freeform text input from the user",
"type": "object",
"properties": {
"key": {
"description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
"type": "string"
},
"type": {
"description": "The type of the text-field, e.g. 'string', 'nat', 'float', 'date',...\nSee Docs/SpecialInputElements.md and UI/Input/ValidatedTextField.ts for supported values",
"type": "string"
},
"helperArgs": {
"description": "Extra parameters to initialize the input helper arguments.\nFor semantics, see the 'SpecialInputElements.md'",
"type": "array",
"items": {}
},
"addExtraTags": {
"description": "If a value is added with the textfield, these extra tag is addded.\nUseful to add a 'fixme=freeform textfield used - to be checked'",
"type": "array",
"items": {
"type": "string"
}
},
"inline": {
"description": "When set, influences the way a question is asked.\nInstead of showing a full-widht text field, the text field will be shown within the rendering of the question.\n\nThis combines badly with special input elements, as it'll distort the layout.",
"type": "boolean"
},
"default": {
"description": "default value to enter if no previous tagging is present.\nNormally undefined (aka do not enter anything)",
"type": "string"
"icon": {
"description": "The icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one can use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"iconBadges": {
"description": "A list of extra badges to show next to the icon as small badge\nThey will be added as a 25% height icon at the bottom right of the icon, with all the badges in a flex layout.\n\nNote: strings are interpreted as icons, so layering and substituting is supported. You can use `circle:white;./my_icon.svg` to add a background circle",
"type": "array",
"items": {
"type": "object",
"properties": {
"if": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"then": {
"description": "Badge to show\nType: icon[]",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
}
},
"required": [
"if",
"then"
]
}
},
"required": [
"key"
]
},
"multiAnswer": {
"description": "If true, use checkboxes instead of radio buttons when asking the question",
"type": "boolean"
"iconSize": {
"description": "A string containing \"width,height\" or \"width,height,anchorpoint\" where anchorpoint is any of 'center', 'top', 'bottom', 'left', 'right', 'bottomleft','topright', ...\nDefault is '40,40,center'",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"mappings": {
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
"type": "array",
"items": {
"rotation": {
"description": "The rotation of an icon, useful for e.g. directions.\nUsage: as if it were a css property for 'rotate', thus has to end with 'deg', e.g. `90deg`, `{direction}deg`, `calc(90deg - {camera:direction}deg)``",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
},
"label": {
"description": "A HTML-fragment that is shown below the icon, for example:\n<div style=\"background: white; display: block\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\nNote that, if the wayhandling hides the icon then no label is shown as well.",
"anyOf": [
{
"$ref": "#/definitions/TagRenderingConfigJson"
},
{
"type": "string"
}
]
}
},
"required": [
"location"
],
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"if": {
"description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"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"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small",
"type": "string"
},
"hideInAnswer": {
"description": "In some cases, multiple taggings exist (e.g. a default assumption, or a commonly mapped abbreviation and a fully written variation).\n\nIn the latter case, a correct text should be shown, but only a single, canonical tagging should be selectable by the user.\nIn this case, one of the mappings can be hiden by setting this flag.\n\nTo demonstrate an example making a default assumption:\n\nmappings: [\n {\n if: \"access=\", -- no access tag present, we assume accessible\n then: \"Accessible to the general public\",\n hideInAnswer: true\n },\n {\n if: \"access=yes\",\n then: \"Accessible to the general public\", -- the user selected this, we add that to OSM\n },\n {\n if: \"access=no\",\n then: \"Not accessible to the public\"\n }\n]\n\n\nFor example, for an operator, we have `operator=Agentschap Natuur en Bos`, which is often abbreviated to `operator=ANB`.\nThen, we would add two mappings:\n{\n if: \"operator=Agentschap Natuur en Bos\" -- the non-abbreviated version which should be uploaded\n then: \"Maintained by Agentschap Natuur en Bos\"\n},\n{\n if: \"operator=ANB\", -- we don't want to upload abbreviations\n then: \"Maintained by Agentschap Natuur en Bos\"\n hideInAnswer: true\n}\n\nHide in answer can also be a tagsfilter, e.g. to make sure an option is only shown when appropriate.\nKeep in mind that this is reverse logic: it will be hidden in the answer if the condition is true, it will thus only show in the case of a mismatch\n\ne.g., for toilets: if \"wheelchair=no\", we know there is no wheelchair dedicated room.\nFor the location of the changing table, the option \"in the wheelchair accessible toilet is weird\", so we write:\n\n{\n \"question\": \"Where is the changing table located?\"\n \"mappings\": [\n {\"if\":\"changing_table:location=female\",\"then\":\"In the female restroom\"},\n {\"if\":\"changing_table:location=male\",\"then\":\"In the male restroom\"},\n {\"if\":\"changing_table:location=wheelchair\",\"then\":\"In the wheelchair accessible restroom\", \"hideInAnswer\": \"wheelchair=no\"},\n \n ]\n}\n\nAlso have a look for the meta-tags\n{\n if: \"operator=Agentschap Natuur en Bos\",\n then: \"Maintained by Agentschap Natuur en Bos\",\n hideInAnswer: \"_country!=be\"\n}",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": [
"string",
"boolean"
]
}
]
},
"ifnot": {
"description": "Only applicable if 'multiAnswer' is set.\nThis is for situations such as:\n`accepts:coins=no` where one can select all the possible payment methods. However, we want to make explicit that some options _were not_ selected.\nThis can be done with `ifnot`\nNote that we can not explicitly render this negative case to the user, we cannot show `does _not_ accept coins`.\nIf this is important to your usecase, consider using multiple radiobutton-fields without `multiAnswer`",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"addExtraTags": {
"description": "If chosen as answer, these tags will be applied as well onto the object.\nNot compatible with multiAnswer",
"type": "array",
"items": {
"type": "string"
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
}
}
},
"ApplicableUnitJson": {
"type": "object",
"properties": {
"canonicalDenomination": {
"description": "The canonical value which will be added to the text.\ne.g. \"m\" for meters\nIf the user inputs '42', the canonical value will be added and it'll become '42m'",
"type": "string"
},
"canonicalDenominationSingular": {
"description": "The canonical denomination in the case that the unit is precisely '1'",
"type": "string"
},
"alternativeDenomination": {
"description": "A list of alternative values which can occur in the OSM database - used for parsing.",
"type": "array",
"items": {
"type": "string"
}
},
"human": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"meter\",\n \"fr\": \"metre\"\n}"
},
"humanSingular": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"minute\",\n \"nl\": \"minuut\"x²\n}"
},
"prefix": {
"description": "If set, then the canonical value will be prefixed instead, e.g. for '€'\nNote that if all values use 'prefix', the dropdown might move to before the text field",
"type": "boolean"
},
"default": {
"description": "The default interpretation - only one can be set.\nIf none is set, the first unit will be considered the default interpretation of a value without a unit",
"type": "boolean"
}
}
},
"required": [
"if",
"then"
"canonicalDenomination"
]
}
},
"TagRenderingConfigJson": {
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nIf the desired tags are missing and a question is defined, a question will be shown instead.",
"type": "object",
"properties": {
"id": {
"description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)",
"type": "string"
},
"group": {
"description": "If 'group' is defined on many tagRenderings, these are grouped together when shown. The questions are grouped together as well.\nThe first tagRendering of a group will always be a sticky element.",
"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. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`"
},
"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"
},
"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...",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"freeform": {
"description": "Allow freeform text input from the user",
"type": "object",
"properties": {
"key": {
"description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
"type": "string"
},
"type": {
"description": "The type of the text-field, e.g. 'string', 'nat', 'float', 'date',...\nSee Docs/SpecialInputElements.md and UI/Input/ValidatedTextField.ts for supported values",
"type": "string"
},
"helperArgs": {
"description": "Extra parameters to initialize the input helper arguments.\nFor semantics, see the 'SpecialInputElements.md'",
"type": "array",
"items": {}
},
"addExtraTags": {
"description": "If a value is added with the textfield, these extra tag is addded.\nUseful to add a 'fixme=freeform textfield used - to be checked'",
"type": "array",
"items": {
"type": "string"
}
},
"inline": {
"description": "When set, influences the way a question is asked.\nInstead of showing a full-widht text field, the text field will be shown within the rendering of the question.\n\nThis combines badly with special input elements, as it'll distort the layout.",
"type": "boolean"
},
"default": {
"description": "default value to enter if no previous tagging is present.\nNormally undefined (aka do not enter anything)",
"type": "string"
}
},
"required": [
"key"
]
},
"multiAnswer": {
"description": "If true, use checkboxes instead of radio buttons when asking the question",
"type": "boolean"
},
"mappings": {
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
"type": "array",
"items": {
"type": "object",
"properties": {
"if": {
"description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"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"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small",
"type": "string"
},
"hideInAnswer": {
"description": "In some cases, multiple taggings exist (e.g. a default assumption, or a commonly mapped abbreviation and a fully written variation).\n\nIn the latter case, a correct text should be shown, but only a single, canonical tagging should be selectable by the user.\nIn this case, one of the mappings can be hiden by setting this flag.\n\nTo demonstrate an example making a default assumption:\n\nmappings: [\n {\n if: \"access=\", -- no access tag present, we assume accessible\n then: \"Accessible to the general public\",\n hideInAnswer: true\n },\n {\n if: \"access=yes\",\n then: \"Accessible to the general public\", -- the user selected this, we add that to OSM\n },\n {\n if: \"access=no\",\n then: \"Not accessible to the public\"\n }\n]\n\n\nFor example, for an operator, we have `operator=Agentschap Natuur en Bos`, which is often abbreviated to `operator=ANB`.\nThen, we would add two mappings:\n{\n if: \"operator=Agentschap Natuur en Bos\" -- the non-abbreviated version which should be uploaded\n then: \"Maintained by Agentschap Natuur en Bos\"\n},\n{\n if: \"operator=ANB\", -- we don't want to upload abbreviations\n then: \"Maintained by Agentschap Natuur en Bos\"\n hideInAnswer: true\n}\n\nHide in answer can also be a tagsfilter, e.g. to make sure an option is only shown when appropriate.\nKeep in mind that this is reverse logic: it will be hidden in the answer if the condition is true, it will thus only show in the case of a mismatch\n\ne.g., for toilets: if \"wheelchair=no\", we know there is no wheelchair dedicated room.\nFor the location of the changing table, the option \"in the wheelchair accessible toilet is weird\", so we write:\n\n{\n \"question\": \"Where is the changing table located?\"\n \"mappings\": [\n {\"if\":\"changing_table:location=female\",\"then\":\"In the female restroom\"},\n {\"if\":\"changing_table:location=male\",\"then\":\"In the male restroom\"},\n {\"if\":\"changing_table:location=wheelchair\",\"then\":\"In the wheelchair accessible restroom\", \"hideInAnswer\": \"wheelchair=no\"},\n \n ]\n}\n\nAlso have a look for the meta-tags\n{\n if: \"operator=Agentschap Natuur en Bos\",\n then: \"Maintained by Agentschap Natuur en Bos\",\n hideInAnswer: \"_country!=be\"\n}",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": [
"string",
"boolean"
]
}
]
},
"ifnot": {
"description": "Only applicable if 'multiAnswer' is set.\nThis is for situations such as:\n`accepts:coins=no` where one can select all the possible payment methods. However, we want to make explicit that some options _were not_ selected.\nThis can be done with `ifnot`\nNote that we can not explicitly render this negative case to the user, we cannot show `does _not_ accept coins`.\nIf this is important to your usecase, consider using multiple radiobutton-fields without `multiAnswer`",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"addExtraTags": {
"description": "If chosen as answer, these tags will be applied as well onto the object.\nNot compatible with multiAnswer",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"if",
"then"
]
}
}
}
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
"$schema": "http://json-schema.org/draft-07/schema#"
}

View file

@ -1,169 +1,169 @@
export default {
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nIf the desired tags are missing and a question is defined, a question will be shown instead.",
"type": "object",
"properties": {
"id": {
"description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)",
"type": "string"
},
"group": {
"description": "If 'group' is defined on many tagRenderings, these are grouped together when shown. The questions are grouped together as well.\nThe first tagRendering of a group will always be a sticky element.",
"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. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`"
},
"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"
},
"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...",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"freeform": {
"description": "Allow freeform text input from the user",
"type": "object",
"properties": {
"key": {
"description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
"type": "string"
},
"type": {
"description": "The type of the text-field, e.g. 'string', 'nat', 'float', 'date',...\nSee Docs/SpecialInputElements.md and UI/Input/ValidatedTextField.ts for supported values",
"type": "string"
},
"helperArgs": {
"description": "Extra parameters to initialize the input helper arguments.\nFor semantics, see the 'SpecialInputElements.md'",
"type": "array",
"items": {}
},
"addExtraTags": {
"description": "If a value is added with the textfield, these extra tag is addded.\nUseful to add a 'fixme=freeform textfield used - to be checked'",
"type": "array",
"items": {
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nIf the desired tags are missing and a question is defined, a question will be shown instead.",
"type": "object",
"properties": {
"id": {
"description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)",
"type": "string"
}
},
"inline": {
"description": "When set, influences the way a question is asked.\nInstead of showing a full-widht text field, the text field will be shown within the rendering of the question.\n\nThis combines badly with special input elements, as it'll distort the layout.",
"type": "boolean"
},
"default": {
"description": "default value to enter if no previous tagging is present.\nNormally undefined (aka do not enter anything)",
"type": "string"
}
},
"required": [
"key"
]
},
"multiAnswer": {
"description": "If true, use checkboxes instead of radio buttons when asking the question",
"type": "boolean"
},
"mappings": {
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
"type": "array",
"items": {
"type": "object",
"properties": {
"if": {
"description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"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"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small",
"group": {
"description": "If 'group' is defined on many tagRenderings, these are grouped together when shown. The questions are grouped together as well.\nThe first tagRendering of a group will always be a sticky element.",
"type": "string"
},
"hideInAnswer": {
"description": "In some cases, multiple taggings exist (e.g. a default assumption, or a commonly mapped abbreviation and a fully written variation).\n\nIn the latter case, a correct text should be shown, but only a single, canonical tagging should be selectable by the user.\nIn this case, one of the mappings can be hiden by setting this flag.\n\nTo demonstrate an example making a default assumption:\n\nmappings: [\n {\n if: \"access=\", -- no access tag present, we assume accessible\n then: \"Accessible to the general public\",\n hideInAnswer: true\n },\n {\n if: \"access=yes\",\n then: \"Accessible to the general public\", -- the user selected this, we add that to OSM\n },\n {\n if: \"access=no\",\n then: \"Not accessible to the public\"\n }\n]\n\n\nFor example, for an operator, we have `operator=Agentschap Natuur en Bos`, which is often abbreviated to `operator=ANB`.\nThen, we would add two mappings:\n{\n if: \"operator=Agentschap Natuur en Bos\" -- the non-abbreviated version which should be uploaded\n then: \"Maintained by Agentschap Natuur en Bos\"\n},\n{\n if: \"operator=ANB\", -- we don't want to upload abbreviations\n then: \"Maintained by Agentschap Natuur en Bos\"\n hideInAnswer: true\n}\n\nHide in answer can also be a tagsfilter, e.g. to make sure an option is only shown when appropriate.\nKeep in mind that this is reverse logic: it will be hidden in the answer if the condition is true, it will thus only show in the case of a mismatch\n\ne.g., for toilets: if \"wheelchair=no\", we know there is no wheelchair dedicated room.\nFor the location of the changing table, the option \"in the wheelchair accessible toilet is weird\", so we write:\n\n{\n \"question\": \"Where is the changing table located?\"\n \"mappings\": [\n {\"if\":\"changing_table:location=female\",\"then\":\"In the female restroom\"},\n {\"if\":\"changing_table:location=male\",\"then\":\"In the male restroom\"},\n {\"if\":\"changing_table:location=wheelchair\",\"then\":\"In the wheelchair accessible restroom\", \"hideInAnswer\": \"wheelchair=no\"},\n \n ]\n}\n\nAlso have a look for the meta-tags\n{\n if: \"operator=Agentschap Natuur en Bos\",\n then: \"Maintained by Agentschap Natuur en Bos\",\n hideInAnswer: \"_country!=be\"\n}",
},
"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. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`"
},
"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"
},
"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...",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": [
"string",
"boolean"
]
}
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"ifnot": {
"description": "Only applicable if 'multiAnswer' is set.\nThis is for situations such as:\n`accepts:coins=no` where one can select all the possible payment methods. However, we want to make explicit that some options _were not_ selected.\nThis can be done with `ifnot`\nNote that we can not explicitly render this negative case to the user, we cannot show `does _not_ accept coins`.\nIf this is important to your usecase, consider using multiple radiobutton-fields without `multiAnswer`",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
},
"freeform": {
"description": "Allow freeform text input from the user",
"type": "object",
"properties": {
"key": {
"description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
"type": "string"
},
"type": {
"description": "The type of the text-field, e.g. 'string', 'nat', 'float', 'date',...\nSee Docs/SpecialInputElements.md and UI/Input/ValidatedTextField.ts for supported values",
"type": "string"
},
"helperArgs": {
"description": "Extra parameters to initialize the input helper arguments.\nFor semantics, see the 'SpecialInputElements.md'",
"type": "array",
"items": {}
},
"addExtraTags": {
"description": "If a value is added with the textfield, these extra tag is addded.\nUseful to add a 'fixme=freeform textfield used - to be checked'",
"type": "array",
"items": {
"type": "string"
}
},
"inline": {
"description": "When set, influences the way a question is asked.\nInstead of showing a full-widht text field, the text field will be shown within the rendering of the question.\n\nThis combines badly with special input elements, as it'll distort the layout.",
"type": "boolean"
},
"default": {
"description": "default value to enter if no previous tagging is present.\nNormally undefined (aka do not enter anything)",
"type": "string"
}
},
"required": [
"key"
]
},
"addExtraTags": {
"description": "If chosen as answer, these tags will be applied as well onto the object.\nNot compatible with multiAnswer",
},
"multiAnswer": {
"description": "If true, use checkboxes instead of radio buttons when asking the question",
"type": "boolean"
},
"mappings": {
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
"type": "array",
"items": {
"type": "string"
"type": "object",
"properties": {
"if": {
"description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"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"
},
"icon": {
"description": "An icon supporting this mapping; typically shown pretty small",
"type": "string"
},
"hideInAnswer": {
"description": "In some cases, multiple taggings exist (e.g. a default assumption, or a commonly mapped abbreviation and a fully written variation).\n\nIn the latter case, a correct text should be shown, but only a single, canonical tagging should be selectable by the user.\nIn this case, one of the mappings can be hiden by setting this flag.\n\nTo demonstrate an example making a default assumption:\n\nmappings: [\n {\n if: \"access=\", -- no access tag present, we assume accessible\n then: \"Accessible to the general public\",\n hideInAnswer: true\n },\n {\n if: \"access=yes\",\n then: \"Accessible to the general public\", -- the user selected this, we add that to OSM\n },\n {\n if: \"access=no\",\n then: \"Not accessible to the public\"\n }\n]\n\n\nFor example, for an operator, we have `operator=Agentschap Natuur en Bos`, which is often abbreviated to `operator=ANB`.\nThen, we would add two mappings:\n{\n if: \"operator=Agentschap Natuur en Bos\" -- the non-abbreviated version which should be uploaded\n then: \"Maintained by Agentschap Natuur en Bos\"\n},\n{\n if: \"operator=ANB\", -- we don't want to upload abbreviations\n then: \"Maintained by Agentschap Natuur en Bos\"\n hideInAnswer: true\n}\n\nHide in answer can also be a tagsfilter, e.g. to make sure an option is only shown when appropriate.\nKeep in mind that this is reverse logic: it will be hidden in the answer if the condition is true, it will thus only show in the case of a mismatch\n\ne.g., for toilets: if \"wheelchair=no\", we know there is no wheelchair dedicated room.\nFor the location of the changing table, the option \"in the wheelchair accessible toilet is weird\", so we write:\n\n{\n \"question\": \"Where is the changing table located?\"\n \"mappings\": [\n {\"if\":\"changing_table:location=female\",\"then\":\"In the female restroom\"},\n {\"if\":\"changing_table:location=male\",\"then\":\"In the male restroom\"},\n {\"if\":\"changing_table:location=wheelchair\",\"then\":\"In the wheelchair accessible restroom\", \"hideInAnswer\": \"wheelchair=no\"},\n \n ]\n}\n\nAlso have a look for the meta-tags\n{\n if: \"operator=Agentschap Natuur en Bos\",\n then: \"Maintained by Agentschap Natuur en Bos\",\n hideInAnswer: \"_country!=be\"\n}",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": [
"string",
"boolean"
]
}
]
},
"ifnot": {
"description": "Only applicable if 'multiAnswer' is set.\nThis is for situations such as:\n`accepts:coins=no` where one can select all the possible payment methods. However, we want to make explicit that some options _were not_ selected.\nThis can be done with `ifnot`\nNote that we can not explicitly render this negative case to the user, we cannot show `does _not_ accept coins`.\nIf this is important to your usecase, consider using multiple radiobutton-fields without `multiAnswer`",
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
},
"addExtraTags": {
"description": "If chosen as answer, these tags will be applied as well onto the object.\nNot compatible with multiAnswer",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"if",
"then"
]
}
}
},
"required": [
"if",
"then"
]
}
}
},
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}

File diff suppressed because it is too large Load diff

View file

@ -1,98 +1,98 @@
export default {
"type": "object",
"properties": {
"appliesToKey": {
"description": "Every key from this list will be normalized",
"type": "array",
"items": {
"type": "string"
}
},
"eraseInvalidValues": {
"description": "If set, invalid values will be erased in the MC application (but not in OSM of course!)\nBe careful with setting this",
"type": "boolean"
},
"applicableUnits": {
"description": "The possible denominations",
"type": "array",
"items": {
"$ref": "#/definitions/ApplicableUnitJson"
}
}
},
"required": [
"applicableUnits",
"appliesToKey"
],
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "object",
"properties": {
"appliesToKey": {
"description": "Every key from this list will be normalized",
"type": "array",
"items": {
"type": "string"
}
]
}
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
"eraseInvalidValues": {
"description": "If set, invalid values will be erased in the MC application (but not in OSM of course!)\nBe careful with setting this",
"type": "boolean"
},
"applicableUnits": {
"description": "The possible denominations",
"type": "array",
"items": {
"$ref": "#/definitions/ApplicableUnitJson"
}
}
}
},
"ApplicableUnitJson": {
"type": "object",
"properties": {
"canonicalDenomination": {
"description": "The canonical value which will be added to the text.\ne.g. \"m\" for meters\nIf the user inputs '42', the canonical value will be added and it'll become '42m'",
"type": "string"
"required": [
"applicableUnits",
"appliesToKey"
],
"definitions": {
"AndOrTagConfigJson": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
},
"or": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/AndOrTagConfigJson"
},
{
"type": "string"
}
]
}
}
}
},
"canonicalDenominationSingular": {
"description": "The canonical denomination in the case that the unit is precisely '1'",
"type": "string"
},
"alternativeDenomination": {
"description": "A list of alternative values which can occur in the OSM database - used for parsing.",
"type": "array",
"items": {
"type": "string"
}
},
"human": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"meter\",\n \"fr\": \"metre\"\n}"
},
"humanSingular": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"minute\",\n \"nl\": \"minuut\"x²\n}"
},
"prefix": {
"description": "If set, then the canonical value will be prefixed instead, e.g. for '€'\nNote that if all values use 'prefix', the dropdown might move to before the text field",
"type": "boolean"
},
"default": {
"description": "The default interpretation - only one can be set.\nIf none is set, the first unit will be considered the default interpretation of a value without a unit",
"type": "boolean"
"ApplicableUnitJson": {
"type": "object",
"properties": {
"canonicalDenomination": {
"description": "The canonical value which will be added to the text.\ne.g. \"m\" for meters\nIf the user inputs '42', the canonical value will be added and it'll become '42m'",
"type": "string"
},
"canonicalDenominationSingular": {
"description": "The canonical denomination in the case that the unit is precisely '1'",
"type": "string"
},
"alternativeDenomination": {
"description": "A list of alternative values which can occur in the OSM database - used for parsing.",
"type": "array",
"items": {
"type": "string"
}
},
"human": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"meter\",\n \"fr\": \"metre\"\n}"
},
"humanSingular": {
"description": "The value for humans in the dropdown. This should not use abbreviations and should be translated, e.g.\n{\n \"en\": \"minute\",\n \"nl\": \"minuut\"x²\n}"
},
"prefix": {
"description": "If set, then the canonical value will be prefixed instead, e.g. for '€'\nNote that if all values use 'prefix', the dropdown might move to before the text field",
"type": "boolean"
},
"default": {
"description": "The default interpretation - only one can be set.\nIf none is set, the first unit will be considered the default interpretation of a value without a unit",
"type": "boolean"
}
},
"required": [
"canonicalDenomination"
]
}
},
"required": [
"canonicalDenomination"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
"$schema": "http://json-schema.org/draft-07/schema#"
}

View file

@ -175,7 +175,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Open AED Map has a layer Your track showing features with this tag",
"description": "The MapComplete theme Open AED Map has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -109,7 +109,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Open Artwork Map has a layer Your track showing features with this tag",
"description": "The MapComplete theme Open Artwork Map has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -186,6 +186,22 @@
"description": "The MapComplete theme Benches has a layer Picnic tables showing features with this tag",
"value": "picnic_table"
},
{
"key": "image",
"description": "The layer 'Picnic tables allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "mapillary",
"description": "The layer 'Picnic tables allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "wikidata",
"description": "The layer 'Picnic tables allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "wikipedia",
"description": "The layer 'Picnic tables allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "material",
"description": "Layer 'Picnic tables' shows and asks freeform values for key 'material' (in the MapComplete.osm.be theme 'Benches')"
@ -202,7 +218,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Benches has a layer Your track showing features with this tag",
"description": "The MapComplete theme Benches has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -25,14 +25,8 @@
"value": "yes"
},
{
"key": "service:bicycle:rental",
"description": "Layer 'Bicycle rental' shows service:bicycle:rental=yes&shop=bicycle with a fixed text, namely 'This is a shop which sells or repairs bicycles, but also rents out bicycles' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "yes"
},
{
"key": "shop",
"description": "Layer 'Bicycle rental' shows service:bicycle:rental=yes&shop=bicycle with a fixed text, namely 'This is a shop which sells or repairs bicycles, but also rents out bicycles' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "bicycle"
"key": "rental",
"description": "The MapComplete theme Bicycle rental has a layer Bicycle rental showing features with this tag"
},
{
"key": "shop",
@ -44,6 +38,21 @@
"description": "Layer 'Bicycle rental' shows shop=bicycle_rental&bicycle_rental=shop with a fixed text, namely 'This is a shop whose main focus is bicycle rental' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "shop"
},
{
"key": "shop",
"description": "Layer 'Bicycle rental' shows shop=rental with a fixed text, namely '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' (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "rental"
},
{
"key": "service:bicycle:rental",
"description": "Layer 'Bicycle rental' shows service:bicycle:rental=yes&shop=bicycle with a fixed text, namely 'This is a shop which sells or repairs bicycles, but also rents out bicycles' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "yes"
},
{
"key": "shop",
"description": "Layer 'Bicycle rental' shows service:bicycle:rental=yes&shop=bicycle with a fixed text, namely 'This is a shop which sells or repairs bicycles, but also rents out bicycles' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "bicycle"
},
{
"key": "bicycle_rental",
"description": "Layer 'Bicycle rental' shows bicycle_rental=docking_station with a fixed text, namely 'This is an automated docking station, where a bicycle is mechanically locked into a structure' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
@ -83,6 +92,10 @@
"key": "contact:phone",
"description": "Layer 'Bicycle rental' shows contact:phone~^..*$ with a fixed text, namely '<a href='tel:{contact:phone}'>{contact:phone}</a>' (in the MapComplete.osm.be theme 'Bicycle rental')"
},
{
"key": "opening_hours",
"description": "Layer 'Bicycle rental' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'Bicycle rental')"
},
{
"key": "payment:cash",
"description": "Layer 'Bicycle rental' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
@ -93,9 +106,82 @@
"description": "Layer 'Bicycle rental' shows payment:cards=yes with a fixed text, namely 'Payment cards are accepted here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "yes"
},
{
"key": "payment:cash",
"description": "Layer 'Bicycle rental' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "yes"
},
{
"key": "payment:cards",
"description": "Layer 'Bicycle rental' shows payment:cards=yes with a fixed text, namely 'Payment cards are accepted here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "yes"
},
{
"key": "payment:app",
"description": "Layer 'Bicycle rental' shows payment:app=yes with a fixed text, namely 'Payment is done using a dedicated app' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "yes"
},
{
"key": "payment:membership_card",
"description": "Layer 'Bicycle rental' shows payment:membership_card=yes with a fixed text, namely 'Payment is done using a membership card' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "yes"
},
{
"key": "rental",
"description": "Layer 'Bicycle rental' shows and asks freeform values for key 'rental' (in the MapComplete.osm.be theme 'Bicycle rental')"
},
{
"key": "rental",
"description": "Layer 'Bicycle rental' shows rental=city_bike with a fixed text, namely 'Normal city bikes can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "city_bike"
},
{
"key": "rental",
"description": "Layer 'Bicycle rental' shows rental=ebike with a fixed text, namely 'Electrical bikes can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "ebike"
},
{
"key": "rental",
"description": "Layer 'Bicycle rental' shows rental=bmx with a fixed text, namely 'BMX bikes can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "bmx"
},
{
"key": "rental",
"description": "Layer 'Bicycle rental' shows rental=mtb with a fixed text, namely 'Mountainbikes can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "mtb"
},
{
"key": "rental",
"description": "Layer 'Bicycle rental' shows rental=kid_bike with a fixed text, namely 'Bikes for childs can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle rental')",
"value": "kid_bike"
},
{
"key": "capacity:city_bike",
"description": "Layer 'Bicycle rental' shows and asks freeform values for key 'capacity:city_bike' (in the MapComplete.osm.be theme 'Bicycle rental')"
},
{
"key": "capacity:ebike",
"description": "Layer 'Bicycle rental' shows and asks freeform values for key 'capacity:ebike' (in the MapComplete.osm.be theme 'Bicycle rental')"
},
{
"key": "capacity:kid_bike",
"description": "Layer 'Bicycle rental' shows and asks freeform values for key 'capacity:kid_bike' (in the MapComplete.osm.be theme 'Bicycle rental')"
},
{
"key": "capacity:bmx",
"description": "Layer 'Bicycle rental' shows and asks freeform values for key 'capacity:bmx' (in the MapComplete.osm.be theme 'Bicycle rental')"
},
{
"key": "capacity:mtb",
"description": "Layer 'Bicycle rental' shows and asks freeform values for key 'capacity:mtb' (in the MapComplete.osm.be theme 'Bicycle rental')"
},
{
"key": "capacity:bicycle_pannier",
"description": "Layer 'Bicycle rental' shows and asks freeform values for key 'capacity:bicycle_pannier' (in the MapComplete.osm.be theme 'Bicycle rental')"
},
{
"key": "id",
"description": "The MapComplete theme Bicycle rental has a layer Your track showing features with this tag",
"description": "The MapComplete theme Bicycle rental has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -108,7 +108,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Bicycle libraries has a layer Your track showing features with this tag",
"description": "The MapComplete theme Bicycle libraries has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -51,7 +51,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Binoculars has a layer Your track showing features with this tag",
"description": "The MapComplete theme Binoculars has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -146,7 +146,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Open Bookcase Map has a layer Your track showing features with this tag",
"description": "The MapComplete theme Open Bookcase Map has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -175,7 +175,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Cafés and pubs has a layer Your track showing features with this tag",
"description": "The MapComplete theme Cafés and pubs has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -255,7 +255,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Campersites has a layer Your track showing features with this tag",
"description": "The MapComplete theme Campersites has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -1260,7 +1260,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Charging stations has a layer Your track showing features with this tag",
"description": "The MapComplete theme Charging stations has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -885,7 +885,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Open Climbing Map has a layer Your track showing features with this tag",
"description": "The MapComplete theme Open Climbing Map has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -756,7 +756,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Bicycle infrastructure has a layer Your track showing features with this tag",
"description": "The MapComplete theme Bicycle infrastructure has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -53,12 +53,12 @@
},
{
"key": "cyclestreet",
"description": "Layer 'Cyclestreets' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets')",
"description": "Layer 'Cyclestreets' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
"value": "yes"
},
{
"key": "proposed:cyclestreet",
"description": "Layer 'Cyclestreets' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
"description": "Layer 'Cyclestreets' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
"value": ""
},
{
@ -133,12 +133,12 @@
},
{
"key": "cyclestreet",
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets')",
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
"value": "yes"
},
{
"key": "proposed:cyclestreet",
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
"value": ""
},
{
@ -223,12 +223,12 @@
},
{
"key": "cyclestreet",
"description": "Layer 'All streets' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets')",
"description": "Layer 'All streets' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
"value": "yes"
},
{
"key": "proposed:cyclestreet",
"description": "Layer 'All streets' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
"description": "Layer 'All streets' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
"value": ""
},
{
@ -262,7 +262,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Cyclestreets has a layer Your track showing features with this tag",
"description": "The MapComplete theme Cyclestreets has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -315,8 +315,8 @@
},
{
"key": "service:bicycle:cleaning:fee",
"description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'The cleaning service has a fee, but the amount is not known' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
"value": "yes"
"description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes&service:bicycle:cleaning:charge= with a fixed text, namely 'The cleaning service has a fee, but the amount is not known' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
"value": "yes&service:bicycle:cleaning:charge="
},
{
"key": "amenity",
@ -868,6 +868,11 @@
"description": "The MapComplete theme Cyclofix - an open map for cyclists has a layer Bike cleaning service showing features with this tag",
"value": "bicycle_wash"
},
{
"key": "amenity",
"description": "The MapComplete theme Cyclofix - an open map for cyclists has a layer Bike cleaning service showing features with this tag",
"value": "bike_wash"
},
{
"key": "image",
"description": "The layer 'Bike cleaning service allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
@ -900,8 +905,8 @@
},
{
"key": "service:bicycle:cleaning:fee",
"description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'The cleaning service has a fee, but the amount is not known' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
"value": "yes"
"description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes&service:bicycle:cleaning:charge= with a fixed text, namely 'The cleaning service has a fee, but the amount is not known' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
"value": "yes&service:bicycle:cleaning:charge="
},
{
"key": "charge",
@ -1066,7 +1071,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Cyclofix - an open map for cyclists has a layer Your track showing features with this tag",
"description": "The MapComplete theme Cyclofix - an open map for cyclists has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -62,7 +62,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Drinking Water has a layer Your track showing features with this tag",
"description": "The MapComplete theme Drinking Water has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -221,7 +221,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Entrances has a layer Your track showing features with this tag",
"description": "The MapComplete theme Entrances has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -177,7 +177,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Open Etymology Map has a layer Your track showing features with this tag",
"description": "The MapComplete theme Open Etymology Map has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -105,7 +105,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Facade gardens has a layer Your track showing features with this tag",
"description": "The MapComplete theme Facade gardens has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -359,7 +359,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Restaurants and fast food has a layer Your track showing features with this tag",
"description": "The MapComplete theme Restaurants and fast food has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -711,7 +711,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Friturenkaart has a layer Your track showing features with this tag",
"description": "The MapComplete theme Friturenkaart has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -54,7 +54,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Ghost bikes has a layer Your track showing features with this tag",
"description": "The MapComplete theme Ghost bikes has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -98,7 +98,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Hackerspaces has a layer Your track showing features with this tag",
"description": "The MapComplete theme Hackerspaces has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -273,7 +273,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Hydrants, Extinguishers, Fire stations, and Ambulance stations. has a layer Your track showing features with this tag",
"description": "The MapComplete theme Hydrants, Extinguishers, Fire stations, and Ambulance stations. has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -77,7 +77,7 @@
},
{
"key": "id",
"description": "The MapComplete theme A map of maps has a layer Your track showing features with this tag",
"description": "The MapComplete theme A map of maps has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -352,16 +352,16 @@
},
{
"key": "operator",
"description": "Layer 'Natuurgebied' shows operator=Natuurpunt with a fixed text, namely '<img src=\"./assets/layers/nature_reserve/Natuurpunt.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door Natuurpunt' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'De Natuur in')",
"description": "Layer 'Natuurgebied' shows operator=Natuurpunt with a fixed text, namely 'Dit gebied wordt beheerd door Natuurpunt' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'De Natuur in')",
"value": "Natuurpunt"
},
{
"key": "operator",
"description": "Layer 'Natuurgebied' shows operator~^(n|N)atuurpunt.*$ with a fixed text, namely '<img src=\"./assets/layers/nature_reserve/Natuurpunt.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door {operator}' (in the MapComplete.osm.be theme 'De Natuur in')"
"description": "Layer 'Natuurgebied' shows operator~^(n|N)atuurpunt.*$ with a fixed text, namely 'Dit gebied wordt beheerd door {operator}' (in the MapComplete.osm.be theme 'De Natuur in')"
},
{
"key": "operator",
"description": "Layer 'Natuurgebied' shows operator=Agentschap Natuur en Bos with a fixed text, namely '<img src=\"./assets/layers/nature_reserve/ANB.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door het Agentschap Natuur en Bos' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'De Natuur in')",
"description": "Layer 'Natuurgebied' shows operator=Agentschap Natuur en Bos with a fixed text, namely 'Dit gebied wordt beheerd door het Agentschap Natuur en Bos' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'De Natuur in')",
"value": "Agentschap Natuur en Bos"
},
{
@ -432,7 +432,7 @@
},
{
"key": "id",
"description": "The MapComplete theme De Natuur in has a layer Your track showing features with this tag",
"description": "The MapComplete theme De Natuur in has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -16,7 +16,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Notes on OpenStreetMap has a layer Your track showing features with this tag",
"description": "The MapComplete theme Notes on OpenStreetMap has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -111,7 +111,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Observation towers has a layer Your track showing features with this tag",
"description": "The MapComplete theme Observation towers has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -53,7 +53,7 @@
},
{
"key": "id",
"description": "The MapComplete theme OpenWindPowerMap has a layer Your track showing features with this tag",
"description": "The MapComplete theme OpenWindPowerMap has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -33,7 +33,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Parking has a layer Your track showing features with this tag",
"description": "The MapComplete theme Parking has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

File diff suppressed because it is too large Load diff

View file

@ -166,7 +166,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Playgrounds has a layer Your track showing features with this tag",
"description": "The MapComplete theme Playgrounds has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -63,7 +63,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Postbox and Post Office Map has a layer Your track showing features with this tag",
"description": "The MapComplete theme Postbox and Post Office Map has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -91,7 +91,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Open Shop Map has a layer Your track showing features with this tag",
"description": "The MapComplete theme Open Shop Map has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -158,7 +158,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Sport pitches has a layer Your track showing features with this tag",
"description": "The MapComplete theme Sport pitches has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -223,7 +223,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Street Lighting has a layer Your track showing features with this tag",
"description": "The MapComplete theme Street Lighting has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -175,7 +175,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Surveillance under Surveillance has a layer Your track showing features with this tag",
"description": "The MapComplete theme Surveillance under Surveillance has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -207,7 +207,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Open Toilet Map has a layer Your track showing features with this tag",
"description": "The MapComplete theme Open Toilet Map has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -168,7 +168,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Trees has a layer Your track showing features with this tag",
"description": "The MapComplete theme Trees has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]

View file

@ -72,7 +72,7 @@
},
{
"key": "id",
"description": "The MapComplete theme Waste Basket has a layer Your track showing features with this tag",
"description": "The MapComplete theme Waste Basket has a layer Your travelled track showing features with this tag",
"value": "location_track"
}
]