chore: automated housekeeping...

This commit is contained in:
Pieter Vander Vennet 2024-11-07 11:19:15 +01:00
parent a2dd79c4ec
commit 7b792af261
101 changed files with 2196 additions and 22043 deletions

View file

@ -40,6 +40,7 @@
- clock
- crossings
- cycleways_and_roads
- cyclist_waiting_aid
- defibrillator
- dentist
- disaster_response
@ -94,6 +95,7 @@
- reception_desk
- recycling
- route_marker
- school
- shelter
- shops
- shower
@ -108,6 +110,8 @@
- street_lamps
- stripclub
- surveillance_camera
- tactile_map
- tactile_model
- ticket_machine
- ticket_validator
- toilet
@ -211,11 +215,12 @@
- physiotherapist
- playground
- recycling
- school
- shops
- souvenir_coin
- souvenir_note
- sports_centre
- tactile_map
- tactile_model
- tertiary_education
- vending_machine
- veterinary
@ -241,7 +246,6 @@
- kindergarten_childcare
- physiotherapist
- recycling
- school
- shops
- sports_centre
- tertiary_education
@ -268,7 +272,6 @@
- kindergarten_childcare
- physiotherapist
- recycling
- school
- shops
- sports_centre
- tertiary_education
@ -319,6 +322,8 @@
- love_hotel
- pharmacy
- police
- postoffices
- school
- stripclub
- tool_library
- tourism_accomodation
@ -527,6 +532,10 @@
- climbing_gym
### indoor
- clock
### all_tags
- cycle_highways

View file

@ -67,6 +67,7 @@ This is a special layer - data is not sourced from OpenStreetMap
- [shower](#shower)
- [preset_description](#preset_description)
- [brand](#brand)
- [indoor](#indoor)
2. [Filters](#filters)
## Supported attributes
@ -107,6 +108,7 @@ This is a special layer - data is not sourced from OpenStreetMap
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/seasonal#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/seasonal/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [seasonal](https://wiki.openstreetmap.org/wiki/Key:seasonal) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:seasonal%3Dno) [summer](https://wiki.openstreetmap.org/wiki/Tag:seasonal%3Dsummer) [spring;summer;autumn](https://wiki.openstreetmap.org/wiki/Tag:seasonal%3Dspring;summer;autumn) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/shower#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/shower/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [shower](https://wiki.openstreetmap.org/wiki/Key:shower) | Multiple choice | [hot](https://wiki.openstreetmap.org/wiki/Tag:shower%3Dhot) [cold](https://wiki.openstreetmap.org/wiki/Tag:shower%3Dcold) [yes](https://wiki.openstreetmap.org/wiki/Tag:shower%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:shower%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/brand#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/brand/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/indoor#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/indoor/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [indoor](https://wiki.openstreetmap.org/wiki/Key:indoor) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dno) |
### questions
Show the questions block at this location
@ -540,6 +542,13 @@ The question is `Is {title()} part of a bigger brand?`
- *Not part of a bigger brand* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:nobrand' target='_blank'>nobrand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:nobrand%3Dyes' target='_blank'>yes</a>
### indoor
The question is `Is this object located indoors?`
- *This object is located indoors* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:indoor' target='_blank'>indoor</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dyes' target='_blank'>yes</a>
- *This object is located outdoors* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:indoor' target='_blank'>indoor</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dno' target='_blank'>no</a>
## Filters
| id | question | osmTags |

View file

@ -538,7 +538,8 @@ This table gives a summary of ids, names and other metainformation. [See the onl
| CBJ_Aerial_20230516 | CBJ Aerial Imagery (May 2023) | photo | ⭐ | City and Borough of Juneau |
| CBJ_Aerial_20230618 | CBJ Aerial Imagery (June 2023) | photo | | City and Borough of Juneau |
| FNSB_Aerial_2023 | FNSB Aerial Imagery (2023) | photo | ⭐ | Fairbanks North Star Borough |
| MOA_Aerial_2021 | MOA Aerial Imagery (2021) | photo | | Municipality of Anchorage GIS |
| MOA_Aerial_2021 | MOA Aerial Imagery (2021) | historicphoto | | Municipality of Anchorage GIS |
| MOA_Aerial_2024 | MOA Aerial Imagery (2024) | photo | ⭐ | Municipality of Anchorage GIS |
| MSB_Aerial_2019 | MSB Aerial Imagery - Area 1(2019) | historicphoto | | Matanuska-Susitna Borough GIS Division |
| MSB_Aerial_2020 | MSB Aerial Imagery - Area 2 (2020) | historicphoto | | Matanuska-Susitna Borough GIS Division |
| MSB_Aerial_2021 | MSB Aerial Imagery - Area 3 (2021) | historicphoto | | Matanuska-Susitna Borough GIS Division |
@ -558,20 +559,27 @@ This table gives a summary of ids, names and other metainformation. [See the onl
| LA_County_Basemap | LA County Basemap | map | | Los Angeles County |
| Manhattan_Beach_CA_2023 | City of Manhattan Beach Orthoimagery (2023) | photo | | City of Manhattan Beach |
| Manteca_CA_2022 | City of Manteca Orthoimagery (2022) | photo | | City of Manteca |
| Modesto_CA_2023 | City of Modesto Orthoimagery (2023) | photo | | City of Modesto |
| Modesto_CA_2023 | City of Modesto Orthoimagery (2023) | historicphoto | | City of Modesto |
| Modesto_CA_2024 | City of Modesto Orthoimagery (2024) | photo | | City of Modesto |
| Orange_CA_2022 | Orange County Orthoimagery (2022) | photo | | Orange County |
| Roseville_CA_2023 | City of Roseville Orthoimagery (2023) | historicphoto | | City of Roseville |
| Roseville_CA_2024 | City of Roseville Orthoimagery (2024) | photo | | City of Roseville |
| Sacramento_CA_2022 | Sacramento County Orthoimagery (2022) | photo | | Sacramento County |
| San_Bernardino_CA_2023 | San Bernardino County Orthoimagery (2023) | photo | | San Bernardino County |
| San_Francisco_CA_2022 | San Francisco Orthoimagery (2022) | historicphoto | | City and County of San Francisco |
| San_Francisco_CA_2022_CIR | San Francisco Orthoimagery CIR (2022) | historicphoto | | City and County of San Francisco |
| San_Francisco_Ortho_2023 | San Francisco Orthoimagery (2023) | photo | | City and County of San Francisco |
| San_Bernardino_CA_2023 | San Bernardino County Orthoimagery (2023) | historicphoto | | San Bernardino County |
| San_Bernardino_CA_2024 | San Bernardino County Orthoimagery (2024) | photo | | San Bernardino County |
| San_Francisco_2022 | San Francisco Orthoimagery (2022) | historicphoto | | City and County of San Francisco |
| San_Francisco_2022_CIR | San Francisco Orthoimagery CIR (2022) | historicphoto | | City and County of San Francisco |
| San_Francisco_2023 | San Francisco Orthoimagery (2023) | historicphoto | | City and County of San Francisco |
| San_Francisco_2023_CIR | San Francisco Orthoimagery CIR (2023) | historicphoto | | City and County of San Francisco |
| San_Francisco_2024 | San Francisco Orthoimagery (2024) | photo | | City and County of San Francisco |
| San_Francisco_2024_CIR | San Francisco Orthoimagery CIR (2024) | photo | | City and County of San Francisco |
| San_Mateo_CA_2022 | San Mateo County Orthoimagery (2022) | photo | | San Mateo County |
| Santa_Clara_CA_2022 | Santa Clara County Orthoimagery (2022) | photo | | County of Santa Clara |
| Santa_Clara_CA_2023 | Santa Clara County Orthoimagery (2023) | photo | | County of Santa Clara |
| Santa_Rosa_CA_2022 | City of Santa Rosa Orthoimagery (2022) | photo | | City of Santa Rosa |
| Solano_CA_2022 | Solano County Orthoimagery (2022) | photo | | Solano County |
| Solano_CA_2022 | Solano County Orthoimagery (2022) | historicphoto | | Solano County |
| Solano_CA_2023 | Solano County Orthoimagery (2023) | historicphoto | | Solano County |
| Solano_CA_2024 | Solano County Orthoimagery (2024) | photo | | Solano County |
| Stockton_CA_2023 | City of Stockton Orthoimagery (2023) | photo | | City of Stockton |
| Arapahoe-County-Aerials-Latest | Arapahoe County Aerials Latest | photo | | Arapahoe County GIS |
| MCGIS-County-NAIP-Imagery-2015 | Mesa County GIS NAIP 2015 | historicphoto | | Mesa County GIS |
@ -579,7 +587,8 @@ This table gives a summary of ids, names and other metainformation. [See the onl
| MCGIS-County-Valleywide-Imagery-2020 | Mesa County GIS Valleywide 2020 | historicphoto | | Mesa County GIS |
| MCGIS-County-Valleywide-Imagery-2022 | Mesa County GIS Valleywide 2022 | photo | | Mesa County GIS |
| MCGIS-County-Valleywide-Imagery-2024 | Mesa County GIS Valleywide 2024 | photo | | Mesa County GIS |
| CT_ECO_Ortho_2019_RGB | CT ECO Orthoimagery (2019) | photo | | Connecticut Environmental Conditions Online |
| CT_ECO_Ortho_2019_RGB | CT ECO Orthoimagery (2019) | historicphoto | | Connecticut Environmental Conditions Online |
| CT_ECO_Ortho_2023_RGB | CT ECO Orthoimagery (2023) | photo | | Connecticut Environmental Conditions Online |
| CT_ECO_Shaded_relief_2016 | CT ECO Shaded Relief | elevation | | Connecticut Environmental Conditions Online |
| MetroCOG_Ortho_2020 | MetroCOG Orthoimagery (2020) | photo | | Connecticut Metropolitan Council of Governments |
| DC_From_Above_Ortho_2019 | DC From Above Orthophoto 2019 | historicphoto | | OCTO, DCGIS |
@ -818,7 +827,8 @@ This table gives a summary of ids, names and other metainformation. [See the onl
| Suan_Juan_WA_2023 | Suan Juan County Aerials (2023) | photo | ⭐ | San Juan County GIS |
| Suan_Juan_WA_Basemap | Suan Juan County Basemap | map | | San Juan County GIS |
| Snohomish_WA_2020 | Snohomish County Orthoimagery (2020) | historicphoto | | Snohomish County GIS |
| Snohomish_WA_2022 | Snohomish County Orthoimagery (2022) | photo | | Snohomish County GIS |
| Snohomish_WA_2022 | Snohomish County Orthoimagery (2022) | historicphoto | | Snohomish County GIS |
| Snohomish_WA_2024 | Snohomish County Orthoimagery (2024) | photo | | Snohomish County GIS |
| WISC_DNR_Ortho_Composite | Wisconsin Leaf-Off Orthophotography (DNR) | photo | | Wisconsin Regional Orthoimagery Consortium, Southeastern Wisconsin Regional Planning Commission, Wisconsin Department of Natural Resources |
| Monongalia_WV_2022 | Monongalia County 2022 Aerial Imagery | historicphoto | | Monongalia Morgantown Area Geospatial Information Consortium |
| Monongalia_WV_2023 | Monongalia County 2023 Aerial Imagery | photo | ⭐ | Monongalia Morgantown Area Geospatial Information Consortium |

View file

@ -362,6 +362,25 @@ This tagrendering has labels
| artwork-artwork_type.12 | Tilework | artwork_type=tilework |
| artwork-artwork_type.13 | Woodcarving | artwork_type=woodcarving |
| id | question | osmTags |
-----|-----|----- |
| memorial-type.0 | *What type of memorial is this?* (default) | |
| memorial-type.1 | This is a statue | memorial=statue |
| memorial-type.2 | This is a plaque | memorial=plaque |
| memorial-type.3 | This is a commemorative bench | memorial=bench |
| memorial-type.4 | This is a ghost bike - a bicycle painted white to remember a cyclist whom deceased because of a car crash | memorial=ghost_bike |
| memorial-type.5 | This is a stolperstein (stumbing stone) | memorial=stolperstein |
| memorial-type.6 | This is a stele | memorial=stele |
| memorial-type.7 | This is a memorial stone | memorial=stone |
| memorial-type.8 | This is a bust | memorial=bust |
| memorial-type.9 | This is a sculpture | memorial=sculpture |
| memorial-type.10 | This is an obelisk | memorial=obelisk |
| memorial-type.11 | This is a cross | memorial=cross |
| memorial-type.12 | This is a blue plaque | memorial=blue_plaque |
| memorial-type.13 | This is a historic tank, permanently placed in public space as memorial | memorial=tank |
| memorial-type.14 | This is a memorial tree | memorial=tree |
| memorial-type.15 | This is a gravestone; the person is buried here | historic=tomb |
This document is autogenerated from [assets/layers/artwork/artwork.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/artwork/artwork.json)

View file

@ -365,6 +365,25 @@ This tagrendering has labels
| artwork-artwork_type.12 | Tilework | artwork_type=tilework |
| artwork-artwork_type.13 | Woodcarving | artwork_type=woodcarving |
| id | question | osmTags |
-----|-----|----- |
| memorial-type.0 | *What type of memorial is this?* (default) | |
| memorial-type.1 | This is a statue | memorial=statue |
| memorial-type.2 | This is a plaque | memorial=plaque |
| memorial-type.3 | This is a commemorative bench | memorial=bench |
| memorial-type.4 | This is a ghost bike - a bicycle painted white to remember a cyclist whom deceased because of a car crash | memorial=ghost_bike |
| memorial-type.5 | This is a stolperstein (stumbing stone) | memorial=stolperstein |
| memorial-type.6 | This is a stele | memorial=stele |
| memorial-type.7 | This is a memorial stone | memorial=stone |
| memorial-type.8 | This is a bust | memorial=bust |
| memorial-type.9 | This is a sculpture | memorial=sculpture |
| memorial-type.10 | This is an obelisk | memorial=obelisk |
| memorial-type.11 | This is a cross | memorial=cross |
| memorial-type.12 | This is a blue plaque | memorial=blue_plaque |
| memorial-type.13 | This is a historic tank, permanently placed in public space as memorial | memorial=tank |
| memorial-type.14 | This is a memorial tree | memorial=tree |
| memorial-type.15 | This is a gravestone; the person is buried here | historic=tomb |
This document is autogenerated from [assets/themes/ghostsigns/ghostsigns.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/ghostsigns/ghostsigns.json)

View file

@ -15,6 +15,8 @@ A layer showing facilities where one can clean their bike
- [images](#images)
- [bike_cleaning-service_bicycle_cleaning_charge](#bike_cleaning-service_bicycle_cleaning_charge)
- [bike_cleaning-charge](#bike_cleaning-charge)
- [automated](#automated)
- [self_service](#self_service)
- [leftover-questions](#leftover-questions)
- [move-button](#move-button)
- [delete-button](#delete-button)
@ -36,11 +38,10 @@ The following options to create new points are included:
Elements must match **any** of the following expressions:
- <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>
- <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning' target='_blank'>service:bicycle:cleaning</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes' target='_blank'>yes</a>
- <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning' target='_blank'>service:bicycle:cleaning</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy' target='_blank'>diy</a>
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22amenity%22%3D%22bicycle_wash%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%20%20%20%20nwr%5B%22amenity%22%3D%22bike_wash%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%20%20%20%20nwr%5B%22service%3Abicycle%3Acleaning%22%3D%22yes%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%20%20%20%20nwr%5B%22service%3Abicycle%3Acleaning%22%3D%22diy%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22amenity%22%3D%22bicycle_wash%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%20%20%20%20nwr%5B%22service%3Abicycle%3Acleaning%22%3D%22yes%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%20%20%20%20nwr%5B%22service%3Abicycle%3Acleaning%22%3D%22diy%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
## Supported attributes
@ -50,6 +51,8 @@ Elements must match **any** of the following expressions:
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/service:bicycle:cleaning:charge#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/service%3Abicycle%3Acleaning%3Acharge/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/charge#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/charge/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [charge](https://wiki.openstreetmap.org/wiki/Key:charge) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/automated#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/automated/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [automated](https://wiki.openstreetmap.org/wiki/Key:automated) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:automated%3Dno) [yes](https://wiki.openstreetmap.org/wiki/Tag:automated%3Dyes) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/self_service#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/self_service/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [self_service](https://wiki.openstreetmap.org/wiki/Key:self_service) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:self_service%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:self_service%3Dno) |
### 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
@ -64,7 +67,7 @@ The question is `How much does it cost to use the cleaning service?`
- *The cleaning service is free to use* is shown if 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%3Dno' target='_blank'>no</a>
- *Free to use* is shown if 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> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
### bike_cleaning-charge
@ -74,7 +77,25 @@ The question is `How much does it cost to use the cleaning service?`
- *This cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:fee' target='_blank'>fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fee%3Dno' target='_blank'>no</a>
- *There is a fee to use this cleaning service* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:fee' target='_blank'>fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fee%3Dyes' target='_blank'>yes</a>
This tagrendering is only visible in the popup if the following condition is met: <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> | <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>
This tagrendering is only visible in the popup if the following condition is met: <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>
### automated
The question is `Is this bicycle cleaning service automated?`
- *This is a manual bike washing station* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:automated' target='_blank'>automated</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:automated%3Dno' target='_blank'>no</a>
- *This is an automated bike wash* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:automated' target='_blank'>automated</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:automated%3Dyes' target='_blank'>yes</a>
This tagrendering is only visible in the popup if the following condition is met: <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>
### self_service
The question is `Is this cleaning service self-service?`
- *This cleaning service is self-service* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:self_service' target='_blank'>self_service</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:self_service%3Dyes' target='_blank'>yes</a>
- *This cleaning service is operated by an employee* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:self_service' target='_blank'>self_service</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:self_service%3Dno' target='_blank'>no</a>
This tagrendering is only visible in the popup if the following condition is met: <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>
### leftover-questions

View file

@ -6,6 +6,7 @@ Layer with public clocks
- This layer is shown at zoomlevel **8** and higher
- This layer will automatically load [walls_and_buildings](./walls_and_buildings.md) into the layout as it depends on it: preset `a wall-mounted clock` snaps to this layer (clock.presets[1])
- This layer will automatically load [walls_and_buildings](./walls_and_buildings.md) into the layout as it depends on it: preset `a wall-mounted clock, mounted directly on a wall` snaps to this layer (clock.presets[2])
## Table of contents
@ -16,6 +17,7 @@ Layer with public clocks
- [images](#images)
- [support](#support)
- [display](#display)
- [indoor](#indoor)
- [visibility](#visibility)
- [date](#date)
- [thermometer](#thermometer)
@ -40,6 +42,7 @@ The following options to create new points are included:
- **a clock** which has the following tags:<a href='https://wiki.openstreetmap.org/wiki/Key:amenity' target='_blank'>amenity</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dclock' target='_blank'>clock</a>
- **a wall-mounted clock** which has the following tags:<a href='https://wiki.openstreetmap.org/wiki/Key:amenity' target='_blank'>amenity</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dclock' target='_blank'>clock</a> & <a href='https://wiki.openstreetmap.org/wiki/Key:support' target='_blank'>support</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:support%3Dwall_mounted' target='_blank'>wall_mounted</a> (snaps to layers `walls_and_buildings`)
- **a wall-mounted clock, mounted directly on a wall** which has the following tags:<a href='https://wiki.openstreetmap.org/wiki/Key:amenity' target='_blank'>amenity</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dclock' target='_blank'>clock</a> & <a href='https://wiki.openstreetmap.org/wiki/Key:support' target='_blank'>support</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:support%3Dwall' target='_blank'>wall</a> (snaps to layers `walls_and_buildings`)
## Basic tags for this layer
@ -53,8 +56,9 @@ Elements must match the expression **<a href='https://wiki.openstreetmap.org/wik
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/support#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/support/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [support](https://wiki.openstreetmap.org/wiki/Key:support) | Multiple choice | [pole](https://wiki.openstreetmap.org/wiki/Tag:support%3Dpole) [wall_mounted](https://wiki.openstreetmap.org/wiki/Tag:support%3Dwall_mounted) [billboard](https://wiki.openstreetmap.org/wiki/Tag:support%3Dbillboard) [ground](https://wiki.openstreetmap.org/wiki/Tag:support%3Dground) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/support#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/support/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [support](https://wiki.openstreetmap.org/wiki/Key:support) | Multiple choice | [pole](https://wiki.openstreetmap.org/wiki/Tag:support%3Dpole) [wall_mounted](https://wiki.openstreetmap.org/wiki/Tag:support%3Dwall_mounted) [wall](https://wiki.openstreetmap.org/wiki/Tag:support%3Dwall) [billboard](https://wiki.openstreetmap.org/wiki/Tag:support%3Dbillboard) [ground](https://wiki.openstreetmap.org/wiki/Tag:support%3Dground) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/display#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/display/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [display](https://wiki.openstreetmap.org/wiki/Key:display) | Multiple choice | [analog](https://wiki.openstreetmap.org/wiki/Tag:display%3Danalog) [digital](https://wiki.openstreetmap.org/wiki/Tag:display%3Ddigital) [sundial](https://wiki.openstreetmap.org/wiki/Tag:display%3Dsundial) [unorthodox](https://wiki.openstreetmap.org/wiki/Tag:display%3Dunorthodox) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/indoor#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/indoor/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [indoor](https://wiki.openstreetmap.org/wiki/Key:indoor) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/visibility#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/visibility/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [visibility](https://wiki.openstreetmap.org/wiki/Key:visibility) | Multiple choice | [house](https://wiki.openstreetmap.org/wiki/Tag:visibility%3Dhouse) [street](https://wiki.openstreetmap.org/wiki/Tag:visibility%3Dstreet) [area](https://wiki.openstreetmap.org/wiki/Tag:visibility%3Darea) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/date#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/date/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [date](https://wiki.openstreetmap.org/wiki/Key:date) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:date%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:date%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/thermometer#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/thermometer/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [thermometer](https://wiki.openstreetmap.org/wiki/Key:thermometer) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:thermometer%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:thermometer%3Dno) |
@ -72,7 +76,8 @@ _This tagrendering has no question and is thus read-only_
The question is `In what way is the clock mounted?`
- *This clock is mounted on a pole* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:support' target='_blank'>support</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:support%3Dpole' target='_blank'>pole</a>
- *This clock is mounted on a wall* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:support' target='_blank'>support</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:support%3Dwall_mounted' target='_blank'>wall_mounted</a>
- *This clock is mounted on a wall, usually through a support perpendicular to the wall* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:support' target='_blank'>support</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:support%3Dwall_mounted' target='_blank'>wall_mounted</a>
- *This clock is mounted directly on a wall* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:support' target='_blank'>support</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:support%3Dwall' target='_blank'>wall</a>
- *This clock is part of a billboard* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:support' target='_blank'>support</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:support%3Dbillboard' target='_blank'>billboard</a>
- *This clock is on the ground* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:support' target='_blank'>support</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:support%3Dground' target='_blank'>ground</a>
@ -85,6 +90,13 @@ The question is `How does this clock display the time?`
- *This clock displays the time with a sundial* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:display' target='_blank'>display</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:display%3Dsundial' target='_blank'>sundial</a>
- *This clock displays the time in a non-standard way, e.g using binary, water or something else* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:display' target='_blank'>display</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:display%3Dunorthodox' target='_blank'>unorthodox</a>
### indoor
The question is `Is this clock indoors?`
- *This clock is indoors* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:indoor' target='_blank'>indoor</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dyes' target='_blank'>yes</a>
- *This clock is outdoors* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:indoor' target='_blank'>indoor</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dno' target='_blank'>no</a>
### visibility
The question is `How visible is this clock?`

View file

@ -16,7 +16,7 @@ Crossings for pedestrians and cyclists
4. [Supported attributes](#supported-attributes)
- [images](#images)
- [crossing-type](#crossing-type)
- [crossing-is-zebra](#crossing-is-zebra)
- [markings](#markings)
- [crossing-bicycle-allowed](#crossing-bicycle-allowed)
- [crossing-has-island](#crossing-has-island)
- [crossing-tactile](#crossing-tactile)
@ -60,8 +60,8 @@ Elements must match **any** of the following expressions:
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing](https://wiki.openstreetmap.org/wiki/Key:crossing) | Multiple choice | [uncontrolled](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled) [traffic_signals](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dtraffic_signals) [unmarked](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dunmarked) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing_ref#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing_ref/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing_ref](https://wiki.openstreetmap.org/wiki/Key:crossing_ref) | Multiple choice | [zebra](https://wiki.openstreetmap.org/wiki/Tag:crossing_ref%3Dzebra) [](https://wiki.openstreetmap.org/wiki/Tag:crossing_ref%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing](https://wiki.openstreetmap.org/wiki/Key:crossing) | Multiple choice | [uncontrolled](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled) [traffic_signals](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dtraffic_signals) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing:markings#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing%3Amarkings/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing:markings](https://wiki.openstreetmap.org/wiki/Key:crossing:markings) | [string](../SpecialInputElements.md#string) | [no](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dno) [zebra](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra) [lines](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines) [ladder](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder) [dashes](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddashes) [dots](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddots) [surface](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dsurface) [ladder:skewed](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:skewed) [zebra:paired](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:paired) [zebra:bicolour](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:bicolour) [zebra:double](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:double) [pictograms](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dpictograms) [ladder:paired](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:paired) [lines:paired](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines:paired) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/bicycle#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/bicycle/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [bicycle](https://wiki.openstreetmap.org/wiki/Key:bicycle) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:bicycle%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:bicycle%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing:island#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing%3Aisland/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing:island](https://wiki.openstreetmap.org/wiki/Key:crossing:island) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:crossing:island%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:crossing:island%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/tactile_paving#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/tactile_paving/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [tactile_paving](https://wiki.openstreetmap.org/wiki/Key:tactile_paving) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:tactile_paving%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:tactile_paving%3Dno) |
@ -85,18 +85,30 @@ The question is `What kind of crossing is this?`
- *Crossing, without traffic lights* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled' target='_blank'>uncontrolled</a>
- *Crossing with traffic signals* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dtraffic_signals' target='_blank'>traffic_signals</a>
- *Zebra crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dzebra' target='_blank'>zebra</a>. _This option cannot be chosen as answer_
- *Crossing without crossing markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dunmarked' target='_blank'>unmarked</a>
- *Crossing without crossing markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dunmarked' target='_blank'>unmarked</a>. _This option cannot be chosen as answer_
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:highway' target='_blank'>highway</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:highway%3Dcrossing' target='_blank'>crossing</a>
### crossing-is-zebra
### markings
The question is `Is this is a zebra crossing?`
The question is `What kind of markings does this crossing have?`
*This crossing has {crossing:markings} markings* is shown if `crossing:markings` is set
- *This is a zebra crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing_ref' target='_blank'>crossing_ref</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing_ref%3Dzebra' target='_blank'>zebra</a>
- *This is not a zebra crossing* is shown if with crossing_ref=
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled' target='_blank'>uncontrolled</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/crossing_unmarked.png' style='width: 3rem; height: 3rem'> *This crossing has no markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dno' target='_blank'>no</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_zebra.png' style='width: 3rem; height: 3rem'> *This crossing has zebra markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra' target='_blank'>zebra</a>
- *This crossing has markings of an unknown type* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dyes' target='_blank'>yes</a>. _This option cannot be chosen as answer_
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_lines.png' style='width: 3rem; height: 3rem'> *This crossings has lines on either side of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines' target='_blank'>lines</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_ladder.png' style='width: 3rem; height: 3rem'> *This crossing has lines on either side of the crossing, along with bars connecting them* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder' target='_blank'>ladder</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_dashes.png' style='width: 3rem; height: 3rem'> *This crossing has dashed lines on either sides of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddashes' target='_blank'>dashes</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_dots.png' style='width: 3rem; height: 3rem'> *This crossing has dotted lines on either sides of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddots' target='_blank'>dots</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_surface.png' style='width: 3rem; height: 3rem'> *This crossing is marked by using a different coloured surface* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dsurface' target='_blank'>surface</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_ladder_skewed.png' style='width: 3rem; height: 3rem'> *This crossing has lines on either side of the crossing, along with angled bars connecting them* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:skewed' target='_blank'>ladder:skewed</a>
- *This crossing has zebra markings with an interruption in every bar* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:paired' target='_blank'>zebra:paired</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_zebra_bicolour.png' style='width: 3rem; height: 3rem'> *This crossing has zebra markings in alternating colours* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:bicolour' target='_blank'>zebra:bicolour</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_zebra_double.png' style='width: 3rem; height: 3rem'> *This crossing has double zebra markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:double' target='_blank'>zebra:double</a>
- *This crossing has pictograms on the road* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dpictograms' target='_blank'>pictograms</a>
- *This crossing has lines on either side of the crossing, along with bars connecting them, with an interruption in every bar* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:paired' target='_blank'>ladder:paired</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_lines_paired.png' style='width: 3rem; height: 3rem'> *This crossing has double lines on either side of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines:paired' target='_blank'>lines:paired</a>
### crossing-bicycle-allowed

View file

@ -17,7 +17,7 @@ Crossings for pedestrians and cyclists
4. [Supported attributes](#supported-attributes)
- [images](#images)
- [crossing-type](#crossing-type)
- [crossing-is-zebra](#crossing-is-zebra)
- [markings](#markings)
- [crossing-bicycle-allowed](#crossing-bicycle-allowed)
- [crossing-has-island](#crossing-has-island)
- [crossing-tactile](#crossing-tactile)
@ -55,8 +55,8 @@ Elements must match the expression **<a href='https://wiki.openstreetmap.org/wik
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing](https://wiki.openstreetmap.org/wiki/Key:crossing) | Multiple choice | [uncontrolled](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled) [traffic_signals](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dtraffic_signals) [unmarked](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dunmarked) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing_ref#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing_ref/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing_ref](https://wiki.openstreetmap.org/wiki/Key:crossing_ref) | Multiple choice | [zebra](https://wiki.openstreetmap.org/wiki/Tag:crossing_ref%3Dzebra) [](https://wiki.openstreetmap.org/wiki/Tag:crossing_ref%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing](https://wiki.openstreetmap.org/wiki/Key:crossing) | Multiple choice | [uncontrolled](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled) [traffic_signals](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dtraffic_signals) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing:markings#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing%3Amarkings/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing:markings](https://wiki.openstreetmap.org/wiki/Key:crossing:markings) | [string](../SpecialInputElements.md#string) | [no](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dno) [zebra](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra) [lines](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines) [ladder](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder) [dashes](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddashes) [dots](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddots) [surface](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dsurface) [ladder:skewed](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:skewed) [zebra:paired](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:paired) [zebra:bicolour](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:bicolour) [zebra:double](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:double) [pictograms](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dpictograms) [ladder:paired](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:paired) [lines:paired](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines:paired) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/bicycle#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/bicycle/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [bicycle](https://wiki.openstreetmap.org/wiki/Key:bicycle) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:bicycle%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:bicycle%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing:island#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing%3Aisland/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing:island](https://wiki.openstreetmap.org/wiki/Key:crossing:island) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:crossing:island%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:crossing:island%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/tactile_paving#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/tactile_paving/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [tactile_paving](https://wiki.openstreetmap.org/wiki/Key:tactile_paving) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:tactile_paving%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:tactile_paving%3Dno) |
@ -80,18 +80,30 @@ The question is `What kind of crossing is this?`
- *Crossing, without traffic lights* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled' target='_blank'>uncontrolled</a>
- *Crossing with traffic signals* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dtraffic_signals' target='_blank'>traffic_signals</a>
- *Zebra crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dzebra' target='_blank'>zebra</a>. _This option cannot be chosen as answer_
- *Crossing without crossing markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dunmarked' target='_blank'>unmarked</a>
- *Crossing without crossing markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dunmarked' target='_blank'>unmarked</a>. _This option cannot be chosen as answer_
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:highway' target='_blank'>highway</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:highway%3Dcrossing' target='_blank'>crossing</a>
### crossing-is-zebra
### markings
The question is `Is this is a zebra crossing?`
The question is `What kind of markings does this crossing have?`
*This crossing has {crossing:markings} markings* is shown if `crossing:markings` is set
- *This is a zebra crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing_ref' target='_blank'>crossing_ref</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing_ref%3Dzebra' target='_blank'>zebra</a>
- *This is not a zebra crossing* is shown if with crossing_ref=
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled' target='_blank'>uncontrolled</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/crossing_unmarked.png' style='width: 3rem; height: 3rem'> *This crossing has no markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dno' target='_blank'>no</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_zebra.png' style='width: 3rem; height: 3rem'> *This crossing has zebra markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra' target='_blank'>zebra</a>
- *This crossing has markings of an unknown type* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dyes' target='_blank'>yes</a>. _This option cannot be chosen as answer_
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_lines.png' style='width: 3rem; height: 3rem'> *This crossings has lines on either side of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines' target='_blank'>lines</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_ladder.png' style='width: 3rem; height: 3rem'> *This crossing has lines on either side of the crossing, along with bars connecting them* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder' target='_blank'>ladder</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_dashes.png' style='width: 3rem; height: 3rem'> *This crossing has dashed lines on either sides of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddashes' target='_blank'>dashes</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_dots.png' style='width: 3rem; height: 3rem'> *This crossing has dotted lines on either sides of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddots' target='_blank'>dots</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_surface.png' style='width: 3rem; height: 3rem'> *This crossing is marked by using a different coloured surface* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dsurface' target='_blank'>surface</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_ladder_skewed.png' style='width: 3rem; height: 3rem'> *This crossing has lines on either side of the crossing, along with angled bars connecting them* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:skewed' target='_blank'>ladder:skewed</a>
- *This crossing has zebra markings with an interruption in every bar* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:paired' target='_blank'>zebra:paired</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_zebra_bicolour.png' style='width: 3rem; height: 3rem'> *This crossing has zebra markings in alternating colours* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:bicolour' target='_blank'>zebra:bicolour</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_zebra_double.png' style='width: 3rem; height: 3rem'> *This crossing has double zebra markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:double' target='_blank'>zebra:double</a>
- *This crossing has pictograms on the road* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dpictograms' target='_blank'>pictograms</a>
- *This crossing has lines on either side of the crossing, along with bars connecting them, with an interruption in every bar* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:paired' target='_blank'>ladder:paired</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_lines_paired.png' style='width: 3rem; height: 3rem'> *This crossing has double lines on either side of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines:paired' target='_blank'>lines:paired</a>
### crossing-bicycle-allowed

View file

@ -7,6 +7,7 @@ All infrastructure that someone can cycle over, accompanied with questions about
- This layer is shown at zoomlevel **16** and higher
- This layer is needed as dependency for layer [barrier](#barrier)
- This layer is needed as dependency for layer [crossings](#crossings)
- This layer is needed as dependency for layer [cyclist_waiting_aid](#cyclist_waiting_aid)
- This layer is needed as dependency for layer [kerbs](#kerbs)
- This layer is needed as dependency for layer [rainbow_crossings](#rainbow_crossings)
- This layer is needed as dependency for layer [crossings_no_traffic_lights](#crossings_no_traffic_lights)

View file

@ -0,0 +1,99 @@
[//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources)
# cyclist_waiting_aid
Various pieces of infrastructure that aid cyclists while they wait at a traffic light.
- This layer is shown at zoomlevel **0** and higher
- This layer will automatically load [cycleways_and_roads](./cycleways_and_roads.md) into the layout as it depends on it: preset `a cyclist waiting aid` snaps to this layer (cyclist_waiting_aid.presets[0])
## Table of contents
1. [Themes using this layer](#themes-using-this-layer)
2. [Presets](#presets)
3. [Basic tags for this layer](#basic-tags-for-this-layer)
4. [Supported attributes](#supported-attributes)
- [images](#images)
- [type](#type)
- [side](#side)
- [direction](#direction)
- [leftover-questions](#leftover-questions)
- [delete-button](#delete-button)
- [lod](#lod)
## Themes using this layer
- [cycle_infra](https://mapcomplete.org/cycle_infra)
- [personal](https://mapcomplete.org/personal)
## Presets
The following options to create new points are included:
- **a cyclist waiting aid** which has the following tags:<a href='https://wiki.openstreetmap.org/wiki/Key:highway' target='_blank'>highway</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:highway%3Dcyclist_waiting_aid' target='_blank'>cyclist_waiting_aid</a> (snaps to layers `cycleways_and_roads`)
## Basic tags for this layer
Elements must match the expression **<a href='https://wiki.openstreetmap.org/wiki/Key:highway' target='_blank'>highway</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:highway%3Dcyclist_waiting_aid' target='_blank'>cyclist_waiting_aid</a>**
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22highway%22%3D%22cyclist_waiting_aid%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
## Supported attributes
**Warning:**,this quick overview is incomplete,
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/side#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/side/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [side](https://wiki.openstreetmap.org/wiki/Key:side) | Multiple choice | [left](https://wiki.openstreetmap.org/wiki/Tag:side%3Dleft) [right](https://wiki.openstreetmap.org/wiki/Tag:side%3Dright) [both](https://wiki.openstreetmap.org/wiki/Tag:side%3Dboth) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/direction#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/direction/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [direction](https://wiki.openstreetmap.org/wiki/Key:direction) | Multiple choice | [forward](https://wiki.openstreetmap.org/wiki/Tag:direction%3Dforward) [backward](https://wiki.openstreetmap.org/wiki/Tag:direction%3Dbackward) |
### 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_
*{image_carousel()}{image_upload()}*
### type
The question is `What kind of components does this waiting aid have?`
- *There is a board or peg to rest your foot on here* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:footrest' target='_blank'>footrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:footrest%3Dyes' target='_blank'>yes</a>. Unselecting this answer will add footrest=
- *There is a rail or a handle to hold on to here* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:handrest' target='_blank'>handrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:handrest%3Dyes' target='_blank'>yes</a>. Unselecting this answer will add handrest=
### side
The question is `On what side of the road is this located?`
- *This waiting aid is located on the left side* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:side' target='_blank'>side</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:side%3Dleft' target='_blank'>left</a>
- *This waiting aid is located on the right side* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:side' target='_blank'>side</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:side%3Dright' target='_blank'>right</a>
- *There are waiting aids on both sides of the road* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:side' target='_blank'>side</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:side%3Dboth' target='_blank'>both</a>
### direction
_This tagrendering has no question and is thus read-only_
*This waiting aid can be used when going in {direction} direction*
- *This waiting aid can be used when going forward on this way* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:direction' target='_blank'>direction</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:direction%3Dforward' target='_blank'>forward</a>
- *This waiting aid can be used when going backward on this way* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:direction' target='_blank'>direction</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:direction%3Dbackward' target='_blank'>backward</a>
This tagrendering is only visible in the popup if the following condition is met: direction~.+
### leftover-questions
_This tagrendering has no question and is thus read-only_
*{questions( ,)}*
### delete-button
_This tagrendering has no question and is thus read-only_
*{delete_button()}*
### lod
_This tagrendering has no question and is thus read-only_
*{linked_data_from_website()}*
This tagrendering has labels
`added_by_default`
This document is autogenerated from [assets/layers/cyclist_waiting_aid/cyclist_waiting_aid.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/cyclist_waiting_aid/cyclist_waiting_aid.json)

View file

@ -150,10 +150,10 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| specialty.0 | *What is this doctor specialized in?* (default) | |
| specialty.1 | This is a general practitioner | healthcare:speciality=general |
| specialty.2 | This is a gynaecologist | healthcare:speciality=gynaecology |
| specialty.3 | This is a psychiatrist | healthcare:speciality=psychiatry |
| specialty.4 | This is a paediatrician | healthcare:speciality=paediatrics |
| specialty.1 | This is a general practitioner | healthcare:speciality~^(.+;)?general(;.+)$ |
| specialty.2 | This is a gynaecologist | healthcare:speciality~^(.+;)?gynaecology(;.+)$ |
| specialty.3 | This is a psychiatrist | healthcare:speciality~^(.+;)?psychiatry(;.+)$ |
| specialty.4 | This is a paediatrician | healthcare:speciality~^(.+;)?paediatrics(;.+)$ |

View file

@ -707,7 +707,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -720,7 +720,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -33,6 +33,7 @@ Layer showing memorial plaques, based upon a unofficial theme. Can be expanded t
- [move-button](#move-button)
- [delete-button](#delete-button)
- [lod](#lod)
5. [Filters](#filters)
## Themes using this layer
@ -264,5 +265,27 @@ _This tagrendering has no question and is thus read-only_
This tagrendering has labels
`added_by_default`
## Filters
| id | question | osmTags |
-----|-----|----- |
| memorial-type.0 | *What type of memorial is this?* (default) | |
| memorial-type.1 | This is a statue | memorial=statue |
| memorial-type.2 | This is a plaque | memorial=plaque |
| memorial-type.3 | This is a commemorative bench | memorial=bench |
| memorial-type.4 | This is a ghost bike - a bicycle painted white to remember a cyclist whom deceased because of a car crash | memorial=ghost_bike |
| memorial-type.5 | This is a stolperstein (stumbing stone) | memorial=stolperstein |
| memorial-type.6 | This is a stele | memorial=stele |
| memorial-type.7 | This is a memorial stone | memorial=stone |
| memorial-type.8 | This is a bust | memorial=bust |
| memorial-type.9 | This is a sculpture | memorial=sculpture |
| memorial-type.10 | This is an obelisk | memorial=obelisk |
| memorial-type.11 | This is a cross | memorial=cross |
| memorial-type.12 | This is a blue plaque | memorial=blue_plaque |
| memorial-type.13 | This is a historic tank, permanently placed in public space as memorial | memorial=tank |
| memorial-type.14 | This is a memorial tree | memorial=tree |
| memorial-type.15 | This is a gravestone; the person is buried here | historic=tomb |
This document is autogenerated from [assets/layers/memorial/memorial.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/memorial/memorial.json)

View file

@ -227,7 +227,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| fee.0 | *Does one have to pay to use this playground?* (default) | |
| fee.1 | Free to use | fee=no |
| fee.1 | Free to use | fee=no | fee= |
| fee.2 | Paid playground | fee=yes |

View file

@ -14,7 +14,9 @@ A layer showing post offices.
2. [Basic tags for this layer](#basic-tags-for-this-layer)
3. [Supported attributes](#supported-attributes)
- [images](#images)
- [minimap](#minimap)
- [phone](#phone)
- [email](#email)
- [website](#website)
- [opening_hours](#opening_hours)
- [Opening hours](#opening-hours)
- [post_partner](#post_partner)
@ -50,6 +52,9 @@ Elements must match **all** of the following expressions:
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/phone#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/phone/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/email#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/email/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/website#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/website/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/opening_hours#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/opening_hours/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/post_office#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/post_office/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [post_office](https://wiki.openstreetmap.org/wiki/Key:post_office) | Multiple choice | [post_partner](https://wiki.openstreetmap.org/wiki/Tag:post_office%3Dpost_partner) [](https://wiki.openstreetmap.org/wiki/Tag:post_office%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/brand#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/brand/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [nsi](../SpecialInputElements.md#nsi) | |
@ -66,10 +71,36 @@ This block shows the known images which are linked with the `image`-keys, but al
_This tagrendering has no question and is thus read-only_
*{image_carousel()}{image_upload()}*
### minimap
### phone
_This tagrendering has no question and is thus read-only_
*{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }*
The question is `What is the phone number of {title()}?`
*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/questions/phone.svg' style='width: 3rem; height: 3rem'> *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### email
The question is `What is the email address of {title()}?`
*<a href='mailto:{email}' target='_blank' rel='noopener'>{email}</a>* is shown if `email` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/svg/envelope.svg' style='width: 3rem; height: 3rem'> *<a href='mailto:{contact:email}' target='_blank' rel='noopener'>{contact:email}</a>* is shown if with contact:email~.+. _This option cannot be chosen as answer_
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/svg/envelope.svg' style='width: 3rem; height: 3rem'> *<a href='mailto:{operator:email}' target='_blank' rel='noopener'>{operator:email}</a>* is shown if with operator:email~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### website
The question is `What is the website of {title()}?`
*<a href='{website}' rel='nofollow noopener noreferrer' target='_blank'>{website}</a>* is shown if `website` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/icons/website.svg' style='width: 3rem; height: 3rem'> *<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>* is shown if with contact:website~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### opening_hours

View file

@ -5,6 +5,7 @@
The layer showing postboxes.
- This layer is shown at zoomlevel **12** and higher
- This layer will automatically load [walls_and_buildings](./walls_and_buildings.md) into the layout as it depends on it: preset `a postbox on a wall` snaps to this layer (postboxes.presets[1])
## Table of contents
@ -14,6 +15,7 @@ The layer showing postboxes.
4. [Supported attributes](#supported-attributes)
- [images](#images)
- [minimap](#minimap)
- [operator](#operator)
- [leftover-questions](#leftover-questions)
- [move-button](#move-button)
- [delete-button](#delete-button)
@ -29,6 +31,7 @@ The layer showing postboxes.
The following options to create new points are included:
- **a postbox** which has the following tags:<a href='https://wiki.openstreetmap.org/wiki/Key:amenity' target='_blank'>amenity</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dpost_box' target='_blank'>post_box</a>
- **a postbox on a wall** which has the following tags:<a href='https://wiki.openstreetmap.org/wiki/Key:amenity' target='_blank'>amenity</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dpost_box' target='_blank'>post_box</a> (snaps to layers `walls_and_buildings`)
## Basic tags for this layer
@ -38,6 +41,12 @@ Elements must match the expression **<a href='https://wiki.openstreetmap.org/wik
## Supported attributes
**Warning:**,this quick overview is incomplete,
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/operator#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/operator/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) | |
### 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_
@ -48,6 +57,11 @@ _This tagrendering has no question and is thus read-only_
_This tagrendering has no question and is thus read-only_
*{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }*
### operator
The question is `Who operates this postbox?`
*This postbox is operated by <b>{operator}</b>* is shown if `operator` is set
### leftover-questions
_This tagrendering has no question and is thus read-only_

View file

@ -13,7 +13,9 @@ A layer showing post offices.
3. [Basic tags for this layer](#basic-tags-for-this-layer)
4. [Supported attributes](#supported-attributes)
- [images](#images)
- [minimap](#minimap)
- [phone](#phone)
- [email](#email)
- [website](#website)
- [opening_hours](#opening_hours)
- [Opening hours](#opening-hours)
- [post_partner](#post_partner)
@ -57,6 +59,9 @@ Elements must match **any** of the following expressions:
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/phone#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/phone/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/email#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/email/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/website#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/website/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/opening_hours#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/opening_hours/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/post_office#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/post_office/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [post_office](https://wiki.openstreetmap.org/wiki/Key:post_office) | Multiple choice | [post_partner](https://wiki.openstreetmap.org/wiki/Tag:post_office%3Dpost_partner) [](https://wiki.openstreetmap.org/wiki/Tag:post_office%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/brand#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/brand/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [nsi](../SpecialInputElements.md#nsi) | |
@ -73,10 +78,36 @@ This block shows the known images which are linked with the `image`-keys, but al
_This tagrendering has no question and is thus read-only_
*{image_carousel()}{image_upload()}*
### minimap
### phone
_This tagrendering has no question and is thus read-only_
*{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }*
The question is `What is the phone number of {title()}?`
*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/questions/phone.svg' style='width: 3rem; height: 3rem'> *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### email
The question is `What is the email address of {title()}?`
*<a href='mailto:{email}' target='_blank' rel='noopener'>{email}</a>* is shown if `email` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/svg/envelope.svg' style='width: 3rem; height: 3rem'> *<a href='mailto:{contact:email}' target='_blank' rel='noopener'>{contact:email}</a>* is shown if with contact:email~.+. _This option cannot be chosen as answer_
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/svg/envelope.svg' style='width: 3rem; height: 3rem'> *<a href='mailto:{operator:email}' target='_blank' rel='noopener'>{operator:email}</a>* is shown if with operator:email~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### website
The question is `What is the website of {title()}?`
*<a href='{website}' rel='nofollow noopener noreferrer' target='_blank'>{website}</a>* is shown if `website` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/icons/website.svg' style='width: 3rem; height: 3rem'> *<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>* is shown if with contact:website~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### opening_hours

View file

@ -14,15 +14,16 @@ Schools giving primary and secondary education and post-secondary, non-tertiary
2. [Presets](#presets)
3. [Basic tags for this layer](#basic-tags-for-this-layer)
4. [Supported attributes](#supported-attributes)
- [images](#images)
- [school-name](#school-name)
- [phone](#phone)
- [email](#email)
- [website](#website)
- [capacity](#capacity)
- [education-level-belgium](#education-level-belgium)
- [gender](#gender)
- [pedagogy](#pedagogy)
- [target-audience](#target-audience)
- [website](#website)
- [phone](#phone)
- [email](#email)
- [school-language](#school-language)
- [leftover-questions](#leftover-questions)
- [move-button](#move-button)
@ -53,20 +54,56 @@ Elements must match the expression **<a href='https://wiki.openstreetmap.org/wik
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/name#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/name/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/phone#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/phone/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/email#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/email/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/website#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/website/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/capacity#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/capacity/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity) | [pnat](../SpecialInputElements.md#pnat) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/school#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/school/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [school](https://wiki.openstreetmap.org/wiki/Key:school) | Multiple choice | [kindergarten](https://wiki.openstreetmap.org/wiki/Tag:school%3Dkindergarten) [primary](https://wiki.openstreetmap.org/wiki/Tag:school%3Dprimary) [secondary](https://wiki.openstreetmap.org/wiki/Tag:school%3Dsecondary) [lower_secondary](https://wiki.openstreetmap.org/wiki/Tag:school%3Dlower_secondary) [middle_secondary](https://wiki.openstreetmap.org/wiki/Tag:school%3Dmiddle_secondary) [upper_secondary](https://wiki.openstreetmap.org/wiki/Tag:school%3Dupper_secondary) [post_secondary](https://wiki.openstreetmap.org/wiki/Tag:school%3Dpost_secondary) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/school:gender#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/school%3Agender/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [school:gender](https://wiki.openstreetmap.org/wiki/Key:school:gender) | Multiple choice | [mixed](https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dmixed) [separated](https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dseparated) [male](https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dmale) [female](https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dfemale) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/pedagogy#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/pedagogy/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [pedagogy](https://wiki.openstreetmap.org/wiki/Key:pedagogy) | [string](../SpecialInputElements.md#string) | [mainstream](https://wiki.openstreetmap.org/wiki/Tag:pedagogy%3Dmainstream) [montessori](https://wiki.openstreetmap.org/wiki/Tag:pedagogy%3Dmontessori) [freinet](https://wiki.openstreetmap.org/wiki/Tag:pedagogy%3Dfreinet) [jenaplan](https://wiki.openstreetmap.org/wiki/Tag:pedagogy%3Djenaplan) [waldorf](https://wiki.openstreetmap.org/wiki/Tag:pedagogy%3Dwaldorf) [dalton](https://wiki.openstreetmap.org/wiki/Tag:pedagogy%3Ddalton) [outdoor](https://wiki.openstreetmap.org/wiki/Tag:pedagogy%3Doutdoor) [reggio_emilia](https://wiki.openstreetmap.org/wiki/Tag:pedagogy%3Dreggio_emilia) [sudbury](https://wiki.openstreetmap.org/wiki/Tag:pedagogy%3Dsudbury) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/school:for#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/school%3Afor/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [school:for](https://wiki.openstreetmap.org/wiki/Key:school:for) | [string](../SpecialInputElements.md#string) | [mainstream](https://wiki.openstreetmap.org/wiki/Tag:school:for%3Dmainstream) [adults](https://wiki.openstreetmap.org/wiki/Tag:school:for%3Dadults) [autism](https://wiki.openstreetmap.org/wiki/Tag:school:for%3Dautism) [learning_disabilities](https://wiki.openstreetmap.org/wiki/Tag:school:for%3Dlearning_disabilities) [blind](https://wiki.openstreetmap.org/wiki/Tag:school:for%3Dblind) [deaf](https://wiki.openstreetmap.org/wiki/Tag:school:for%3Ddeaf) [disabilities](https://wiki.openstreetmap.org/wiki/Tag:school:for%3Ddisabilities) [special_needs](https://wiki.openstreetmap.org/wiki/Tag:school:for%3Dspecial_needs) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/website#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/website/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/phone#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/phone/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/email#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/email/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) | |
### 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_
*{image_carousel()}{image_upload()}*
### school-name
The question is `What is the name of this school?`
*This school is named {name}* is shown if `name` is set
### phone
The question is `What is the phone number of {title()}?`
*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/questions/phone.svg' style='width: 3rem; height: 3rem'> *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### email
The question is `What is the email address of {title()}?`
*<a href='mailto:{email}' target='_blank' rel='noopener'>{email}</a>* is shown if `email` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/svg/envelope.svg' style='width: 3rem; height: 3rem'> *<a href='mailto:{contact:email}' target='_blank' rel='noopener'>{contact:email}</a>* is shown if with contact:email~.+. _This option cannot be chosen as answer_
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/svg/envelope.svg' style='width: 3rem; height: 3rem'> *<a href='mailto:{operator:email}' target='_blank' rel='noopener'>{operator:email}</a>* is shown if with operator:email~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### website
The question is `What is the website of {title()}?`
*<a href='{website}' rel='nofollow noopener noreferrer' target='_blank'>{website}</a>* is shown if `website` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/icons/website.svg' style='width: 3rem; height: 3rem'> *<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>* is shown if with contact:website~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### capacity
The question is `How much students can at most enroll in this school?`
@ -127,37 +164,6 @@ The question is `Does this school target students with a special need? Which str
This tagrendering is only visible in the popup if the following condition is met: school:for~.+
### website
The question is `What is the website of {title()}?`
*<a href='{website}' rel='nofollow noopener noreferrer' target='_blank'>{website}</a>* is shown if `website` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/icons/website.svg' style='width: 3rem; height: 3rem'> *<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>* is shown if with contact:website~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### phone
The question is `What is the phone number of {title()}?`
*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/questions/phone.svg' style='width: 3rem; height: 3rem'> *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### email
The question is `What is the email address of {title()}?`
*<a href='mailto:{email}' target='_blank' rel='noopener'>{email}</a>* is shown if `email` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/svg/envelope.svg' style='width: 3rem; height: 3rem'> *<a href='mailto:{contact:email}' target='_blank' rel='noopener'>{contact:email}</a>* is shown if with contact:email~.+. _This option cannot be chosen as answer_
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/svg/envelope.svg' style='width: 3rem; height: 3rem'> *<a href='mailto:{operator:email}' target='_blank' rel='noopener'>{operator:email}</a>* is shown if with operator:email~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### school-language
_This tagrendering has no question and is thus read-only_
@ -196,6 +202,17 @@ This tagrendering has labels
| pedagogy.8 | This school uses the Reggio Emilia approach | pedagogy=reggio_emilia |
| pedagogy.9 | This school uses the Sudbury system | pedagogy=sudbury |
| id | question | osmTags |
-----|-----|----- |
| education-level-belgium.0 | *What level of education is given on this school?* (default) | |
| education-level-belgium.1 | This is a school with a kindergarten section where young kids receive some education which prepares reading and writing. | school~^(.+;)?kindergarten(;.+)$ |
| education-level-belgium.2 | This is a school where one learns primary skills such as basic literacy and numerical skills. <div class='subtle'>Pupils typically enroll from 6 years old till 12 years old</div> | school~^(.+;)?primary(;.+)$ |
| education-level-belgium.3 | This is a secondary school which offers all grades | school~^(.+;)?secondary(;.+)$ |
| education-level-belgium.4 | This is a secondary school which does <i>not</i> have all grades, but offers <b>first and second</b> grade | school~^(.+;)?lower_secondary(;.+)$ |
| education-level-belgium.5 | This is a secondary school which does <i>not</i> have all grades, but offers <b>third and fourth</b> grade | school~^(.+;)?middle_secondary(;.+)$ |
| education-level-belgium.6 | This is a secondary school which does <i>not</i> have all grades, but offers <b>fifth and sixth</b> grade | school~^(.+;)?upper_secondary(;.+)$ |
| education-level-belgium.7 | This school offers post-secondary education (e.g. a seventh or eight specialisation year) | school~^(.+;)?post_secondary(;.+)$ |
This document is autogenerated from [assets/layers/school/school.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/school/school.json)

View file

@ -724,7 +724,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -708,7 +708,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -708,7 +708,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -699,7 +699,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -716,7 +716,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -185,7 +185,7 @@ This tagrendering has labels
| sport_pitch-sport.4 | Tennis is played here | sport=tennis |
| sport_pitch-sport.5 | Korfball is played here | sport=korfball |
| sport_pitch-sport.6 | Basketball is played here | sport=basket |
| sport_pitch-sport.7 | This is a skatepark | sport=skateboard |
| sport_pitch-sport.7 | This is a skatepark | sport~^(.+;)?skateboard(;.+)$ |

View file

@ -711,7 +711,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

127
Docs/Layers/tactile_map.md Normal file
View file

@ -0,0 +1,127 @@
[//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources)
# tactile_map
Layer showing tactile maps, which can be used by visually impaired people to navigate the city.
- This layer is shown at zoomlevel **10** and higher
## Table of contents
1. [Themes using this layer](#themes-using-this-layer)
2. [Presets](#presets)
3. [Basic tags for this layer](#basic-tags-for-this-layer)
4. [Supported attributes](#supported-attributes)
- [images](#images)
- [description](#description)
- [braille](#braille)
- [braille_languages](#braille_languages)
- [embossed_letters](#embossed_letters)
- [embossed_letters_languages](#embossed_letters_languages)
- [website](#website)
- [leftover-questions](#leftover-questions)
- [move-button](#move-button)
- [delete-button](#delete-button)
- [lod](#lod)
## Themes using this layer
- [blind_osm](https://mapcomplete.org/blind_osm)
- [personal](https://mapcomplete.org/personal)
## Presets
The following options to create new points are included:
- **a tactile map** which has the following tags:<a href='https://wiki.openstreetmap.org/wiki/Key:tourism' target='_blank'>tourism</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:tourism%3Dinformation' target='_blank'>information</a> & <a href='https://wiki.openstreetmap.org/wiki/Key:information' target='_blank'>information</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:information%3Dtactile_map' target='_blank'>tactile_map</a>
## Basic tags for this layer
Elements must match the expression **<a href='https://wiki.openstreetmap.org/wiki/Key:information' target='_blank'>information</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:information%3Dtactile_map' target='_blank'>tactile_map</a>**
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22information%22%3D%22tactile_map%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
## Supported attributes
**Warning:**,this quick overview is incomplete,
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/blind:description:en#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/blind%3Adescription%3Aen/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [blind:description:en](https://wiki.openstreetmap.org/wiki/Key:blind:description:en) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/braille#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/braille/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [braille](https://wiki.openstreetmap.org/wiki/Key:braille) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:braille%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:braille%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/embossed_letters#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/embossed_letters/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [embossed_letters](https://wiki.openstreetmap.org/wiki/Key:embossed_letters) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/website#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/website/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | |
### 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_
*{image_carousel()}{image_upload()}*
### description
The question is `What does this tactile map show?`
*Description: {blind:description:en}.* is shown if `blind:description:en` is set
### braille
The question is `Is there braille text on this tactile map?`
- *This tactile map has braille text.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:braille' target='_blank'>braille</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:braille%3Dyes' target='_blank'>yes</a>
- *This tactile map does not have braille text.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:braille' target='_blank'>braille</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:braille%3Dno' target='_blank'>no</a>
### braille_languages
_This tagrendering has no question and is thus read-only_
*{language_chooser(tactile_writing:braille,In which languages is the braille text on this tactile map?,This map has braille text in &LBRACElanguage&RBRACE,This map has braille text in &LBRACElanguage&RBRACE,,)}*
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:braille' target='_blank'>braille</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:braille%3Dyes' target='_blank'>yes</a>
### embossed_letters
The question is `Are there embossed letters on this tactile map?`
- *This tactile map has embossed letters.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:embossed_letters' target='_blank'>embossed_letters</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dyes' target='_blank'>yes</a>
- *This tactile map does not have embossed letters.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:embossed_letters' target='_blank'>embossed_letters</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dno' target='_blank'>no</a>
### embossed_letters_languages
_This tagrendering has no question and is thus read-only_
*{language_chooser(tactile_writing:embossed,In which languages are the embossed letters on this tactile map?,This map has embossed letters in &LBRACElanguage&RBRACE,This map has embossed letters in &LBRACElanguage&RBRACE,,)}*
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:embossed_letters' target='_blank'>embossed_letters</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dyes' target='_blank'>yes</a>
### website
The question is `What is the website of {title()}?`
*<a href='{website}' rel='nofollow noopener noreferrer' target='_blank'>{website}</a>* is shown if `website` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/icons/website.svg' style='width: 3rem; height: 3rem'> *<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>* is shown if with contact:website~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### leftover-questions
_This tagrendering has no question and is thus read-only_
*{questions( ,)}*
### move-button
_This tagrendering has no question and is thus read-only_
*{move_button()}*
### delete-button
_This tagrendering has no question and is thus read-only_
*{delete_button()}*
### lod
_This tagrendering has no question and is thus read-only_
*{linked_data_from_website()}*
This tagrendering has labels
`added_by_default`
This document is autogenerated from [assets/layers/tactile_map/tactile_map.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/tactile_map/tactile_map.json)

View file

@ -0,0 +1,134 @@
[//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources)
# tactile_model
Layer showing tactile models, three-dimensional models of the surrounding area.
- This layer is shown at zoomlevel **10** and higher
## Table of contents
1. [Themes using this layer](#themes-using-this-layer)
2. [Presets](#presets)
3. [Basic tags for this layer](#basic-tags-for-this-layer)
4. [Supported attributes](#supported-attributes)
- [images](#images)
- [description](#description)
- [braille](#braille)
- [braille_languages](#braille_languages)
- [embossed_letters](#embossed_letters)
- [embossed_letters_languages](#embossed_letters_languages)
- [scale](#scale)
- [website](#website)
- [leftover-questions](#leftover-questions)
- [move-button](#move-button)
- [delete-button](#delete-button)
- [lod](#lod)
## Themes using this layer
- [blind_osm](https://mapcomplete.org/blind_osm)
- [personal](https://mapcomplete.org/personal)
## Presets
The following options to create new points are included:
- **a tactile model** which has the following tags:<a href='https://wiki.openstreetmap.org/wiki/Key:tourism' target='_blank'>tourism</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:tourism%3Dinformation' target='_blank'>information</a> & <a href='https://wiki.openstreetmap.org/wiki/Key:information' target='_blank'>information</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:information%3Dtactile_model' target='_blank'>tactile_model</a>
## Basic tags for this layer
Elements must match the expression **<a href='https://wiki.openstreetmap.org/wiki/Key:information' target='_blank'>information</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:information%3Dtactile_model' target='_blank'>tactile_model</a>**
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22information%22%3D%22tactile_model%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
## Supported attributes
**Warning:**,this quick overview is incomplete,
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/blind:description:en#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/blind%3Adescription%3Aen/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [blind:description:en](https://wiki.openstreetmap.org/wiki/Key:blind:description:en) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/braille#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/braille/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [braille](https://wiki.openstreetmap.org/wiki/Key:braille) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:braille%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:braille%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/embossed_letters#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/embossed_letters/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [embossed_letters](https://wiki.openstreetmap.org/wiki/Key:embossed_letters) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/scale#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/scale/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [scale](https://wiki.openstreetmap.org/wiki/Key:scale) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/website#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/website/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | |
### 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_
*{image_carousel()}{image_upload()}*
### description
The question is `What does this tactile model show?`
*Description: {blind:description:en}.* is shown if `blind:description:en` is set
### braille
The question is `Is there a braille description?`
- *There is a braille description.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:braille' target='_blank'>braille</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:braille%3Dyes' target='_blank'>yes</a>
- *There is no braille description.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:braille' target='_blank'>braille</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:braille%3Dno' target='_blank'>no</a>
### braille_languages
_This tagrendering has no question and is thus read-only_
*{language_chooser(tactile_writing:braille,In which languages is there a braille description?,This model has a braille description in &LBRACElanguage&LPARENS&RPARENS&RBRACE,This model has a braille description in &LBRACElanguage&RBRACE,,)}*
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:braille' target='_blank'>braille</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:braille%3Dyes' target='_blank'>yes</a>
### embossed_letters
The question is `Are there embossed letters describing the model?`
- *There are embossed letters describing the model.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:embossed_letters' target='_blank'>embossed_letters</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dyes' target='_blank'>yes</a>
- *There are no embossed letters describing the model.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:embossed_letters' target='_blank'>embossed_letters</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dno' target='_blank'>no</a>
### embossed_letters_languages
_This tagrendering has no question and is thus read-only_
*{language_chooser(tactile_writing:embossed_letters,In which languages are there embossed letters?,This model has embossed letters in &LBRACElanguage&LPARENS&RPARENS&RBRACE,This model has embossed letters in &LBRACElanguage&RBRACE,,)}*
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:embossed_letters' target='_blank'>embossed_letters</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dyes' target='_blank'>yes</a>
### scale
The question is `What scale is the model?`
*The scale of this model is {scale}.* is shown if `scale` is set
### website
The question is `What is the website of {title()}?`
*<a href='{website}' rel='nofollow noopener noreferrer' target='_blank'>{website}</a>* is shown if `website` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/icons/website.svg' style='width: 3rem; height: 3rem'> *<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>* is shown if with contact:website~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### leftover-questions
_This tagrendering has no question and is thus read-only_
*{questions( ,)}*
### move-button
_This tagrendering has no question and is thus read-only_
*{move_button()}*
### delete-button
_This tagrendering has no question and is thus read-only_
*{delete_button()}*
### lod
_This tagrendering has no question and is thus read-only_
*{linked_data_from_website()}*
This tagrendering has labels
`added_by_default`
This document is autogenerated from [assets/layers/tactile_model/tactile_model.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/tactile_model/tactile_model.json)

View file

@ -16,6 +16,7 @@ Special builtin layer providing all walls and buildings. This layer is useful in
- This layer is needed as dependency for layer [defibrillator](#defibrillator)
- This layer is needed as dependency for layer [entrance](#entrance)
- This layer is needed as dependency for layer [ghostsign](#ghostsign)
- This layer is needed as dependency for layer [postboxes](#postboxes)
- This layer is needed as dependency for layer [surveillance_camera](#surveillance_camera)
- This layer is needed as dependency for layer [facadegardens](#facadegardens)
- This layer is needed as dependency for layer [parking_spaces_disabled](#parking_spaces_disabled)
@ -44,6 +45,7 @@ Special builtin layer providing all walls and buildings. This layer is useful in
- [memorials](https://mapcomplete.org/memorials)
- [onwheels](https://mapcomplete.org/onwheels)
- [personal](https://mapcomplete.org/personal)
- [postboxes](https://mapcomplete.org/postboxes)
- [stations](https://mapcomplete.org/stations)
- [surveillance](https://mapcomplete.org/surveillance)
- [walls_and_buildings](https://mapcomplete.org/walls_and_buildings)

View file

@ -662,18 +662,87 @@
},
{
"key": "crossing",
"description": "Layer 'Crossings' shows crossing=unmarked with a fixed text, namely 'Crossing without crossing markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind') (This is only shown if highway=crossing)",
"description": "Layer 'Crossings' shows crossing=unmarked with a fixed text, namely 'Crossing without crossing markings' (in the mapcomplete.org theme 'OSM for the blind') (This is only shown if highway=crossing)",
"value": "unmarked"
},
{
"key": "crossing_ref",
"description": "Layer 'Crossings' shows crossing_ref=zebra with a fixed text, namely 'This is a zebra crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind') (This is only shown if crossing=uncontrolled)",
"key": "crossing:markings",
"description": "Layer 'Crossings' shows and asks freeform values for key 'crossing:markings' (in the mapcomplete.org theme 'OSM for the blind')"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=no with a fixed text, namely 'This crossing has no markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "no"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra with a fixed text, namely 'This crossing has zebra markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "zebra"
},
{
"key": "crossing_ref",
"description": "Layer 'Crossings' shows crossing_ref= with a fixed text, namely 'This is not a zebra crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind') Picking this answer will delete the key crossing_ref. (This is only shown if crossing=uncontrolled)",
"value": ""
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=yes with a fixed text, namely 'This crossing has markings of an unknown type' (in the mapcomplete.org theme 'OSM for the blind')",
"value": "yes"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=lines with a fixed text, namely 'This crossings has lines on either side of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "lines"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=ladder with a fixed text, namely 'This crossing has lines on either side of the crossing, along with bars connecting them' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "ladder"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=dashes with a fixed text, namely 'This crossing has dashed lines on either sides of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "dashes"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=dots with a fixed text, namely 'This crossing has dotted lines on either sides of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "dots"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=surface with a fixed text, namely 'This crossing is marked by using a different coloured surface' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "surface"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=ladder:skewed with a fixed text, namely 'This crossing has lines on either side of the crossing, along with angled bars connecting them' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "ladder:skewed"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra:paired with a fixed text, namely 'This crossing has zebra markings with an interruption in every bar' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "zebra:paired"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra:bicolour with a fixed text, namely 'This crossing has zebra markings in alternating colours' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "zebra:bicolour"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra:double with a fixed text, namely 'This crossing has double zebra markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "zebra:double"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=pictograms with a fixed text, namely 'This crossing has pictograms on the road' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "pictograms"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=ladder:paired with a fixed text, namely 'This crossing has lines on either side of the crossing, along with bars connecting them, with an interruption in every bar' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "ladder:paired"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=lines:paired with a fixed text, namely 'This crossing has double lines on either side of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "lines:paired"
},
{
"key": "crossing:island",
@ -1291,6 +1360,132 @@
"key": "incline",
"description": "Layer 'Stairs' shows incline=down with a fixed text, namely 'The downward direction is {direction_absolute()}' (in the mapcomplete.org theme 'OSM for the blind')",
"value": "down"
},
{
"key": "information",
"description": "The MapComplete theme OSM for the blind has a layer Tactile Maps showing features with this tag",
"value": "tactile_map"
},
{
"key": "id",
"description": "Layer 'Tactile Maps' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'OSM for the blind') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))"
},
{
"key": "image",
"description": "The layer 'Tactile Maps allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "panoramax",
"description": "The layer 'Tactile Maps allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "mapillary",
"description": "The layer 'Tactile Maps allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "wikidata",
"description": "The layer 'Tactile Maps allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "wikipedia",
"description": "The layer 'Tactile Maps allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "blind:description:en",
"description": "Layer 'Tactile Maps' shows and asks freeform values for key 'blind:description:en' (in the mapcomplete.org theme 'OSM for the blind')"
},
{
"key": "braille",
"description": "Layer 'Tactile Maps' shows braille=yes with a fixed text, namely 'This tactile map has braille text.' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "yes"
},
{
"key": "braille",
"description": "Layer 'Tactile Maps' shows braille=no with a fixed text, namely 'This tactile map does not have braille text.' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "no"
},
{
"key": "embossed_letters",
"description": "Layer 'Tactile Maps' shows embossed_letters=yes with a fixed text, namely 'This tactile map has embossed letters.' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "yes"
},
{
"key": "embossed_letters",
"description": "Layer 'Tactile Maps' shows embossed_letters=no with a fixed text, namely 'This tactile map does not have embossed letters.' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "no"
},
{
"key": "website",
"description": "Layer 'Tactile Maps' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'OSM for the blind')"
},
{
"key": "contact:website",
"description": "Layer 'Tactile Maps' shows contact:website~.+ with a fixed text, namely '<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>' (in the mapcomplete.org theme 'OSM for the blind')"
},
{
"key": "information",
"description": "The MapComplete theme OSM for the blind has a layer Tactile Models showing features with this tag",
"value": "tactile_model"
},
{
"key": "id",
"description": "Layer 'Tactile Models' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'OSM for the blind') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))"
},
{
"key": "image",
"description": "The layer 'Tactile Models allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "panoramax",
"description": "The layer 'Tactile Models allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "mapillary",
"description": "The layer 'Tactile Models allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "wikidata",
"description": "The layer 'Tactile Models allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "wikipedia",
"description": "The layer 'Tactile Models allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "blind:description:en",
"description": "Layer 'Tactile Models' shows and asks freeform values for key 'blind:description:en' (in the mapcomplete.org theme 'OSM for the blind')"
},
{
"key": "braille",
"description": "Layer 'Tactile Models' shows braille=yes with a fixed text, namely 'There is a braille description.' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "yes"
},
{
"key": "braille",
"description": "Layer 'Tactile Models' shows braille=no with a fixed text, namely 'There is no braille description.' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "no"
},
{
"key": "embossed_letters",
"description": "Layer 'Tactile Models' shows embossed_letters=yes with a fixed text, namely 'There are embossed letters describing the model.' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "yes"
},
{
"key": "embossed_letters",
"description": "Layer 'Tactile Models' shows embossed_letters=no with a fixed text, namely 'There are no embossed letters describing the model.' and allows to pick this as a default answer (in the mapcomplete.org theme 'OSM for the blind')",
"value": "no"
},
{
"key": "scale",
"description": "Layer 'Tactile Models' shows and asks freeform values for key 'scale' (in the mapcomplete.org theme 'OSM for the blind')"
},
{
"key": "website",
"description": "Layer 'Tactile Models' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'OSM for the blind')"
},
{
"key": "contact:website",
"description": "Layer 'Tactile Models' shows contact:website~.+ with a fixed text, namely '<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>' (in the mapcomplete.org theme 'OSM for the blind')"
}
]
}

View file

@ -46,9 +46,14 @@
},
{
"key": "support",
"description": "Layer 'Clocks' shows support=wall_mounted with a fixed text, namely 'This clock is mounted on a wall' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks')",
"description": "Layer 'Clocks' shows support=wall_mounted with a fixed text, namely 'This clock is mounted on a wall, usually through a support perpendicular to the wall' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks')",
"value": "wall_mounted"
},
{
"key": "support",
"description": "Layer 'Clocks' shows support=wall with a fixed text, namely 'This clock is mounted directly on a wall' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks')",
"value": "wall"
},
{
"key": "support",
"description": "Layer 'Clocks' shows support=billboard with a fixed text, namely 'This clock is part of a billboard' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks')",
@ -79,19 +84,29 @@
"description": "Layer 'Clocks' shows display=unorthodox with a fixed text, namely 'This clock displays the time in a non-standard way, e.g using binary, water or something else' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks')",
"value": "unorthodox"
},
{
"key": "indoor",
"description": "Layer 'Clocks' shows indoor=yes with a fixed text, namely 'This clock is indoors' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks')",
"value": "yes"
},
{
"key": "indoor",
"description": "Layer 'Clocks' shows indoor=no with a fixed text, namely 'This clock is outdoors' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks')",
"value": "no"
},
{
"key": "visibility",
"description": "Layer 'Clocks' shows visibility=house with a fixed text, namely 'This clock is visible from about 5 meters away (small wall-mounted clock)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks')",
"description": "Layer 'Clocks' shows visibility=house with a fixed text, namely 'This clock is visible from about 5 meters away (small wall-mounted clock)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks') (This is only shown if indoor!=yes)",
"value": "house"
},
{
"key": "visibility",
"description": "Layer 'Clocks' shows visibility=street with a fixed text, namely 'This clock is visible from about 20 meters away (medium size billboard clock)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks')",
"description": "Layer 'Clocks' shows visibility=street with a fixed text, namely 'This clock is visible from about 20 meters away (medium size billboard clock)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks') (This is only shown if indoor!=yes)",
"value": "street"
},
{
"key": "visibility",
"description": "Layer 'Clocks' shows visibility=area with a fixed text, namely 'This clock is visible from more than 20 meters away (e.g. a church clock or station clock)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks')",
"description": "Layer 'Clocks' shows visibility=area with a fixed text, namely 'This clock is visible from more than 20 meters away (e.g. a church clock or station clock)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Clocks') (This is only shown if indoor!=yes)",
"value": "area"
},
{

View file

@ -777,18 +777,87 @@
},
{
"key": "crossing",
"description": "Layer 'Crossings' shows crossing=unmarked with a fixed text, namely 'Crossing without crossing markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure') (This is only shown if highway=crossing)",
"description": "Layer 'Crossings' shows crossing=unmarked with a fixed text, namely 'Crossing without crossing markings' (in the mapcomplete.org theme 'Bicycle infrastructure') (This is only shown if highway=crossing)",
"value": "unmarked"
},
{
"key": "crossing_ref",
"description": "Layer 'Crossings' shows crossing_ref=zebra with a fixed text, namely 'This is a zebra crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure') (This is only shown if crossing=uncontrolled)",
"key": "crossing:markings",
"description": "Layer 'Crossings' shows and asks freeform values for key 'crossing:markings' (in the mapcomplete.org theme 'Bicycle infrastructure')"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=no with a fixed text, namely 'This crossing has no markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "no"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra with a fixed text, namely 'This crossing has zebra markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "zebra"
},
{
"key": "crossing_ref",
"description": "Layer 'Crossings' shows crossing_ref= with a fixed text, namely 'This is not a zebra crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure') Picking this answer will delete the key crossing_ref. (This is only shown if crossing=uncontrolled)",
"value": ""
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=yes with a fixed text, namely 'This crossing has markings of an unknown type' (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "yes"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=lines with a fixed text, namely 'This crossings has lines on either side of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "lines"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=ladder with a fixed text, namely 'This crossing has lines on either side of the crossing, along with bars connecting them' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "ladder"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=dashes with a fixed text, namely 'This crossing has dashed lines on either sides of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "dashes"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=dots with a fixed text, namely 'This crossing has dotted lines on either sides of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "dots"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=surface with a fixed text, namely 'This crossing is marked by using a different coloured surface' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "surface"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=ladder:skewed with a fixed text, namely 'This crossing has lines on either side of the crossing, along with angled bars connecting them' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "ladder:skewed"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra:paired with a fixed text, namely 'This crossing has zebra markings with an interruption in every bar' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "zebra:paired"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra:bicolour with a fixed text, namely 'This crossing has zebra markings in alternating colours' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "zebra:bicolour"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra:double with a fixed text, namely 'This crossing has double zebra markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "zebra:double"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=pictograms with a fixed text, namely 'This crossing has pictograms on the road' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "pictograms"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=ladder:paired with a fixed text, namely 'This crossing has lines on either side of the crossing, along with bars connecting them, with an interruption in every bar' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "ladder:paired"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=lines:paired with a fixed text, namely 'This crossing has double lines on either side of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "lines:paired"
},
{
"key": "bicycle",
@ -994,6 +1063,70 @@
{
"key": "website",
"description": "Layer 'Bicycle counters' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Bicycle infrastructure')"
},
{
"key": "highway",
"description": "The MapComplete theme Bicycle infrastructure has a layer Cyclist Waiting Aids showing features with this tag",
"value": "cyclist_waiting_aid"
},
{
"key": "id",
"description": "Layer 'Cyclist Waiting Aids' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Bicycle infrastructure') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))"
},
{
"key": "image",
"description": "The layer 'Cyclist Waiting Aids allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "panoramax",
"description": "The layer 'Cyclist Waiting Aids allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "mapillary",
"description": "The layer 'Cyclist Waiting Aids allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "wikidata",
"description": "The layer 'Cyclist Waiting Aids allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "wikipedia",
"description": "The layer 'Cyclist Waiting Aids allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "footrest",
"description": "Layer 'Cyclist Waiting Aids' shows footrest=yes with a fixed text, namely 'There is a board or peg to rest your foot on here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "yes"
},
{
"key": "handrest",
"description": "Layer 'Cyclist Waiting Aids' shows handrest=yes with a fixed text, namely 'There is a rail or a handle to hold on to here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "yes"
},
{
"key": "side",
"description": "Layer 'Cyclist Waiting Aids' shows side=left with a fixed text, namely 'This waiting aid is located on the left side' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "left"
},
{
"key": "side",
"description": "Layer 'Cyclist Waiting Aids' shows side=right with a fixed text, namely 'This waiting aid is located on the right side' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "right"
},
{
"key": "side",
"description": "Layer 'Cyclist Waiting Aids' shows side=both with a fixed text, namely 'There are waiting aids on both sides of the road' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')",
"value": "both"
},
{
"key": "direction",
"description": "Layer 'Cyclist Waiting Aids' shows direction=forward with a fixed text, namely 'This waiting aid can be used when going forward on this way' (in the mapcomplete.org theme 'Bicycle infrastructure') (This is only shown if direction~.+)",
"value": "forward"
},
{
"key": "direction",
"description": "Layer 'Cyclist Waiting Aids' shows direction=backward with a fixed text, namely 'This waiting aid can be used when going backward on this way' (in the mapcomplete.org theme 'Bicycle infrastructure') (This is only shown if direction~.+)",
"value": "backward"
}
]
}

View file

@ -2222,11 +2222,6 @@
"description": "The MapComplete theme Cyclofix - a map for cyclists has a layer Bike cleaning service showing features with this tag",
"value": "bicycle_wash"
},
{
"key": "amenity",
"description": "The MapComplete theme Cyclofix - a map for cyclists has a layer Bike cleaning service showing features with this tag",
"value": "bike_wash"
},
{
"key": "id",
"description": "Layer 'Bike cleaning service' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))"
@ -2253,37 +2248,57 @@
},
{
"key": "service:bicycle:cleaning:charge",
"description": "Layer 'Bike cleaning service' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
"description": "Layer 'Bike cleaning service' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
},
{
"key": "service:bicycle:cleaning:fee",
"description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
"description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
"value": "no"
},
{
"key": "service:bicycle:cleaning:fee",
"description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
"description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
"value": "yes"
},
{
"key": "service:bicycle:cleaning:charge",
"description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
"description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
"value": ""
},
{
"key": "charge",
"description": "Layer 'Bike cleaning service' shows and asks freeform values for key 'charge' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity=bike_wash | amenity=bicycle_wash)"
"description": "Layer 'Bike cleaning service' shows and asks freeform values for key 'charge' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity=bicycle_wash)"
},
{
"key": "fee",
"description": "Layer 'Bike cleaning service' shows fee=no with a fixed text, namely 'This cleaning service is free to use' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity=bike_wash | amenity=bicycle_wash)",
"description": "Layer 'Bike cleaning service' shows fee=no with a fixed text, namely 'This cleaning service is free to use' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity=bicycle_wash)",
"value": "no"
},
{
"key": "fee",
"description": "Layer 'Bike cleaning service' shows fee=yes with a fixed text, namely 'There is a fee to use this cleaning service' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity=bike_wash | amenity=bicycle_wash)",
"description": "Layer 'Bike cleaning service' shows fee=yes with a fixed text, namely 'There is a fee to use this cleaning service' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity=bicycle_wash)",
"value": "yes"
},
{
"key": "automated",
"description": "Layer 'Bike cleaning service' shows automated=no with a fixed text, namely 'This is a manual bike washing station' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity=bicycle_wash)",
"value": "no"
},
{
"key": "automated",
"description": "Layer 'Bike cleaning service' shows automated=yes with a fixed text, namely 'This is an automated bike wash' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity=bicycle_wash)",
"value": "yes"
},
{
"key": "self_service",
"description": "Layer 'Bike cleaning service' shows self_service=yes with a fixed text, namely 'This cleaning service is self-service' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity=bicycle_wash)",
"value": "yes"
},
{
"key": "self_service",
"description": "Layer 'Bike cleaning service' shows self_service=no with a fixed text, namely 'This cleaning service is operated by an employee' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity=bicycle_wash)",
"value": "no"
},
{
"key": "amenity",
"description": "The MapComplete theme Cyclofix - a map for cyclists has a layer Bicycle rental showing features with this tag",

View file

@ -657,18 +657,87 @@
},
{
"key": "crossing",
"description": "Layer 'Crossings' shows crossing=unmarked with a fixed text, namely 'Crossing without crossing markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings') (This is only shown if highway=crossing)",
"description": "Layer 'Crossings' shows crossing=unmarked with a fixed text, namely 'Crossing without crossing markings' (in the mapcomplete.org theme 'Kerbs and crossings') (This is only shown if highway=crossing)",
"value": "unmarked"
},
{
"key": "crossing_ref",
"description": "Layer 'Crossings' shows crossing_ref=zebra with a fixed text, namely 'This is a zebra crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings') (This is only shown if crossing=uncontrolled)",
"key": "crossing:markings",
"description": "Layer 'Crossings' shows and asks freeform values for key 'crossing:markings' (in the mapcomplete.org theme 'Kerbs and crossings')"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=no with a fixed text, namely 'This crossing has no markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "no"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra with a fixed text, namely 'This crossing has zebra markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "zebra"
},
{
"key": "crossing_ref",
"description": "Layer 'Crossings' shows crossing_ref= with a fixed text, namely 'This is not a zebra crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings') Picking this answer will delete the key crossing_ref. (This is only shown if crossing=uncontrolled)",
"value": ""
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=yes with a fixed text, namely 'This crossing has markings of an unknown type' (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "yes"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=lines with a fixed text, namely 'This crossings has lines on either side of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "lines"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=ladder with a fixed text, namely 'This crossing has lines on either side of the crossing, along with bars connecting them' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "ladder"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=dashes with a fixed text, namely 'This crossing has dashed lines on either sides of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "dashes"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=dots with a fixed text, namely 'This crossing has dotted lines on either sides of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "dots"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=surface with a fixed text, namely 'This crossing is marked by using a different coloured surface' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "surface"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=ladder:skewed with a fixed text, namely 'This crossing has lines on either side of the crossing, along with angled bars connecting them' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "ladder:skewed"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra:paired with a fixed text, namely 'This crossing has zebra markings with an interruption in every bar' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "zebra:paired"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra:bicolour with a fixed text, namely 'This crossing has zebra markings in alternating colours' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "zebra:bicolour"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=zebra:double with a fixed text, namely 'This crossing has double zebra markings' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "zebra:double"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=pictograms with a fixed text, namely 'This crossing has pictograms on the road' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "pictograms"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=ladder:paired with a fixed text, namely 'This crossing has lines on either side of the crossing, along with bars connecting them, with an interruption in every bar' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "ladder:paired"
},
{
"key": "crossing:markings",
"description": "Layer 'Crossings' shows crossing:markings=lines:paired with a fixed text, namely 'This crossing has double lines on either side of the crossing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Kerbs and crossings')",
"value": "lines:paired"
},
{
"key": "bicycle",

File diff suppressed because it is too large Load diff

View file

@ -39,6 +39,10 @@
"key": "wikipedia",
"description": "The layer 'Postboxes allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
},
{
"key": "operator",
"description": "Layer 'Postboxes' shows and asks freeform values for key 'operator' (in the mapcomplete.org theme 'Postbox and Post Office Map')"
},
{
"key": "amenity",
"description": "The MapComplete theme Postbox and Post Office Map has a layer Post offices showing features with this tag",

View file

@ -26,10 +26,12 @@ you are building your theme.
6. [!~ Value should not match regex](#!~-value-should-not-match-regex)
7. [!~i~ Value does not match case-invariant regex](#!~i~-value-does-not-match-case-invariant-regex)
8. [~~ Key and value should match given regex](#~~-key-and-value-should-match-given-regex)
9. [:= Substitute ... {some_key} ... and match key](#=-substitute-...-{some_key}-...-and-match-key)
10. [!:= Substitute {some_key} should not match key](#!=-substitute-{some_key}-should-not-match-key)
11. [<= >= < > Logical comparators](#<=->=-<->-logical-comparators)
12. [Logical operators](#logical-operators)
9. [~i~~ Key and value should match a given regex; value is case-invariant](#~i~~-key-and-value-should-match-a-given-regex-value-is-case-invariant)
10. [!~i~~ Key and value should match a given regex; value is case-invariant](#!~i~~-key-and-value-should-match-a-given-regex-value-is-case-invariant)
11. [:= Substitute ... {some_key} ... and match key](#=-substitute-...-{some_key}-...-and-match-key)
12. [!:= Substitute {some_key} should not match key](#!=-substitute-{some_key}-should-not-match-key)
13. [<= >= < > Logical comparators](#<=->=-<->-logical-comparators)
14. [Logical operators](#logical-operators)
Example
-------
@ -112,6 +114,14 @@ A tag can also be tested against a regex with `key~i~regex`, where the case of t
Both the `key` and `value` part of this specification are interpreted as regexes, both the key and value musth completely match their respective regexes
## `~i~~` Key and value should match a given regex; value is case-invariant
Similar to ~~, except that the value is case-invariant
## `!~i~~` Key and value should match a given regex; value is case-invariant
Similar to !~~, except that the value is case-invariant
## `:=` Substitute `... {some_key} ...` and match `key`
**This is an advanced feature - use with caution**

View file

@ -54,7 +54,9 @@ Available languages:
- [Basic tags for this layer](#basic-tags-for-this-layer)
- [Supported attributes](#supported-attributes)
+ [images](#images)
+ [minimap](#minimap)
+ [phone](#phone)
+ [email](#email)
+ [website](#website)
+ [opening_hours](#opening_hours)
+ [Opening hours](#opening-hours)
+ [post_partner](#post_partner)
@ -171,6 +173,9 @@ Elements must match **all** of the following expressions:
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/phone#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/phone/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/email#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/email/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/website#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/website/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/opening_hours#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/opening_hours/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/post_office#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/post_office/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [post_office](https://wiki.openstreetmap.org/wiki/Key:post_office) | Multiple choice | [post_partner](https://wiki.openstreetmap.org/wiki/Tag:post_office%3Dpost_partner) [](https://wiki.openstreetmap.org/wiki/Tag:post_office%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/brand#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/brand/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [nsi](../SpecialInputElements.md#nsi) | |
@ -187,10 +192,36 @@ This block shows the known images which are linked with the `image`-keys, but al
_This tagrendering has no question and is thus read-only_
*{image_carousel()}{image_upload()}*
### minimap
### phone
_This tagrendering has no question and is thus read-only_
*{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }*
The question is `What is the phone number of {title()}?`
*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/questions/phone.svg' style='width: 3rem; height: 3rem'> *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### email
The question is `What is the email address of {title()}?`
*<a href='mailto:{email}' target='_blank' rel='noopener'>{email}</a>* is shown if `email` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/svg/envelope.svg' style='width: 3rem; height: 3rem'> *<a href='mailto:{contact:email}' target='_blank' rel='noopener'>{contact:email}</a>* is shown if with contact:email~.+. _This option cannot be chosen as answer_
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/svg/envelope.svg' style='width: 3rem; height: 3rem'> *<a href='mailto:{operator:email}' target='_blank' rel='noopener'>{operator:email}</a>* is shown if with operator:email~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### website
The question is `What is the website of {title()}?`
*<a href='{website}' rel='nofollow noopener noreferrer' target='_blank'>{website}</a>* is shown if `website` is set
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/icons/website.svg' style='width: 3rem; height: 3rem'> *<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>* is shown if with contact:website~.+. _This option cannot be chosen as answer_
This tagrendering has labels
`contact`
### opening_hours

View file

@ -14,6 +14,8 @@ This theme contains the following layers:
- [transit_stops](../Layers/transit_stops.md)
- [elevator](../Layers/elevator.md)
- [stairs](../Layers/stairs.md)
- [tactile_map](../Layers/tactile_map.md)
- [tactile_model](../Layers/tactile_model.md)
Available languages:

View file

@ -728,7 +728,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -756,7 +756,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -12,6 +12,7 @@ This theme contains the following layers:
- [barrier](../Layers/barrier.md)
- [crossings](../Layers/crossings.md)
- [bicycle_counter](../Layers/bicycle_counter.md)
- [cyclist_waiting_aid](../Layers/cyclist_waiting_aid.md)
Available languages:

View file

@ -33,6 +33,7 @@ Available languages:
- ca
- cs
- pt
- uk
# Layers defined in this theme configuration file
These layers can not be reused in different themes.

View file

@ -543,6 +543,25 @@ This tagrendering has labels
| artwork-artwork_type.12 | Tilework | artwork_type=tilework |
| artwork-artwork_type.13 | Woodcarving | artwork_type=woodcarving |
| id | question | osmTags |
-----|-----|----- |
| memorial-type.0 | *What type of memorial is this?* (default) | |
| memorial-type.1 | This is a statue | memorial=statue |
| memorial-type.2 | This is a plaque | memorial=plaque |
| memorial-type.3 | This is a commemorative bench | memorial=bench |
| memorial-type.4 | This is a ghost bike - a bicycle painted white to remember a cyclist whom deceased because of a car crash | memorial=ghost_bike |
| memorial-type.5 | This is a stolperstein (stumbing stone) | memorial=stolperstein |
| memorial-type.6 | This is a stele | memorial=stele |
| memorial-type.7 | This is a memorial stone | memorial=stone |
| memorial-type.8 | This is a bust | memorial=bust |
| memorial-type.9 | This is a sculpture | memorial=sculpture |
| memorial-type.10 | This is an obelisk | memorial=obelisk |
| memorial-type.11 | This is a cross | memorial=cross |
| memorial-type.12 | This is a blue plaque | memorial=blue_plaque |
| memorial-type.13 | This is a historic tank, permanently placed in public space as memorial | memorial=tank |
| memorial-type.14 | This is a memorial tree | memorial=tree |
| memorial-type.15 | This is a gravestone; the person is buried here | historic=tomb |
This document is autogenerated from [assets/themes/ghostsigns/ghostsigns.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/ghostsigns/ghostsigns.json)

View file

@ -1521,7 +1521,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -758,7 +758,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -38,7 +38,7 @@ Available languages:
- [Supported attributes](#supported-attributes)
+ [images](#images)
+ [crossing-type](#crossing-type)
+ [crossing-is-zebra](#crossing-is-zebra)
+ [markings](#markings)
+ [crossing-bicycle-allowed](#crossing-bicycle-allowed)
+ [crossing-has-island](#crossing-has-island)
+ [crossing-tactile](#crossing-tactile)
@ -84,8 +84,8 @@ Elements must match the expression **<a href='https://wiki.openstreetmap.org/wik
| attribute | type | values which are supported by this layer |
-----|-----|----- |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing](https://wiki.openstreetmap.org/wiki/Key:crossing) | Multiple choice | [uncontrolled](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled) [traffic_signals](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dtraffic_signals) [unmarked](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dunmarked) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing_ref#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing_ref/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing_ref](https://wiki.openstreetmap.org/wiki/Key:crossing_ref) | Multiple choice | [zebra](https://wiki.openstreetmap.org/wiki/Tag:crossing_ref%3Dzebra) [](https://wiki.openstreetmap.org/wiki/Tag:crossing_ref%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing](https://wiki.openstreetmap.org/wiki/Key:crossing) | Multiple choice | [uncontrolled](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled) [traffic_signals](https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dtraffic_signals) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing:markings#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing%3Amarkings/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing:markings](https://wiki.openstreetmap.org/wiki/Key:crossing:markings) | [string](../SpecialInputElements.md#string) | [no](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dno) [zebra](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra) [lines](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines) [ladder](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder) [dashes](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddashes) [dots](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddots) [surface](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dsurface) [ladder:skewed](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:skewed) [zebra:paired](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:paired) [zebra:bicolour](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:bicolour) [zebra:double](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:double) [pictograms](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dpictograms) [ladder:paired](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:paired) [lines:paired](https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines:paired) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/bicycle#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/bicycle/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [bicycle](https://wiki.openstreetmap.org/wiki/Key:bicycle) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:bicycle%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:bicycle%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/crossing:island#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/crossing%3Aisland/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [crossing:island](https://wiki.openstreetmap.org/wiki/Key:crossing:island) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:crossing:island%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:crossing:island%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/tactile_paving#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/tactile_paving/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [tactile_paving](https://wiki.openstreetmap.org/wiki/Key:tactile_paving) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:tactile_paving%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:tactile_paving%3Dno) |
@ -109,18 +109,30 @@ The question is `What kind of crossing is this?`
- *Crossing, without traffic lights* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled' target='_blank'>uncontrolled</a>
- *Crossing with traffic signals* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dtraffic_signals' target='_blank'>traffic_signals</a>
- *Zebra crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dzebra' target='_blank'>zebra</a>. _This option cannot be chosen as answer_
- *Crossing without crossing markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dunmarked' target='_blank'>unmarked</a>
- *Crossing without crossing markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Dunmarked' target='_blank'>unmarked</a>. _This option cannot be chosen as answer_
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:highway' target='_blank'>highway</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:highway%3Dcrossing' target='_blank'>crossing</a>
### crossing-is-zebra
### markings
The question is `Is this is a zebra crossing?`
The question is `What kind of markings does this crossing have?`
*This crossing has {crossing:markings} markings* is shown if `crossing:markings` is set
- *This is a zebra crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing_ref' target='_blank'>crossing_ref</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing_ref%3Dzebra' target='_blank'>zebra</a>
- *This is not a zebra crossing* is shown if with crossing_ref=
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:crossing' target='_blank'>crossing</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing%3Duncontrolled' target='_blank'>uncontrolled</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/crossing_unmarked.png' style='width: 3rem; height: 3rem'> *This crossing has no markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dno' target='_blank'>no</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_zebra.png' style='width: 3rem; height: 3rem'> *This crossing has zebra markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra' target='_blank'>zebra</a>
- *This crossing has markings of an unknown type* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dyes' target='_blank'>yes</a>. _This option cannot be chosen as answer_
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_lines.png' style='width: 3rem; height: 3rem'> *This crossings has lines on either side of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines' target='_blank'>lines</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_ladder.png' style='width: 3rem; height: 3rem'> *This crossing has lines on either side of the crossing, along with bars connecting them* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder' target='_blank'>ladder</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_dashes.png' style='width: 3rem; height: 3rem'> *This crossing has dashed lines on either sides of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddashes' target='_blank'>dashes</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_dots.png' style='width: 3rem; height: 3rem'> *This crossing has dotted lines on either sides of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Ddots' target='_blank'>dots</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_surface.png' style='width: 3rem; height: 3rem'> *This crossing is marked by using a different coloured surface* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dsurface' target='_blank'>surface</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_ladder_skewed.png' style='width: 3rem; height: 3rem'> *This crossing has lines on either side of the crossing, along with angled bars connecting them* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:skewed' target='_blank'>ladder:skewed</a>
- *This crossing has zebra markings with an interruption in every bar* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:paired' target='_blank'>zebra:paired</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_zebra_bicolour.png' style='width: 3rem; height: 3rem'> *This crossing has zebra markings in alternating colours* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:bicolour' target='_blank'>zebra:bicolour</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_zebra_double.png' style='width: 3rem; height: 3rem'> *This crossing has double zebra markings* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dzebra:double' target='_blank'>zebra:double</a>
- *This crossing has pictograms on the road* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dpictograms' target='_blank'>pictograms</a>
- *This crossing has lines on either side of the crossing, along with bars connecting them, with an interruption in every bar* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dladder:paired' target='_blank'>ladder:paired</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/crossings/markings_lines_paired.png' style='width: 3rem; height: 3rem'> *This crossing has double lines on either side of the crossing* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:crossing:markings' target='_blank'>crossing:markings</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:crossing:markings%3Dlines:paired' target='_blank'>lines:paired</a>
### crossing-bicycle-allowed

View file

@ -1519,7 +1519,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -801,11 +801,11 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| fetish.0 | *Does this shop offer fetish gear?* (default) | |
| fetish.1 | This shop offers <b>soft BDSM-gear</b>, such as fluffy handcuffs, a 'fifty-shade-of-grey'-starterset, ... | fetish:bdsm:soft=yes |
| fetish.2 | This shop offers <b>specialized BDSM-gear</b>, such as spreader bars, supplies for needle play, medical bondage supplies, impact tools, shackles, metal colors, cuffs, nipple clamps, shibari accessories, ... | fetish:bdsm:specialized=yes |
| fetish.3 | This shop offers <b>pet play</b> accessories, such as puppy masks, animal masks, pony play, tails, hoof shoes, ... | fetish:pet_play=yes |
| fetish.4 | This shop offers <b>leather gear</b>, including pants and shirts usable in daily life up till leather harnesses | fetish:leather=yes |
| fetish.5 | This shop offers <b>uniforms</b> for roleplay, such nurse uniforms, military uniforms, police, school girl, french maid, ... | fetish:uniform=yes |
| fetish.1 | This shop offers <b>soft BDSM-gear</b>, such as fluffy handcuffs, a 'fifty-shade-of-grey'-starterset, ... | fetish:bdsm:soft~^(.+;)?yes(;.+)$ |
| fetish.2 | This shop offers <b>specialized BDSM-gear</b>, such as spreader bars, supplies for needle play, medical bondage supplies, impact tools, shackles, metal colors, cuffs, nipple clamps, shibari accessories, ... | fetish:bdsm:specialized~^(.+;)?yes(;.+)$ |
| fetish.3 | This shop offers <b>pet play</b> accessories, such as puppy masks, animal masks, pony play, tails, hoof shoes, ... | fetish:pet_play~^(.+;)?yes(;.+)$ |
| fetish.4 | This shop offers <b>leather gear</b>, including pants and shirts usable in daily life up till leather harnesses | fetish:leather~^(.+;)?yes(;.+)$ |
| fetish.5 | This shop offers <b>uniforms</b> for roleplay, such nurse uniforms, military uniforms, police, school girl, french maid, ... | fetish:uniform~^(.+;)?yes(;.+)$ |
| id | question | osmTags |
-----|-----|----- |
@ -818,7 +818,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -44,6 +44,7 @@ This theme contains the following layers:
- [crossings](../Layers/crossings.md)
- [current_view](../Layers/current_view.md)
- [cycleways_and_roads](../Layers/cycleways_and_roads.md)
- [cyclist_waiting_aid](../Layers/cyclist_waiting_aid.md)
- [defibrillator](../Layers/defibrillator.md)
- [dentist](../Layers/dentist.md)
- [disaster_response](../Layers/disaster_response.md)
@ -119,6 +120,8 @@ This theme contains the following layers:
- [stairs](../Layers/stairs.md)
- [street_lamps](../Layers/street_lamps.md)
- [surveillance_camera](../Layers/surveillance_camera.md)
- [tactile_map](../Layers/tactile_map.md)
- [tactile_model](../Layers/tactile_model.md)
- [tertiary_education](../Layers/tertiary_education.md)
- [ticket_machine](../Layers/ticket_machine.md)
- [toilet](../Layers/toilet.md)

View file

@ -1306,7 +1306,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -12,6 +12,7 @@ This theme contains the following layers:
- [postoffices](../Layers/postoffices.md)
- [parcel_lockers](../Layers/parcel_lockers.md)
- [shops](../Layers/shops.md)
- [walls_and_buildings](../Layers/walls_and_buildings.md)
Available languages:

View file

@ -745,7 +745,7 @@ This tagrendering has labels
| id | question | osmTags |
-----|-----|----- |
| shop_types.0 | *What kind of shop is this?* (default) | |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental |
| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | ((shop=rental & amenity=bicycle_rental)) |
| shop_types.2 | Farm Supply Shop | shop=agrarian |
| shop_types.3 | Liquor Store | shop=alcohol |
| shop_types.4 | Anime / Manga Shop | shop=anime |

View file

@ -364,7 +364,7 @@ The default value is _0_
Used to complete the login
This documentation is defined in the source code at [ThemeViewState.ts](/src/Models/ThemeViewState.ts#L188)
This documentation is defined in the source code at [ThemeViewState.ts](/src/Models/ThemeViewState.ts#L189)
No default value set

View file

@ -75,8 +75,8 @@
"nl": "Oplaadpunten",
"ca": "Una estació de càrrega",
"de": "Eine Ladestation",
"fr": "Une station de recharge",
"es": "Un punto de carga"
"es": "Un punto de carga",
"fr": "Une station de recharge"
},
"#": "no-question-hint-check",
"tagRenderings": [
@ -89,8 +89,8 @@
"nl": "Welke voertuigen kunnen hier opgeladen worden?",
"ca": "Quins vehicles tenen permesa la càrrega aquí?",
"de": "Welche Fahrzeuge können hier laden?",
"pl": "Jakie pojazdy mogą być tutaj ładowane?",
"es": "¿Qué vehículos pueden cargar aquí?"
"es": "¿Qué vehículos pueden cargar aquí?",
"pl": "Jakie pojazdy mogą być tutaj ładowane?"
},
"multiAnswer": true,
"mappings": [
@ -102,8 +102,8 @@
"nl": "<b>Elektrische fietsen</b> kunnen hier opgeladen worden",
"ca": "Aquí es poden carregar <b>bicicletes</b>",
"de": "Hier können <b>Fahrräder</b> laden",
"pl": "Mogą tutaj być ładowane <b>rowery</b>",
"es": "Aquí se pueden cargar <b>bicicletas</b>"
"es": "Aquí se pueden cargar <b>bicicletas</b>",
"pl": "Mogą tutaj być ładowane <b>rowery</b>"
}
},
{
@ -114,8 +114,8 @@
"nl": "<b>Elektrische auto's</b> kunnen hier opgeladen worden",
"ca": "Aquí es poden carregar <b>cotxes</b>",
"de": "Hier können <b>Autos</b> laden",
"pl": "Mogą tutaj być ładowane <b>samochody</b>",
"es": "Aquí se pueden cargar <b>coches</b>"
"es": "Aquí se pueden cargar <b>coches</b>",
"pl": "Mogą tutaj być ładowane <b>samochody</b>"
}
},
{
@ -126,8 +126,8 @@
"nl": "<b>Elektrische scooters</b> (snorfiets of bromfiets) kunnen hier opgeladen worden",
"ca": "Aquí es poden carregar <b>Scooters</b>",
"de": "Hier können <b>Roller</b> laden",
"pl": "Mogą być tutaj ładowane <b>hulajnogi<b>",
"es": "Aquí se pueden cargar <b>patinetes</b>"
"es": "Aquí se pueden cargar <b>patinetes</b>",
"pl": "Mogą być tutaj ładowane <b>hulajnogi<b>"
}
},
{
@ -149,8 +149,8 @@
"nl": "<b>Bussen</b> kunnen hier opgeladen worden",
"ca": "Aquí es poden carregar <b>autobusos</b>",
"de": "Hier können <b>Busse</b> laden",
"pl": "Mogą być tutaj ładowane <b>autobusy</b>",
"es": "Aquí se pueden cargar <b>autobuses</b>"
"es": "Aquí se pueden cargar <b>autobuses</b>",
"pl": "Mogą być tutaj ładowane <b>autobusy</b>"
}
}
]
@ -162,8 +162,8 @@
"nl": "Wie mag er dit oplaadpunt gebruiken?",
"ca": "Qui pot utilitzar aquesta estació de càrrega?",
"de": "Wer darf diese Ladestation benutzen?",
"pl": "Kto może używać tej stacji ładowania?",
"es": "¿Quién puede usar este punto de carga?"
"es": "¿Quién puede usar este punto de carga?",
"pl": "Kto może używać tej stacji ładowania?"
},
"render": {
"en": "Access is {access}",
@ -187,8 +187,8 @@
"nl": "Toegankelijk voor iedereen (mogelijks met aanmelden en/of te betalen)",
"ca": "Qualsevol persona pot utilitzar aquesta estació de recàrrega (pot ser calgui un pagament)",
"de": "Jeder kann die Station nutzen (eventuell gegen Bezahlung)",
"pl": "Każdy może używać tej stacji ładowania (opłata może być wymagana)",
"es": "Cualquiera puede usar este punto de carga (puede ser necesario el pago)"
"es": "Cualquiera puede usar este punto de carga (puede ser necesario el pago)",
"pl": "Każdy może używać tej stacji ładowania (opłata może być wymagana)"
}
},
{
@ -198,8 +198,8 @@
"nl": "Toegankelijk voor iedereen (mogelijks met aanmelden en/of te betalen)",
"ca": "Qualsevol persona pot utilitzar aquesta estació de recàrrega (pot ser calgui un pagament)",
"de": "Jeder kann diese Ladestation nutzen (eventuell gegen Bezahlung)",
"pl": "Każdy może używać tej stacji ładowania (opłata może być wymagana)",
"es": "Cualquiera puede usar este punto de carga (puede ser necesario el pago)"
"es": "Cualquiera puede usar este punto de carga (puede ser necesario el pago)",
"pl": "Każdy może używać tej stacji ładowania (opłata może być wymagana)"
},
"hideInAnswer": true
},
@ -252,16 +252,16 @@
"nl": "{capacity} voertuigen kunnen hier op hetzelfde moment opgeladen worden",
"ca": "Aquí poden carregar {capacity} vehicles a l'hora",
"de": "Hier können {capacity} Fahrzeuge gleichzeitig laden",
"pl": "{capacity} pojazdów może być tutaj ładowanych jednocześnie",
"es": "{capacity} vehículos se pueden cargar aquí al mismo tiempo"
"es": "{capacity} vehículos se pueden cargar aquí al mismo tiempo",
"pl": "{capacity} pojazdów może być tutaj ładowanych jednocześnie"
},
"question": {
"en": "How much vehicles can be charged here at the same time?",
"nl": "Hoeveel voertuigen kunnen hier opgeladen worden?",
"ca": "Quants vehicles poden carregar a la vegada?",
"de": "Wie viele Fahrzeuge können hier gleichzeitig laden?",
"pl": "Ile pojazdów może być tutaj ładowanych jednocześnie?",
"es": "¿Cuántos vehículos se pueden cargar aquí al mismo tiempo?"
"es": "¿Cuántos vehículos se pueden cargar aquí al mismo tiempo?",
"pl": "Ile pojazdów może być tutaj ładowanych jednocześnie?"
},
"freeform": {
"key": "capacity",
@ -2252,8 +2252,8 @@
"nl": "Wanneer is dit oplaadpunt beschikbaar??",
"ca": "Quan està oberta aquesta estació de càrrega?",
"de": "Wann ist die Ladestation geöffnet?",
"pl": "Kiedy jest otwarta ta stacja ładowania?",
"es": "¿Cuándo está abierto este punto de carga?"
"es": "¿Cuándo está abierto este punto de carga?",
"pl": "Kiedy jest otwarta ta stacja ładowania?"
}
},
"id": "OH"
@ -2313,8 +2313,8 @@
"en": "Free to use",
"ca": "Ús gratuït",
"de": "Kostenlose Nutzung",
"pl": "Darmowa",
"es": "De uso gratuito"
"es": "De uso gratuito",
"pl": "Darmowa"
},
"hideInAnswer": true
},
@ -2403,8 +2403,8 @@
"nl": "Aanmelden met een lidkaart is mogelijk",
"ca": "Autenticació mitjançant una targeta de soci",
"de": "Authentifizierung durch eine Mitgliedskarte",
"fr": "Authentification par carte de membre",
"es": "Autenticación mediante tarjeta de socio"
"es": "Autenticación mediante tarjeta de socio",
"fr": "Authentification par carte de membre"
}
},
{
@ -2415,8 +2415,8 @@
"nl": "Aanmelden via een applicatie is mogelijk",
"ca": "Autenticació mitjançant una aplicació",
"de": "Authentifizierung per App",
"fr": "Authentification par une application",
"es": "Autenticación mediante una aplicación"
"es": "Autenticación mediante una aplicación",
"fr": "Authentification par une application"
}
},
{
@ -2426,8 +2426,8 @@
"en": "Authentication via phone call is available",
"nl": "Aanmelden door te bellen naar een telefoonnummer is mogelijk",
"de": "Authentifizierung per Anruf ist möglich",
"fr": "Authentification possible par appel téléphonique",
"es": "Hay disponible autenticación por llamada telefónica"
"es": "Hay disponible autenticación por llamada telefónica",
"fr": "Authentification possible par appel téléphonique"
}
},
{
@ -2437,8 +2437,8 @@
"en": "Authentication via SMS is available",
"nl": "Aanmelden via SMS is mogelijk",
"de": "Authentifizierung per SMS ist möglich",
"fr": "Authentification possible par SMS",
"es": "Hay disponible autenticación por SMS"
"es": "Hay disponible autenticación por SMS",
"fr": "Authentification possible par SMS"
}
},
{
@ -2568,18 +2568,18 @@
"nl": "Maakt deel uit van het <b>{network}</b>-netwerk",
"ca": "Part de la xarxa <b>{network}</b>",
"de": "Teil des Netzwerks <b>{network}</b>",
"es": "Parte de la red <b>{network}</b>",
"pl": "Część sieci <b>{network}</b>",
"uk": "Частина мережі <b>{network}</b>",
"es": "Parte de la red <b>{network}</b>"
"uk": "Частина мережі <b>{network}</b>"
},
"question": {
"en": "Is this charging station part of a network?",
"nl": "Is dit oplaadpunt deel van een groter netwerk?",
"ca": "Aquesta estació de càrrega forma part d'una xarxa?",
"de": "Ist diese Ladestation Teil eines Netzwerks?",
"es": "¿Este punto de carga forma parte de una red?",
"pl": "Czy ta stacja ładowania jest częścią sieci?",
"uk": "Чи є ця зарядна станція частиною мережі?",
"es": "¿Este punto de carga forma parte de una red?"
"uk": "Чи є ця зарядна станція частиною мережі?"
},
"freeform": {
"key": "network"
@ -2591,8 +2591,8 @@
"en": "Not part of a bigger network, e.g. because the charging station is maintained by a local business",
"nl": "Maakt geen deel uit van een groter netwerk, een lokale zaak of organisatie beheert dit oplaadpunt",
"de": "Nicht Teil eines größeren Netzwerks, z. B. weil die Ladestation von einem lokalen Unternehmen betrieben wird",
"uk": "Не є частиною більшої мережі, наприклад, тому що зарядна станція обслуговується місцевим підприємством",
"es": "No forma parte de una red mayor, por ejemplo, porque el punto de carga es mantenido por un negocio local"
"es": "No forma parte de una red mayor, por ejemplo, porque el punto de carga es mantenido por un negocio local",
"uk": "Не є частиною більшої мережі, наприклад, тому що зарядна станція обслуговується місцевим підприємством"
}
},
{
@ -2601,9 +2601,9 @@
"en": "Not part of a bigger network",
"nl": "Maakt geen deel uit van een groter netwerk",
"de": "Nicht Teil eines größeren Netzwerks",
"es": "No forma parte de una red mayor",
"pl": "Nie jest częścią większej sieci",
"uk": "Не є частиною великої мережі",
"es": "No forma parte de una red mayor"
"uk": "Не є частиною великої мережі"
},
"hideInAnswer": true
},
@ -2659,8 +2659,8 @@
"nl": "Wordt beheerd door {operator}",
"ca": "Aquesta estació de càrrega l'opera {operator}",
"de": "Die Station wird betrieben von {operator}",
"pl": "Ta stacja ładowania jest obsługiwana przez {operator}",
"es": "Este punto de carga es operado por {operator}"
"es": "Este punto de carga es operado por {operator}",
"pl": "Ta stacja ładowania jest obsługiwana przez {operator}"
},
"freeform": {
"key": "operator"
@ -2694,16 +2694,16 @@
"nl": "Wat is het telefoonnummer van de beheerder van dit oplaadpunt?",
"ca": "A quin número es pot cridar si hi ha algun problema amb aquest punt de càrrega?",
"de": "Welche Nummer kann man anrufen, wenn es ein Problem mit dieser Ladestation gibt?",
"pl": "Na jaki numer można zadzwonić w przypadku problemów z tą stacją ładowania?",
"es": "¿A qué número se puede llamar si hay un problema con este punto de carga?"
"es": "¿A qué número se puede llamar si hay un problema con este punto de carga?",
"pl": "Na jaki numer można zadzwonić w przypadku problemów z tą stacją ładowania?"
},
"render": {
"en": "In case of problems, call <a href='tel:{phone}'>{phone}</a>",
"nl": "Bij problemen, bel naar <a href='tel:{phone}'>{phone}</a>",
"ca": "En cas de problemes, truqueu a <a href='tel:{phone}'>{phone}</a>",
"de": "Bei Problemen, anrufen unter <a href='tel:{phone}'>{phone}</a>",
"pl": "W przypadku problemów zadzwoń na <a href='tel:{phone}'>{phone}</a>",
"es": "En caso de problemas, llama a <a href='tel:{phone}'>{phone}</a>"
"es": "En caso de problemas, llama a <a href='tel:{phone}'>{phone}</a>",
"pl": "W przypadku problemów zadzwoń na <a href='tel:{phone}'>{phone}</a>"
},
"freeform": {
"key": "phone",
@ -2725,8 +2725,8 @@
"nl": "Bij problemen, email naar <a href='mailto:{email}'>{email}</a>",
"ca": "En cas de problemes, envia un email a <a href='mailto:{email}'>{email}</a>",
"de": "Bei Problemen senden Sie bitte eine E-Mail an <a href='mailto:{email}'>{email}</a>",
"pl": "W przypadku problemów, wyślij emaila do <a href='mailto:{email}'>{email}</a>",
"es": "En caso de problemas, envía un correo electrónico a <a href='mailto:{email}'>{email}</a>"
"es": "En caso de problemas, envía un correo electrónico a <a href='mailto:{email}'>{email}</a>",
"pl": "W przypadku problemów, wyślij emaila do <a href='mailto:{email}'>{email}</a>"
},
"freeform": {
"key": "email",
@ -2759,15 +2759,15 @@
"en": "What is the reference number of this charging station?",
"nl": "Wat is het referentienummer van dit oplaadstation?",
"de": "Welche Kennnummer hat die Ladestation?",
"pl": "Jaki jest numer referencyjny tej stacji ładowania?",
"es": "¿Cuál es el número de referencia de este punto de carga?"
"es": "¿Cuál es el número de referencia de este punto de carga?",
"pl": "Jaki jest numer referencyjny tej stacji ładowania?"
},
"render": {
"en": "Reference number is <b>{ref}</b>",
"nl": "Het referentienummer van dit oplaadpunt is <b>{ref}</b>",
"de": "Die Kennziffer ist <b>{ref}</b>",
"pl": "Numer referencyjny to <b>{ref}</b>",
"es": "El número de referencia es <b>{ref}</b>"
"es": "El número de referencia es <b>{ref}</b>",
"pl": "Numer referencyjny to <b>{ref}</b>"
},
"freeform": {
"key": "ref"
@ -2800,9 +2800,9 @@
"nl": "Dit oplaadpunt werkt",
"ca": "Aquesta estació de càrrega funciona",
"de": "Die Station ist in Betrieb",
"es": "Este punto de carga funciona",
"fr": "Cette station de recharge fonctionne",
"pl": "Ta stacja ładowania działa",
"es": "Este punto de carga funciona"
"pl": "Ta stacja ładowania działa"
}
},
{
@ -2820,8 +2820,8 @@
"nl": "Dit oplaadpunt is kapot",
"ca": "Aquesta estació de carrega està trencada",
"de": "Die Station ist defekt",
"pl": "Ta stacja ładowania jest zepsuta",
"es": "Este punto de carga está roto"
"es": "Este punto de carga está roto",
"pl": "Ta stacja ładowania jest zepsuta"
}
},
{
@ -2839,8 +2839,8 @@
"nl": "Hier zal binnenkort een oplaadpunt gebouwd worden",
"ca": "Aquí està prevista una estació de recàrrega",
"de": "Die Station ist erst in Planung",
"pl": "Planowana jest tutaj stacja ładowania",
"es": "Aquí se planea un punto de carga"
"es": "Aquí se planea un punto de carga",
"pl": "Planowana jest tutaj stacja ładowania"
}
},
{
@ -2857,8 +2857,8 @@
"en": "A charging station is constructed here",
"nl": "Hier wordt op dit moment een oplaadpunt gebouwd",
"de": "Die Station ist aktuell im Bau",
"pl": "Budowana jest tutaj stacja ładowania",
"es": "Aquí se está construyendo un punto de carga"
"es": "Aquí se está construyendo un punto de carga",
"pl": "Budowana jest tutaj stacja ładowania"
}
},
{
@ -3049,9 +3049,9 @@
"nl": "Alle voertuigen",
"ca": "Tots els tipus de vehicles",
"de": "Ladestationen für alle Fahrzeugtypen",
"es": "Todos los tipos de vehículos",
"fr": "Tous les types de véhicules",
"it": "Tutti i tipi di veicoli",
"es": "Todos los tipos de vehículos"
"it": "Tutti i tipi di veicoli"
}
},
{
@ -3060,9 +3060,9 @@
"nl": "Oplaadpunten voor fietsen",
"ca": "Punt de recàrrega per a bicicletes",
"de": "Ladestationen für Fahrräder",
"es": "Punto de carga para bicicletas",
"fr": "Station de recharge pour vélos",
"it": "Stazione di ricarica per biciclette",
"es": "Punto de carga para bicicletas"
"it": "Stazione di ricarica per biciclette"
},
"osmTags": "bicycle=yes"
},
@ -3072,9 +3072,9 @@
"nl": "Oplaadpunten voor auto's",
"ca": "Estació de càrrega per a cotxes",
"de": "Ladestationen für Autos",
"es": "Punto de carga para coches",
"fr": "Station de recharge pour voitures",
"it": "Stazione di ricarica per auto",
"es": "Punto de carga para coches"
"it": "Stazione di ricarica per auto"
},
"osmTags": {
"or": [
@ -3094,9 +3094,9 @@
"nl": "Enkel werkende oplaadpunten",
"ca": "Només estacions de recàrrega en funcionament",
"de": "Nur Ladestationen in Betrieb",
"es": "Solo puntos de carga en funcionamiento",
"fr": "Seulement les stations de recharge qui fonctionnent",
"it": "Solo stazioni di ricarica funzionanti",
"es": "Solo puntos de carga en funcionamiento"
"it": "Solo stazioni di ricarica funzionanti"
},
"osmTags": {
"and": [
@ -3116,8 +3116,8 @@
"nl": "Alle types",
"ca": "Tots els connectors",
"de": "Alle Anschlüsse",
"it": "Tutti i connettori",
"es": "Todos los conectores"
"es": "Todos los conectores",
"it": "Tutti i connettori"
}
},
{

View file

@ -101,8 +101,8 @@
"support=wall_mounted"
],
"title": {
"en": "a wall-mounted clock, mounted using a support perpendicular to the wall",
"nl": "een klok aan een muur, bevestigd met een steun loodrecht op de muur",
"en": "a wall-mounted clock",
"nl": "een klok aan een muur",
"de": "eine an der Wand montierte Uhr",
"ca": "un rellotge muntat en un paret",
"fr": "une horloge fixée au mur",
@ -187,7 +187,8 @@
"if": "support=wall",
"then": {
"en": "This clock is mounted directly on a wall",
"nl": "Deze klok is rechtstreeks aan een muur bevestigd"
"nl": "Deze klok is rechtstreeks aan een muur bevestigd",
"es": "Este reloj forma parte de una cartelera"
}
},
{
@ -201,7 +202,7 @@
"pl": "Ten zegar jest częścią bilbordu",
"cs": "Tyto hodiny jsou součástí billboardu",
"uk": "Цей годинник є частиною білборду",
"es": "Este reloj forma parte de una cartelera"
"es": "Este reloj está en el suelo"
}
},
{

View file

@ -7,7 +7,7 @@
"fr": "Traversée",
"ca": "Encreuaments",
"da": "Overgange",
"es": "Pasos",
"es": "Cruces",
"pa_PK": "کراسنگاں",
"cs": "Přechody"
},
@ -17,7 +17,7 @@
"de": "Übergänge für Fußgänger und Radfahrer",
"fr": "Traversée pour piétons et cyclistes",
"da": "Overgange for fodgængere og cyklister",
"es": "Pasos para peatones y ciclistas",
"es": "Cruces para peatones y ciclistas",
"ca": "Creuaments per a vianants i ciclistes",
"cs": "Přechody pro chodce a cyklisty"
},
@ -194,7 +194,7 @@
"en": "Crossing with traffic signals",
"nl": "Oversteekplaats met verkeerslichten",
"de": "Kreuzungen mit Ampeln",
"es": "Cruce con semáforo",
"es": "Cruce con semáforos",
"fr": "Passage piéton avec des feux de signalisation",
"ca": "Creuament amb semàfors",
"cs": "Přechod se světelnou signalizací"
@ -207,7 +207,7 @@
"nl": "Zebrapad",
"de": "Zebrastreifen",
"ca": "Pas de zebra",
"es": "Paso de cebra",
"es": "Paso de peatones",
"fr": "Passage piéton",
"cs": "Zebra přechod"
},
@ -219,7 +219,7 @@
"en": "Crossing without crossing markings",
"nl": "Oversteekplaats zonder kruispuntmarkeringen",
"de": "Kreuzung ohne Kreuzungsmarkierungen",
"es": "Cruce sin señalizar",
"es": "Cruce sin marcas de cruce",
"fr": "Passage piéton sans marquages",
"ca": "Creuament sense senyalitzar",
"cs": "Přechod bez označení přechodu"
@ -406,7 +406,7 @@
"nl": "Is deze oversteekplaats ook voor fietsers",
"de": "Können Radfahrer diese Kreuzung nutzen?",
"da": "Er denne overgang også for cykler?",
"es": "¿Este cruce también es para ciclistas?",
"es": "¿Este cruce también es para bicicletas?",
"ca": "Aquest creuament també és per a ciclistes?",
"fr": "Est-ce que ce passage est également pour les vélos ?",
"cs": "Je tento přechod i pro kola?"
@ -420,7 +420,7 @@
"nl": "Een fietser kan deze oversteekplaats gebruiken",
"de": "Radfahrer können diese Kreuzung nutzen",
"da": "En cyklist kan benytte denne overgang",
"es": "Un ciclista puede utilizar este cruce",
"es": "Un ciclista puede usar este cruce",
"ca": "Un ciclista pot utilitzar aquest creuament",
"fr": "Un cycliste peut utiliser ce passage",
"cs": "Cyklista může tento přechod využít"
@ -433,7 +433,7 @@
"nl": "Een fietser kan deze oversteekplaats niet gebruiken",
"de": "Radfahrer können diese Kreuzung nicht nutzen",
"da": "En cyklist kan ikke benytte denne overgang",
"es": "Un ciclista no puede utilizar este cruce",
"es": "Un ciclista no puede usar este cruce",
"ca": "Un ciclista no pot utilitzar aquest creuament",
"fr": "Un cycliste ne peut pas utiliser ce passage",
"cs": "Cyklista nemůže tento přechod použít"
@ -447,7 +447,7 @@
"en": "Does this crossing have an island in the middle?",
"nl": "Heeft deze oversteekplaats een verkeerseiland in het midden?",
"de": "Gibt es an diesem Übergang eine Verkehrsinsel?",
"es": "¿Tiene una isla en el medio este cruce?",
"es": "¿Este cruce tiene una isla en el medio?",
"fr": "Est-ce que ce passage a un refuge au milieu ?",
"ca": "Aquest creuament té una illa al mig?",
"cs": "Má tento přechod uprostřed ostrůvek?"
@ -486,7 +486,7 @@
"en": "Does this crossing have tactile paving?",
"nl": "Heeft deze oversteekplaats een geleidelijn?",
"de": "Gibt es an dieser Kreuzung ein Blindenleitsystem?",
"es": "¿Este cruce tiene pavimento podotáctil?",
"es": "¿Este cruce tiene pavimento táctil?",
"fr": "Est-ce que ce passage piéton a une surface podotactile ?",
"ca": "Aquest creuament té superfície podotàctil?",
"cs": "Má tento přechod hmatovou dlažbu?"
@ -499,7 +499,7 @@
"en": "This crossing has tactile paving",
"nl": "Deze oversteekplaats heeft een geleidelijn",
"de": "An dieser Kreuzung gibt es ein Blindenleitsystem",
"es": "Este cruce tiene superficie podotáctil",
"es": "Este cruce tiene pavimento táctil",
"fr": "Ce passage piéton a une surface podotactile",
"ca": "Este creuament té superfície podotàctil",
"cs": "Tento přechod má hmatovou dlažbu"
@ -511,7 +511,7 @@
"en": "This crossing does not have tactile paving",
"nl": "Deze oversteekplaats heeft geen geleidelijn",
"de": "Diese Kreuzung hat kein Blindenleitsystem",
"es": "Este cruce no tiene superficie podotáctil",
"es": "Este cruce no tiene pavimento táctil",
"fr": "Ce passage piéton n'a pas de surface podotactile",
"ca": "Este creuament no té superfície podotàctil",
"cs": "Tento přechod nemá hmatovou dlažbu"
@ -523,7 +523,7 @@
"en": "This crossing has tactile paving, but is not correct",
"nl": "Deze oversteekplaats heeft een geleidelijn, die incorrect is.",
"de": "Diese Kreuzung hat taktile Pflasterung, ist aber nicht korrekt",
"es": "Este cruce tiene superficie podotáctil, pero no correctamente",
"es": "Este cruce tiene pavimento táctil, pero no es correcto",
"fr": "Ce passage piéton a une surface podotactile, mais elle n'est pas adéquate",
"ca": "Este creuament té superfície podotàctil, però no correctament",
"cs": "Tento přechod má hmatovou dlažbu, ale ne správně"
@ -538,7 +538,7 @@
"en": "Does this traffic light have a button to request green light?",
"nl": "Heeft dit verkeerslicht een knop voor groen licht?",
"de": "Hat diese Ampel eine Taste, um ein grünes Signal anzufordern?",
"es": "¿Este semáforo tiene un botón para pedir luz verde?",
"es": "¿Este semáforo tiene un botón para solicitar luz verde?",
"ca": "Aquest semàfor té un botó per a demanar la llum verda?",
"fr": "Est-ce que ce feu a un bouton pour demander le passage au vert ?",
"cs": "Má tento semafor tlačítko pro vyžádání zeleného světla?"
@ -556,7 +556,7 @@
"en": "This traffic light has a button to request green light",
"nl": "Dit verkeerslicht heeft een knop voor groen licht",
"de": "Diese Ampel hat eine Taste, um ein grünes Signal anzufordern",
"es": "Este semáforo tiene un botón para pedir luz verde",
"es": "Este semáforo tiene un botón para solicitar luz verde",
"ca": "Aquest semàfor té un botó per a demanar la llum verda",
"fr": "Ce feu a un bouton pour demander le vert",
"cs": "Tento semafor má tlačítko pro vyžádání zeleného světla"
@ -568,7 +568,7 @@
"en": "This traffic light does not have a button to request green light",
"nl": "Dit verkeerlicht heeft geen knop voor groen licht",
"de": "Diese Ampel hat keine Taste, um ein grünes Signal anzufordern",
"es": "Este semáforo no tiene un botón para pedir luz verde",
"es": "Este semáforo no tiene un botón para solicitar luz verde",
"ca": "Aquest semàfor no té un botó per a demanar la llum verda",
"fr": "Ce feu n'a pas de bouton pour demander le vert",
"cs": "Tento semafor nemá tlačítko pro vyžádání zeleného světla"
@ -584,7 +584,8 @@
"fr": "Est-ce que le feu de signalisation a une signalisation sonore pour aider à traverser ?",
"nl": "Heeft dit verkeerslicht geluidssignalen om te helpen bij het oversteken?",
"ca": "Aquest semàfor té senyals sonors per facilitar el pas?",
"cs": "Má tento semafor zvukové signály pro usnadnění přecházení?"
"cs": "Má tento semafor zvukové signály pro usnadnění přecházení?",
"es": "¿Este semáforo tiene señales sonoras para ayudar a cruzar?"
},
"condition": "crossing=traffic_signals",
"mappings": [
@ -596,7 +597,8 @@
"fr": "Ce feu de signalisation a une alarme sonore pour aider à traverser, à la fois pour trouver le passage piéton, et pour traverser.",
"nl": "Dit verkeerslicht heeft geluidssignalen om te helpen bij het oversteken, zowel voor het vinden van de oversteekplaats als voor het oversteken.",
"ca": "Aquest semàfor disposa de senyals sonors per ajudar a creuar, tant per trobar l'encreuament com per creuar.",
"cs": "Tento semafor je vybaven zvukovými signály pro usnadnění přecházení, a to jak pro vyhledání přechodu, tak pro přecházení."
"cs": "Tento semafor je vybaven zvukovými signály pro usnadnění přecházení, a to jak pro vyhledání přechodu, tak pro přecházení.",
"es": "Este semáforo tiene señales sonoras para ayudar a cruzar, tanto para encontrar el cruce como para cruzar"
}
},
{
@ -607,7 +609,8 @@
"fr": "Ce feu de signalisation n'a pas de signal sonore pour aider à traverser.",
"nl": "Dit verkeerslicht heeft geen geluidssignalen om te helpen bij het oversteken.",
"ca": "Aquest semàfor no té senyals sonores per ajudar a creuar.",
"cs": "Tento semafor není vybaven zvukovými signály pro usnadnění přecházení."
"cs": "Tento semafor není vybaven zvukovými signály pro usnadnění přecházení.",
"es": "Este semáforo no tiene señales sonoras para ayudar a cruzar"
}
},
{
@ -618,7 +621,8 @@
"nl": "Dit verkeerslicht heeft een geluidssignaal om de paal te vinden, maar niet om aan te geven dat oversteken veilig kan.",
"ca": "Aquest semàfor té un senyal sonor per ajudar a localitzar el pal, però cap senyal que indique que és segur creuar.",
"fr": "Ce feu a un signal sonore pour aider à situer les poteaux, mais pas de signal pour indiquer qu'on peut traverser en sécurité.",
"cs": "Tento semafor má zvukový signál, který pomáhá lokalizovat sloup, ale žádný signál, který by signalizoval, že je bezpečné přejít."
"cs": "Tento semafor má zvukový signál, který pomáhá lokalizovat sloup, ale žádný signál, který by signalizoval, že je bezpečné přejít.",
"es": "Este semáforo tiene una señal sonora para ayudar a localizar el poste, pero ninguna señal para indicar que es seguro cruzar"
}
},
{
@ -629,7 +633,8 @@
"nl": "Dit verkeerslicht heeft een geluidssignaal om aan te geven dat oversteken veilig kan, maar geen signaal om de paal te vinden.",
"ca": "Aquest semàfor té un senyal sonor per indicar que és segur creuar, però cap senyal que ajude a localitzar el pal.",
"fr": "Cet feu a un signal sonore pour indiquer qu'on peut traverser en sécurité, mais pas de signal pour localiser les poteaux.",
"cs": "Tento semafor má zvukový signál, který signalizuje, že je bezpečné přejít, ale nemá žádný signál, který by pomohl lokalizovat sloup."
"cs": "Tento semafor má zvukový signál, který signalizuje, že je bezpečné přejít, ale nemá žádný signál, který by pomohl lokalizovat sloup.",
"es": "Este semáforo tiene una señal sonora para indicar que es seguro cruzar, pero ninguna señal para ayudar a localizar el poste"
}
}
]
@ -643,7 +648,8 @@
"fr": "Est-ce que ce feu a un signal vibrant pour aider à traverser ? (habituellement situé sous le bouton)",
"ca": "Aquest semàfor té senyals de vibració per facilitar el pas? (normalment es troba a la part inferior del botó d'encreuament)",
"cs": "Má tento semafor vibrační signály pro usnadnění přecházení? (obvykle se nachází ve spodní části tlačítka pro přecházení)",
"uk": "Чи має цей світлофор вібраційні сигнали для полегшення переходу? (зазвичай розташовані внизу кнопки переходу)"
"uk": "Чи має цей світлофор вібраційні сигнали для полегшення переходу? (зазвичай розташовані внизу кнопки переходу)",
"es": "¿Este semáforo tiene señales de vibración para ayudar a cruzar? (normalmente ubicado en la parte inferior del botón de cruce)"
},
"condition": {
"and": [
@ -660,7 +666,8 @@
"nl": "De knop bij dit verkeerslicht trilt om aan te geven dat men veilig kan oversteken.",
"fr": "Le bouton de ce feu vibre pour indiquer qu'on peut traverser en sécurité.",
"ca": "El botó d'aquest semàfor té un senyal de vibració per indicar que és segur creuar.",
"cs": "Tlačítko tohoto semaforu má vibrační signál, který signalizuje, že je bezpečné přejít."
"cs": "Tlačítko tohoto semaforu má vibrační signál, který signalizuje, že je bezpečné přejít.",
"es": "El botón de este semáforo tiene una señal de vibración para indicar que es seguro cruzar"
},
"icon": {
"path": "./assets/layers/crossings/Vibrating_button_illustration.jpg",
@ -675,7 +682,8 @@
"nl": "De knop bij dit verkeerslicht kan <b>niet</b> trillen om aan te geven dat men veilig kan oversteken.",
"fr": "Le bouton de ce feu ne vibre pas pour indiquer qu'on peut traverser en sécurité.",
"ca": "El botó d'aquest semàfor no té cap senyal de vibració que indiqui que és segur creuar.",
"cs": "Tlačítko tohoto semaforu nemá vibrační signál, který by signalizoval, že je bezpečné přejít."
"cs": "Tlačítko tohoto semaforu nemá vibrační signál, který by signalizoval, že je bezpečné přejít.",
"es": "El botón de este semáforo no tiene una señal de vibración para indicar que es seguro cruzar"
}
}
]
@ -686,7 +694,8 @@
"en": "Does this traffic light have an arrow pointing in the direction of crossing?",
"de": "Hat diese Ampel einen Pfeil, der in Richtung der Kreuzung zeigt?",
"ca": "Aquest semàfor té una fletxa apuntant en la direcció del creuament?",
"cs": "Má tento semafor šipku ve směru přecházení?"
"cs": "Má tento semafor šipku ve směru přecházení?",
"es": "¿Este semáforo tiene una flecha que apunta en la dirección del cruce?"
},
"condition": "crossing=traffic_signals",
"mappings": [
@ -696,7 +705,8 @@
"en": "This traffic light has an arrow pointing in the direction of crossing.",
"de": "Diese Ampel hat einen Pfeil, der in Richtung der Kreuzung zeigt.",
"ca": "Aquest semàfor té una fletxa apuntant en la direcció del creuament.",
"cs": "Tento semafor má šipku ukazující směr přecházení."
"cs": "Tento semafor má šipku ukazující směr přecházení.",
"es": "Este semáforo tiene una flecha que apunta en la dirección del cruce"
}
},
{
@ -705,7 +715,8 @@
"en": "This traffic light does <b>not</b> have an arrow pointing in the direction of crossing.",
"de": "Diese Ampel hat <b>keinen</b> Pfeil, der in Richtung der Kreuzung zeigt.",
"ca": "Aquest semàfor <b>no</b> té una fletxa apuntant en la direcció del creuament.",
"cs": "Na tomto semaforu <b>není</b> šipka ukazující směr přecházení."
"cs": "Na tomto semaforu <b>není</b> šipka ukazující směr přecházení.",
"es": "Este semáforo <b>no</b> tiene una flecha que apunta en la dirección del cruce"
}
}
]
@ -716,7 +727,8 @@
"en": "Does this traffic light have a tactile map showing the layout of the crossing?",
"de": "Hat die Ampel hat eine taktile Karte, die den Verlauf der Kreuzung zeigt?",
"ca": "Aquest semàfor disposa d'un mapa tàctil que mostra el traçat de l'encreuament?",
"cs": "Má tento semafor hmatovou mapu s uspořádáním přechodu?"
"cs": "Má tento semafor hmatovou mapu s uspořádáním přechodu?",
"es": "¿Este semáforo tiene un mapa táctil que muestra el diseño del cruce?"
},
"condition": "crossing=traffic_signals",
"mappings": [
@ -727,7 +739,8 @@
"de": "Die Ampel hat eine taktile Karte, die den Verlauf der Kreuzung zeigt.",
"nl": "Dit verkeerlicht heeft een voelkaart die de indeling van de oversteekplaats laat zien.",
"ca": "Aquest semàfor disposa d'un mapa tàctil que mostra el traçat de l'encreuament.",
"cs": "Tento semafor má hmatovou mapu zobrazující uspořádání přechodu."
"cs": "Tento semafor má hmatovou mapu zobrazující uspořádání přechodu.",
"es": "Este semáforo tiene un mapa táctil que muestra el diseño del cruce"
},
"icon": {
"path": "./assets/layers/crossings/180px-Trairvoja_mapeto.jpg",
@ -741,7 +754,8 @@
"de": "Die Ampel hat <b>keine</b> taktile Karte, die den Verlauf der Kreuzung zeigt.",
"nl": "Dit verkeerlicht heeft <b>geen</b> voelkaart die de indeling van de oversteekplaats laat zien.",
"ca": "Aquest semàfor <b>no</b> disposa d'un mapa tàctil que mostra el traçat del pas.",
"cs": "Tento semafor <b>nemá</b> hmatovou mapu zobrazující rozložení přechodu."
"cs": "Tento semafor <b>nemá</b> hmatovou mapu zobrazující rozložení přechodu.",
"es": "Este semáforo <b>no</b> tiene un mapa táctil que muestra el diseño del cruce"
}
}
]
@ -752,7 +766,7 @@
"en": "Can a cyclist turn right when the light is red?",
"nl": "Mag een fietser rechtsaf slaan als het licht rood is?",
"de": "Dürfen Radfahrer bei roter Ampel rechts abbiegen?",
"es": "¿Puede girar a la derecha un ciclista cuando la luz está roja?",
"es": "¿Puede un ciclista girar a la derecha cuando la luz está roja?",
"fr": "Un cycliste peut-il tourner à droite quand le feu est rouge ?",
"ca": "Un ciclista pot girar a la dreta si el semàfor està en roig?",
"cs": "Může cyklista odbočit doprava, když svítí červená?"
@ -809,7 +823,7 @@
"en": "Can a cyclist go straight on when the light is red?",
"nl": "Mag een fietser rechtdoor gaan als het licht rood is?",
"de": "Dürfen Radfahrer bei roter Ampel geradeaus fahren?",
"es": "¿Puede ir de frente un ciclista cuando la luz está roja?",
"es": "¿Puede un ciclista seguir recto cuando la luz está roja?",
"fr": "Est-ce qu'un cycliste peut aller tout droit quand le feu est rouge ?",
"ca": "Un ciclista pot seguir recte si el semàfor està en roig?",
"cs": "Může cyklista jet rovně, když svítí červená?"
@ -822,7 +836,7 @@
"en": "A cyclist can go straight on if the light is red",
"nl": "Een fietser mag wel rechtdoor gaan als het licht rood is",
"de": "Ein Radfahrer kann bei roter Ampel geradeaus fahren",
"es": "Un ciclista puede ir de frente si la luz está roja",
"es": "Un ciclista puede seguir recto si la luz está roja",
"ca": "Un ciclista pot seguir recte si el semàfor està en roig",
"cs": "Cyklista může jet rovně, pokud svítí červená"
},
@ -838,7 +852,7 @@
"en": "A cyclist can go straight on if the light is red",
"nl": "Een fietser mag wel rechtdoor gaan als het licht rood is",
"de": "Radfahrer dürfen bei roter Ampel geradeaus fahren",
"es": "Un ciclista puede ir de frente si la luz está roja",
"es": "Un ciclista puede seguir recto si la luz está roja",
"ca": "Un ciclista pot seguir recte si el semàfor està en roig",
"cs": "Cyklista může jet rovně, pokud svítí červená"
},
@ -850,7 +864,7 @@
"en": "A cyclist can not go straight on if the light is red",
"nl": "Een fietser mag niet rechtdoor gaan als het licht rood is",
"de": "Radfahrer dürfen bei roter Ampel nicht geradeaus fahren",
"es": "Un ciclista no puede ir de frente si la luz está roja",
"es": "Un ciclista no puede seguir recto si la luz está roja",
"ca": "Un ciclista no pot seguir recte si el semàfor està en roig",
"cs": "Cyklista nemůže jet rovně, pokud svítí červená"
}

View file

@ -470,7 +470,7 @@
"en": "Italian restaurant (which serves more than pasta and pizza)",
"nl": "Italiaans restaurant (dat meer dan enkel pasta of pizza verkoopt)",
"de": "Dies ist ein italienisches Restaurant (das mehr als nur Pasta und Pizza serviert)",
"es": "Restaurante italiano (que sirve más que pasta y pizza)",
"es": "Restaurante italiano (que sirve algo más que pasta y pizza)",
"fr": "C'est un Restaurant Italien (qui sert plus que des pâtes et des pizzas)",
"ca": "Restaurant italià (que serveix més que pasta i pizza)",
"cs": "Toto je italská restaurace (která nabízí více než těstoviny a pizzu)"

View file

@ -291,7 +291,6 @@
"key": "memorial"
},
"filter": true
},
{
"id": "inscription",

View file

@ -49,8 +49,19 @@
}
},
"keywords": {
"en": ["post","post box","letter","letterbox"],
"nl": ["brieven","post","brief","brievenbus","pakjes"]
"en": [
"post",
"post box",
"letter",
"letterbox"
],
"nl": [
"brieven",
"post",
"brief",
"brievenbus",
"pakjes"
]
},
"pointRendering": [
{

View file

@ -30,7 +30,7 @@
"name": {
"en": "Changeset centers",
"de": "Changeset-Zentren",
"es": "Centro del conjunto de cambios"
"es": "Centros de conjuntos de cambios"
},
"minzoom": 0,
"source": {
@ -86,7 +86,7 @@
"en": "What theme was used to make this change?",
"de": "Welches Thema wurde für diese Änderung verwendet?",
"cs": "Jaký motiv byl použit k provedení této změny?",
"es": "¿Qué tema se utilizó para hacer este cambio?"
"es": "¿Qué tema se utilizó para realizar este cambio?"
},
"freeform": {
"key": "theme"
@ -94,7 +94,7 @@
"render": {
"en": "Change with theme <a href='https://mapcomplete.org/{theme}'>{theme}</a>",
"de": "Änderung mit Thema <a href='https://mapcomplete.org/{theme}'>{theme}</a>",
"es": "Cambiar con el tema <a href='https://mapcomplete.org/{theme}'>{theme}</a>"
"es": "Cambio con el tema <a href='https://mapcomplete.org/{theme}'>{theme}</a>"
}
},
{
@ -106,13 +106,13 @@
"en": "What locale (language) was this change made in?",
"de": "In welcher Sprache (Locale) wurde diese Änderung vorgenommen?",
"cs": "V jakém prostředí (jazyce) byla tato změna provedena?",
"es": "¿En qué idioma (ubicación) se realizó este cambio?"
"es": "¿En qué configuración regional (idioma) se realizó este cambio?"
},
"render": {
"en": "User locale is {locale}",
"de": "Die Benutzersprache ist {locale}",
"cs": "Uživatelské prostředí je {locale}",
"es": "La configuración local del usuario es {locale}"
"es": "Configuración regional del usuario es {locale}"
}
},
{
@ -121,13 +121,13 @@
"en": "Change with with <a href='{host}'>{host}</a>",
"de": "Änderung mit <a href='{host}'>{host}</a>",
"cs": "Změnit pomocí <a href='{host}'>{host}</a>",
"es": "Cambiado con <a href='{host}'>{host}</a>"
"es": "Cambio realizado con <a href='{host}'>{host}</a>"
},
"question": {
"en": "What host (website) was this change made with?",
"de": "Bei welchem Host (Website) wurde diese Änderung vorgenommen?",
"cs": "U jakého hostitele (webové stránky) byla tato změna provedena?",
"es": "¿Con qué host (página web) se hizo este cambio?"
"es": "¿Con qué anfitrión (sitio web) se realizó este cambio?"
},
"freeform": {
"key": "host"
@ -151,7 +151,7 @@
"en": "What version of MapComplete was used to make this change?",
"de": "Welche Version von MapComplete wurde verwendet, um diese Änderung vorzunehmen?",
"cs": "Jaká verze aplikace MapComplete byla použita k provedení této změny?",
"es": "¿Qué versión de MapComplete se utilizó para hacer este cambio?"
"es": "¿Qué versión de MapComplete se utilizó para realizar este cambio?"
},
"render": {
"en": "Made with {editor}",
@ -557,7 +557,7 @@
"question": {
"en": "Themename contains {search}",
"de": "Themenname enthält {search}",
"es": "El nombre contiene {search}",
"es": "El nombre del tema contiene {search}",
"pl": "Nazwa tematu zawiera {search}",
"cs": "Název obsahuje {search}"
}
@ -615,7 +615,7 @@
"question": {
"en": "<b>Not</b> made by contributor {search}",
"de": "<b>Nicht</b> erstellt von Mitwirkendem {search}",
"es": "<b>No</b> realizado por el colaborador {search}",
"es": "<b>No</b> hecho por el colaborador {search}",
"cs": "<b>Nevytvořeno</b> přispěvatelem {search}"
}
}
@ -635,7 +635,7 @@
"question": {
"en": "Made before {search}",
"de": "Erstellt vor {search}",
"es": "Realizado antes de {search}",
"es": "Hecho antes de {search}",
"cs": "Vytvořeno před {search}"
}
}
@ -655,7 +655,7 @@
"question": {
"en": "Made after {search}",
"de": "Erstellt nach {search}",
"es": "Realizado después de {search}",
"es": "Hecho después de {search}",
"cs": "Vytvořeno po {search}"
}
}
@ -674,7 +674,7 @@
"question": {
"en": "User language (iso-code) {search}",
"de": "Benutzersprache (ISO-Code) {search}",
"es": "Idioma del usuario (código iso) {search}",
"es": "Idioma del usuario (código ISO) {search}",
"cs": "Jazyk uživatele (iso-kód) {search}"
}
}
@ -694,7 +694,7 @@
"en": "Made with host {search}",
"de": "Erstellt mit Host {search}",
"cs": "Vytvořeno pomocí hostitele {search}",
"es": "Hecho con host {search}"
"es": "Hecho con el anfitrión {search}"
}
}
]
@ -708,7 +708,7 @@
"en": "Changeset added at least one image",
"de": "Changeset hat mindestens ein Bild hinzugefügt",
"cs": "Sada změn přidala alespoň jeden obrázek",
"es": "El conjunto de cambios ha añadido al menos una imagen"
"es": "El conjunto de cambios agregó al menos una imagen"
}
}
]
@ -722,7 +722,7 @@
"en": "Exclude GRB theme",
"de": "GRB-Thema ausschließen",
"cs": "Vyloučit motiv GRB",
"es": "Excluir tema GRB"
"es": "Excluir el tema GRB"
}
}
]
@ -735,7 +735,7 @@
"question": {
"en": "Exclude etymology theme",
"de": "Etymologie-Thema ausschließen",
"es": "Excluir el tema de la etimología",
"es": "Excluir el tema de etimología",
"cs": "Vyloučit etymologii tématu"
}
}
@ -754,7 +754,7 @@
"en": "More statistics can be found <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>here</a>",
"de": "Weitere Statistiken findest du <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>hier</a>",
"cs": "Další statistiky najdete <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>zde</a>",
"es": "Se pueden encontrar más estadísticas <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>aquí</a>"
"es": "Puedes encontrar más estadísticas <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>aquí</a>"
}
},
{

View file

@ -2866,17 +2866,6 @@
},
"question": "Má tento přechod uprostřed ostrůvek?"
},
"crossing-is-zebra": {
"mappings": {
"0": {
"then": "Toto je zebra přechod"
},
"1": {
"then": "Tohle není zebra přechod"
}
},
"question": "Jedná se o zebra přechod?"
},
"crossing-minimap": {
"mappings": {
"0": {

View file

@ -3410,17 +3410,6 @@
},
"question": "Gibt es an diesem Übergang eine Verkehrsinsel?"
},
"crossing-is-zebra": {
"mappings": {
"0": {
"then": "Dies ist ein Zebrastreifen"
},
"1": {
"then": "Dies ist kein Zebrastreifen"
}
},
"question": "Ist das ein Zebrastreifen?"
},
"crossing-minimap": {
"mappings": {
"0": {

View file

@ -1492,6 +1492,17 @@
}
},
"tagRenderings": {
"automated": {
"mappings": {
"0": {
"then": "This is a manual bike washing station"
},
"1": {
"then": "This is an automated bike wash"
}
},
"question": "Is this bicycle cleaning service automated?"
},
"bike_cleaning-charge": {
"mappings": {
"0": {
@ -1515,6 +1526,17 @@
},
"question": "How much does it cost to use the cleaning service?",
"render": "Using the cleaning service costs {service:bicycle:cleaning:charge}"
},
"self_service": {
"mappings": {
"0": {
"then": "This cleaning service is self-service"
},
"1": {
"then": "This cleaning service is operated by an employee"
}
},
"question": "Is this cleaning service self-service?"
}
},
"title": {
@ -3208,6 +3230,10 @@
"1": {
"description": "A publicly visible clock mounted on a wall",
"title": "a wall-mounted clock"
},
"2": {
"description": "A publicly visible clock mounted directly on a wall",
"title": "a wall-mounted clock, mounted directly on a wall"
}
},
"tagRenderings": {
@ -3288,6 +3314,19 @@
},
"question": "Does this clock also display the humidity?"
},
"indoor": {
"override": {
"mappings": {
"0": {
"then": "This clock is indoors"
},
"1": {
"then": "This clock is outdoors"
}
},
"question": "Is this clock indoors?"
}
},
"support": {
"mappings": {
"0": {
@ -3413,17 +3452,6 @@
},
"question": "Does this crossing have an island in the middle?"
},
"crossing-is-zebra": {
"mappings": {
"0": {
"then": "This is a zebra crossing"
},
"1": {
"then": "This is not a zebra crossing"
}
},
"question": "Is this is a zebra crossing?"
},
"crossing-minimap": {
"mappings": {
"0": {
@ -3507,6 +3535,57 @@
}
},
"question": "Does this traffic light have vibration signals to aid crossing? (usually located at the bottom of the crossing button)"
},
"markings": {
"mappings": {
"0": {
"then": "This crossing has no markings"
},
"1": {
"then": "This crossing has zebra markings"
},
"10": {
"then": "This crossing has zebra markings in alternating colours"
},
"11": {
"then": "This crossing has double zebra markings"
},
"12": {
"then": "This crossing has pictograms on the road"
},
"13": {
"then": "This crossing has lines on either side of the crossing, along with bars connecting them, with an interruption in every bar"
},
"14": {
"then": "This crossing has double lines on either side of the crossing"
},
"2": {
"then": "This crossing has markings of an unknown type"
},
"3": {
"then": "This crossings has lines on either side of the crossing"
},
"4": {
"then": "This crossing has lines on either side of the crossing, along with bars connecting them"
},
"5": {
"then": "This crossing has dashed lines on either sides of the crossing"
},
"6": {
"then": "This crossing has dotted lines on either sides of the crossing"
},
"7": {
"then": "This crossing is marked by using a different coloured surface"
},
"8": {
"then": "This crossing has lines on either side of the crossing, along with angled bars connecting them"
},
"9": {
"then": "This crossing has zebra markings with an interruption in every bar"
}
},
"question": "What kind of markings does this crossing have?",
"render": "This crossing has {crossing:markings} markings"
}
},
"title": {
@ -3922,6 +4001,57 @@
"render": "Way"
}
},
"cyclist_waiting_aid": {
"description": "Various pieces of infrastructure that aid cyclists while they wait at a traffic light.",
"name": "Cyclist Waiting Aids",
"presets": {
"0": {
"description": "A footrest, handrail or other aid, to improve comfort while waiting at traffic lights",
"title": "a cyclist waiting aid"
}
},
"tagRenderings": {
"direction": {
"mappings": {
"0": {
"then": "This waiting aid can be used when going forward on this way"
},
"1": {
"then": "This waiting aid can be used when going backward on this way"
}
},
"render": "This waiting aid can be used when going in {direction} direction"
},
"side": {
"mappings": {
"0": {
"then": "This waiting aid is located on the left side"
},
"1": {
"then": "This waiting aid is located on the right side"
},
"2": {
"then": "There are waiting aids on both sides of the road"
}
},
"question": "On what side of the road is this located?"
},
"type": {
"mappings": {
"0": {
"then": "There is a board or peg to rest your foot on here"
},
"1": {
"then": "There is a rail or a handle to hold on to here"
}
},
"question": "What kind of components does this waiting aid have?"
}
},
"title": {
"render": "Cyclist Waiting Aid"
}
},
"defibrillator": {
"description": "A layer showing defibrillators which can be used in case of emergency. This contains public defibrillators, but also defibrillators which might need staff to fetch the actual device",
"name": "Defibrillators",
@ -7905,6 +8035,15 @@
"presets": {
"0": {
"title": "a postbox"
},
"1": {
"title": "a postbox on a wall"
}
},
"tagRenderings": {
"operator": {
"question": "Who operates this postbox?",
"render": "This postbox is operated by <b>{operator}</b>"
}
},
"title": {
@ -8400,6 +8539,17 @@
},
"question": "Does this shop have a gluten free offering?"
},
"indoor": {
"mappings": {
"0": {
"then": "This object is located indoors"
},
"1": {
"then": "This object is located outdoors"
}
},
"question": "Is this object located indoors?"
},
"induction-loop": {
"mappings": {
"0": {
@ -10490,6 +10640,133 @@
"render": "Surveillance Camera"
}
},
"tactile_map": {
"description": "Layer showing tactile maps, which can be used by visually impaired people to navigate the city.",
"name": "Tactile Maps",
"presets": {
"0": {
"description": "A tactile map that can be read using touch. Unlike a tactile model, this is relatively flat and does not feature three-dimensional buildings and such.",
"title": "a tactile map"
}
},
"tagRenderings": {
"braille": {
"mappings": {
"0": {
"then": "This tactile map has braille text."
},
"1": {
"then": "This tactile map does not have braille text."
}
},
"question": "Is there braille text on this tactile map?"
},
"braille_languages": {
"render": {
"special": {
"question": "In which languages is the braille text on this tactile map?",
"render_list_item": "This map has braille text in {language}",
"render_single_language": "This map has braille text in {language}"
}
}
},
"description": {
"freeform": {
"placeholder": "e.g. Tactile map of the city center"
},
"question": "What does this tactile map show?",
"render": "Description: {blind:description:en}."
},
"embossed_letters": {
"mappings": {
"0": {
"then": "This tactile map has embossed letters."
},
"1": {
"then": "This tactile map does not have embossed letters."
}
},
"question": "Are there embossed letters on this tactile map?"
},
"embossed_letters_languages": {
"render": {
"special": {
"question": "In which languages are the embossed letters on this tactile map?",
"render_list_item": "This map has embossed letters in {language}",
"render_single_language": "This map has embossed letters in {language}"
}
}
}
},
"title": "Tactile Map"
},
"tactile_model": {
"description": "Layer showing tactile models, three-dimensional models of the surrounding area.",
"name": "Tactile Models",
"presets": {
"0": {
"description": "A tactile model is a three-dimensional model of an area, allowing people to explore/see an area by touch.",
"title": "a tactile model"
}
},
"tagRenderings": {
"braille": {
"mappings": {
"0": {
"then": "There is a braille description."
},
"1": {
"then": "There is no braille description."
}
},
"question": "Is there a braille description?"
},
"braille_languages": {
"render": {
"special": {
"question": "In which languages is there a braille description?",
"render_list_item": "This model has a braille description in {language()}",
"render_single_language": "This model has a braille description in {language}"
}
}
},
"description": {
"freeform": {
"placeholder": "e.g. Tactile model of the city center"
},
"question": "What does this tactile model show?",
"render": "Description: {blind:description:en}."
},
"embossed_letters": {
"mappings": {
"0": {
"then": "There are embossed letters describing the model."
},
"1": {
"then": "There are no embossed letters describing the model."
}
},
"question": "Are there embossed letters describing the model?"
},
"embossed_letters_languages": {
"render": {
"special": {
"question": "In which languages are there embossed letters?",
"render_list_item": "This model has embossed letters in {language()}",
"render_single_language": "This model has embossed letters in {language}"
}
}
},
"scale": {
"freeform": {
"placeholder": "e.g. 1:1000"
},
"question": "What scale is the model?",
"render": "The scale of this model is {scale}."
}
},
"title": "Tactile Model"
},
"tertiary_education": {
"name": "Colleges and universities",
"presets": {

View file

@ -3301,6 +3301,9 @@
},
"3": {
"then": "Este reloj está en el suelo"
},
"4": {
"then": "Este reloj está en el suelo"
}
},
"question": "¿De qué manera está montado el reloj?"
@ -3410,17 +3413,6 @@
},
"question": "¿Este cruce tiene una isla en el medio?"
},
"crossing-is-zebra": {
"mappings": {
"0": {
"then": "Este es un paso de peatones"
},
"1": {
"then": "Este no es un paso de peatones"
}
},
"question": "¿Es este un paso de peatones?"
},
"crossing-minimap": {
"mappings": {
"0": {

View file

@ -2364,17 +2364,6 @@
},
"question": "Est-ce que ce passage a un refuge au milieu ?"
},
"crossing-is-zebra": {
"mappings": {
"0": {
"then": "C'est un passage piéton"
},
"1": {
"then": "Ce n'est pas un passage piéton"
}
},
"question": "Est-ce un passage piéton ?"
},
"crossing-right-turn-through-red": {
"mappings": {
"0": {

View file

@ -994,6 +994,17 @@
}
},
"tagRenderings": {
"automated": {
"mappings": {
"0": {
"then": "Dit is een handmatig fietsschoonmaakpunt"
},
"1": {
"then": "Dit is een automatisch fietsschoonmaakpunt"
}
},
"question": "Is dit fietsschoonmaakpunt geautomatiseerd?"
},
"bike_cleaning-charge": {
"mappings": {
"0": {
@ -1017,6 +1028,17 @@
},
"question": "Hoeveel kost het gebruik van het fietsschoonmaakpunt?",
"render": "Het gebruik van het fietsschoonmaakpunt kost {service:bicycle:cleaning:charge}"
},
"self_service": {
"mappings": {
"0": {
"then": "Dit fietsschoonmaakpunt is zelfbediening"
},
"1": {
"then": "Dit fietsschoonmaakpunt wordt bediend door aanwezig personeel"
}
},
"question": "Is dit fietsschoonmaakpunt zelfbediening?"
}
},
"title": {
@ -2662,6 +2684,10 @@
"1": {
"description": "Een publiekelijk zichtbare klok aan een muur",
"title": "een klok aan een muur"
},
"2": {
"description": "Een publiekelijk zichtbare klok rechtstreeks bevestigd aan een muur",
"title": "een klok aan een muur, rechtstreeks bevestigd aan een muur"
}
},
"tagRenderings": {
@ -2742,6 +2768,19 @@
},
"question": "Toont deze klok ook de luchtvochtigheid?"
},
"indoor": {
"override": {
"mappings": {
"0": {
"then": "Deze klok is binnen"
},
"1": {
"then": "Deze klok is buiten"
}
},
"question": "Is deze klok binnen?"
}
},
"support": {
"mappings": {
"0": {
@ -2856,17 +2895,6 @@
},
"question": "Heeft deze oversteekplaats een verkeerseiland in het midden?"
},
"crossing-is-zebra": {
"mappings": {
"0": {
"then": "Dit is een zebrapad"
},
"1": {
"then": "Dit is geen zebrapad"
}
},
"question": "Is dit een zebrapad?"
},
"crossing-minimap": {
"mappings": {
"0": {
@ -2949,6 +2977,57 @@
}
},
"question": "Heeft dit verkeerslicht een element dat trilt om te helpen bij het oversteken? (meestal onderaan de oversteekknop geplaatst)"
},
"markings": {
"mappings": {
"0": {
"then": "Deze oversteekplaats heeft geen markeringen"
},
"1": {
"then": "Deze oversteekplaats heeft een zebramarkering"
},
"10": {
"then": "Deze oversteekplaats heeft een zebramarkering in afwisselende kleuren"
},
"11": {
"then": "Deze oversteekplaats heeft een dubbele zebramarkering"
},
"12": {
"then": "Deze oversteekplaats heeft pictogrammen op de weg"
},
"13": {
"then": "Deze oversteekplaats heeft lijnen aan beide kanten van de oversteekplaats, met strepen die ze verbinden, met een onderbreking van elke streep"
},
"14": {
"then": "Deze oversteekplaats heeft dubbele lijnen aan beide kanten van de oversteekplaats"
},
"2": {
"then": "Deze oversteekplaats heeft markeringen van een onbekend type"
},
"3": {
"then": "Deze oversteekplaats heeft lijnen aan beide kanten van de oversteekplaats"
},
"4": {
"then": "Deze oversteekplaats heeft lijnen aan beide kanten van de oversteekplaats, met strepen die ze verbinden"
},
"5": {
"then": "Deze oversteekplaats heeft onderbroken lijnen aan beide kanten van de oversteekplaats"
},
"6": {
"then": "Deze oversteekplaats heeft stippellijnen aan beide kanten van de oversteekplaats"
},
"7": {
"then": "Deze oversteekplaats is gemarkeerd door een anders gekleurd wegdek"
},
"8": {
"then": "Deze oversteekplaats heeft lijnen aan beide kanten van de oversteekplaats, met schuine strepen die ze verbinden"
},
"9": {
"then": "Deze oversteekplaats heeft zebramarkeringen met een onderbreking van elke streep"
}
},
"question": "Wat voor markering heeft deze oversteekplaats?",
"render": "Deze oversteekplaats heeft {crossing:markings} markeringen"
}
},
"title": {
@ -6305,6 +6384,9 @@
"presets": {
"0": {
"title": "een brievenbus"
},
"1": {
"title": "een brievenbus tegen een muur"
}
},
"title": {
@ -6692,6 +6774,17 @@
"editButtonAriaLabel": "Pas emailadres aan",
"question": "Wat is het e-mailadres van {title()}?"
},
"indoor": {
"mappings": {
"0": {
"then": "Dit object bevindt zich binnen"
},
"1": {
"then": "Dit object bevindt zich buiten"
}
},
"question": "Bevindt dit object zich binnen?"
},
"induction-loop": {
"mappings": {
"0": {

View file

@ -1398,13 +1398,6 @@
"render": "Zegar"
}
},
"crossings": {
"tagRenderings": {
"crossing-is-zebra": {
"question": "Czy to jest przejście dla pieszych typu \"zebra\"?"
}
}
},
"cycle_highways": {
"name": "ścieżki rowerowe",
"title": {

View file

@ -206,7 +206,7 @@ function main() {
if (layout.hideFromOverview) {
continue
}
if(layout.id === "personal"){
if (layout.id === "personal") {
continue
}
files.push(generateTagInfoEntry(layout))

View file

@ -78,7 +78,7 @@ export default class AllImageProviders {
return undefined
}
const id = tags?.data?.id
if(this._cachedImageStores[id]){
if (this._cachedImageStores[id]) {
return this._cachedImageStores[id]
}

View file

@ -89,7 +89,7 @@ export default abstract class ImageProvider {
public abstract apiUrls(): string[]
public static async offerImageAsDownload(image: ProvidedImage){
public static async offerImageAsDownload(image: ProvidedImage) {
const response = await fetch(image.url_hd ?? image.url)
const blob = await response.blob()
Utils.offerContentsAsDownloadableFile(blob, new URL(image.url).pathname.split("/").at(-1), {

View file

@ -138,12 +138,19 @@ export default class PanoramaxImageProvider extends ImageProvider {
}
return data?.some(
(img) =>
img?.status !== undefined && img?.status !== "ready" && img?.status !== "broken" && img?.status !== "hidden"
img?.status !== undefined &&
img?.status !== "ready" &&
img?.status !== "broken" &&
img?.status !== "hidden"
)
}
Stores.Chronic(1500, () => hasLoading(source.data)).addCallback((_) => {
console.log("Testing panoramax URLS again as some were loading", source.data, hasLoading(source.data))
console.log(
"Testing panoramax URLS again as some were loading",
source.data,
hasLoading(source.data)
)
super.getRelevantUrlsFor(tags, prefixes).then((data) => {
source.set(data)
return !hasLoading(data)
@ -170,12 +177,12 @@ export default class PanoramaxImageProvider extends ImageProvider {
return ["https://panoramax.mapcomplete.org", "https://panoramax.xyz"]
}
public static getPanoramaxInstance (host: string){
public static getPanoramaxInstance(host: string) {
host = new URL(host).host
if(new URL(this.defaultPanoramax.host).host === host){
if (new URL(this.defaultPanoramax.host).host === host) {
return this.defaultPanoramax
}
if(new URL(this.xyz.host).host === host){
if (new URL(this.xyz.host).host === host) {
return this.xyz
}
return new Panoramax(host)

View file

@ -1,14 +1,42 @@
import { Utils } from "../../Utils"
/** This code is autogenerated - do not edit. Edit ./assets/layers/usersettings/usersettings.json instead */
export class ThemeMetaTagging {
public static readonly themeName = "usersettings"
public static readonly themeName = "usersettings"
public metaTaggging_for_usersettings(feat: {properties: Record<string, string>}) {
Utils.AddLazyProperty(feat.properties, '_mastodon_candidate_md', () => feat.properties._description.match(/\[[^\]]*\]\((.*(mastodon|en.osm.town).*)\).*/)?.at(1) )
Utils.AddLazyProperty(feat.properties, '_d', () => feat.properties._description?.replace(/&lt;/g,'<')?.replace(/&gt;/g,'>') ?? '' )
Utils.AddLazyProperty(feat.properties, '_mastodon_candidate_a', () => (feat => {const e = document.createElement('div');e.innerHTML = feat.properties._d;return Array.from(e.getElementsByTagName("a")).filter(a => a.href.match(/mastodon|en.osm.town/) !== null)[0]?.href }) (feat) )
Utils.AddLazyProperty(feat.properties, '_mastodon_link', () => (feat => {const e = document.createElement('div');e.innerHTML = feat.properties._d;return Array.from(e.getElementsByTagName("a")).filter(a => a.getAttribute("rel")?.indexOf('me') >= 0)[0]?.href})(feat) )
Utils.AddLazyProperty(feat.properties, '_mastodon_candidate', () => feat.properties._mastodon_candidate_md ?? feat.properties._mastodon_candidate_a )
feat.properties['__current_backgroun'] = 'initial_value'
}
public metaTaggging_for_usersettings(feat: { properties: Record<string, string> }) {
Utils.AddLazyProperty(feat.properties, "_mastodon_candidate_md", () =>
feat.properties._description
.match(/\[[^\]]*\]\((.*(mastodon|en.osm.town).*)\).*/)
?.at(1)
)
Utils.AddLazyProperty(
feat.properties,
"_d",
() => feat.properties._description?.replace(/&lt;/g, "<")?.replace(/&gt;/g, ">") ?? ""
)
Utils.AddLazyProperty(feat.properties, "_mastodon_candidate_a", () =>
((feat) => {
const e = document.createElement("div")
e.innerHTML = feat.properties._d
return Array.from(e.getElementsByTagName("a")).filter(
(a) => a.href.match(/mastodon|en.osm.town/) !== null
)[0]?.href
})(feat)
)
Utils.AddLazyProperty(feat.properties, "_mastodon_link", () =>
((feat) => {
const e = document.createElement("div")
e.innerHTML = feat.properties._d
return Array.from(e.getElementsByTagName("a")).filter(
(a) => a.getAttribute("rel")?.indexOf("me") >= 0
)[0]?.href
})(feat)
)
Utils.AddLazyProperty(
feat.properties,
"_mastodon_candidate",
() => feat.properties._mastodon_candidate_md ?? feat.properties._mastodon_candidate_a
)
feat.properties["__current_backgroun"] = "initial_value"
}
}

View file

@ -127,10 +127,9 @@ export class RegexTag extends TagsFilter {
return `${this.key}${invert}~${v}`
}
return `${this.key}${invert}~i~${v}`
}
const key :string = RegexTag.source(this.key, false)
const key: string = RegexTag.source(this.key, false)
return `${key}${invert}~${caseInvariant ? "i~" : ""}~${v}`
}

View file

@ -102,12 +102,12 @@ export class TagUtils {
"~i~~": {
name: "Key and value should match a given regex; value is case-invariant",
overpassSupport: true,
docs: "Similar to ~~, except that the value is case-invariant"
docs: "Similar to ~~, except that the value is case-invariant",
},
"!~i~~": {
name: "Key and value should match a given regex; value is case-invariant",
overpassSupport: true,
docs: "Similar to !~~, except that the value is case-invariant"
docs: "Similar to !~~, except that the value is case-invariant",
},
":=": {
name: "Substitute `... {some_key} ...` and match `key`",
@ -802,7 +802,7 @@ export class TagUtils {
if (tag.indexOf("~~") >= 0 || tag.indexOf("~i~~") >= 0) {
const caseInvariant = tag.indexOf("~i~~") >= 0
const split = Utils.SplitFirst(tag, caseInvariant ? "~i~~" : "~~")
const split = Utils.SplitFirst(tag, caseInvariant ? "~i~~" : "~~")
let keyRegex: RegExp
if (split[0] === "*") {
keyRegex = new RegExp(".+", "i")
@ -813,7 +813,7 @@ export class TagUtils {
if (split[1] === "*") {
valueRegex = new RegExp(".+", "s")
} else {
valueRegex = new RegExp("^(" + split[1] + ")$",caseInvariant ? "si": "s" )
valueRegex = new RegExp("^(" + split[1] + ")$", caseInvariant ? "si" : "s")
}
return new RegexTag(keyRegex, valueRegex)
}

View file

@ -9,7 +9,7 @@ export class Stores {
const source = new UIEventSource<Date>(undefined)
function run() {
if(asLong !== undefined && !asLong()){
if (asLong !== undefined && !asLong()) {
return
}
source.setData(new Date())

View file

@ -42,7 +42,7 @@ export class LocalStorageSource {
}
const source = new UIEventSource<string>(saved ?? defaultValue, "localstorage:" + key)
if(!Utils.runningFromConsole){
if (!Utils.runningFromConsole) {
source.addCallback((data) => {
if (data === undefined || data === "" || data === null) {
localStorage.removeItem(key)

View file

@ -36,7 +36,7 @@ export default class FilteredLayer {
constructor(
layer: LayerConfig,
appliedFilters?: ReadonlyMap<string, UIEventSource<undefined | number | string>>,
isDisplayed?: UIEventSource<boolean>,
isDisplayed?: UIEventSource<boolean>
) {
this.layerDef = layer
this.isDisplayed = isDisplayed ?? new UIEventSource(true)
@ -82,25 +82,25 @@ export default class FilteredLayer {
layer: LayerConfig,
context: string,
osmConnection: OsmConnection,
enabledByDefault?: Store<boolean>,
enabledByDefault?: Store<boolean>
) {
let isDisplayed: UIEventSource<boolean>
if (layer.syncSelection === "local") {
isDisplayed = LocalStorageSource.getParsed(
context + "-layer-" + layer.id + "-enabled",
layer.shownByDefault,
layer.shownByDefault
)
} else if (layer.syncSelection === "theme-only") {
isDisplayed = FilteredLayer.getPref(
osmConnection,
context + "-layer-" + layer.id + "-enabled",
layer,
layer
)
} else if (layer.syncSelection === "global") {
isDisplayed = FilteredLayer.getPref(
osmConnection,
"layer-" + layer.id + "-enabled",
layer,
layer
)
} else {
let isShown = layer.shownByDefault
@ -110,7 +110,7 @@ export default class FilteredLayer {
isDisplayed = QueryParameters.GetBooleanQueryParameter(
FilteredLayer.queryParameterKey(layer),
isShown,
"Whether or not layer " + layer.id + " is shown",
"Whether or not layer " + layer.id + " is shown"
)
}
@ -145,7 +145,7 @@ export default class FilteredLayer {
*/
private static fieldsToTags(
option: FilterConfigOption,
fieldstate: string | Record<string, string>,
fieldstate: string | Record<string, string>
): TagsFilter | undefined {
let properties: Record<string, string>
if (typeof fieldstate === "string") {
@ -181,7 +181,7 @@ export default class FilteredLayer {
private static getPref(
osmConnection: OsmConnection,
key: string,
layer: LayerConfig,
layer: LayerConfig
): UIEventSource<boolean> {
return osmConnection.GetPreference(key, layer.shownByDefault + "").sync(
(v) => {
@ -196,7 +196,7 @@ export default class FilteredLayer {
return undefined
}
return "" + b
},
}
)
}

View file

@ -7,7 +7,7 @@ export interface GlobalFilter {
/**
* If set, this object will be shown instead of hidden, even if the layer is not displayed
*/
forceShowOnMatch?: boolean,
forceShowOnMatch?: boolean
state: number | string | undefined
id: string
onNewPoint: {

View file

@ -141,7 +141,7 @@ class ExpandFilter extends DesugaringStep<LayerConfigJson> {
"Found a matching tagRendering to base a filter on, but this tagRendering does not contain any mappings"
)
}
const qtr = (<QuestionableTagRenderingConfigJson>tr)
const qtr = <QuestionableTagRenderingConfigJson>tr
const options = qtr.mappings.map((mapping) => {
let icon: string = mapping.icon?.["path"] ?? mapping.icon
let emoji: string = undefined
@ -149,12 +149,15 @@ class ExpandFilter extends DesugaringStep<LayerConfigJson> {
emoji = icon
icon = undefined
}
let osmTags = TagUtils.Tag( mapping.if)
if(qtr.multiAnswer && osmTags instanceof Tag){
osmTags = new RegexTag(osmTags.key, new RegExp("^(.+;)?"+osmTags.value+"(;.+)$","is"))
let osmTags = TagUtils.Tag(mapping.if)
if (qtr.multiAnswer && osmTags instanceof Tag) {
osmTags = new RegexTag(
osmTags.key,
new RegExp("^(.+;)?" + osmTags.value + "(;.+)$", "is")
)
}
if(mapping.alsoShowIf){
osmTags= new Or([osmTags, TagUtils.Tag(mapping.alsoShowIf)])
if (mapping.alsoShowIf) {
osmTags = new Or([osmTags, TagUtils.Tag(mapping.alsoShowIf)])
}
return <FilterConfigOptionJson>{

View file

@ -58,7 +58,7 @@ export default class DeleteConfig {
} else if (json.omitDefaultDeleteReasons) {
const forbidden = <string[]>json.omitDefaultDeleteReasons
deleteReasons = deleteReasons.filter(
(dl) => forbidden.indexOf(dl.changesetMessage) < 0,
(dl) => forbidden.indexOf(dl.changesetMessage) < 0
)
}
for (const defaultDeleteReason of deleteReasons) {
@ -90,7 +90,7 @@ export default class DeleteConfig {
if (json.softDeletionTags !== undefined) {
this.softDeletionTags = TagUtils.Tag(
json.softDeletionTags,
`${context}.softDeletionTags`,
`${context}.softDeletionTags`
)
}

View file

@ -445,10 +445,13 @@ export default class ThemeViewState implements SpecialVisualizationState {
this.perLayer.forEach((fs, layerName) => {
const doShowLayer = this.mapProperties.zoom.map(
(z) => {
if ((fs.layer.isDisplayed?.data ?? true) && z >= (fs.layer.layerDef?.minzoom ?? 0)){
if (
(fs.layer.isDisplayed?.data ?? true) &&
z >= (fs.layer.layerDef?.minzoom ?? 0)
) {
return true
}
if(this.layerState.globalFilters.data.some(f => f.forceShowOnMatch)){
if (this.layerState.globalFilters.data.some((f) => f.forceShowOnMatch)) {
return true
}
return false
@ -993,22 +996,26 @@ export default class ThemeViewState implements SpecialVisualizationState {
this.mapProperties.showScale.set(showScale)
})
this.layerState.filteredLayers.get("favourite")?.isDisplayed?.addCallbackAndRunD(favouritesShown => {
const oldGlobal = this.layerState.globalFilters.data
const key = "show-favourite"
if(favouritesShown){
this.layerState.globalFilters.set([...oldGlobal, {
forceShowOnMatch: true,
id:key,
osmTags: new Tag("_favourite","yes"),
state: 0,
onNewPoint: undefined
}])
}else{
this.layerState.globalFilters.set(oldGlobal.filter(gl => gl.id !== key))
}
})
this.layerState.filteredLayers
.get("favourite")
?.isDisplayed?.addCallbackAndRunD((favouritesShown) => {
const oldGlobal = this.layerState.globalFilters.data
const key = "show-favourite"
if (favouritesShown) {
this.layerState.globalFilters.set([
...oldGlobal,
{
forceShowOnMatch: true,
id: key,
osmTags: new Tag("_favourite", "yes"),
state: 0,
onNewPoint: undefined,
},
])
} else {
this.layerState.globalFilters.set(oldGlobal.filter((gl) => gl.id !== key))
}
})
new ThemeViewStateHashActor(this)
new MetaTagging(this)

View file

@ -13,7 +13,7 @@
/**
* Default: 50
*/
export let zIndex : string = "z-50"
export let zIndex: string = "z-50"
const shared =
"in-page normal-background dark:bg-gray-800 rounded-lg border-gray-200 dark:border-gray-700 border-gray-200 dark:border-gray-700 divide-gray-200 dark:divide-gray-700 shadow-md"
@ -21,7 +21,7 @@
if (fullscreen) {
defaultClass = shared
}
let dialogClass = "fixed top-0 start-0 end-0 h-modal inset-0 w-full p-4 flex "+zIndex
let dialogClass = "fixed top-0 start-0 end-0 h-modal inset-0 w-full p-4 flex " + zIndex
if (fullscreen) {
dialogClass += " h-full-child"
}

View file

@ -47,7 +47,7 @@
{resource.resolved?.description}
{#if resource.languageCodes?.indexOf($language) >= 0}
<div class="thanks w-fit">
<Tr t={availableTranslation}/>
<Tr t={availableTranslation} />
</div>
{/if}
</div>

View file

@ -23,7 +23,14 @@
let isDisplayed: UIEventSource<boolean> = filteredLayer.isDisplayed
let isDebugging = state?.featureSwitches?.featureSwitchIsDebugging ?? new ImmutableStore(false)
let showTags = state?.userRelatedState?.showTags?.map(s => (s === "yes" && state?.userRelatedState?.osmConnection?.userDetails?.data?.csCount >= Constants.userJourney.tagsVisibleAt) || s === "always" || s === "full")
let showTags = state?.userRelatedState?.showTags?.map(
(s) =>
(s === "yes" &&
state?.userRelatedState?.osmConnection?.userDetails?.data?.csCount >=
Constants.userJourney.tagsVisibleAt) ||
s === "always" ||
s === "full"
)
/**
* Gets a UIEventSource as boolean for the given option, to be used with a checkbox
@ -33,7 +40,7 @@
return state.sync(
(f) => f === 0,
[],
(b) => (b ? 0 : undefined),
(b) => (b ? 0 : undefined)
)
}
@ -72,7 +79,6 @@
<span class="subtle">
{filter.options[0].osmTags.asHumanString()}
</span>
</Checkbox>
{/if}
@ -89,7 +95,7 @@
{/if}
<Tr t={option.question} />
{#if $showTags && option.osmTags !== undefined}
&nbsp;({option.osmTags.asHumanString()})
&nbsp;({option.osmTags.asHumanString()})
{/if}
</option>
{/each}

View file

@ -37,12 +37,12 @@
if (!shown) {
previewedImage.set(undefined)
}
}),
})
)
onDestroy(
previewedImage.addCallbackAndRun((previewedImage) => {
showBigPreview.set(previewedImage?.id === image.id)
}),
})
)
function highlight(entered: boolean = true) {
@ -129,8 +129,6 @@
<MagnifyingGlassPlusIcon class="h-8 w-8 cursor-zoom-in pl-3 pb-3" color="white" />
</div>
{/if}
</div>
<div class="absolute bottom-0 left-0">
<ImageAttribution {image} {attributionFormat} />

View file

@ -23,11 +23,13 @@
export let state: SpecialVisualizationState
export let tags: UIEventSource<Record<string, string>>
let showDeleteDialog = new UIEventSource(false)
onDestroy(showDeleteDialog.addCallbackAndRunD(shown => {
if (shown) {
state.previewedImage.set(undefined)
}
}))
onDestroy(
showDeleteDialog.addCallbackAndRunD((shown) => {
if (shown) {
state.previewedImage.set(undefined)
}
})
)
let reportReason = new UIEventSource<ReportReason>(REPORT_REASONS[0])
let reportFreeText = new UIEventSource<string>(undefined)
@ -58,12 +60,10 @@
async function unlink() {
await state?.changes?.applyAction(
new ChangeTagAction(tags.data.id,
new Tag(image.key, ""),
tags.data, {
changeType: "delete-image",
theme: state.theme.id,
}),
new ChangeTagAction(tags.data.id, new Tag(image.key, ""), tags.data, {
changeType: "delete-image",
theme: state.theme.id,
})
)
}
@ -72,23 +72,21 @@
const placeholder = t.placeholder.current
</script>
<Popup shown={showDeleteDialog}>
<Tr slot="header" t={tu.title} />
<div class="flex flex-col sm:flex-row gap-x-4">
<div class="flex flex-col gap-x-4 sm:flex-row">
<img class="w-32 sm:w-64" src={image.url} />
<div>
<div class="flex flex-col justify-between h-full">
<div class="flex h-full flex-col justify-between">
<Tr t={tu.explanation} />
{#if $reported}
<Tr cls="thanks p-2" t={t.deletionRequested} />
{:else if image.provider.name === "panoramax"}
<div class="my-4">
<AccordionSingle noBorder>
<div slot="header" class="text-sm flex">Report inappropriate picture</div>
<div class="interactive p-2 flex flex-col">
<div slot="header" class="flex text-sm">Report inappropriate picture</div>
<div class="interactive flex flex-col p-2">
<h3>
<Tr t={t.title} />
</h3>
@ -118,71 +116,57 @@
placeholder={$placeholder}
/>
<button class="primary self-end" class:disabled={$reportReason === "other" && !$reportFreeText}
on:click={() => requestDeletion()}>
<button
class="primary self-end"
class:disabled={$reportReason === "other" && !$reportFreeText}
on:click={() => requestDeletion()}
>
<Tr t={t.requestDeletion} />
</button>
</div>
</AccordionSingle>
</div>
{/if}
</div>
</div>
</div>
<div slot="footer" class="flex justify-end flex-wrap">
<div slot="footer" class="flex flex-wrap justify-end">
<button on:click={() => showDeleteDialog.set(false)}>
<Tr t={Translations.t.general.cancel} />
</button>
<NextButton clss={"primary "+($reported ? "disabled" : "") } on:click={() => unlink()}>
<TrashIcon class="w-6 h-6 mr-2" />
<NextButton clss={"primary " + ($reported ? "disabled" : "")} on:click={() => unlink()}>
<TrashIcon class="mr-2 h-6 w-6" />
<Tr t={tu.button} />
</NextButton>
</div>
</Popup>
<div
class="w-fit shrink-0 relative"
style="scroll-snap-align: start"
>
<div class="relative bg-gray-200 max-w-max flex items-center">
<div class="relative w-fit shrink-0" style="scroll-snap-align: start">
<div class="relative flex max-w-max items-center bg-gray-200">
<AttributedImage
imgClass="carousel-max-height"
{image}
{state}
previewedImage={state?.previewedImage}
>
<svelte:fragment slot="dot-menu-actions">
<button on:click={() => ImageProvider.offerImageAsDownload(image)}>
<DownloadIcon />
<Tr t={Translations.t.general.download.downloadImage} />
</button>
<button
on:click={() => showDeleteDialog.set(true)}
class="flex items-center"
>
<button on:click={() => showDeleteDialog.set(true)} class="flex items-center">
<TrashIcon />
<Tr t={tu.button} />
</button>
</svelte:fragment>
</AttributedImage>
</div>
</div>
<style>
:global(.carousel-max-height) {
max-height: var(--image-carousel-height);
}
:global(.carousel-max-height) {
max-height: var(--image-carousel-height);
}
</style>

View file

@ -7,14 +7,10 @@
export let images: Store<ProvidedImage[]>
export let state: SpecialVisualizationState
export let tags: Store<Record<string, string>>
</script>
<div class="flex w-full space-x-2 overflow-x-auto" style="scroll-snap-type: x proximity">
{#each $images as image (image.url)}
<DeletableImage {image} {state} {tags}/>
<DeletableImage {image} {state} {tags} />
{/each}
</div>

View file

@ -19,7 +19,6 @@
export let clss: string = undefined
let isLoaded = new UIEventSource(false)
</script>
<div class={twMerge("relative h-full w-full", clss)}>
@ -36,12 +35,11 @@
<slot name="dot-menu-actions">
<button
class="no-image-background pointer-events-auto flex items-center"
on:click={() => ImageProvider.offerImageAsDownload(image)}
on:click={() => ImageProvider.offerImageAsDownload(image)}
>
<DownloadIcon class="h-6 w-6 px-2 opacity-100" />
<Tr t={Translations.t.general.download.downloadImage} />
</button>
</slot>
</DotMenu>
<div

View file

@ -18,11 +18,11 @@ export default class FediverseValidator extends Validator {
*/
public static extractServer(handle: string): { server: string; username: string } {
const match = handle?.match(this.usernameAtServer)
if(!match){
if (!match) {
return undefined
}
const [_, username, server] = match
return {username, server}
return { username, server }
}
/**
@ -36,7 +36,7 @@ export default class FediverseValidator extends Validator {
const url = new URL(s)
const path = url.pathname
if (path.match(/^\/@?\w+$/)) {
return `${path.substring(1)}@${url.hostname}`;
return `${path.substring(1)}@${url.hostname}`
}
} catch (e) {
// Nothing to do here

View file

@ -1,5 +1,4 @@
<script lang="ts">
import ArrowDownTray from "@babeard/svelte-heroicons/mini/ArrowDownTray"
import Tr from "../Base/Tr.svelte"
import Translations from "../i18n/Translations"
@ -20,23 +19,21 @@
export let extension: string
export let maintext: Translation
export let helpertext: Translation
export let construct: (feature: Feature, title: string) => (Blob | string)
export let construct: (feature: Feature, title: string) => Blob | string
function exportGpx() {
console.log("Exporting as GPX!")
const tgs = tags.data
const title = layer.title?.GetRenderValue(tgs)?.Subs(tgs)?.txt ?? "gpx_track"
const data = construct(feature, title)
Utils.offerContentsAsDownloadableFile(data, title + "_mapcomplete_export."+extension, {
Utils.offerContentsAsDownloadableFile(data, title + "_mapcomplete_export." + extension, {
mimetype,
})
}
</script>
<button class="w-full" on:click={() => exportGpx()}>
<ArrowDownTray class="w-11 h-11 mr-2"/>
<div class="flex flex-col items-start w-full">
<ArrowDownTray class="mr-2 h-11 w-11" />
<div class="flex w-full flex-col items-start">
<Tr t={maintext} cls="font-bold text-lg" />
<Tr t={helpertext} cls="subtle text-start" />
</div>

View file

@ -9,23 +9,25 @@
export let tags: Store<Record<string, string>>
export let state: SpecialVisualizationState
const validator = new FediverseValidator()
const userinfo = tags.mapD(t => t[key]).mapD(fediAccount => {
return FediverseValidator.extractServer(validator.reformat(fediAccount))
})
const homeLocation: Store<string> = state.userRelatedState?.preferencesAsTags.mapD(prefs => prefs["_mastodon_link"])
.mapD(userhandle => FediverseValidator.extractServer(validator.reformat(userhandle))?.server)
const userinfo = tags
.mapD((t) => t[key])
.mapD((fediAccount) => {
return FediverseValidator.extractServer(validator.reformat(fediAccount))
})
const homeLocation: Store<string> = state.userRelatedState?.preferencesAsTags
.mapD((prefs) => prefs["_mastodon_link"])
.mapD((userhandle) => FediverseValidator.extractServer(validator.reformat(userhandle))?.server)
</script>
<div class="flex flex-col w-full">
<a href={ "https://" + $userinfo.server + "/@" + $userinfo.username} target="_blank">@{$userinfo.username}
@{$userinfo.server} </a>
{#if $homeLocation !== undefined}
<a target="_blank" href={"https://"+$homeLocation+"/"}>
<Tr t={ Translations.t.validation.fediverse.onYourServer} />
<div class="flex w-full flex-col">
<a href={"https://" + $userinfo.server + "/@" + $userinfo.username} target="_blank">
@{$userinfo.username}
@{$userinfo.server}
</a>
{/if}
{#if $homeLocation !== undefined}
<a target="_blank" href={"https://" + $homeLocation + "/"}>
<Tr t={Translations.t.validation.fediverse.onYourServer} />
</a>
{/if}
</div>

View file

@ -554,10 +554,7 @@
</div>
</Popup>
<div
class="sticky bottom-0 flex flex-wrap justify-between"
style="z-index: 11"
>
<div class="sticky bottom-0 flex flex-wrap justify-between" style="z-index: 11">
{#if $settableKeys && $isKnown && !matchesEmpty}
<button class="as-link small text-sm" on:click={() => unknownModal.set(true)}>
<Tr t={Translations.t.unknown.markUnknown} />

View file

@ -2,7 +2,11 @@ import Combine from "./Base/Combine"
import { FixedUiElement } from "./Base/FixedUiElement"
import BaseUIElement from "./BaseUIElement"
import Title from "./Base/Title"
import { RenderingSpecification, SpecialVisualization, SpecialVisualizationState } from "./SpecialVisualization"
import {
RenderingSpecification,
SpecialVisualization,
SpecialVisualizationState,
} from "./SpecialVisualization"
import { HistogramViz } from "./Popup/HistogramViz"
import MinimapViz from "./Popup/MinimapViz.svelte"
import { ShareLinkViz } from "./Popup/ShareLinkViz"
@ -120,7 +124,7 @@ class NearbyImageVis implements SpecialVisualization {
tags: UIEventSource<Record<string, string>>,
args: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): SvelteUIElement {
const isOpen = args[0] === "open"
const readonly = args[1] === "readonly"
@ -187,7 +191,7 @@ class StealViz implements SpecialVisualization {
selectedElement: otherFeature,
state,
layer,
}),
})
)
}
if (elements.length === 1) {
@ -195,8 +199,8 @@ class StealViz implements SpecialVisualization {
}
return new Combine(elements).SetClass("flex flex-col")
},
[state.indexedFeatures.featuresById],
),
[state.indexedFeatures.featuresById]
)
)
}
@ -248,11 +252,11 @@ class CloseNoteViz implements SpecialVisualization {
public constr(
state: SpecialVisualizationState,
tags: UIEventSource<Record<string, string>>,
args: string[],
args: string[]
): SvelteUIElement {
const { text, icon, idkey, comment, minZoom, zoomButton } = Utils.ParseVisArgs(
this.args,
args,
args
)
return new SvelteUIElement(CloseNoteButton, {
@ -293,7 +297,7 @@ export class QuestionViz implements SpecialVisualization {
tags: UIEventSource<Record<string, string>>,
args: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): SvelteUIElement {
const labels = args[0]
?.split(";")
@ -325,7 +329,7 @@ export default class SpecialVisualizations {
for (const specialVisualization of SpecialVisualizations.specialVisualizations) {
SpecialVisualizations.specialVisualisationsDict.set(
specialVisualization.funcName,
specialVisualization,
specialVisualization
)
}
}
@ -345,15 +349,15 @@ export default class SpecialVisualizations {
viz.docs,
viz.args.length > 0
? MarkdownUtils.table(
["name", "default", "description"],
viz.args.map((arg) => {
let defaultArg = arg.defaultValue ?? "_undefined_"
if (defaultArg == "") {
defaultArg = "_empty string_"
}
return [arg.name, defaultArg, arg.doc]
}),
)
["name", "default", "description"],
viz.args.map((arg) => {
let defaultArg = arg.defaultValue ?? "_undefined_"
if (defaultArg == "") {
defaultArg = "_empty string_"
}
return [arg.name, defaultArg, arg.doc]
})
)
: undefined,
"#### Example usage of " + viz.funcName,
"<code>" + example + "</code>",
@ -362,18 +366,18 @@ export default class SpecialVisualizations {
public static constructSpecification(
template: string,
extraMappings: SpecialVisualization[] = [],
extraMappings: SpecialVisualization[] = []
): RenderingSpecification[] {
return SpecialVisualisationUtils.constructSpecification(
template,
SpecialVisualizations.specialVisualisationsDict,
extraMappings,
extraMappings
)
}
public static HelpMessage(): string {
const helpTexts: string[] = SpecialVisualizations.specialVisualizations.map((viz) =>
SpecialVisualizations.DocumentationFor(viz),
SpecialVisualizations.DocumentationFor(viz)
)
const firstPart = new Combine([
@ -406,10 +410,10 @@ export default class SpecialVisualizations {
},
},
null,
" ",
),
" "
)
).SetClass("code"),
"In other words: use `{ \"before\": ..., \"after\": ..., \"special\": {\"type\": ..., \"argname\": ...argvalue...}`. The args are in the `special` block; an argvalue can be a string, a translation or another value. (Refer to class `RewriteSpecial` in case of problems)",
'In other words: use `{ "before": ..., "after": ..., "special": {"type": ..., "argname": ...argvalue...}`. The args are in the `special` block; an argvalue can be a string, a translation or another value. (Refer to class `RewriteSpecial` in case of problems)',
])
.SetClass("flex flex-col")
.AsMarkdown()
@ -447,10 +451,10 @@ export default class SpecialVisualizations {
assignTo: state.userRelatedState.language,
availableLanguages: languages,
preferredLanguages: state.osmConnection.userDetails.map(
(ud) => ud.languages,
(ud) => ud.languages
),
})
}),
})
)
},
},
@ -489,7 +493,7 @@ export default class SpecialVisualizations {
state: SpecialVisualizationState,
tagSource: UIEventSource<Record<string, string>>,
args: string[],
feature: Feature,
feature: Feature
): SvelteUIElement {
return new SvelteUIElement(MinimapViz, { state, args, feature, tagSource })
},
@ -501,7 +505,7 @@ export default class SpecialVisualizations {
constr(
state: SpecialVisualizationState,
tagSource: UIEventSource<Record<string, string>>,
tagSource: UIEventSource<Record<string, string>>
): BaseUIElement {
return new VariableUiElement(
tagSource
@ -511,7 +515,7 @@ export default class SpecialVisualizations {
return new SvelteUIElement(SplitRoadWizard, { id, state })
}
return undefined
}),
})
)
},
},
@ -525,7 +529,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
if (feature.geometry.type !== "Point") {
return undefined
@ -548,7 +552,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
if (!layer.deletion) {
return undefined
@ -574,7 +578,7 @@ export default class SpecialVisualizations {
tags: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
) {
if (feature.geometry.type !== "LineString") {
return undefined
@ -582,10 +586,13 @@ export default class SpecialVisualizations {
const t = Translations.t.general.download
return new SvelteUIElement(ExportFeatureButton, {
tags, feature, layer,
tags,
feature,
layer,
mimetype: "{gpx=application/gpx+xml}",
extension: "gpx",
construct: (feature: Feature<LineString>, title: string) => GeoOperations.toGpx(feature, title),
construct: (feature: Feature<LineString>, title: string) =>
GeoOperations.toGpx(feature, title),
helpertext: t.downloadGpxHelper,
maintext: t.downloadFeatureAsGpx,
})
@ -603,7 +610,7 @@ export default class SpecialVisualizations {
state: SpecialVisualizationState,
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
feature: Feature
): BaseUIElement {
const [lon, lat] = GeoOperations.centerpointCoordinates(feature)
return new SvelteUIElement(CreateNewNote, {
@ -666,7 +673,7 @@ export default class SpecialVisualizations {
.map((tags) => tags[args[0]])
.map((wikidata) => {
wikidata = Utils.NoEmpty(
wikidata?.split(";")?.map((wd) => wd.trim()) ?? [],
wikidata?.split(";")?.map((wd) => wd.trim()) ?? []
)[0]
const entry = Wikidata.LoadWikidataEntry(wikidata)
return new VariableUiElement(
@ -676,9 +683,9 @@ export default class SpecialVisualizations {
}
const response = <WikidataResponse>e["success"]
return Translation.fromMap(response.labels)
}),
})
)
}),
})
),
},
new MapillaryLinkVis(),
@ -692,7 +699,7 @@ export default class SpecialVisualizations {
tags: UIEventSource<Record<string, string>>,
_,
__,
layer: LayerConfig,
layer: LayerConfig
) => new SvelteUIElement(AllTagsPanel, { tags, layer }),
},
{
@ -775,7 +782,7 @@ export default class SpecialVisualizations {
nameKey: nameKey,
fallbackName,
},
state.featureSwitchIsTesting,
state.featureSwitchIsTesting
)
return new SvelteUIElement(StarsBarIcon, {
score: reviews.average,
@ -809,7 +816,7 @@ export default class SpecialVisualizations {
nameKey: nameKey,
fallbackName,
},
state.featureSwitchIsTesting,
state.featureSwitchIsTesting
)
return new SvelteUIElement(ReviewForm, { reviews, state, tags, feature, layer })
},
@ -840,7 +847,7 @@ export default class SpecialVisualizations {
nameKey: nameKey,
fallbackName,
},
state.featureSwitchIsTesting,
state.featureSwitchIsTesting
)
return new SvelteUIElement(AllReviews, { reviews, state, tags, feature, layer })
},
@ -866,7 +873,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
args: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
return new Combine([
SpecialVisualizations.specialVisualisationsDict["create_review"].constr(
@ -874,14 +881,14 @@ export default class SpecialVisualizations {
tagSource,
args,
feature,
layer,
layer
),
SpecialVisualizations.specialVisualisationsDict["list_reviews"].constr(
state,
tagSource,
args,
feature,
layer,
layer
),
])
},
@ -899,7 +906,7 @@ export default class SpecialVisualizations {
constr(
state: SpecialVisualizationState,
_: UIEventSource<Record<string, string>>,
argument: string[],
argument: string[]
): BaseUIElement {
const [text] = argument
return new SvelteUIElement(ImportReviewIdentity, { state, text })
@ -956,7 +963,7 @@ export default class SpecialVisualizations {
constr(
state: SpecialVisualizationState,
tags: UIEventSource<Record<string, string>>,
args: string[],
args: string[]
): SvelteUIElement {
const keyToUse = args[0]
const prefix = args[1]
@ -993,17 +1000,17 @@ export default class SpecialVisualizations {
return undefined
}
const allUnits: Unit[] = [].concat(
...(state?.theme?.layers?.map((lyr) => lyr.units) ?? []),
...(state?.theme?.layers?.map((lyr) => lyr.units) ?? [])
)
const unit = allUnits.filter((unit) =>
unit.isApplicableToKey(key),
unit.isApplicableToKey(key)
)[0]
if (unit === undefined) {
return value
}
const getCountry = () => tagSource.data._country
return unit.asHumanLongValue(value, getCountry)
}),
})
)
},
},
@ -1015,10 +1022,13 @@ export default class SpecialVisualizations {
constr: (state, tags, args, feature, layer) => {
const t = Translations.t.general.download
return new SvelteUIElement(ExportFeatureButton, {
tags, feature, layer,
tags,
feature,
layer,
mimetype: "application/vnd.geo+json",
extension: "geojson",
construct: (feature: Feature<LineString>) => JSON.stringify(feature, null, " "),
construct: (feature: Feature<LineString>) =>
JSON.stringify(feature, null, " "),
maintext: t.downloadFeatureAsGeojson,
helpertext: t.downloadGeoJsonHelper,
})
@ -1054,7 +1064,7 @@ export default class SpecialVisualizations {
constr: (state) => {
return new SubtleButton(
new SvelteUIElement(Trash).SetClass("h-6"),
Translations.t.general.removeLocationHistory,
Translations.t.general.removeLocationHistory
).onClick(() => {
state.historicalUserLocations.features.setData([])
state.selectedElement.setData(undefined)
@ -1095,10 +1105,10 @@ export default class SpecialVisualizations {
new SvelteUIElement(NoteCommentElement, {
comment,
state,
}),
),
})
)
).SetClass("flex flex-col")
}),
})
),
},
{
@ -1131,7 +1141,7 @@ export default class SpecialVisualizations {
tagsSource: UIEventSource<Record<string, string>>,
_: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
) =>
new VariableUiElement(
tagsSource.map((tags) => {
@ -1151,7 +1161,7 @@ export default class SpecialVisualizations {
})
.SetClass("px-1")
.setSpan()
}),
})
),
},
{
@ -1167,8 +1177,8 @@ export default class SpecialVisualizations {
const challenge = Stores.FromPromise(
Utils.downloadJsonCached<MaprouletteTask>(
`${Maproulette.defaultEndpoint}/challenge/${parentId}`,
24 * 60 * 60 * 1000,
),
24 * 60 * 60 * 1000
)
)
return new VariableUiElement(
@ -1193,7 +1203,7 @@ export default class SpecialVisualizations {
} else {
return [title, new List(listItems)]
}
}),
})
)
},
docs: "Fetches the metadata of MapRoulette campaign that this task is part of and shows those details (namely `title`, `description` and `instruction`).\n\nThis reads the property `mr_challengeId` to detect the parent campaign.",
@ -1207,15 +1217,15 @@ export default class SpecialVisualizations {
"\n" +
"```json\n" +
"{\n" +
" \"id\": \"mark_duplicate\",\n" +
" \"render\": {\n" +
" \"special\": {\n" +
" \"type\": \"maproulette_set_status\",\n" +
" \"message\": {\n" +
" \"en\": \"Mark as not found or false positive\"\n" +
' "id": "mark_duplicate",\n' +
' "render": {\n' +
' "special": {\n' +
' "type": "maproulette_set_status",\n' +
' "message": {\n' +
' "en": "Mark as not found or false positive"\n' +
" },\n" +
" \"status\": \"2\",\n" +
" \"image\": \"close\"\n" +
' "status": "2",\n' +
' "image": "close"\n' +
" }\n" +
" }\n" +
"}\n" +
@ -1291,7 +1301,7 @@ export default class SpecialVisualizations {
(l) =>
l.name !== null &&
l.title &&
state.perLayer.get(l.id) !== undefined,
state.perLayer.get(l.id) !== undefined
)
.map(
(l) => {
@ -1301,8 +1311,8 @@ export default class SpecialVisualizations {
const fsBboxed = new BBoxFeatureSourceForLayer(fs, bbox)
return new StatisticsPanel(fsBboxed)
},
[state.mapProperties.bounds],
),
[state.mapProperties.bounds]
)
)
},
},
@ -1372,7 +1382,7 @@ export default class SpecialVisualizations {
constr(
state: SpecialVisualizationState,
tagSource: UIEventSource<Record<string, string>>,
args: string[],
args: string[]
): SvelteUIElement {
let [text, href, classnames, download, ariaLabel, icon] = args
if (download === "") {
@ -1410,7 +1420,7 @@ export default class SpecialVisualizations {
},
},
null,
" ",
" "
) +
"\n```",
args: [
@ -1434,7 +1444,7 @@ export default class SpecialVisualizations {
featureTags: UIEventSource<Record<string, string>>,
args: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
) {
const [key, tr, classesRaw] = args
let classes = classesRaw ?? ""
@ -1452,7 +1462,7 @@ export default class SpecialVisualizations {
"Could not create a special visualization for multi(",
args.join(", ") + ")",
"no properties found for object",
feature.properties.id,
feature.properties.id
)
return undefined
}
@ -1468,7 +1478,7 @@ export default class SpecialVisualizations {
elements.push(subsTr)
}
return elements
}),
})
)
},
},
@ -1488,7 +1498,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
return new VariableUiElement(
tagSource.map((tags) => {
@ -1500,7 +1510,7 @@ export default class SpecialVisualizations {
console.error("Cannot create a translation for", v, "due to", e)
return JSON.stringify(v)
}
}),
})
)
},
},
@ -1520,11 +1530,10 @@ export default class SpecialVisualizations {
tags: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
const key = argument[0]
return new SvelteUIElement(FediverseLink, { key, tags, state })
},
},
{
@ -1543,7 +1552,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
args: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
return new FixedUiElement("{" + args[0] + "}")
},
@ -1564,7 +1573,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
const key = argument[0] ?? "value"
return new VariableUiElement(
@ -1582,12 +1591,12 @@ export default class SpecialVisualizations {
} catch (e) {
return new FixedUiElement(
"Could not parse this tag: " +
JSON.stringify(value) +
" due to " +
e,
JSON.stringify(value) +
" due to " +
e
).SetClass("alert")
}
}),
})
)
},
},
@ -1608,7 +1617,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
const giggityUrl = argument[0]
return new SvelteUIElement(Giggity, { tags: tagSource, state, giggityUrl })
@ -1624,12 +1633,12 @@ export default class SpecialVisualizations {
_: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
const tags = (<ThemeViewState>(
state
)).geolocation.currentUserLocation.features.map(
(features) => features[0]?.properties,
(features) => features[0]?.properties
)
return new Combine([
new SvelteUIElement(OrientationDebugPanel, {}),
@ -1651,7 +1660,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
return new SvelteUIElement(MarkAsFavourite, {
tags: tagSource,
@ -1671,7 +1680,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
return new SvelteUIElement(MarkAsFavouriteMini, {
tags: tagSource,
@ -1691,7 +1700,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
return new SvelteUIElement(DirectionIndicator, { state, feature })
},
@ -1704,7 +1713,7 @@ export default class SpecialVisualizations {
state: SpecialVisualizationState,
tags: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
feature: Feature
): SvelteUIElement {
return new SvelteUIElement(QrCode, { state, tags, feature })
},
@ -1723,7 +1732,7 @@ export default class SpecialVisualizations {
constr(
state: SpecialVisualizationState,
tagSource: UIEventSource<Record<string, string>>,
args: string[],
args: string[]
): BaseUIElement {
const key = args[0] === "" ? "_direction:centerpoint" : args[0]
return new VariableUiElement(
@ -1734,11 +1743,11 @@ export default class SpecialVisualizations {
})
.mapD((value) => {
const dir = GeoOperations.bearingToHuman(
GeoOperations.parseBearing(value),
GeoOperations.parseBearing(value)
)
console.log("Human dir", dir)
return Translations.t.general.visualFeedback.directionsAbsolute[dir]
}),
})
)
},
},
@ -1768,7 +1777,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
args: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
const url = args[0]
const readonly = args[3] === "yes"
@ -1794,12 +1803,12 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
args: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
return new Toggle(
undefined,
new SvelteUIElement(LoginButton, { osmConnection: state.osmConnection }),
state.osmConnection.isLoggedIn,
state.osmConnection.isLoggedIn
)
},
},
@ -1837,7 +1846,7 @@ export default class SpecialVisualizations {
tags: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
const key = argument[0] ?? "website"
const useProxy = argument[1] !== "no"
@ -1864,11 +1873,11 @@ export default class SpecialVisualizations {
const features =
await LinkedDataLoader.fetchVeloparkEntry(
url,
loadAll,
loadAll
)
const feature =
features.find(
(f) => f.properties["ref:velopark"] === url,
(f) => f.properties["ref:velopark"] === url
) ?? features[0]
const properties = feature.properties
properties["ref:velopark"] = url
@ -1878,7 +1887,7 @@ export default class SpecialVisualizations {
console.error(e)
throw e
}
})(),
})()
)
}
return Stores.FromPromiseWithErr(
@ -1887,27 +1896,27 @@ export default class SpecialVisualizations {
return await LinkedDataLoader.fetchJsonLd(
url,
{ country },
useProxy ? "proxy" : "fetch-lod",
useProxy ? "proxy" : "fetch-lod"
)
} catch (e) {
console.log(
"Could not get with proxy/download LOD, attempting to download directly. Error for ",
url,
"is",
e,
e
)
return await LinkedDataLoader.fetchJsonLd(
url,
{ country },
"fetch-raw",
"fetch-raw"
)
}
})(),
})()
)
})
externalData.addCallbackAndRunD((lod) =>
console.log("linked_data_from_website received the following data:", lod),
console.log("linked_data_from_website received the following data:", lod)
)
return new Toggle(
@ -1922,7 +1931,7 @@ export default class SpecialVisualizations {
collapsed: isClosed,
}),
undefined,
url.map((url) => !!url),
url.map((url) => !!url)
)
},
},
@ -1942,7 +1951,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
const text = argument[0]
const cssClasses = argument[1]
@ -1964,7 +1973,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
const translation = tagSource.map((tags) => {
const layer = state.theme.getMatchingLayer(tags)
@ -1982,7 +1991,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
return new SvelteUIElement(PendingChangesIndicator, { state, compact: false })
},
@ -2002,7 +2011,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): SvelteUIElement {
return new SvelteUIElement<any, any, any>(ClearCaches, {
msg: argument[0] ?? "Clear local caches",
@ -2027,7 +2036,7 @@ export default class SpecialVisualizations {
tags: UIEventSource<Record<string, string>>,
argument: string[],
selectedElement: Feature,
layer: LayerConfig,
layer: LayerConfig
): SvelteUIElement {
const [header, labelsStr] = argument
const labels = labelsStr.split(";").map((x) => x.trim())
@ -2050,7 +2059,7 @@ export default class SpecialVisualizations {
tags: UIEventSource<Record<string, string>>,
argument: string[],
selectedElement: Feature,
layer: LayerConfig,
layer: LayerConfig
): SvelteUIElement {
const t = Translations.t.preset_type
const question: QuestionableTagRenderingConfigJson = {
@ -2090,7 +2099,7 @@ export default class SpecialVisualizations {
tagSource: UIEventSource<Record<string, string>>,
argument: string[],
feature: Feature,
layer: LayerConfig,
layer: LayerConfig
): BaseUIElement {
const text = argument[0]
return new SubtleButton(undefined, text).onClick(() => {
@ -2112,7 +2121,7 @@ export default class SpecialVisualizations {
"Invalid special visualisation found: funcName is undefined or doesn't match " +
regex +
invalid.map((sp) => sp.i).join(", ") +
". Did you perhaps type \n funcName: \"funcname\" // type declaration uses COLON\ninstead of:\n funcName = \"funcName\" // value definition uses EQUAL"
'. Did you perhaps type \n funcName: "funcname" // type declaration uses COLON\ninstead of:\n funcName = "funcName" // value definition uses EQUAL'
)
}

View file

@ -1534,10 +1534,10 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
let _: string
const matchWithFuncName = stackItem.match(regex)
if (matchWithFuncName) {
[_, functionName, path, line, column] = matchWithFuncName
;[_, functionName, path, line, column] = matchWithFuncName
} else {
const regexNoFuncName: RegExp = new RegExp("at ([a-zA-Z0-9-/.]+):([0-9]+):([0-9]+)");
[_, path, line, column] = stackItem.match(regexNoFuncName)
const 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") + 11) + "#L" + line

View file

@ -915,7 +915,7 @@ export class SvgToPdf {
| "poster_a3"
| "poster_a2"
| "current_view_a4"
|"current_view_a4_portrait"
| "current_view_a4_portrait"
| "current_view_a3_portrait"
| "current_view_a3_landscape",
PdfTemplateInfo

View file

@ -1,11 +1,11 @@
{
"contributors": [
{
"commits": 8533,
"commits": 8576,
"contributor": "Pieter Vander Vennet"
},
{
"commits": 483,
"commits": 495,
"contributor": "Robin van der Linde"
},
{
@ -13,7 +13,7 @@
"contributor": "Tobias"
},
{
"commits": 40,
"commits": 41,
"contributor": "dependabot[bot]"
},
{

View file

@ -10815,6 +10815,10 @@
"if": "value=cycleways_and_roads",
"then": "cycleways_and_roads - All infrastructure that someone can cycle over, accompanied with questions about this infrastructure"
},
{
"if": "value=cyclist_waiting_aid",
"then": "cyclist_waiting_aid - Various pieces of infrastructure that aid cyclists while they wait at a traffic light."
},
{
"if": "value=defibrillator",
"then": "defibrillator - A layer showing defibrillators which can be used in case of emergency. This contains public defibrillators, but also defibrillators which might need staff to fetch the actual device"
@ -11219,6 +11223,14 @@
"if": "value=surveillance_camera",
"then": "surveillance_camera - This layer shows surveillance cameras and allows a contributor to update information and add new cameras"
},
{
"if": "value=tactile_map",
"then": "tactile_map - Layer showing tactile maps, which can be used by visually impaired people to navigate the city."
},
{
"if": "value=tactile_model",
"then": "tactile_model - Layer showing tactile models, three-dimensional models of the surrounding area."
},
{
"if": "value=tertiary_education",
"then": "tertiary_education - Layer with all tertiary education institutes (ISCED:2011 levels 6,7 and 8)"

View file

@ -767,6 +767,10 @@
"if": "value=cycleways_and_roads",
"then": "<b>cycleways_and_roads</b> (builtin) - All infrastructure that someone can cycle over, accompanied with questions about this infrastructure"
},
{
"if": "value=cyclist_waiting_aid",
"then": "<b>cyclist_waiting_aid</b> (builtin) - Various pieces of infrastructure that aid cyclists while they wait at a traffic light."
},
{
"if": "value=defibrillator",
"then": "<b>defibrillator</b> (builtin) - A layer showing defibrillators which can be used in case of emergency. This contains public defibrillators, but also defibrillators which might need staff to fetch the actual device"
@ -1171,6 +1175,14 @@
"if": "value=surveillance_camera",
"then": "<b>surveillance_camera</b> (builtin) - This layer shows surveillance cameras and allows a contributor to update information and add new cameras"
},
{
"if": "value=tactile_map",
"then": "<b>tactile_map</b> (builtin) - Layer showing tactile maps, which can be used by visually impaired people to navigate the city."
},
{
"if": "value=tactile_model",
"then": "<b>tactile_model</b> (builtin) - Layer showing tactile models, three-dimensional models of the surrounding area."
},
{
"if": "value=tertiary_education",
"then": "<b>tertiary_education</b> (builtin) - Layer with all tertiary education institutes (ISCED:2011 levels 6,7 and 8)"
@ -13463,6 +13475,10 @@
"if": "value=cycleways_and_roads",
"then": "cycleways_and_roads - All infrastructure that someone can cycle over, accompanied with questions about this infrastructure"
},
{
"if": "value=cyclist_waiting_aid",
"then": "cyclist_waiting_aid - Various pieces of infrastructure that aid cyclists while they wait at a traffic light."
},
{
"if": "value=defibrillator",
"then": "defibrillator - A layer showing defibrillators which can be used in case of emergency. This contains public defibrillators, but also defibrillators which might need staff to fetch the actual device"
@ -13867,6 +13883,14 @@
"if": "value=surveillance_camera",
"then": "surveillance_camera - This layer shows surveillance cameras and allows a contributor to update information and add new cameras"
},
{
"if": "value=tactile_map",
"then": "tactile_map - Layer showing tactile maps, which can be used by visually impaired people to navigate the city."
},
{
"if": "value=tactile_model",
"then": "tactile_model - Layer showing tactile models, three-dimensional models of the surrounding area."
},
{
"if": "value=tertiary_education",
"then": "tertiary_education - Layer with all tertiary education institutes (ISCED:2011 levels 6,7 and 8)"
@ -35195,6 +35219,10 @@
"if": "value=cycleways_and_roads",
"then": "cycleways_and_roads - All infrastructure that someone can cycle over, accompanied with questions about this infrastructure"
},
{
"if": "value=cyclist_waiting_aid",
"then": "cyclist_waiting_aid - Various pieces of infrastructure that aid cyclists while they wait at a traffic light."
},
{
"if": "value=defibrillator",
"then": "defibrillator - A layer showing defibrillators which can be used in case of emergency. This contains public defibrillators, but also defibrillators which might need staff to fetch the actual device"
@ -35599,6 +35627,14 @@
"if": "value=surveillance_camera",
"then": "surveillance_camera - This layer shows surveillance cameras and allows a contributor to update information and add new cameras"
},
{
"if": "value=tactile_map",
"then": "tactile_map - Layer showing tactile maps, which can be used by visually impaired people to navigate the city."
},
{
"if": "value=tactile_model",
"then": "tactile_model - Layer showing tactile models, three-dimensional models of the surrounding area."
},
{
"if": "value=tertiary_education",
"then": "tertiary_education - Layer with all tertiary education institutes (ISCED:2011 levels 6,7 and 8)"

Some files were not shown because too many files have changed in this diff Show more