Docs: add source where URL-parameters are defined

This commit is contained in:
Pieter Vander Vennet 2023-07-27 12:47:19 +02:00
parent bbccecae4b
commit 9dc3a239f6
4 changed files with 953 additions and 55 deletions

View file

@ -1,16 +1,759 @@
[//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources)
Builtin questions
===================
questions
===========
Special library layer which does not need a '.questions'-prefix before being imported
The following items can be easily reused in your layers
## Table of contents
1. [Builtin questions](#builtin-questions)
1. [questions](#questions)
- [Basic tags for this layer](#basic-tags-for-this-layer)
- [Supported attributes](#supported-attributes)
+ [questions](#questions)
+ [images](#images)
+ [mapillary](#mapillary)
+ [export_as_gpx](#export_as_gpx)
+ [export_as_geojson](#export_as_geojson)
+ [wikipedia](#wikipedia)
+ [reviews](#reviews)
+ [minimap](#minimap)
+ [phone](#phone)
+ [osmlink](#osmlink)
+ [email](#email)
+ [website](#website)
+ [wheelchair-access](#wheelchair-access)
+ [dog-access](#dog-access)
+ [description](#description)
+ [opening_hours](#opening_hours)
+ [opening_hours_24_7](#opening_hours_24_7)
+ [opening_hours_by_appointment](#opening_hours_by_appointment)
+ [service:electricity](#serviceelectricity)
+ [payment-options](#payment-options)
+ [payment-options-split](#payment-options-split)
+ [payment-options-advanced](#payment-options-advanced)
+ [denominations-coins](#denominations-coins)
+ [denominations-notes](#denominations-notes)
+ [last_edit](#last_edit)
+ [all_tags](#all_tags)
+ [just_created](#just_created)
+ [multilevels](#multilevels)
+ [level](#level)
+ [smoking](#smoking)
+ [induction-loop](#induction-loop)
+ [internet](#internet)
+ [internet-fee](#internet-fee)
+ [internet-ssid](#internet-ssid)
+ [luminous_or_lit](#luminous_or_lit)
- This layer is shown at zoomlevel **0** and higher
- Elements don't have a title set and cannot be toggled nor will they show up in the dashboard. 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`
- Not rendered on the map by default. If you want to rendering this on the map, override `mapRenderings`
Basic tags for this layer
---------------------------
Elements must have the all of following tags to be shown on this layer:
Supported attributes
----------------------
Warning:
this quick overview is incomplete
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/wikidata#values) [wikidata](https://wiki.openstreetmap.org/wiki/Key:wikidata) | [wikidata](../SpecialInputElements.md#wikidata) |
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/id#values) [id](https://wiki.openstreetmap.org/wiki/Key:id) | Multiple choice |
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/wheelchair#values) [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/dog#values) [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/description#values) [description](https://wiki.openstreetmap.org/wiki/Key:description) | [string](../SpecialInputElements.md#string) |
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | ["by appointment"](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D"by appointment")
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/service:electricity#values) [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/payment:coins:denominations#values) [payment:coins:denominations](https://wiki.openstreetmap.org/wiki/Key:payment:coins:denominations) | Multiple choice | [0.01 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.01 EUR) [0.02 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.02 EUR) [0.05 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 EUR) [0.10 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 EUR) [0.20 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 EUR) [0.50 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 EUR) [1 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 EUR) [2 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 EUR)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/payment:notes:denominations#values) [payment:notes:denominations](https://wiki.openstreetmap.org/wiki/Key:payment:notes:denominations) | Multiple choice | [5 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D5 EUR) [10 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D10 EUR) [20 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D20 EUR) [50 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D50 EUR) [100 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D100 EUR) [200 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D200 EUR) [500 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D500 EUR)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/id#values) [id](https://wiki.openstreetmap.org/wiki/Key:id) | Multiple choice |
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/level#values) [level](https://wiki.openstreetmap.org/wiki/Key:level) | [string](../SpecialInputElements.md#string) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/level#values) [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/smoking#values) [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/hearing_loop#values) [hearing_loop](https://wiki.openstreetmap.org/wiki/Key:hearing_loop) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:hearing_loop%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:hearing_loop%3Dno)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/internet_access#values) [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/internet_access:fee#values) [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers)
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/internet_access:ssid#values) [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom)
### questions
Show the questions block at this location
This tagrendering has no question and is thus read-only
### images
This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images
This tagrendering has no question and is thus read-only
### mapillary
Shows a button to open Mapillary on this location
This tagrendering has no question and is thus read-only
### export_as_gpx
Shows a button to export this feature as GPX. Especially useful for route relations
This tagrendering has no question and is thus read-only
### export_as_geojson
Shows a button to export this feature as geojson. Especially useful for debugging or using this in other programs
This tagrendering has no question and is thus read-only
### wikipedia
Shows a wikipedia box with the corresponding wikipedia article; the wikidata-item link can be changed by a contributor
The question is *What is the corresponding Wikidata entity?*
This rendering asks information about the property [wikidata](https://wiki.openstreetmap.org/wiki/Key:wikidata)
This is rendered with `{wikipedia():max-height:25rem}`
- *{wikipedia():max-height:25rem}* corresponds with `wikipedia~.+`
- This option cannot be chosen as answer
- *No Wikipedia page has been linked yet* corresponds with ``
- This option cannot be chosen as answer
### reviews
Shows the reviews module (including the possibility to leave a review)
This tagrendering has no question and is thus read-only
### minimap
Shows a small map with the feature. Added by default to every popup
This tagrendering has no question and is thus read-only
### phone
The question is *What is the phone number of {title()}?*
This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
This is rendered with `<a href='tel:{phone}'>{phone}</a>`
- *<a href='tel:{contact:phone}'>{contact:phone}</a>* corresponds with `contact:phone~.+`
- This option cannot be chosen as answer
This tagrendering has labels `contact`
### osmlink
This tagrendering has no question and is thus read-only
- *<span class='alert'>Uploading...</alert>* corresponds with `id~^(=-)$`
### email
The question is *What is the email address of {title()}?*
This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
This is rendered with `<a href='mailto:{email}' target='_blank'>{email}</a>`
- *<a href='mailto:{contact:email}' target='_blank'>{contact:email}</a>* corresponds with `contact:email~.+`
- This option cannot be chosen as answer
This tagrendering has labels `contact`
### website
The question is *What is the website of {title()}?*
This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
This is rendered with `<a href='{website}' rel='nofollow noopener noreferrer' target='_blank'>{website}</a>`
- *<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>* corresponds with `contact:website~.+`
- This option cannot be chosen as answer
This tagrendering has labels `contact`
### wheelchair-access
The question is *Is this place accessible with a wheelchair?*
- *This place is specially adapted for wheelchair users* corresponds with `wheelchair=designated`
- *This place is easily reachable with a wheelchair* corresponds with `wheelchair=yes`
- *It is possible to reach this place in a wheelchair, but it is not easy* corresponds with `wheelchair=limited`
- *This place is not reachable with a wheelchair* corresponds with `wheelchair=no`
### dog-access
The question is *Are dogs allowed in this business?*
- *Dogs are allowed* corresponds with `dog=yes`
- *Dogs are <b>not</b> allowed* corresponds with `dog=no`
- *Dogs are allowed, but they have to be leashed* corresponds with `dog=leashed`
- *Dogs are allowed and can run around freely* corresponds with `dog=unleashed`
### description
The question is *Is there still some relevant info that the previous questions did not cover? Feel free to add it here.*
This rendering asks information about the property [description](https://wiki.openstreetmap.org/wiki/Key:description)
This is rendered with `{description}`
### opening_hours
The question is *What are the opening hours of {title()}?*
This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
This is rendered with `<h3>Opening hours</h3>{opening_hours_table(opening_hours)}`
### opening_hours_24_7
The question is *What are the opening hours of {title()}?*
This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
This is rendered with `<h3>Opening hours</h3>{opening_hours_table(opening_hours)}`
- *24/7 opened (including holidays)* corresponds with `opening_hours=24/7`
### opening_hours_by_appointment
The question is *What are the opening hours of {title()}?*
This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
This is rendered with `<h3>Opening hours</h3>{opening_hours_table(opening_hours)}`
- *Only by appointment* corresponds with `opening_hours="by appointment"`
- *Only by appointment* corresponds with `opening_hours~^("by appointment"|by appointment)$`
- This option cannot be chosen as answer
### service:electricity
The question is *Does this amenity have electrical outlets, available to customers when they are inside?*
- *There are plenty of domestic sockets available to customers seated indoors, where they can charge their electronics* corresponds with `service:electricity=yes`
- *There are a few domestic sockets available to customers seated indoors, where they can charge their electronics* corresponds with `service:electricity=limited`
- *There are no sockets available indoors to customers, but charging might be possible if the staff is asked* corresponds with `service:electricity=ask`
- *There are a no domestic sockets available to customers seated indoors* corresponds with `service:electricity=no`
### payment-options
The question is *Which methods of payment are accepted here?*
- *Cash is accepted here* corresponds with `payment:cash=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:cash' target='_blank'>payment:cash</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:cash%3Dno' target='_blank'>no</a>
- *Payment cards are accepted here* corresponds with `payment:cards=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:cards' target='_blank'>payment:cards</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:cards%3Dno' target='_blank'>no</a>
- *Payment by QR-code is possible here* corresponds with `payment:qr_code=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:qr_code' target='_blank'>payment:qr_code</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:qr_code%3Dno' target='_blank'>no</a>
### payment-options-split
The question is *Which methods of payment are accepted here?*
- *Cash is accepted here* corresponds with `payment:cash=yes`
- This option cannot be chosen as answer
- Unselecting this answer will add
- *Payment cards are accepted here* corresponds with `payment:cards=yes`
- This option cannot be chosen as answer
- Unselecting this answer will add
- *Payment by QR-code is possible here* corresponds with `payment:qr_code=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:qr_code' target='_blank'>payment:qr_code</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:qr_code%3Dno' target='_blank'>no</a>
- *Coins are accepted here* corresponds with `payment:coins=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:coins' target='_blank'>payment:coins</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:coins%3Dno' target='_blank'>no</a>
- *Bank notes are accepted here* corresponds with `payment:notes=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:notes' target='_blank'>payment:notes</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:notes%3Dno' target='_blank'>no</a>
- *Debit cards are accepted here* corresponds with `payment:debit_cards=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:debit_cards' target='_blank'>payment:debit_cards</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:debit_cards%3Dno' target='_blank'>no</a>
- *Credit cards are accepted here* corresponds with `payment:credit_cards=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:credit_cards' target='_blank'>payment:credit_cards</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:credit_cards%3Dno' target='_blank'>no</a>
### payment-options-advanced
The question is *Which methods of payment are accepted here?*
- *Cash is accepted here* corresponds with `payment:cash=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:cash' target='_blank'>payment:cash</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:cash%3Dno' target='_blank'>no</a>
- *Payment cards are accepted here* corresponds with `payment:cards=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:cards' target='_blank'>payment:cards</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:cards%3Dno' target='_blank'>no</a>
- *Payment by QR-code is possible here* corresponds with `payment:qr_code=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:qr_code' target='_blank'>payment:qr_code</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:qr_code%3Dno' target='_blank'>no</a>
- *Payment is done using a dedicated app* corresponds with `payment:app=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:app' target='_blank'>payment:app</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:app%3Dno' target='_blank'>no</a>
- *Payment is done using a membership card* corresponds with `payment:membership_card=yes`
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:membership_card' target='_blank'>payment:membership_card</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:membership_card%3Dno' target='_blank'>no</a>
### denominations-coins
The question is *What coins can you use to pay here?*
- *1 cent coins are accepted* corresponds with `payment:coins:denominations=0.01 EUR`
- *2 cent coins are accepted* corresponds with `payment:coins:denominations=0.02 EUR`
- *5 cent coins are accepted* corresponds with `payment:coins:denominations=0.05 EUR`
- *10 cent coins are accepted* corresponds with `payment:coins:denominations=0.10 EUR`
- *20 cent coins are accepted* corresponds with `payment:coins:denominations=0.20 EUR`
- *50 cent coins are accepted* corresponds with `payment:coins:denominations=0.50 EUR`
- *1 euro coins are accepted* corresponds with `payment:coins:denominations=1 EUR`
- *2 euro coins are accepted* corresponds with `payment:coins:denominations=2 EUR`
This tagrendering is only visible in the popup if the following condition is met: `payment:coins=yes|payment:cash=yes&_currency=EUR`
### denominations-notes
The question is *what notes can you use to pay here?*
- *5 euro notes are accepted* corresponds with `payment:notes:denominations=5 EUR`
- *10 euro notes are accepted* corresponds with `payment:notes:denominations=10 EUR`
- *20 euro notes are accepted* corresponds with `payment:notes:denominations=20 EUR`
- *50 euro notes are accepted* corresponds with `payment:notes:denominations=50 EUR`
- *100 euro notes are accepted* corresponds with `payment:notes:denominations=100 EUR`
- *200 euro notes are accepted* corresponds with `payment:notes:denominations=200 EUR`
- *500 euro notes are accepted* corresponds with `payment:notes:denominations=500 EUR`
This tagrendering is only visible in the popup if the following condition is met: `payment:notes=yes|payment:cash=yes&_currency=EUR`
### last_edit
Gives some metainfo about the last edit and who did edit it - rendering only
This tagrendering has no question and is thus read-only
This tagrendering is only visible in the popup if the following condition is met: `_last_edit:contributor~.+&_last_edit:changeset~.+`
### all_tags
Shows a table with all the tags of the feature
This tagrendering has no question and is thus read-only
### just_created
This element shows a 'thank you' that the contributor has recently created this element
This tagrendering has no question and is thus read-only
- *You just created this element! Thanks for sharing this info with the world and helping people worldwide.* corresponds with `id~.+`
This tagrendering is only visible in the popup if the following condition is met: `_backend~.+&_last_edit:passed_time<300&|_version_number=1`
### multilevels
The question is *What levels does this elevator go to?*
This rendering asks information about the property [level](https://wiki.openstreetmap.org/wiki/Key:level)
This is rendered with `This elevator goes to floors {level}`
- *Located underground* corresponds with `location=underground`
- This option cannot be chosen as answer
- *Located on the ground floor* corresponds with `level=0`
- *Located on the ground floor* corresponds with ``
- This option cannot be chosen as answer
- *Located on the first floor* corresponds with `level=1`
- *Located on the first basement level* corresponds with `level=-1`
### level
The question is *On what level is this feature located?*
This rendering asks information about the property [level](https://wiki.openstreetmap.org/wiki/Key:level)
This is rendered with `Located on the {level}th floor`
- *Located underground* corresponds with `location=underground`
- This option cannot be chosen as answer
- *Located on the ground floor* corresponds with `level=0`
- *Located on the ground floor* corresponds with ``
- This option cannot be chosen as answer
- *Located on the first floor* corresponds with `level=1`
- *Located on the first basement level* corresponds with `level=-1`
### smoking
The question is *Is smoking allowed at {title()}?*
- *Smoking is <b>allowed</b>* corresponds with `smoking=yes`
- *Smoking is <b>not allowed</b>* corresponds with `smoking=no`
- *Smoking is <b>allowed outside</b>.* corresponds with `smoking=outside`
### induction-loop
An accessibility feature: induction loops are for hard-hearing persons which have an FM-receiver.
The question is *Does this place have an audio induction loop for people with reduced hearing?*
- *This place has an audio induction loop* corresponds with `hearing_loop=yes`
- *This place <b>does not</b> have an audio induction loop* corresponds with `hearing_loop=no`
### internet
The question is *Does this place offer internet access?*
- *This place offers wireless internet access* corresponds with `internet_access=wlan`
- *This place <b>does not</b> offer internet access* corresponds with `internet_access=no`
- *This place offers internet access* corresponds with `internet_access=yes`
- This option cannot be chosen as answer
- *This place offers internet access via a terminal or computer* corresponds with `internet_access=terminal`
- *This place offers wired internet access* corresponds with `internet_access=wired`
### internet-fee
The question is *Is there a fee for internet access?*
- *There is a fee for the internet access at this place* corresponds with `internet_access:fee=yes`
- *Internet access is free at this place* corresponds with `internet_access:fee=no`
- *Internet access is free at this place, for customers only* corresponds with `internet_access:fee=customers`
This tagrendering is only visible in the popup if the following condition is met: `internet_access!=no&internet_access~.+`
### internet-ssid
The question is *What is the network name for the wireless internet access?*
This rendering asks information about the property [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid)
This is rendered with `The network name is <b>{internet_access:ssid}</b>`
- *Telekom* corresponds with `internet_access:ssid=Telekom`
This tagrendering is only visible in the popup if the following condition is met: `internet_access=wlan`
### luminous_or_lit
The question is *Is this object lit or does it emit light?*
- *This object both emits light and is lighted by an external light source* corresponds with `lit=yes&luminous=yes`
- *This object emits light* corresponds with `luminous=yes`
- *This object is lit externally, e.g. by a spotlight or other lights* corresponds with `lit=yes`
- *This object does not emit light and is not lighted by externally* corresponds with `lit=no&luminous=no`
This document is autogenerated from [src/Customizations/SharedTagRenderings.ts](https://github.com/pietervdvn/MapComplete/blob/develop/src/Customizations/SharedTagRenderings.ts), [assets/layers/questions/questions.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/questions/questions.json)
This document is autogenerated from [assets/layers/questions/questions.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/questions/questions.json)

View file

@ -77,174 +77,274 @@ The user display language is determined in the following order:
Note that this URL-parameter is not added to the URL-bar by default.
Note that the _loading_ screen will always use the navigator language.
Translations are never complete. If a translation in a certain language is missing, English is used as fallback. No default value set
Translations are never complete. If a translation in a certain language is missing, English is used as fallback.
This documentation is defined in the source code at [Locale.ts](/UI/i18n/Locale.ts#L35)
No default value set
fs-translation-mode
---------------------
If set, will show a translation button next to every string. The default value is _false_
If set, will show a translation button next to every string.
This documentation is defined in the source code at [QueryParameters.ts](/Logic/Web/QueryParameters.ts#L66)
The default value is _false_
backend
---------
The OSM backend to use - can be used to redirect mapcomplete to the testing backend when using 'osm-test' The default value is _osm_
The OSM backend to use - can be used to redirect mapcomplete to the testing backend when using 'osm-test'
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L29)
The default value is _osm_
fake-user
-----------
If true, 'dryrun' mode is activated and a fake user account is loaded The default value is _false_
If true, 'dryrun' mode is activated and a fake user account is loaded
This documentation is defined in the source code at [QueryParameters.ts](/Logic/Web/QueryParameters.ts#L66)
The default value is _false_
fs-userbadge
--------------
Disables/Enables the user information pill (userbadge) at the top left. Disabling this disables logging in and thus disables editing all together, effectively putting MapComplete into read-only mode. The default value is _true_
Disables/Enables the user information pill (userbadge) at the top left. Disabling this disables logging in and thus disables editing all together, effectively putting MapComplete into read-only mode.
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
fs-search
-----------
Disables/Enables the search bar The default value is _true_
Disables/Enables the search bar
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
fs-background
---------------
Disables/Enables the background layer control The default value is _true_
Disables/Enables the background layer control
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
fs-filter
-----------
Disables/Enables the filter view The default value is _true_
Disables/Enables the filter view
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
fs-add-new
------------
Disables/Enables the 'add new feature'-popup. (A theme without presets might not have it in the first place) The default value is _true_
Disables/Enables the 'add new feature'-popup. (A theme without presets might not have it in the first place)
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
fs-welcome-message
--------------------
Disables/enables the help menu or welcome message The default value is _true_
Disables/enables the help menu or welcome message
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
fs-community-index
--------------------
Disables/enables the button to get in touch with the community The default value is _true_
Disables/enables the button to get in touch with the community
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
fs-iframe-popout
------------------
Disables/Enables the extraLink button. By default, if in iframe mode and the welcome message is hidden, a popout button to the full mapcomplete instance is shown instead (unless disabled with this switch or another extraLink button is enabled) The default value is _true_
Disables/Enables the extraLink button. By default, if in iframe mode and the welcome message is hidden, a popout button to the full mapcomplete instance is shown instead (unless disabled with this switch or another extraLink button is enabled)
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
fs-more-quests
----------------
Disables/Enables the 'More Quests'-tab in the welcome message The default value is _true_
Disables/Enables the 'More Quests'-tab in the welcome message
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
fs-share-screen
-----------------
Disables/Enables the 'Share-screen'-tab in the welcome message The default value is _true_
Disables/Enables the 'Share-screen'-tab in the welcome message
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
fs-geolocation
----------------
Disables/Enables the geolocation button The default value is _true_
Disables/Enables the geolocation button
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
fs-all-questions
------------------
Always show all questions The default value is _false_
Always show all questions
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _false_
fs-export
-----------
Enable the export as GeoJSON and CSV button The default value is _true_
Enable the export as GeoJSON and CSV button
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13)
The default value is _true_
test
------
If true, 'dryrun' mode is activated. The app will behave as normal, except that changes to OSM will be printed onto the console instead of actually uploaded to osm.org The default value is _false_
If true, 'dryrun' mode is activated. The app will behave as normal, except that changes to OSM will be printed onto the console instead of actually uploaded to osm.org
This documentation is defined in the source code at [QueryParameters.ts](/Logic/Web/QueryParameters.ts#L66)
The default value is _false_
debug
-------
If true, shows some extra debugging help such as all the available tags on every object The default value is _false_
If true, shows some extra debugging help such as all the available tags on every object
This documentation is defined in the source code at [QueryParameters.ts](/Logic/Web/QueryParameters.ts#L66)
The default value is _false_
overpassUrl
-------------
Point mapcomplete to a different overpass-instance. Example: https://overpass-api.de/api/interpreter The default value is _https://overpass-api.de/api/interpreter,https://overpass.kumi.systems/api/interpreter,https://overpass.openstreetmap.ru/cgi/interpreter_
Point mapcomplete to a different overpass-instance. Example: https://overpass-api.de/api/interpreter
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L165)
The default value is _https://overpass-api.de/api/interpreter,https://overpass.kumi.systems/api/interpreter,https://overpass.openstreetmap.ru/cgi/interpreter_
overpassTimeout
-----------------
Set a different timeout (in seconds) for queries in overpass The default value is _30_
Set a different timeout (in seconds) for queries in overpass
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L176)
The default value is _30_
overpassMaxZoom
-----------------
point to switch between OSM-api and overpass The default value is _16_
point to switch between OSM-api and overpass
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L184)
The default value is _16_
osmApiTileSize
----------------
Tilesize when the OSM-API is used to fetch data within a BBOX The default value is _17_
Tilesize when the OSM-API is used to fetch data within a BBOX
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L192)
The default value is _17_
background
------------
The id of the background layer to start with The default value is _osm_
The id of the background layer to start with
This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L205)
The default value is _osm_
layer-&lt;layer-id&gt;
------------------------
Wether or not the layer with id <layer-id> is shown The default value is _true_
Wether or not the layer with id <layer-id> is shown
This documentation is defined in the source code at [QueryParameterDocumentation.ts](/UI/QueryParameterDocumentation.ts#L52)
The default value is _true_
This document is autogenerated from [src/Logic/Web/QueryParameters.ts](https://github.com/pietervdvn/MapComplete/blob/develop/src/Logic/Web/QueryParameters.ts), [src/UI/QueryParameterDocumentation.ts](https://github.com/pietervdvn/MapComplete/blob/develop/src/UI/QueryParameterDocumentation.ts)

View file

@ -4,6 +4,7 @@
import { UIEventSource } from "../UIEventSource"
import Hash from "./Hash"
import { Utils } from "../../Utils"
import doc = Mocha.reporters.doc
export class QueryParameters {
static defaults: Record<string, string> = {}
@ -21,6 +22,19 @@ export class QueryParameters {
if (!this.initialized) {
this.init()
}
if (Utils.runningFromConsole) {
const location = Utils.getLocationInCode(-1)
documentation +=
"\n\nThis documentation is defined in the source code at [" +
location.filename +
"](" +
location.markdownLocation +
")" +
"\n\n"
}
QueryParameters.documentation.set(key, documentation)
if (deflt !== undefined) {
QueryParameters.defaults[key] = deflt
@ -131,5 +145,4 @@ export class QueryParameters {
QueryParameters._wasInitialized.clear()
QueryParameters.order = []
}
}

View file

@ -1,5 +1,5 @@
import colors from "./assets/colors.json"
import {HTMLElement} from "node-html-parser"
import { HTMLElement } from "node-html-parser"
export class Utils {
/**
@ -459,7 +459,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
let match = txt.match(regex)
if(!match){
if (!match) {
return txt
}
let result = ""
@ -502,7 +502,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
result += normal + v
match = leftover.match(regex)
if(!match){
if (!match) {
result += leftover
}
}
@ -699,10 +699,10 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
if (Array.isArray(leaf)) {
for (let i = 0; i < (<any[]>leaf).length; i++) {
const l = (<any[]>leaf)[i]
collectedList.push({leaf: l, path: [...travelledPath, "" + i]})
collectedList.push({ leaf: l, path: [...travelledPath, "" + i] })
}
} else {
collectedList.push({leaf, path: travelledPath})
collectedList.push({ leaf, path: travelledPath })
}
return collectedList
}
@ -780,7 +780,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
})
}
const cp = {...json}
const cp = { ...json }
for (const key in json) {
cp[key] = Utils.WalkJson(json[key], f, isLeaf, [...path, key])
}
@ -910,11 +910,11 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
const xhr = new XMLHttpRequest()
xhr.onload = () => {
if (xhr.status == 200) {
resolve({content: xhr.response})
resolve({ content: xhr.response })
} else if (xhr.status === 302) {
resolve({redirect: xhr.getResponseHeader("location")})
resolve({ redirect: xhr.getResponseHeader("location") })
} else if (xhr.status === 509 || xhr.status === 429) {
resolve({error: "rate limited", url, statuscode: xhr.status})
resolve({ error: "rate limited", url, statuscode: xhr.status })
} else {
resolve({
error: "other error: " + xhr.statusText,
@ -984,10 +984,10 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
}
const promise =
/*NO AWAIT as we work with the promise directly */ Utils.downloadJsonAdvanced(
url,
headers
)
Utils._download_cache.set(url, {promise, timestamp: new Date().getTime()})
url,
headers
)
Utils._download_cache.set(url, { promise, timestamp: new Date().getTime() })
return await promise
}
@ -1006,11 +1006,11 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
const injected = Utils.injectedDownloads[url]
if (injected !== undefined) {
console.log("Using injected resource for test for URL", url)
return new Promise((resolve, _) => resolve({content: injected}))
return new Promise((resolve, _) => resolve({ content: injected }))
}
const result = await Utils.downloadAdvanced(
url,
Utils.Merge({accept: "application/json"}, headers ?? {})
Utils.Merge({ accept: "application/json" }, headers ?? {})
)
if (result["error"] !== undefined) {
return <{ error: string; url: string; statuscode?: number }>result
@ -1018,12 +1018,12 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
const data = result["content"]
try {
if (typeof data === "string") {
return {content: JSON.parse(data)}
return { content: JSON.parse(data) }
}
return {content: data}
return { content: data }
} catch (e) {
console.error("Could not parse ", data, "due to", e, "\n", e.stack)
return {error: "malformed", url}
return { error: "malformed", url }
}
}
@ -1047,7 +1047,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
const element = document.createElement("a")
let file
if (typeof contents === "string") {
file = new Blob([contents], {type: options?.mimetype ?? "text/plain"})
file = new Blob([contents], { type: options?.mimetype ?? "text/plain" })
} else {
file = contents
}
@ -1318,7 +1318,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
if (match == undefined) {
return undefined
}
return {r: Number(match[1]), g: Number(match[2]), b: Number(match[3])}
return { r: Number(match[1]), g: Number(match[2]), b: Number(match[3]) }
}
if (!hex.startsWith("#")) {
@ -1378,7 +1378,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
if (inView) {
return
}
element.scrollIntoView({behavior: "smooth", block: "nearest"})
element.scrollIntoView({ behavior: "smooth", block: "nearest" })
}
public static findParentWithScrolling(element: HTMLBaseElement): HTMLBaseElement {
@ -1470,18 +1470,60 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
const postParts = prepart.split("}")
if (postParts.length === 1) {
// This was a normal part
spec.push({message: postParts[0]})
spec.push({ message: postParts[0] })
} else {
const [subs, message] = postParts
spec.push({subs})
spec.push({ subs })
if (message !== "") {
spec.push({message})
spec.push({ message })
}
}
}
return spec
}
/**
* Returns the file and line number of the code calling this
*/
public static getLocationInCode(offset: number = 0): {
path: string
line: number
column: number
markdownLocation: string
filename: string
functionName: string
} {
const error = new Error("No error")
const stack = error.stack.split("\n")
stack.shift() // Remove "Error: No error"
const regex = /at (.*) \(([a-zA-Z0-9/.]+):([0-9]+):([0-9]+)\)/
const stackItem = stack[Math.abs(offset) + 1]
console.log("Matching", stackItem, "with", regex, "gave", stackItem.match(regex))
let functionName: string
let path: string
let line: string
let column: string
let _: string
const matchWithFuncName = stackItem.match(regex)
if (matchWithFuncName) {
;[_, functionName, path, line, column] = matchWithFuncName
} else {
let regexNoFuncName: RegExp = new RegExp("at ([a-zA-Z0-9/.]+):([0-9]+):([0-9]+)")
;[_, path, line, column] = stackItem.match(regexNoFuncName)
}
const markdownLocation = path.substring(path.indexOf("MapComplete/src") + 15) + "#L" + line
return {
path,
functionName,
line: Number(line),
column: Number(column),
markdownLocation,
filename: path.substring(path.lastIndexOf("/") + 1),
}
}
private static colorDiff(
c0: { r: number; g: number; b: number },
c1: { r: number; g: number; b: number }