Chore: housekeeping

This commit is contained in:
Pieter Vander Vennet 2025-02-10 02:04:58 +01:00
parent cd9e03dd6f
commit b300fffdc5
156 changed files with 4436 additions and 1318 deletions
Docs
app
assets
capacitor.config.ts
langs/themes
package-lock.json
scripts
src

View file

@ -31,6 +31,7 @@
- birdhide
- brothel
- cafe_pub
- campsite
- car_rental
- caravansites
- charge_point
@ -203,9 +204,7 @@
- climbing_club
- climbing_gym
- cycle_highways
- dentist
- disaster_response
- doctors
- dogpark
- elongated_coin
- fitness_centre
@ -216,7 +215,6 @@
- nature_reserve
- observation_tower
- outdoor_seating
- physiotherapist
- playground
- recycling
- shops
@ -241,14 +239,11 @@
- childcare
- climbing_club
- climbing_gym
- dentist
- doctors
- fitness_centre
- food
- food_courts
- governments
- hackerspace
- physiotherapist
- recycling
- shops
- sports_centre
@ -268,13 +263,10 @@
- childcare
- climbing_club
- climbing_gym
- dentist
- doctors
- fitness_centre
- food
- governments
- hackerspace
- physiotherapist
- recycling
- shops
- sports_centre
@ -301,6 +293,7 @@
- lighthouse
- nature_reserve
- observation_tower
- school
### memorial.memorial-questions
@ -320,11 +313,15 @@
- assisted_repair
- brothel
- campsite
- cinema
- dentist
- doctors
- hospital
- ice_cream
- love_hotel
- pharmacy
- physiotherapist
- police
- postoffices
- school
@ -336,6 +333,7 @@
### mastodon
- assisted_repair
- campsite
- hackerspace
- scouting_group
@ -493,7 +491,8 @@
### questions
- caravansites
- campsite
- caravansites
- charge_point
- charging_station
- etymology
@ -582,6 +581,15 @@
- search
- summary
### address.address
- dentist
- doctors
- hospital
- pharmacy
- physiotherapist
- school
### seasonal
- drinking_water

View file

@ -95,6 +95,10 @@ Adds the currency valid for the object, based on country or explicit tagging. Ca
This is a lazy metatag and is only calculated when needed
### panoramax
Converts a `panoramax=hash1;hash2;hash3;...` into `panoramax=hash1`,`panoramax:0=hash1`...
Calculating tags with Javascript
----------------------------------

View file

@ -239,6 +239,7 @@ This table gives a summary of ids, names and other metainformation. [See the onl
| ICGC-topo | ICGC - Topogràfic de Catalunya | other | | Institut Cartogràfic i Geològic de Catalunya |
| PNOA-Spain-TMS | PNOA Spain | photo | ⭐ | PNOA |
| SITNA-catastro | Catastro Navarra | other | | SITNA - Gobierno de Navarra / Nafarroako Gobernua |
| geoEuskadi-basemap | geoEuskadiren Kartografia | map | | Eusko Jaurlaritza / Gobierno Vasco. geoEuskadi |
| geoEuskadi-ORTO | geoEuskadiren Ortoargazkiak | photo | ⭐ | Eusko Jaurlaritza / Gobierno Vasco. geoEuskadi |
| IDEIB | IDEIB - Ortofoto més recent de les Illes Balears | photo | ⭐ | Infraestructura de Dades Espacials de les Illes Balears |
| hri-orto | Helsinki region orthophoto | photo | ⭐ | © Espoon, Helsingin ja Vantaan kaupungit, Kirkkonummen ja Nurmijärven kunnat sekä HSL ja HSY |
@ -488,11 +489,11 @@ This table gives a summary of ids, names and other metainformation. [See the onl
| Lodz-2015 | Łódź: Orthophotomap 2015 (aerial image) | | | Urząd Miasta Łodzi |
| Lodz-2017 | Łódź: Orthophotomap 2017 (aerial image) | | | Urząd Miasta Łodzi |
| MDT2M_LITORAL_2014_15 | Elevation hillshade of the coastal areas of mainland Portugal - 2m - 2014-2015 (DGT) | elevation | | Informação geográfica cedida pela Direção-Geral do Território |
| ORTOS_DGT_2014_15 | Orthophotos of the coastal areas of mainland Portugal - 10cm - 2014-2015 (DGT) | historicphoto | | Informação geográfica cedida pela Direção-Geral do Território |
| ORTOS_DGT_2018_WMS | Orthophotos of mainland Portugal - 25cm - 2018 (DGT) | photo | ⭐ | Informação geográfica cedida pela Direção-Geral do Território |
| ORTOS_DGRF_2004_06 | Orthophotos of mainland Portugal - 50cm - 2004-2006 (DGT) | historicphoto | | Informação geográfica cedida pela Direção-Geral do Território |
| ORTOS_DGT_2021_RGB | Orthophotos of the northern portion of mainland Portugal - 25cm - 2021 (DGT) | photo | ⭐ | Informação geográfica cedida pela Direção-Geral do Território |
| ORTOSAT_DGT_2023_RGB | OrtoSat - Portugal Continental - 30cm - 2023 (DGT) | photo | | Informação geográfica cedida pela Direção-Geral do Território |
| ORTOS_DGT_2014_15 | Orthophotos of the coastal areas of mainland Portugal - 10 cm - 2014-2015 (DGT) | historicphoto | | Informação geográfica cedida pela Direção-Geral do Território |
| ORTOS_DGT_2018_WMS | Orthophotos of mainland Portugal - 25 cm - 2018 (DGT) | photo | ⭐ | Informação geográfica cedida pela Direção-Geral do Território |
| ORTOS_DGRF_2004_06 | Orthophotos of mainland Portugal - 50 cm - 2004-2006 (DGT) | historicphoto | | Informação geográfica cedida pela Direção-Geral do Território |
| ORTOS_DGT_2021_RGB | Orthophotos of the northern portion of mainland Portugal - 25 cm - 2021 (DGT) | photo | ⭐ | Informação geográfica cedida pela Direção-Geral do Território |
| ORTOSAT_DGT_2023_RGB | OrtoSat - Portugal Continental - 30 cm - 2023 (DGT) | photo | | Informação geográfica cedida pela Direção-Geral do Território |
| rs-osm-official-cyr | Official Serbia OSM (cyr) | osmbasedmap | | openstreetmap.rs |
| rs-osm-official-lat | Official Serbia OSM (lat) | osmbasedmap | | openstreetmap.rs |
| lantmateriet-orto1960 | Lantmäteriet Historic Orthophoto 1960 | historicphoto | | © Lantmäteriet, CC0 |
@ -696,7 +697,7 @@ This table gives a summary of ids, names and other metainformation. [See the onl
| IndianaMap_Latest | IndianaMap Orthoimagery - Latest Available | photo | | IndianaMap, Indiana Geographic Information Office |
| Kansas_NG911_2014 | Kansas NG911 Orthoimagery (2014) | historicphoto | | Kansas 911 Coordinating Council |
| Kansas_NG911_2018 | Kansas NG911 Orthoimagery (2018) | historicphoto | | Kansas 911 Coordinating Council |
| Kansas_NG911_2021 | Kansas NG911 Orthoimagery (2021) | photo | | Kansas 911 Coordinating Council |
| Kansas_NG911_2021 | Kansas NG911 Orthoimagery (2021) | photo | | Kansas 911 Coordinating Council |
| KYAPED_Phase_1 | KyFromAbove Aerial Imagery (2012-2014) | historicphoto | | KyFromAbove |
| KYAPED_Phase_2 | KyFromAbove Aerial Imagery (2018-2022) | photo | | KyFromAbove |
| MassGIS-LIDAR-Shaded-Relief | MassGIS LIDAR Shaded Relief | elevation | | MassGIS |
@ -842,16 +843,84 @@ This table gives a summary of ids, names and other metainformation. [See the onl
| ACT202311 | ACTmapi Imagery Nov 2023 | photo | | Aerial Imagery from ACTMapi ©ACT Government and MetroMap |
| ACT202402 | ACTmapi Imagery Feb 2024 | photo | | Aerial Imagery from ACTMapi ©ACT Government and MetroMap |
| ACT202409 | ACTmapi Imagery Sep 2024 | photo | ⭐ | Aerial Imagery from ACTMapi ©ACT Government and MetroMap |
| NSW_DCS_SS_HAPE_Imagery_1943 | NSW DCS SS HAPE Imagery 1943 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1944 | NSW DCS SS HAPE Imagery 1944 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1947 | NSW DCS SS HAPE Imagery 1947 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1955 | NSW DCS SS HAPE Imagery 1955 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1965 | NSW DCS SS HAPE Imagery 1965 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1966 | NSW DCS SS HAPE Imagery 1966 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1969 | NSW DCS SS HAPE Imagery 1969 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1970 | NSW DCS SS HAPE Imagery 1970 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1971 | NSW DCS SS HAPE Imagery 1971 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1972 | NSW DCS SS HAPE Imagery 1972 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1975 | NSW DCS SS HAPE Imagery 1975 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1976 | NSW DCS SS HAPE Imagery 1976 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1978 | NSW DCS SS HAPE Imagery 1978 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1980 | NSW DCS SS HAPE Imagery 1980 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1982 | NSW DCS SS HAPE Imagery 1982 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1983 | NSW DCS SS HAPE Imagery 1983 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1984 | NSW DCS SS HAPE Imagery 1984 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1986 | NSW DCS SS HAPE Imagery 1986 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1989 | NSW DCS SS HAPE Imagery 1989 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1990 | NSW DCS SS HAPE Imagery 1990 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1991 | NSW DCS SS HAPE Imagery 1991 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1993 | NSW DCS SS HAPE Imagery 1993 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1994 | NSW DCS SS HAPE Imagery 1994 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1996 | NSW DCS SS HAPE Imagery 1996 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_1998 | NSW DCS SS HAPE Imagery 1998 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_2001 | NSW DCS SS HAPE Imagery 2001 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_2004 | NSW DCS SS HAPE Imagery 2004 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_2005 | NSW DCS SS HAPE Imagery 2005 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_2006 | NSW DCS SS HAPE Imagery 2006 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_DCS_SS_HAPE_Imagery_2013 | NSW DCS SS HAPE Imagery 2013 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| Maxar_19-20_Australian_Bushfires_PreEvent | Maxar 2019-2020 Australian Bushfires Pre-event | photo | | ©2020 DigitalGlobe |
| NSW_LPI_BaseMap | DCS NSW Base Map | map | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods2021 | DCS NSW Floods 2021 | photo | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods2022 | DCS NSW Floods 2022 | photo | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| NSW_LPI_Imagery | DCS NSW Imagery | photo | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_2021_Bourke_flood_2021_04_15cm | DCS NSW Floods 2021 Bourke flood 2021 04 15cm | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_2021_Brewarrina_flood_2021_04_14_15cm | DCS NSW Floods 2021 Brewarrina flood 2021 04 14 15cm | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_2021_Hawkesbury-Nepean_Floods_Central_Sector_2021_03_15cm_RGB | DCS NSW Floods 2021 Hawkesbury-Nepean Floods Central Sector 2021 03 15cm RGB | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_2021_Hawkesbury-Nepean_Floods_West_Sector_2021_03_15cm | DCS NSW Floods 2021 Hawkesbury-Nepean Floods West Sector 2021 03 15cm | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_2021_Hawkesbury-nepean_floods_eastern_sector_2021_03_25cm | DCS NSW Floods 2021 Hawkesbury-nepean floods eastern sector 2021 03 25cm | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_2021_Hawkesbury-nepean_floods_southern_sector_2021_03_16cm | DCS NSW Floods 2021 Hawkesbury-nepean floods southern sector 2021 03 16cm | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_2021_Lower_clarence_flood_2021_03_16cm | DCS NSW Floods 2021 Lower clarence flood 2021 03 16cm | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_2021_Mogil_Mogil_RGB_2021_04_10_Flood_15cm_Rapid_ortho | DCS NSW Floods 2021 Mogil Mogil RGB 2021 04 10 Flood 15cm Rapid ortho | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_2021_Mungindi_RGB_2021_04_10_Flood_15cm_Rapid_ortho | DCS NSW Floods 2021 Mungindi RGB 2021 04 10 Flood 15cm Rapid ortho | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_2021_Walgett_flood_2021_04_14_15cm | DCS NSW Floods 2021 Walgett flood 2021 04 14 15cm | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Historical_Forbes_flood_2012_03_20cm_bgrn | DCS NSW Floods Historical Forbes 2012-03 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Historical_forbesflood_2016_10_20cm_bgrn | DCS NSW Floods Historical Forbes 2016-10 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Mar_2022_Grafton_Flood_2022_03_02_10cm_P3 | DCS NSW Floods Mar 2022 Grafton Flood 2022 03 02 10cm P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Mar_2022_Hawkesbury-Nepean_Flood_2022_03_09_13cm_P3 | DCS NSW Floods Mar 2022 Hawkesbury-Nepean Flood 2022 03 09 13cm P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Mar_2022_Lismore_Flood_2022_03_02_8cm_P3 | DCS NSW Floods Mar 2022 Lismore Flood 2022 03 02 8cm P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Mar_2022_Ulmarra_Flood_2022_03_03_8cm_p3 | DCS NSW Floods Mar 2022 Ulmarra Flood 2022 03 03 8cm p3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Mar_2022_Wisemans_Ferry_2022_03_13cm_P3 | DCS NSW Floods Mar 2022 Wisemans Ferry 2022 03 13cm P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Mar_2022_singleton_flood_2022_03_10_10cm_p3 | DCS NSW Floods Mar 2022 singleton flood 2022 03 10 10cm p3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2021_Condobolin_Flood_2021_11_13cm_P3 | DCS NSW Floods Nov 2021 Condobolin Flood 2021 11 13cm P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2021_Forbes_Flood_East_2021_11_16_15cm_P3 | DCS NSW Floods Nov 2021 Forbes Flood East 2021 11 16 15cm P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2021_Forbes_Flood_West_2021_11_17_15cm_P3 | DCS NSW Floods Nov 2021 Forbes Flood West 2021 11 17 15cm P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2021_Lake_Cowal_North_Flood_2021_12_36cm_P3 | DCS NSW Floods Nov 2021 Lake Cowal North Flood 2021 12 36cm P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2021_Nanami_Flood_East_2021_11_15_9cm_P3 | DCS NSW Floods Nov 2021 Nanami Flood East 2021 11 15 9cm P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2021_Nanami_Flood_West_2021_11_15_9cm_P3 | DCS NSW Floods Nov 2021 Nanami Flood West 2021 11 15 9cm P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2021_humbug_creek_flood_2021_12_16cm_p3 | DCS NSW Floods Nov 2021 humbug creek flood 2021 12 16cm p3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2021_mirrool_creek_flood_2021_11_16cm_p3 | DCS NSW Floods Nov 2021 mirrool creek flood 2021 11 16cm p3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Balranald_Flood_02122022_15cm_RGBN_P3 | DCS NSW Floods Nov 2022 Balranald Flood 02122022 15cm RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Bathurst_Flood_14112022_10cm_BGRN_P3 | DCS NSW Floods Nov 2022 Bathurst Flood 14112022 10cm BGRN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Billabong_Creek_Flood_26112022_15cm_RGBN_P3 | DCS NSW Floods Nov 2022 Billabong Creek Flood 26112022 15cm RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Condobolin_Flood_22112022_10cm_RGBN_P3 | DCS NSW Floods Nov 2022 Condobolin Flood 22112022 10cm RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Coreen_Flood_17112022_10cm_RGBN_P3 | DCS NSW Floods Nov 2022 Coreen Flood 17112022 10cm RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Corowa_Yarrawonga_Flood_25112022_15cm_RGBN_P3 | DCS NSW Floods Nov 2022 Corowa Yarrawonga Flood 25112022 15cm RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Derriwong_Flood_22112022_10cm_P3_RGBN_P3 | DCS NSW Floods Nov 2022 Derriwong Flood 22112022 10cm P3 RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Forbes_Flood_05112022_10cm_RGBN_P3 | DCS NSW Floods Nov 2022 Forbes Flood 05112022 10cm RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Lake-Cargelligo_Euabolong_Flood_04122022_15cm_RGBN_P3 | DCS NSW Floods Nov 2022 Lake-Cargelligo Euabolong Flood 04122022 15cm RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Murray_Wakool_Flood_01122022_15cm_RGBN_P3 | DCS NSW Floods Nov 2022 Murray Wakool Flood 01122022 15cm RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Swan_Hill_Flood_25112022_15cm_RGBN_P3 | DCS NSW Floods Nov 2022 Swan-Hill Flood 25112022 15cm RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Tooleybuc_Flood_01122022_15cm_RGBN_P3 | DCS NSW Floods Nov 2022 Tooleybuc Flood 01122022 15cm RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| DCS_NSW_Floods_Nov_2022_Wentworth_Flood_03122022_15cm_RGBN_P3 | DCS NSW Floods Nov 2022 Wentworth Flood 03122022 15cm RGBN P3 | historicphoto | | © State of New South Wales (Spatial Services, a business unit of the Department of Customer Service NSW). For current information go to spatial.nsw.gov.au. |
| ARA_Bushfires_2020 | ARA Bushfires 2020 | photo | ⭐ | ARA - Airborne Research Australia |
| CityOfLaunceston_2011 | Launceston OrthoPhoto 2011 | historicphoto | | © City of Launceston |
| CityOfLaunceston_2013 | Launceston OrthoPhoto 2013 | photo | | © City of Launceston |
| City_of_Melbourne_Feb_2019 | City of Melbourne Feb 2019 | photo | ⭐ | City of Melbourne |
| City_of_Melbourne_Feb_2019 | City of Melbourne Feb 2019 | photo | | City of Melbourne |
| City_of_Melbourne_May_2018 | City of Melbourne May 2018 | historicphoto | | City of Melbourne |
| City_of_Melbourne_May_2020 | City of Melbourne May 2020 | photo | ⭐ | City of Melbourne |
| USDA_Micronesia_2023 | USDA Micronesia Imagery (2023) | photo | | U.S. Department of Agriculture |
| USDA_Guam_2022 | USDA Guam Imagery (2022) | photo | | U.S. Department of Agriculture |
| USDA_Marshall_Islands_2023 | USDA Marshall Islands Imagery (2023) | photo | | U.S. Department of Agriculture |

View file

@ -5,15 +5,17 @@
Addresses
- This layer is shown at zoomlevel **18** and higher
- This layer will automatically load [named_streets](./named_streets.md) into the layout as it depends on it: a calculated tag loads features from this layer (calculatedTag[0] which calculates the value for _closest_3_street_names)
## Table of contents
1. [Themes using this layer](#themes-using-this-layer)
2. [Basic tags for this layer](#basic-tags-for-this-layer)
3. [Supported attributes](#supported-attributes)
- [address_joined](#address_joined)
- [header](#header)
- [housenumber](#housenumber)
- [street](#street)
- [unit](#unit)
- [fixme](#fixme)
- [leftover-questions](#leftover-questions)
- [move-button](#move-button)
@ -39,10 +41,31 @@ 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/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | Multiple choice | [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:housenumber#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Ahousenumber/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:unit#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Aunit/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:unit](https://wiki.openstreetmap.org/wiki/Key:addr:unit) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:addr:unit%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/fixme#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/fixme/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [fixme](https://wiki.openstreetmap.org/wiki/Key:fixme) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:fixme%3D) |
### address_joined
_This tagrendering has no question and is thus read-only_
*{group(header,street;housenumber;unit)}*
This tagrendering has labels
`address`
### header
_This tagrendering has no question and is thus read-only_
*{addr:street} <b>{addr:housenumber}</b> {addr:unit}*
- *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber=
This tagrendering has labels
`address`
`hidden`
### housenumber
The question is `What is the number of this house?`
@ -50,14 +73,29 @@ The question is `What is the number of this house?`
- *This building has no house number* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:nohousenumber' target='_blank'>nohousenumber</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:nohousenumber%3Dyes' target='_blank'>yes</a>
This tagrendering has labels
`address`
`hidden`
### street
The question is `What street is this address located in?`
*This address is in street <b>{addr:street}</b>* is shown if `addr:street` is set
- *Located in <b>{_closest_street:0:name}</b>* is shown if with addr:street=
- *Located in <b>{_closest_street:1:name}</b>* is shown if with addr:street=
- *Located in <b>{_closest_street:2:name}</b>* is shown if with addr:street=
This tagrendering has labels
`address`
`hidden`
### unit
The question is `What is the unit number or letter?`
*The unit number is <b>{addr:unit}</b>* is shown if `addr:unit` is set
- *No unit number* is shown if with addr:unit=
This tagrendering has labels
`address`
`hidden`
### fixme

View file

@ -208,8 +208,8 @@ The question is `Does this artwork serve as a bench?`
The question is `Does this bench have a backrest?`
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/two_sided.svg' style='width: 3rem; height: 3rem'> *This bench is two-sided and shares the backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a> & <a href='https://wiki.openstreetmap.org/wiki/Key:two_sided' target='_blank'>two_sided</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:two_sided%3Dyes' target='_blank'>yes</a>
- *This bench does have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a>
- *This bench does <b>not</b> have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dno' target='_blank'>no</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/one_sided.svg' style='width: 3rem; height: 3rem'> *This bench does have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/no_backrest.svg' style='width: 3rem; height: 3rem'> *This bench does <b>not</b> have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%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%3Dbench' target='_blank'>bench</a>
This tagrendering has labels

View file

@ -211,8 +211,8 @@ The question is `Does this artwork serve as a bench?`
The question is `Does this bench have a backrest?`
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/two_sided.svg' style='width: 3rem; height: 3rem'> *This bench is two-sided and shares the backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a> & <a href='https://wiki.openstreetmap.org/wiki/Key:two_sided' target='_blank'>two_sided</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:two_sided%3Dyes' target='_blank'>yes</a>
- *This bench does have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a>
- *This bench does <b>not</b> have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dno' target='_blank'>no</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/one_sided.svg' style='width: 3rem; height: 3rem'> *This bench does have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/no_backrest.svg' style='width: 3rem; height: 3rem'> *This bench does <b>not</b> have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%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%3Dbench' target='_blank'>bench</a>
This tagrendering has labels

View file

@ -88,8 +88,8 @@ _This tagrendering has no question and is thus read-only_
The question is `Does this bench have a backrest?`
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/two_sided.svg' style='width: 3rem; height: 3rem'> *This bench is two-sided and shares the backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a> & <a href='https://wiki.openstreetmap.org/wiki/Key:two_sided' target='_blank'>two_sided</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:two_sided%3Dyes' target='_blank'>yes</a>
- *This bench does have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a>
- *This bench does <b>not</b> have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dno' target='_blank'>no</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/one_sided.svg' style='width: 3rem; height: 3rem'> *This bench does have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/no_backrest.svg' style='width: 3rem; height: 3rem'> *This bench does <b>not</b> have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dno' target='_blank'>no</a>
This tagrendering has labels
`bench-questions`

File diff suppressed because one or more lines are too long

155
Docs/Layers/campsite.md Normal file
View file

@ -0,0 +1,155 @@
[//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources)
# campsite
Campsites
- This layer is shown at zoomlevel **7** 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)
- [group_only](#group_only)
- [name](#name)
- [fee](#fee)
- [capacity_persons](#capacity_persons)
- [phone](#phone)
- [email](#email)
- [website](#website)
- [questions](#questions)
- [mastodon](#mastodon)
- [images](#images)
- [lod](#lod)
5. [Filters](#filters)
## Themes using this layer
- [personal](https://mapcomplete.org/personal)
- [scouting](https://mapcomplete.org/scouting)
## Presets
The following options to create new points are included:
- **campsite** 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%3Dcamp_site' target='_blank'>camp_site</a>
- **campsite for groups** 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%3Dcamp_site' target='_blank'>camp_site</a> & <a href='https://wiki.openstreetmap.org/wiki/Key:group_only' target='_blank'>group_only</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dyes' target='_blank'>yes</a>
## Basic tags for this layer
Elements must match the expression **<a href='https://wiki.openstreetmap.org/wiki/Key:tourism' target='_blank'>tourism</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:tourism%3Dcamp_site' target='_blank'>camp_site</a>**
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22tourism%22%3D%22camp_site%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/group_only#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/group_only/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [group_only](https://wiki.openstreetmap.org/wiki/Key:group_only) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dno) |
| <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/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) | [currency](../SpecialInputElements.md#currency) | [](https://wiki.openstreetmap.org/wiki/Tag:charge%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/capacity:persons#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/capacity%3Apersons/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [capacity:persons](https://wiki.openstreetmap.org/wiki/Key:capacity:persons) | [pnat](../SpecialInputElements.md#pnat) | |
| <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/contact:mastodon#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/contact%3Amastodon/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [contact:mastodon](https://wiki.openstreetmap.org/wiki/Key:contact:mastodon) | [fediverse](../SpecialInputElements.md#fediverse) | |
### group_only
The question is `Is this campsite exclusively for groups?`
- *This campsite is exclusively for groups* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:group_only' target='_blank'>group_only</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dyes' target='_blank'>yes</a>
- *This campsite is not exclusively for groups* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:group_only' target='_blank'>group_only</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dno' target='_blank'>no</a>
### name
The question is `What is the name of this campsite?`
*The name of this campsite is {name}* is shown if `name` is set
### fee
The question is `Is a fee charged here?`
*A fee of {charge} should be paid for here* is shown if `charge` is set
- *The campsite is free of charge* 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>
- *A fee is charged here.* 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> & charge=
### capacity_persons
The question is `How many people can stay here?`
*{capacity:persons} people can stay here* is shown if `capacity:persons` 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`
### questions
Show the questions block at this location
_This tagrendering has no question and is thus read-only_
*{questions()}*
### mastodon
Shows and asks for the mastodon handle
The question is `What is the Mastodon-handle of {title()}?`
*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set
### 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()}*
### lod
_This tagrendering has no question and is thus read-only_
*{linked_data_from_website()}*
This tagrendering has labels
`added_by_default`
## Filters
| id | question | osmTags |
-----|-----|----- |
| capacity_persons_filter.0 | *All capacities* (default) | |
| capacity_persons_filter.1 | Capacity between 1 and 20 persons | capacity:persons>=1 & capacity:persons<=20 |
| capacity_persons_filter.2 | Capacity between 21 and 50 persons | capacity:persons>=21 & capacity:persons<=50 |
| capacity_persons_filter.3 | Capacity between 51 and 100 persons | capacity:persons>=51 & capacity:persons<=100 |
| capacity_persons_filter.4 | Capacity between 101 and 200 persons | capacity:persons>=101 & capacity:persons<=200 |
| capacity_persons_filter.5 | Capacity between 201 and 500 persons | capacity:persons>=201 & capacity:persons<=500 |
| capacity_persons_filter.6 | Capacity over 500 persons | capacity:persons>=501 |
| capacity_persons_filter.7 | ? | capacity:persons= |
This document is autogenerated from [assets/layers/campsite/campsite.json](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/assets/layers/campsite/campsite.json)

View file

@ -18,6 +18,11 @@ This layer shows dentist offices
- [phone](#phone)
- [email](#email)
- [website](#website)
- [address_joined](#address_joined)
- [header](#header)
- [housenumber](#housenumber)
- [street](#street)
- [unit](#unit)
- [name](#name)
- [leftover-questions](#leftover-questions)
- [move-button](#move-button)
@ -52,6 +57,10 @@ Elements must match the expression **<a href='https://wiki.openstreetmap.org/wik
| <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/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | Multiple choice | [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:housenumber#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Ahousenumber/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:unit#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Aunit/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:unit](https://wiki.openstreetmap.org/wiki/Key:addr:unit) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:addr:unit%3D) |
| <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) | |
### images
@ -97,6 +106,56 @@ The question is `What is the website of {title()}?`
This tagrendering has labels
`contact`
### address_joined
_This tagrendering has no question and is thus read-only_
*{group(header,street;housenumber;unit)}*
This tagrendering has labels
`address`
### header
_This tagrendering has no question and is thus read-only_
*{addr:street} <b>{addr:housenumber}</b> {addr:unit}*
- *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber=
This tagrendering has labels
`address`
`hidden`
### housenumber
The question is `What is the number of this house?`
*The house number is <b>{addr:housenumber}</b>* is shown if `addr:housenumber` is set
- *This building has no house number* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:nohousenumber' target='_blank'>nohousenumber</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:nohousenumber%3Dyes' target='_blank'>yes</a>
This tagrendering has labels
`address`
`hidden`
### street
The question is `What street is this address located in?`
*This address is in street <b>{addr:street}</b>* is shown if `addr:street` is set
This tagrendering has labels
`address`
`hidden`
### unit
The question is `What is the unit number or letter?`
*The unit number is <b>{addr:unit}</b>* is shown if `addr:unit` is set
- *No unit number* is shown if with addr:unit=
This tagrendering has labels
`address`
`hidden`
### name
The question is `What is the name of this dentist?`

View file

@ -19,6 +19,11 @@ This layer shows doctor offices
- [phone](#phone)
- [email](#email)
- [website](#website)
- [address_joined](#address_joined)
- [header](#header)
- [housenumber](#housenumber)
- [street](#street)
- [unit](#unit)
- [specialty](#specialty)
- [leftover-questions](#leftover-questions)
- [move-button](#move-button)
@ -56,6 +61,10 @@ Elements must match the expression **<a href='https://wiki.openstreetmap.org/wik
| <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/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | Multiple choice | [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:housenumber#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Ahousenumber/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:unit#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Aunit/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:unit](https://wiki.openstreetmap.org/wiki/Key:addr:unit) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:addr:unit%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/healthcare:speciality#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/healthcare%3Aspeciality/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [healthcare:speciality](https://wiki.openstreetmap.org/wiki/Key:healthcare:speciality) | [string](../SpecialInputElements.md#string) | [general](https://wiki.openstreetmap.org/wiki/Tag:healthcare:speciality%3Dgeneral) [gynaecology](https://wiki.openstreetmap.org/wiki/Tag:healthcare:speciality%3Dgynaecology) [psychiatry](https://wiki.openstreetmap.org/wiki/Tag:healthcare:speciality%3Dpsychiatry) [paediatrics](https://wiki.openstreetmap.org/wiki/Tag:healthcare:speciality%3Dpaediatrics) |
### images
@ -108,6 +117,56 @@ The question is `What is the website of {title()}?`
This tagrendering has labels
`contact`
### address_joined
_This tagrendering has no question and is thus read-only_
*{group(header,street;housenumber;unit)}*
This tagrendering has labels
`address`
### header
_This tagrendering has no question and is thus read-only_
*{addr:street} <b>{addr:housenumber}</b> {addr:unit}*
- *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber=
This tagrendering has labels
`address`
`hidden`
### housenumber
The question is `What is the number of this house?`
*The house number is <b>{addr:housenumber}</b>* is shown if `addr:housenumber` is set
- *This building has no house number* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:nohousenumber' target='_blank'>nohousenumber</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:nohousenumber%3Dyes' target='_blank'>yes</a>
This tagrendering has labels
`address`
`hidden`
### street
The question is `What street is this address located in?`
*This address is in street <b>{addr:street}</b>* is shown if `addr:street` is set
This tagrendering has labels
`address`
`hidden`
### unit
The question is `What is the unit number or letter?`
*The unit number is <b>{addr:unit}</b>* is shown if `addr:unit` is set
- *No unit number* is shown if with addr:unit=
This tagrendering has labels
`address`
`hidden`
### specialty
The question is `What is this doctor specialized in?`
@ -150,10 +209,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

@ -0,0 +1,151 @@
[//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources)
# group_campsite
This layer is based on [campsite](../Layers/campsite.md)
Campsites
- This layer is shown at zoomlevel **7** and higher
## Table of contents
1. [Themes using this layer](#themes-using-this-layer)
2. [Basic tags for this layer](#basic-tags-for-this-layer)
3. [Supported attributes](#supported-attributes)
- [group_only](#group_only)
- [name](#name)
- [fee](#fee)
- [capacity_persons](#capacity_persons)
- [phone](#phone)
- [email](#email)
- [website](#website)
- [questions](#questions)
- [mastodon](#mastodon)
- [images](#images)
- [lod](#lod)
4. [Filters](#filters)
## Themes using this layer
- [scouting](https://mapcomplete.org/scouting)
## Basic tags for this layer
Elements must match **all** of the following expressions:
0. <a href='https://wiki.openstreetmap.org/wiki/Key:tourism' target='_blank'>tourism</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:tourism%3Dcamp_site' target='_blank'>camp_site</a>
1. <a href='https://wiki.openstreetmap.org/wiki/Key:group_only' target='_blank'>group_only</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dyes' target='_blank'>yes</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:scout' target='_blank'>scout</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:scout%3Dyes' target='_blank'>yes</a>
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22tourism%22%3D%22camp_site%22%5D%5B%22group_only%22%3D%22yes%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%20%20%20%20nwr%5B%22tourism%22%3D%22camp_site%22%5D%5B%22scout%22%3D%22yes%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/group_only#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/group_only/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [group_only](https://wiki.openstreetmap.org/wiki/Key:group_only) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dno) |
| <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/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) | [currency](../SpecialInputElements.md#currency) | [](https://wiki.openstreetmap.org/wiki/Tag:charge%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/capacity:persons#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/capacity%3Apersons/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [capacity:persons](https://wiki.openstreetmap.org/wiki/Key:capacity:persons) | [pnat](../SpecialInputElements.md#pnat) | |
| <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/contact:mastodon#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/contact%3Amastodon/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [contact:mastodon](https://wiki.openstreetmap.org/wiki/Key:contact:mastodon) | [fediverse](../SpecialInputElements.md#fediverse) | |
### group_only
The question is `Is this campsite exclusively for groups?`
- *This campsite is exclusively for groups* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:group_only' target='_blank'>group_only</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dyes' target='_blank'>yes</a>
- *This campsite is not exclusively for groups* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:group_only' target='_blank'>group_only</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dno' target='_blank'>no</a>
### name
The question is `What is the name of this campsite?`
*The name of this campsite is {name}* is shown if `name` is set
### fee
The question is `Is a fee charged here?`
*A fee of {charge} should be paid for here* is shown if `charge` is set
- *The campsite is free of charge* 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>
- *A fee is charged here.* 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> & charge=
### capacity_persons
The question is `How many people can stay here?`
*{capacity:persons} people can stay here* is shown if `capacity:persons` 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`
### questions
Show the questions block at this location
_This tagrendering has no question and is thus read-only_
*{questions()}*
### mastodon
Shows and asks for the mastodon handle
The question is `What is the Mastodon-handle of {title()}?`
*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set
### 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()}*
### lod
_This tagrendering has no question and is thus read-only_
*{linked_data_from_website()}*
This tagrendering has labels
`added_by_default`
## Filters
| id | question | osmTags |
-----|-----|----- |
| capacity_persons_filter.0 | *All capacities* (default) | |
| capacity_persons_filter.1 | Capacity between 1 and 20 persons | capacity:persons>=1 & capacity:persons<=20 |
| capacity_persons_filter.2 | Capacity between 21 and 50 persons | capacity:persons>=21 & capacity:persons<=50 |
| capacity_persons_filter.3 | Capacity between 51 and 100 persons | capacity:persons>=51 & capacity:persons<=100 |
| capacity_persons_filter.4 | Capacity between 101 and 200 persons | capacity:persons>=101 & capacity:persons<=200 |
| capacity_persons_filter.5 | Capacity between 201 and 500 persons | capacity:persons>=201 & capacity:persons<=500 |
| capacity_persons_filter.6 | Capacity over 500 persons | capacity:persons>=501 |
| capacity_persons_filter.7 | ? | capacity:persons= |
This document is autogenerated from [assets/themes/scouting/scouting.json](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/assets/themes/scouting/scouting.json)

View file

@ -16,6 +16,11 @@ A layer showing hospital grounds
- [phone](#phone)
- [email](#email)
- [website](#website)
- [address_joined](#address_joined)
- [header](#header)
- [housenumber](#housenumber)
- [street](#street)
- [unit](#unit)
- [oh-visitor](#oh-visitor)
- [Opening hours for visitors](#opening-hours-for-visitors)
- [leftover-questions](#leftover-questions)
@ -49,6 +54,10 @@ Elements must match **any** of the following expressions:
| <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/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | Multiple choice | [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:housenumber#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Ahousenumber/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:unit#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Aunit/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:unit](https://wiki.openstreetmap.org/wiki/Key:addr:unit) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:addr:unit%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/opening_hours:visitors#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/opening_hours%3Avisitors/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [opening_hours:visitors](https://wiki.openstreetmap.org/wiki/Key:opening_hours:visitors) | [opening_hours](../SpecialInputElements.md#opening_hours) | |
### name
@ -94,6 +103,56 @@ The question is `What is the website of {title()}?`
This tagrendering has labels
`contact`
### address_joined
_This tagrendering has no question and is thus read-only_
*{group(header,street;housenumber;unit)}*
This tagrendering has labels
`address`
### header
_This tagrendering has no question and is thus read-only_
*{addr:street} <b>{addr:housenumber}</b> {addr:unit}*
- *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber=
This tagrendering has labels
`address`
`hidden`
### housenumber
The question is `What is the number of this house?`
*The house number is <b>{addr:housenumber}</b>* is shown if `addr:housenumber` is set
- *This building has no house number* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:nohousenumber' target='_blank'>nohousenumber</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:nohousenumber%3Dyes' target='_blank'>yes</a>
This tagrendering has labels
`address`
`hidden`
### street
The question is `What street is this address located in?`
*This address is in street <b>{addr:street}</b>* is shown if `addr:street` is set
This tagrendering has labels
`address`
`hidden`
### unit
The question is `What is the unit number or letter?`
*The unit number is <b>{addr:unit}</b>* is shown if `addr:unit` is set
- *No unit number* is shown if with addr:unit=
This tagrendering has labels
`address`
`hidden`
### oh-visitor
The question is `When are visitors allowed to visit?`

View file

@ -427,7 +427,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -136,8 +136,8 @@ The question is `When was this memorial installed?`
The question is `Does this bench have a backrest?`
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/two_sided.svg' style='width: 3rem; height: 3rem'> *This bench is two-sided and shares the backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a> & <a href='https://wiki.openstreetmap.org/wiki/Key:two_sided' target='_blank'>two_sided</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:two_sided%3Dyes' target='_blank'>yes</a>
- *This bench does have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a>
- *This bench does <b>not</b> have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dno' target='_blank'>no</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/one_sided.svg' style='width: 3rem; height: 3rem'> *This bench does have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/no_backrest.svg' style='width: 3rem; height: 3rem'> *This bench does <b>not</b> have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%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%3Dbench' target='_blank'>bench</a>
This tagrendering has labels

View file

@ -10,7 +10,6 @@ Hidden layer with all streets which have a name. Useful to detect addresses
- This layer is not visible by default and the visibility cannot be toggled, effectively resulting in a fully hidden layer. This can be useful, e.g. to calculate some metatags. If you want to render this layer (e.g. for debugging), enable it by setting the URL-parameter layer-<id>=true
- Not visible in the layer selection by default. If you want to make this layer toggable, override `name`
- Not rendered on the map by default. If you want to rendering this on the map, override `mapRenderings`
- This layer is needed as dependency for layer [address](#address)
## Table of contents
@ -20,7 +19,6 @@ Hidden layer with all streets which have a name. Useful to detect addresses
## Themes using this layer
- [grb](https://mapcomplete.org/grb)
- [uk_addresses](https://mapcomplete.org/uk_addresses)
## Basic tags for this layer

View file

@ -20,6 +20,11 @@ A layer showing pharmacies, which (probably) dispense prescription drugs
- [phone](#phone)
- [email](#email)
- [website](#website)
- [address_joined](#address_joined)
- [header](#header)
- [housenumber](#housenumber)
- [street](#street)
- [unit](#unit)
- [payment-options](#payment-options)
- [wheelchair](#wheelchair)
- [leftover-questions](#leftover-questions)
@ -59,6 +64,10 @@ Elements must match the expression **<a href='https://wiki.openstreetmap.org/wik
| <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/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | Multiple choice | [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:housenumber#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Ahousenumber/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:unit#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Aunit/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:unit](https://wiki.openstreetmap.org/wiki/Key:addr:unit) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:addr:unit%3D) |
### 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
@ -113,6 +122,56 @@ The question is `What is the website of {title()}?`
This tagrendering has labels
`contact`
### address_joined
_This tagrendering has no question and is thus read-only_
*{group(header,street;housenumber;unit)}*
This tagrendering has labels
`address`
### header
_This tagrendering has no question and is thus read-only_
*{addr:street} <b>{addr:housenumber}</b> {addr:unit}*
- *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber=
This tagrendering has labels
`address`
`hidden`
### housenumber
The question is `What is the number of this house?`
*The house number is <b>{addr:housenumber}</b>* is shown if `addr:housenumber` is set
- *This building has no house number* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:nohousenumber' target='_blank'>nohousenumber</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:nohousenumber%3Dyes' target='_blank'>yes</a>
This tagrendering has labels
`address`
`hidden`
### street
The question is `What street is this address located in?`
*This address is in street <b>{addr:street}</b>* is shown if `addr:street` is set
This tagrendering has labels
`address`
`hidden`
### unit
The question is `What is the unit number or letter?`
*The unit number is <b>{addr:unit}</b>* is shown if `addr:unit` is set
- *No unit number* is shown if with addr:unit=
This tagrendering has labels
`address`
`hidden`
### payment-options
The question is `Which methods of payment are accepted here?`

View file

@ -19,6 +19,11 @@ This layer shows physiotherapists
- [phone](#phone)
- [email](#email)
- [website](#website)
- [address_joined](#address_joined)
- [header](#header)
- [housenumber](#housenumber)
- [street](#street)
- [unit](#unit)
- [leftover-questions](#leftover-questions)
- [move-button](#move-button)
- [delete-button](#delete-button)
@ -53,6 +58,10 @@ Elements must match the expression **<a href='https://wiki.openstreetmap.org/wik
| <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/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | Multiple choice | [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:housenumber#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Ahousenumber/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:unit#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Aunit/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:unit](https://wiki.openstreetmap.org/wiki/Key:addr:unit) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:addr:unit%3D) |
### 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
@ -104,6 +113,56 @@ The question is `What is the website of {title()}?`
This tagrendering has labels
`contact`
### address_joined
_This tagrendering has no question and is thus read-only_
*{group(header,street;housenumber;unit)}*
This tagrendering has labels
`address`
### header
_This tagrendering has no question and is thus read-only_
*{addr:street} <b>{addr:housenumber}</b> {addr:unit}*
- *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber=
This tagrendering has labels
`address`
`hidden`
### housenumber
The question is `What is the number of this house?`
*The house number is <b>{addr:housenumber}</b>* is shown if `addr:housenumber` is set
- *This building has no house number* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:nohousenumber' target='_blank'>nohousenumber</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:nohousenumber%3Dyes' target='_blank'>yes</a>
This tagrendering has labels
`address`
`hidden`
### street
The question is `What street is this address located in?`
*This address is in street <b>{addr:street}</b>* is shown if `addr:street` is set
This tagrendering has labels
`address`
`hidden`
### unit
The question is `What is the unit number or letter?`
*The unit number is <b>{addr:unit}</b>* is shown if `addr:unit` is set
- *No unit number* is shown if with addr:unit=
This tagrendering has labels
`address`
`hidden`
### leftover-questions
_This tagrendering has no question and is thus read-only_

View file

@ -19,13 +19,21 @@ Schools giving primary and secondary education and post-secondary, non-tertiary
- [phone](#phone)
- [email](#email)
- [website](#website)
- [address_joined](#address_joined)
- [header](#header)
- [housenumber](#housenumber)
- [street](#street)
- [unit](#unit)
- [capacity](#capacity)
- [education-level-belgium](#education-level-belgium)
- [is_special_needs](#is_special_needs)
- [orientation_belgium](#orientation_belgium)
- [orientation_belgium_special_needs](#orientation_belgium_special_needs)
- [gender](#gender)
- [pedagogy](#pedagogy)
- [target-audience](#target-audience)
- [special_needs_categories_be](#special_needs_categories_be)
- [school-language](#school-language)
- [wikipedia](#wikipedia)
- [leftover-questions](#leftover-questions)
- [move-button](#move-button)
- [lod](#lod)
@ -62,12 +70,18 @@ Elements must match **any** of the following expressions:
| <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/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | Multiple choice | [](https://wiki.openstreetmap.org/wiki/Tag:addr:street%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:housenumber#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Ahousenumber/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:street#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Astreet/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/addr:unit#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/addr%3Aunit/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [addr:unit](https://wiki.openstreetmap.org/wiki/Key:addr:unit) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:addr:unit%3D) |
| <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:special_needs#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/school%3Aspecial_needs/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [school:special_needs](https://wiki.openstreetmap.org/wiki/Key:school:special_needs) | Multiple choice | [only](https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Donly) [separated](https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dseparated) [mixed](https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dmixed) [limited](https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/school:orientation#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/school%3Aorientation/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [school:orientation](https://wiki.openstreetmap.org/wiki/Key:school:orientation) | Multiple choice | [academic](https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dacademic) [professional](https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dprofessional) [vocational](https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dvocational) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/school:orientation#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/school%3Aorientation/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [school:orientation](https://wiki.openstreetmap.org/wiki/Key:school:orientation) | Multiple choice | [care_institution](https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dcare_institution) [sheltered_workshop](https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dsheltered_workshop) [vocational](https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dvocational) [professional](https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dprofessional) |
| <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) [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/wikidata#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/wikidata/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [wikidata](https://wiki.openstreetmap.org/wiki/Key:wikidata) | [wikidata](../SpecialInputElements.md#wikidata) | |
### 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
@ -110,6 +124,56 @@ The question is `What is the website of {title()}?`
This tagrendering has labels
`contact`
### address_joined
_This tagrendering has no question and is thus read-only_
*{group(header,street;housenumber;unit)}*
This tagrendering has labels
`address`
### header
_This tagrendering has no question and is thus read-only_
*{addr:street} <b>{addr:housenumber}</b> {addr:unit}*
- *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber=
This tagrendering has labels
`address`
`hidden`
### housenumber
The question is `What is the number of this house?`
*The house number is <b>{addr:housenumber}</b>* is shown if `addr:housenumber` is set
- *This building has no house number* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:nohousenumber' target='_blank'>nohousenumber</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:nohousenumber%3Dyes' target='_blank'>yes</a>
This tagrendering has labels
`address`
`hidden`
### street
The question is `What street is this address located in?`
*This address is in street <b>{addr:street}</b>* is shown if `addr:street` is set
This tagrendering has labels
`address`
`hidden`
### unit
The question is `What is the unit number or letter?`
*The unit number is <b>{addr:unit}</b>* is shown if `addr:unit` is set
- *No unit number* is shown if with addr:unit=
This tagrendering has labels
`address`
`hidden`
### capacity
The question is `How much students can at most enroll in this school?`
@ -129,6 +193,17 @@ The question is `What level of education is given on this school?`
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:_country' target='_blank'>_country</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:_country%3Dbe' target='_blank'>be</a>
### is_special_needs
The question is `Does this school target students with a special need?`
- *This school is only for special need students; a certificate is needed to enroll* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:special_needs' target='_blank'>school:special_needs</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Donly' target='_blank'>only</a>
- *This school has a separate section for special need students.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:special_needs' target='_blank'>school:special_needs</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dseparated' target='_blank'>separated</a>
- *Students with special needs and non-special need students have classes together.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:special_needs' target='_blank'>school:special_needs</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dmixed' target='_blank'>mixed</a>
- *This school offers limited, ad hoc support but has no significant expertise and is not considered a special needs school.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:special_needs' target='_blank'>school:special_needs</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dlimited' target='_blank'>limited</a>
- *This school has no support for special need students.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:special_needs' target='_blank'>school:special_needs</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dno' target='_blank'>no</a>
- *This school is for special need students.* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:special_needs' target='_blank'>school:special_needs</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dyes' target='_blank'>yes</a>. _This option cannot be chosen as answer_
### orientation_belgium
The question is `What does this school train pupils for?`
@ -137,7 +212,18 @@ The question is `What does this school train pupils for?`
- *Prepares for a professional study at a college* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:orientation' target='_blank'>school:orientation</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dprofessional' target='_blank'>professional</a>
- *Prepares for a job* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:orientation' target='_blank'>school:orientation</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dvocational' target='_blank'>vocational</a>
This tagrendering is only visible in the popup if the following condition is met: school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$
This tagrendering is only visible in the popup if the following condition is met: (school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$) & (<a href='https://wiki.openstreetmap.org/wiki/Key:school:special_needs' target='_blank'>school:special_needs</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dno' target='_blank'>no</a> | school:special_needs= | <a href='https://wiki.openstreetmap.org/wiki/Key:school:special_needs' target='_blank'>school:special_needs</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dlimited' target='_blank'>limited</a>)
### orientation_belgium_special_needs
The question is `What does this school train pupils for?`
- *<b>Training type 1</b>: trains elementary life skills to live in an institution. There is no intention to do a (paid) job after training* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:orientation' target='_blank'>school:orientation</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dcare_institution' target='_blank'>care_institution</a>
- *<b>Training type 2</b>: prepares to work in an environment with extra care and facilities such as a sheltered workshop* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:orientation' target='_blank'>school:orientation</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dsheltered_workshop' target='_blank'>sheltered_workshop</a>
- *<b>Training type 3</b>: prepares for a job and a (more-or-less) independent life in society* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:orientation' target='_blank'>school:orientation</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dvocational' target='_blank'>vocational</a>
- *<b>Training type 4</b>: prepares for a job or continued education* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:orientation' target='_blank'>school:orientation</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:orientation%3Dprofessional' target='_blank'>professional</a>
This tagrendering is only visible in the popup if the following condition is met: (school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$) & (<a href='https://wiki.openstreetmap.org/wiki/Key:school:special_needs' target='_blank'>school:special_needs</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Dyes' target='_blank'>yes</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:school:special_needs' target='_blank'>school:special_needs</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:special_needs%3Donly' target='_blank'>only</a>)
### gender
@ -163,23 +249,34 @@ The question is `What educational theory is applied on this school?`
- *This school uses the Reggio Emilia approach* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:pedagogy' target='_blank'>pedagogy</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:pedagogy%3Dreggio_emilia' target='_blank'>reggio_emilia</a>
- *This school uses the Sudbury system* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:pedagogy' target='_blank'>pedagogy</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:pedagogy%3Dsudbury' target='_blank'>sudbury</a>
### target-audience
### special_needs_categories_be
The question is `Does this school target students with a special need? Which structural facilities does this school have?`
*This school has facilities for students with {school:for}* is shown if `school:for` is set
The question is `What type of special needs are given here?`
- *This is a school for students without special needs<div class='subtle'>This includes students who can follow the courses with small, ad hoc measurements</div>* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:for' target='_blank'>school:for</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:for%3Dmainstream' target='_blank'>mainstream</a>
- *This is a school for students with learning disabilities* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:for' target='_blank'>school:for</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:for%3Dlearning_disabilities' target='_blank'>learning_disabilities</a>
- *This is a school for blind students or students with sight impairments* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:for' target='_blank'>school:for</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:for%3Dblind' target='_blank'>blind</a>
- *This is a school for deaf students or students with hearing impairments* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:for' target='_blank'>school:for</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:for%3Ddeaf' target='_blank'>deaf</a>
- *This is a school for students with disabilities* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:for' target='_blank'>school:for</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:for%3Ddisabilities' target='_blank'>disabilities</a>
- *This is a school for students with special needs* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:school:for' target='_blank'>school:for</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:for%3Dspecial_needs' target='_blank'>special_needs</a>
- *For students with an intellectual disability (type 2)* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:intellectual_disability' target='_blank'>special_needs:intellectual_disability</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:intellectual_disability%3Dyes' target='_blank'>yes</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:intellectual_disability' target='_blank'>special_needs:intellectual_disability</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:intellectual_disability%3Dno' target='_blank'>no</a>
- *For students with an emotional and behavioural problem (type 3)* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:emotional_behavioural_disorder' target='_blank'>special_needs:emotional_behavioural_disorder</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:emotional_behavioural_disorder%3Dyes' target='_blank'>yes</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:emotional_behavioural_disorder' target='_blank'>special_needs:emotional_behavioural_disorder</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:emotional_behavioural_disorder%3Dno' target='_blank'>no</a>
- *For students with an physical disability (type 4)* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:physical_disability' target='_blank'>special_needs:physical_disability</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:physical_disability%3Dyes' target='_blank'>yes</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:physical_disability' target='_blank'>special_needs:physical_disability</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:physical_disability%3Dno' target='_blank'>no</a>
- *For blind and visually impaired students (type 6)* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:blind' target='_blank'>special_needs:blind</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:blind%3Dyes' target='_blank'>yes</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:blind' target='_blank'>special_needs:blind</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:blind%3Dno' target='_blank'>no</a>
- *For deaf students and students with hearing loss (type 7)* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:deaf' target='_blank'>special_needs:deaf</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:deaf%3Dyes' target='_blank'>yes</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:deaf' target='_blank'>special_needs:deaf</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:deaf%3Dno' target='_blank'>no</a>
- *For students with a Developemental Language Disorder (type 7 - DLD)* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:language_disorder' target='_blank'>special_needs:language_disorder</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:language_disorder%3Dyes' target='_blank'>yes</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:language_disorder' target='_blank'>special_needs:language_disorder</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:language_disorder%3Dno' target='_blank'>no</a>
- *For students with an autism spectrum disorder (type 9)* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:autism' target='_blank'>special_needs:autism</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:autism%3Dyes' target='_blank'>yes</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:autism' target='_blank'>special_needs:autism</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:autism%3Dno' target='_blank'>no</a>
- *For students with a learning disability (basic offering )* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:learning_disabilities' target='_blank'>special_needs:learning_disabilities</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:learning_disabilities%3Dyes' target='_blank'>yes</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:special_needs:learning_disabilities' target='_blank'>special_needs:learning_disabilities</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:special_needs:learning_disabilities%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:_country' target='_blank'>_country</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:_country%3Dbe' target='_blank'>be</a> & school:special_needs!~^(no)$ & school:special_needs~.+
### school-language
_This tagrendering has no question and is thus read-only_
*{language_chooser(language,What is the main language of this school?<div class='subtle'>What language is spoken with the students in non-language related courses and with the administration?</div>,,&LBRACElanguage&LPARENS&RPARENS&RBRACE is the main language of this school,The following languages are used in this school:&LBRACElist&LPARENS&RPARENS&RBRACE,The main language of this school is unknown)}*
### wikipedia
Shows a wikipedia box with the corresponding wikipedia article; the wikidata-item link can be changed by a contributor
The question is `What is the corresponding Wikidata entity?`
*{wikipedia():max-height:25rem}* is shown if `wikidata` is set
- *{wikipedia():max-height:25rem}* is shown if with wikipedia~.+. _This option cannot be chosen as answer_
- *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_
### leftover-questions
_This tagrendering has no question and is thus read-only_
@ -225,6 +322,19 @@ This tagrendering has labels
| level.7 | This school offers post-secondary education (e.g. a seventh or eight specialisation year) | school~^(.+;)?post_secondary(;.+)$ |
| level.8 | Unknown school level | school= & amenity!=kindergarten |
| id | question | osmTags |
-----|-----|----- |
| has_special_needs.0 | *Does this school have special need education?* (default) | |
| has_special_needs.1 | Has special education | school:special_needs~.+ & school:special_needs!=no |
| has_special_needs.2 | No or limited special need education | school:special_needs= | school:special_needs=no | school:special_needs=limited |
| id | question | osmTags |
-----|-----|----- |
| orientation_belgium.0 | *What does this school train pupils for?* (default) | |
| orientation_belgium.1 | Prepares for an academic study at university | school:orientation~^(^(.+;)?academic(;.+)?$)$ |
| orientation_belgium.2 | Prepares for a professional study at a college | school:orientation~^(^(.+;)?professional(;.+)?$)$ |
| orientation_belgium.3 | Prepares for a job | school:orientation~^(^(.+;)?vocational(;.+)?$)$ |
This document is autogenerated from [assets/layers/school/school.json](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/assets/layers/school/school.json)

View file

@ -419,7 +419,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -435,7 +435,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -432,7 +432,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -432,7 +432,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -418,7 +418,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -427,7 +427,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -422,7 +422,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -4,7 +4,7 @@
Layer with all tertiary education institutes (ISCED:2011 levels 6,7 and 8)
- This layer is shown at zoomlevel **0** and higher
- This layer is shown at zoomlevel **14** and higher
## Table of contents

View file

@ -665,6 +665,14 @@ A module showing the pending changes, with the option to clear the pending chang
`{pending_changes()}`
### storage_all_tags
Shows the current state of storage
#### Example usage of storage_all_tags
`{storage_all_tags()}`
## tagrendering_manipulation
Special visualisations which reuse other tagRenderings to show data, but with a twist.
@ -973,7 +981,7 @@ The language element allows to show and pick all known (modern) languages. The k
| name | default | description |
-----|-----|----- |
| key | _undefined_ | What key to use, e.g. `language`, `tactile_writing:braille:language`, ... If a language is supported, the language code will be appended to this key, resulting in `language:nl=yes` if nl is picked |
| key | _undefined_ | What key to use, e.g. `language`, `tactile_writing:braille:language`, ... If a language is supported, the language code will be appended to this key, resulting in `<key>:nl=yes` if _nl_ is picked |
| question | _undefined_ | What to ask if no questions are known |
| render_list_item | {language()} | How a single language will be shown in the list of languages. Use `{language}` to indicate the language (which it must contain). |
| render_single_language | _undefined_ | What will be shown if the feature only supports a single language |

View file

@ -340,6 +340,835 @@
"key": "name",
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'shop' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=bicycle_rental with a fixed text, namely 'Bicycle rental shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "bicycle_rental"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=agrarian with a fixed text, namely 'Farm Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "agrarian"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=alcohol with a fixed text, namely 'Liquor Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "alcohol"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=anime with a fixed text, namely 'Anime / Manga Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "anime"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=antiques with a fixed text, namely 'Antique Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "antiques"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=appliance with a fixed text, namely 'Appliance Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "appliance"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=art with a fixed text, namely 'Art Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "art"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=baby_goods with a fixed text, namely 'Baby Goods Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "baby_goods"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=bag with a fixed text, namely 'Bag/Luggage Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "bag"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=bakery with a fixed text, namely 'Bakery' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "bakery"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=bathroom_furnishing with a fixed text, namely 'Bathroom Furnishing Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "bathroom_furnishing"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=beauty with a fixed text, namely 'Beauty Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "beauty"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=bed with a fixed text, namely 'Bedding/Mattress Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "bed"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=beverages with a fixed text, namely 'Beverage Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "beverages"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=bicycle with a fixed text, namely 'Bicycle Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "bicycle"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=boat with a fixed text, namely 'Boat Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "boat"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=bookmaker with a fixed text, namely 'Bookmaker' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "bookmaker"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=books with a fixed text, namely 'Bookstore' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "books"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=brewing_supplies with a fixed text, namely 'Brewing Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "brewing_supplies"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=butcher with a fixed text, namely 'Butcher' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "butcher"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=camera with a fixed text, namely 'Camera Equipment Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "camera"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=candles with a fixed text, namely 'Candle Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "candles"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=cannabis with a fixed text, namely 'Cannabis Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "cannabis"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=car with a fixed text, namely 'Car Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "car"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=car_parts with a fixed text, namely 'Car Parts Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "car_parts"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=car_repair with a fixed text, namely 'Car Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "car_repair"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=caravan with a fixed text, namely 'RV Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "caravan"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=carpet with a fixed text, namely 'Carpet Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "carpet"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=catalogue with a fixed text, namely 'Catalog Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "catalogue"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=charity with a fixed text, namely 'Charity Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "charity"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=cheese with a fixed text, namely 'Cheese Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "cheese"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=chemist with a fixed text, namely 'Drugstore' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "chemist"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=chocolate with a fixed text, namely 'Chocolate Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "chocolate"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=clothes with a fixed text, namely 'Clothing Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "clothes"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=coffee with a fixed text, namely 'Coffee Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "coffee"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=collector with a fixed text, namely 'Collectibles Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "collector"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=computer with a fixed text, namely 'Computer Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "computer"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=confectionery with a fixed text, namely 'Candy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "confectionery"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=convenience with a fixed text, namely 'Convenience Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "convenience"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=copyshop with a fixed text, namely 'Copy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "copyshop"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=cosmetics with a fixed text, namely 'Cosmetics Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "cosmetics"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=country_store with a fixed text, namely 'Rural Supplies Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "country_store"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=craft with a fixed text, namely 'Arts & Crafts Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "craft"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=curtain with a fixed text, namely 'Curtain Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "curtain"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=dairy with a fixed text, namely 'Dairy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "dairy"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=deli with a fixed text, namely 'Delicatessen' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "deli"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=department_store with a fixed text, namely 'Department Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "department_store"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=doityourself with a fixed text, namely 'DIY Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "doityourself"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=doors with a fixed text, namely 'Door Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "doors"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=dry_cleaning with a fixed text, namely 'Dry Cleaner' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "dry_cleaning"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=e-cigarette with a fixed text, namely 'E-Cigarette Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "e-cigarette"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=electrical with a fixed text, namely 'Electrical Equipment Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "electrical"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=electronics with a fixed text, namely 'Electronics Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "electronics"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=erotic with a fixed text, namely 'Erotic Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "erotic"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=fabric with a fixed text, namely 'Fabric Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "fabric"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=farm with a fixed text, namely 'Produce Stand' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "farm"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=fashion_accessories with a fixed text, namely 'Fashion Accessories Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "fashion_accessories"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=fireplace with a fixed text, namely 'Fireplace Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "fireplace"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=fishing with a fixed text, namely 'Fishing Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "fishing"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=flooring with a fixed text, namely 'Flooring Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "flooring"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=florist with a fixed text, namely 'Florist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "florist"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=frame with a fixed text, namely 'Framing Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "frame"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=frozen_food with a fixed text, namely 'Frozen Food Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "frozen_food"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=fuel with a fixed text, namely 'Fuel Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "fuel"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=funeral_directors with a fixed text, namely 'Funeral Home' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "funeral_directors"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=furniture with a fixed text, namely 'Furniture Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "furniture"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=games with a fixed text, namely 'Tabletop Game Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "games"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=garden_centre with a fixed text, namely 'Garden Center' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "garden_centre"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=gas with a fixed text, namely 'Bottled Gas Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "gas"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=general with a fixed text, namely 'General Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "general"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=gift with a fixed text, namely 'Gift Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "gift"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=greengrocer with a fixed text, namely 'Greengrocer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "greengrocer"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=hairdresser with a fixed text, namely 'Hairdresser' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "hairdresser"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=hairdresser_supply with a fixed text, namely 'Hairdresser Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "hairdresser_supply"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=hardware with a fixed text, namely 'Hardware Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "hardware"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=health_food with a fixed text, namely 'Health Food Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "health_food"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=hearing_aids with a fixed text, namely 'Hearing Aids Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "hearing_aids"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=herbalist with a fixed text, namely 'Herbalist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "herbalist"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=hifi with a fixed text, namely 'Hifi Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "hifi"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=honey with a fixed text, namely 'Honey Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "honey"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=household_linen with a fixed text, namely 'Household Linen Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "household_linen"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=houseware with a fixed text, namely 'Houseware Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "houseware"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=hunting with a fixed text, namely 'Hunting Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "hunting"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=interior_decoration with a fixed text, namely 'Interior Decoration Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "interior_decoration"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=jewelry with a fixed text, namely 'Jewelry Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "jewelry"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=kiosk with a fixed text, namely 'Kiosk' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "kiosk"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=kitchen with a fixed text, namely 'Kitchen Design Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "kitchen"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=laundry with a fixed text, namely 'Laundry' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "laundry"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=leather with a fixed text, namely 'Leather Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "leather"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=lighting with a fixed text, namely 'Lighting Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "lighting"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=locksmith with a fixed text, namely 'Locksmith' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "locksmith"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=lottery with a fixed text, namely 'Lottery Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "lottery"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=mall with a fixed text, namely 'Mall' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "mall"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=massage with a fixed text, namely 'Massage Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "massage"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=medical_supply with a fixed text, namely 'Medical Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "medical_supply"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=military_surplus with a fixed text, namely 'Military Surplus Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "military_surplus"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=mobile_phone with a fixed text, namely 'Mobile Phone Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "mobile_phone"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=model with a fixed text, namely 'Model Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "model"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=money_lender with a fixed text, namely 'Money Lender' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "money_lender"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=motorcycle with a fixed text, namely 'Motorcycle Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "motorcycle"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=motorcycle_repair with a fixed text, namely 'Motorcycle Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "motorcycle_repair"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=music with a fixed text, namely 'Music Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "music"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=musical_instrument with a fixed text, namely 'Musical Instrument Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "musical_instrument"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=newsagent with a fixed text, namely 'Newsstand' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "newsagent"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=nutrition_supplements with a fixed text, namely 'Nutrition Supplements Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "nutrition_supplements"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=nuts with a fixed text, namely 'Nuts Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "nuts"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=optician with a fixed text, namely 'Optician' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "optician"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=outdoor with a fixed text, namely 'Outdoors Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "outdoor"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=outpost with a fixed text, namely 'Online Retailer Outpost' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "outpost"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=paint with a fixed text, namely 'Paint Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "paint"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=party with a fixed text, namely 'Party Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "party"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=pasta with a fixed text, namely 'Pasta Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "pasta"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=pastry with a fixed text, namely 'Pastry Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "pastry"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=pawnbroker with a fixed text, namely 'Pawnshop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "pawnbroker"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=perfumery with a fixed text, namely 'Perfume Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "perfumery"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=pet with a fixed text, namely 'Pet Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "pet"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=pet_grooming with a fixed text, namely 'Pet Groomer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "pet_grooming"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=photo with a fixed text, namely 'Photography Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "photo"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=pottery with a fixed text, namely 'Pottery Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "pottery"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=printer_ink with a fixed text, namely 'Printer Ink Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "printer_ink"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=psychic with a fixed text, namely 'Psychic' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "psychic"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=pyrotechnics with a fixed text, namely 'Fireworks Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "pyrotechnics"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=radiotechnics with a fixed text, namely 'Radio/Electronic Component Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "radiotechnics"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=religion with a fixed text, namely 'Religious Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "religion"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=rental with a fixed text, namely 'Rental Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "rental"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=repair with a fixed text, namely 'Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "repair"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=rice with a fixed text, namely 'Rice Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "rice"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=scuba_diving with a fixed text, namely 'Scuba Diving Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "scuba_diving"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=seafood with a fixed text, namely 'Seafood Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "seafood"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=second_hand with a fixed text, namely 'Thrift Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "second_hand"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=sewing with a fixed text, namely 'Sewing Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "sewing"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=shoe_repair with a fixed text, namely 'Shoe Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "shoe_repair"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=shoes with a fixed text, namely 'Shoe Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "shoes"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=spices with a fixed text, namely 'Spice Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "spices"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=sports with a fixed text, namely 'Sporting Goods Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "sports"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=stationery with a fixed text, namely 'Stationery Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "stationery"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=storage_rental with a fixed text, namely 'Storage Rental' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "storage_rental"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=supermarket with a fixed text, namely 'Supermarket' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "supermarket"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=swimming_pool with a fixed text, namely 'Pool Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "swimming_pool"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=tailor with a fixed text, namely 'Tailor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "tailor"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=tattoo with a fixed text, namely 'Tattoo Parlor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "tattoo"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=tea with a fixed text, namely 'Tea Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "tea"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=telecommunication with a fixed text, namely 'Telecom Retail Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "telecommunication"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=ticket with a fixed text, namely 'Ticket Seller' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "ticket"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=tiles with a fixed text, namely 'Tile Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "tiles"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=tobacco with a fixed text, namely 'Tobacco Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "tobacco"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=tool_hire with a fixed text, namely 'Tool Rental' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "tool_hire"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=toys with a fixed text, namely 'Toy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "toys"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=trade with a fixed text, namely 'Trade Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "trade"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=travel_agency with a fixed text, namely 'Travel Agency' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "travel_agency"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=trophy with a fixed text, namely 'Trophy Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "trophy"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=tyres with a fixed text, namely 'Tire Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "tyres"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=vacuum_cleaner with a fixed text, namely 'Vacuum Cleaner Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "vacuum_cleaner"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=variety_store with a fixed text, namely 'Discount Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "variety_store"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=video with a fixed text, namely 'Video Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "video"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=video_games with a fixed text, namely 'Video Game Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "video_games"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=watches with a fixed text, namely 'Watches Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "watches"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=water with a fixed text, namely 'Drinking Water Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "water"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=water_sports with a fixed text, namely 'Watersport/Swim Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "water_sports"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=weapons with a fixed text, namely 'Weapon Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "weapons"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=wholesale with a fixed text, namely 'Wholesale Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "wholesale"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=wigs with a fixed text, namely 'Wig Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "wigs"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=window_blind with a fixed text, namely 'Window Blind Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "window_blind"
},
{
"key": "shop",
"description": "Layer 'Bike repair/shop' shows shop=wine with a fixed text, namely 'Wine Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)",
"value": "wine"
},
{
"key": "disused:shop",
"description": "Layer 'Bike repair/shop' shows disused:shop= with a fixed text, namely 'This shop is no longer used. It is vacant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') Picking this answer will delete the key disused:shop. (This is only shown if craft=)",
"value": ""
},
{
"key": "brand",
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'brand' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')"
@ -565,6 +1394,83 @@
"description": "Layer 'Bike repair/shop' shows service:bicycle:rental=no with a fixed text, namely 'This shop doesn't rent out bikes' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if service:bicycle:rental~.+ | shop=bicycle | shop=sport | shop=sports | shop=bicycle_repair | shop=outdoor | shop=rental)",
"value": "no"
},
{
"key": "rental",
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'rental' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))"
},
{
"key": "rental",
"description": "Layer 'Bike repair/shop' shows rental=city_bike with a fixed text, namely 'Normal city bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))",
"value": "city_bike"
},
{
"key": "rental",
"description": "Layer 'Bike repair/shop' shows rental=ebike with a fixed text, namely 'Electrical bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))",
"value": "ebike"
},
{
"key": "rental",
"description": "Layer 'Bike repair/shop' shows rental=bmx with a fixed text, namely 'BMX bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))",
"value": "bmx"
},
{
"key": "rental",
"description": "Layer 'Bike repair/shop' shows rental=mtb with a fixed text, namely 'Mountainbikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))",
"value": "mtb"
},
{
"key": "rental",
"description": "Layer 'Bike repair/shop' shows rental=kid_bike with a fixed text, namely 'Bikes for children can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))",
"value": "kid_bike"
},
{
"key": "rental",
"description": "Layer 'Bike repair/shop' shows rental=tandem with a fixed text, namely 'Tandem bicycles can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))",
"value": "tandem"
},
{
"key": "rental",
"description": "Layer 'Bike repair/shop' shows rental=racebike with a fixed text, namely 'Race bicycles can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))",
"value": "racebike"
},
{
"key": "rental",
"description": "Layer 'Bike repair/shop' shows rental=bike_helmet with a fixed text, namely 'Bike helmets can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))",
"value": "bike_helmet"
},
{
"key": "rental",
"description": "Layer 'Bike repair/shop' shows rental=cargo_bike with a fixed text, namely 'Cargo bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))",
"value": "cargo_bike"
},
{
"key": "capacity:city_bike",
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:city_bike' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*city_bike.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))"
},
{
"key": "capacity:ebike",
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:ebike' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*ebike.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))"
},
{
"key": "capacity:kid_bike",
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:kid_bike' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*kid_bike.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))"
},
{
"key": "capacity:bmx",
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:bmx' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*bmx.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))"
},
{
"key": "capacity:mtb",
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:mtb' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*mtb.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))"
},
{
"key": "capacity:bicycle_pannier",
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:bicycle_pannier' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*bicycle_pannier.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))"
},
{
"key": "capacity:tandem_bicycle",
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:tandem_bicycle' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*tandem_bicycle.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))"
},
{
"key": "service:bicycle:pump",
"description": "Layer 'Bike repair/shop' shows service:bicycle:pump=yes with a fixed text, namely 'This shop offers a bike pump for anyone' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if service:bicycle:pump~.+ | shop=bicycle | shop=bicycle_repair | service:bicycle:retail=yes | ^(service:bicycle:.+)$~~^(yes)$)",
@ -610,6 +1516,25 @@
"description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning=no with a fixed text, namely 'This shop doesn't offer bicycle cleaning' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if service:bicycle:cleaning~.+ | shop=bicycle | shop=bicycle_repair | ^(service:bicycle:.*)$~~^(yes|only)$)",
"value": "no"
},
{
"key": "service:bicycle:cleaning:charge",
"description": "Layer 'Bike repair/shop' 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 repair/shop' 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 repair/shop' 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 repair/shop' 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": "internet_access",
"description": "Layer 'Bike repair/shop' shows internet_access=wlan with a fixed text, namely 'This place offers wireless internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')",

View file

@ -66,6 +66,43 @@
"key": "contact:website",
"description": "Layer 'Hospitals' 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 'Disaster response and emergency services')"
},
{
"key": "addr:street",
"description": "Layer 'Hospitals' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Hospitals' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Hospitals' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'Disaster response and emergency services')"
},
{
"key": "nohousenumber",
"description": "Layer 'Hospitals' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'Disaster response and emergency services')"
},
{
"key": "addr:unit",
"description": "Layer 'Hospitals' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "opening_hours:visitors",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'opening_hours:visitors' (in the mapcomplete.org theme 'Disaster response and emergency services')"
@ -752,6 +789,43 @@
"key": "contact:website",
"description": "Layer 'Doctors' 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 'Disaster response and emergency services')"
},
{
"key": "addr:street",
"description": "Layer 'Doctors' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Doctors' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Doctors' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Doctors' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'Disaster response and emergency services')"
},
{
"key": "nohousenumber",
"description": "Layer 'Doctors' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Doctors' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Doctors' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'Disaster response and emergency services')"
},
{
"key": "addr:unit",
"description": "Layer 'Doctors' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "healthcare:speciality",
"description": "Layer 'Doctors' shows and asks freeform values for key 'healthcare:speciality' (in the mapcomplete.org theme 'Disaster response and emergency services')"
@ -915,6 +989,43 @@
"key": "contact:website",
"description": "Layer 'Pharmacies' 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 'Disaster response and emergency services')"
},
{
"key": "addr:street",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'Disaster response and emergency services')"
},
{
"key": "nohousenumber",
"description": "Layer 'Pharmacies' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'Disaster response and emergency services')"
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "payment:cash",
"description": "Layer 'Pharmacies' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')",

View file

@ -130,6 +130,43 @@
"key": "contact:website",
"description": "Layer 'Primary and secondary schools' 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 'Education')"
},
{
"key": "addr:street",
"description": "Layer 'Primary and secondary schools' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Education')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Primary and secondary schools' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Education')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Primary and secondary schools' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Education')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Primary and secondary schools' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'Education')"
},
{
"key": "nohousenumber",
"description": "Layer 'Primary and secondary schools' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Primary and secondary schools' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Education') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Primary and secondary schools' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'Education')"
},
{
"key": "addr:unit",
"description": "Layer 'Primary and secondary schools' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "capacity",
"description": "Layer 'Primary and secondary schools' shows and asks freeform values for key 'capacity' (in the mapcomplete.org theme 'Education')"
@ -169,21 +206,71 @@
"description": "Layer 'Primary and secondary schools' shows school=post_secondary with a fixed text, namely 'This school offers post-secondary education (e.g. a seventh or eight specialisation year)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if _country=be)",
"value": "post_secondary"
},
{
"key": "school:special_needs",
"description": "Layer 'Primary and secondary schools' shows school:special_needs=only with a fixed text, namely 'This school is only for special need students; a certificate is needed to enroll' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "only"
},
{
"key": "school:special_needs",
"description": "Layer 'Primary and secondary schools' shows school:special_needs=separated with a fixed text, namely 'This school has a separate section for special need students.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "separated"
},
{
"key": "school:special_needs",
"description": "Layer 'Primary and secondary schools' shows school:special_needs=mixed with a fixed text, namely 'Students with special needs and non-special need students have classes together.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "mixed"
},
{
"key": "school:special_needs",
"description": "Layer 'Primary and secondary schools' shows school:special_needs=limited with a fixed text, namely 'This school offers limited, ad hoc support but has no significant expertise and is not considered a special needs school.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "limited"
},
{
"key": "school:special_needs",
"description": "Layer 'Primary and secondary schools' shows school:special_needs=no with a fixed text, namely 'This school has no support for special need students.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "no"
},
{
"key": "school:special_needs",
"description": "Layer 'Primary and secondary schools' shows school:special_needs=yes with a fixed text, namely 'This school is for special need students.' (in the mapcomplete.org theme 'Education')",
"value": "yes"
},
{
"key": "school:orientation",
"description": "Layer 'Primary and secondary schools' shows school:orientation=academic with a fixed text, namely 'Prepares for an academic study at university' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$)",
"description": "Layer 'Primary and secondary schools' shows school:orientation=academic with a fixed text, namely 'Prepares for an academic study at university' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if (school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$) & (school:special_needs=no | school:special_needs= | school:special_needs=limited))",
"value": "academic"
},
{
"key": "school:orientation",
"description": "Layer 'Primary and secondary schools' shows school:orientation=professional with a fixed text, namely 'Prepares for a professional study at a college' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$)",
"description": "Layer 'Primary and secondary schools' shows school:orientation=professional with a fixed text, namely 'Prepares for a professional study at a college' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if (school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$) & (school:special_needs=no | school:special_needs= | school:special_needs=limited))",
"value": "professional"
},
{
"key": "school:orientation",
"description": "Layer 'Primary and secondary schools' shows school:orientation=vocational with a fixed text, namely 'Prepares for a job' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$)",
"description": "Layer 'Primary and secondary schools' shows school:orientation=vocational with a fixed text, namely 'Prepares for a job' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if (school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$) & (school:special_needs=no | school:special_needs= | school:special_needs=limited))",
"value": "vocational"
},
{
"key": "school:orientation",
"description": "Layer 'Primary and secondary schools' shows school:orientation=care_institution with a fixed text, namely '<b>Training type 1</b>: trains elementary life skills to live in an institution. There is no intention to do a (paid) job after training' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if (school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$) & (school:special_needs=yes | school:special_needs=only))",
"value": "care_institution"
},
{
"key": "school:orientation",
"description": "Layer 'Primary and secondary schools' shows school:orientation=sheltered_workshop with a fixed text, namely '<b>Training type 2</b>: prepares to work in an environment with extra care and facilities such as a sheltered workshop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if (school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$) & (school:special_needs=yes | school:special_needs=only))",
"value": "sheltered_workshop"
},
{
"key": "school:orientation",
"description": "Layer 'Primary and secondary schools' shows school:orientation=vocational with a fixed text, namely '<b>Training type 3</b>: prepares for a job and a (more-or-less) independent life in society' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if (school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$) & (school:special_needs=yes | school:special_needs=only))",
"value": "vocational"
},
{
"key": "school:orientation",
"description": "Layer 'Primary and secondary schools' shows school:orientation=professional with a fixed text, namely '<b>Training type 4</b>: prepares for a job or continued education' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if (school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$) & (school:special_needs=yes | school:special_needs=only))",
"value": "professional"
},
{
"key": "school:gender",
"description": "Layer 'Primary and secondary schools' shows school:gender=mixed with a fixed text, namely 'Both boys and girls can enroll here and have classes together' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
@ -254,38 +341,57 @@
"value": "sudbury"
},
{
"key": "school:for",
"description": "Layer 'Primary and secondary schools' shows and asks freeform values for key 'school:for' (in the mapcomplete.org theme 'Education')"
"key": "special_needs:intellectual_disability",
"description": "Layer 'Primary and secondary schools' shows special_needs:intellectual_disability=yes with a fixed text, namely 'For students with an intellectual disability (type 2)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if _country=be & school:special_needs!~^(no)$ & school:special_needs~.+)",
"value": "yes"
},
{
"key": "school:for",
"description": "Layer 'Primary and secondary schools' shows school:for=mainstream with a fixed text, namely 'This is a school for students without special needs<div class='subtle'>This includes students who can follow the courses with small, ad hoc measurements</div>' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "mainstream"
"key": "special_needs:emotional_behavioural_disorder",
"description": "Layer 'Primary and secondary schools' shows special_needs:emotional_behavioural_disorder=yes with a fixed text, namely 'For students with an emotional and behavioural problem (type 3)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if _country=be & school:special_needs!~^(no)$ & school:special_needs~.+)",
"value": "yes"
},
{
"key": "school:for",
"description": "Layer 'Primary and secondary schools' shows school:for=learning_disabilities with a fixed text, namely 'This is a school for students with learning disabilities' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "learning_disabilities"
"key": "special_needs:physical_disability",
"description": "Layer 'Primary and secondary schools' shows special_needs:physical_disability=yes with a fixed text, namely 'For students with an physical disability (type 4)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if _country=be & school:special_needs!~^(no)$ & school:special_needs~.+)",
"value": "yes"
},
{
"key": "school:for",
"description": "Layer 'Primary and secondary schools' shows school:for=blind with a fixed text, namely 'This is a school for blind students or students with sight impairments' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "blind"
"key": "special_needs:blind",
"description": "Layer 'Primary and secondary schools' shows special_needs:blind=yes with a fixed text, namely 'For blind and visually impaired students (type 6)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if _country=be & school:special_needs!~^(no)$ & school:special_needs~.+)",
"value": "yes"
},
{
"key": "school:for",
"description": "Layer 'Primary and secondary schools' shows school:for=deaf with a fixed text, namely 'This is a school for deaf students or students with hearing impairments' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "deaf"
"key": "special_needs:deaf",
"description": "Layer 'Primary and secondary schools' shows special_needs:deaf=yes with a fixed text, namely 'For deaf students and students with hearing loss (type 7)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if _country=be & school:special_needs!~^(no)$ & school:special_needs~.+)",
"value": "yes"
},
{
"key": "school:for",
"description": "Layer 'Primary and secondary schools' shows school:for=disabilities with a fixed text, namely 'This is a school for students with disabilities' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "disabilities"
"key": "special_needs:language_disorder",
"description": "Layer 'Primary and secondary schools' shows special_needs:language_disorder=yes with a fixed text, namely 'For students with a Developemental Language Disorder (type 7 - DLD)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if _country=be & school:special_needs!~^(no)$ & school:special_needs~.+)",
"value": "yes"
},
{
"key": "school:for",
"description": "Layer 'Primary and secondary schools' shows school:for=special_needs with a fixed text, namely 'This is a school for students with special needs' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education')",
"value": "special_needs"
"key": "special_needs:autism",
"description": "Layer 'Primary and secondary schools' shows special_needs:autism=yes with a fixed text, namely 'For students with an autism spectrum disorder (type 9)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if _country=be & school:special_needs!~^(no)$ & school:special_needs~.+)",
"value": "yes"
},
{
"key": "special_needs:learning_disabilities",
"description": "Layer 'Primary and secondary schools' shows special_needs:learning_disabilities=yes with a fixed text, namely 'For students with a learning disability (basic offering )' and allows to pick this as a default answer (in the mapcomplete.org theme 'Education') (This is only shown if _country=be & school:special_needs!~^(no)$ & school:special_needs~.+)",
"value": "yes"
},
{
"key": "wikidata",
"description": "Layer 'Primary and secondary schools' shows and asks freeform values for key 'wikidata' (in the mapcomplete.org theme 'Education')"
},
{
"key": "wikipedia",
"description": "Layer 'Primary and secondary schools' shows wikipedia~.+ with a fixed text, namely '{wikipedia():max-height:25rem}' (in the mapcomplete.org theme 'Education')"
},
{
"key": "wikidata",
"description": "Layer 'Primary and secondary schools' shows wikidata= with a fixed text, namely 'No Wikipedia page has been linked yet' (in the mapcomplete.org theme 'Education') Picking this answer will delete the key wikidata.",
"value": ""
},
{
"key": "amenity",

View file

@ -89,6 +89,43 @@
"key": "contact:website",
"description": "Layer 'Doctors' 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 'Healthcare')"
},
{
"key": "addr:street",
"description": "Layer 'Doctors' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Doctors' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Doctors' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Doctors' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'Healthcare')"
},
{
"key": "nohousenumber",
"description": "Layer 'Doctors' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Doctors' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Healthcare') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Doctors' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'Healthcare')"
},
{
"key": "addr:unit",
"description": "Layer 'Doctors' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "healthcare:speciality",
"description": "Layer 'Doctors' shows and asks freeform values for key 'healthcare:speciality' (in the mapcomplete.org theme 'Healthcare')"
@ -192,6 +229,43 @@
"key": "contact:website",
"description": "Layer 'Physiotherapist' 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 'Healthcare')"
},
{
"key": "addr:street",
"description": "Layer 'Physiotherapist' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Physiotherapist' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Physiotherapist' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Physiotherapist' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'Healthcare')"
},
{
"key": "nohousenumber",
"description": "Layer 'Physiotherapist' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Physiotherapist' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Healthcare') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Physiotherapist' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'Healthcare')"
},
{
"key": "addr:unit",
"description": "Layer 'Physiotherapist' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "amenity",
"description": "The MapComplete theme Healthcare has a layer Dentist showing features with this tag",
@ -258,6 +332,43 @@
"key": "contact:website",
"description": "Layer 'Dentist' 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 'Healthcare')"
},
{
"key": "addr:street",
"description": "Layer 'Dentist' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Dentist' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Dentist' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Dentist' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'Healthcare')"
},
{
"key": "nohousenumber",
"description": "Layer 'Dentist' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Dentist' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Healthcare') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Dentist' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'Healthcare')"
},
{
"key": "addr:unit",
"description": "Layer 'Dentist' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "name",
"description": "Layer 'Dentist' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Healthcare')"
@ -318,6 +429,43 @@
"key": "contact:website",
"description": "Layer 'Hospitals' 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 'Healthcare')"
},
{
"key": "addr:street",
"description": "Layer 'Hospitals' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Hospitals' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Hospitals' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'Healthcare')"
},
{
"key": "nohousenumber",
"description": "Layer 'Hospitals' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Healthcare') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'Healthcare')"
},
{
"key": "addr:unit",
"description": "Layer 'Hospitals' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "opening_hours:visitors",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'opening_hours:visitors' (in the mapcomplete.org theme 'Healthcare')"
@ -392,6 +540,43 @@
"key": "contact:website",
"description": "Layer 'Pharmacies' 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 'Healthcare')"
},
{
"key": "addr:street",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Healthcare')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'Healthcare')"
},
{
"key": "nohousenumber",
"description": "Layer 'Pharmacies' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Healthcare') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'Healthcare')"
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "payment:cash",
"description": "Layer 'Pharmacies' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')",

View file

@ -3265,6 +3265,43 @@
"key": "contact:website",
"description": "Layer 'Pharmacies' 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 'OnWheels')"
},
{
"key": "addr:street",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'OnWheels')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'OnWheels')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'OnWheels')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'OnWheels')"
},
{
"key": "nohousenumber",
"description": "Layer 'Pharmacies' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'OnWheels') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'OnWheels')"
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "payment:cash",
"description": "Layer 'Pharmacies' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')",
@ -3359,6 +3396,43 @@
"key": "contact:website",
"description": "Layer 'Doctors' 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 'OnWheels')"
},
{
"key": "addr:street",
"description": "Layer 'Doctors' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'OnWheels')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Doctors' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'OnWheels')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Doctors' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'OnWheels')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Doctors' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'OnWheels')"
},
{
"key": "nohousenumber",
"description": "Layer 'Doctors' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Doctors' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'OnWheels') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Doctors' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'OnWheels')"
},
{
"key": "addr:unit",
"description": "Layer 'Doctors' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "healthcare:speciality",
"description": "Layer 'Doctors' shows and asks freeform values for key 'healthcare:speciality' (in the mapcomplete.org theme 'OnWheels')"
@ -3439,6 +3513,43 @@
"key": "contact:website",
"description": "Layer 'Hospitals' 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 'OnWheels')"
},
{
"key": "addr:street",
"description": "Layer 'Hospitals' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'OnWheels')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Hospitals' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'OnWheels')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Hospitals' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'OnWheels')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'OnWheels')"
},
{
"key": "nohousenumber",
"description": "Layer 'Hospitals' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'OnWheels') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'OnWheels')"
},
{
"key": "addr:unit",
"description": "Layer 'Hospitals' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "opening_hours:visitors",
"description": "Layer 'Hospitals' shows and asks freeform values for key 'opening_hours:visitors' (in the mapcomplete.org theme 'OnWheels')"

View file

@ -58,6 +58,114 @@
{
"key": "contact:mastodon",
"description": "Layer 'Scouting groups' shows and asks freeform values for key 'contact:mastodon' (in the mapcomplete.org theme 'Scouting groups')"
},
{
"key": "tourism",
"description": "The MapComplete theme Scouting groups has a layer Group Campsites showing features with this tag",
"value": "camp_site"
},
{
"key": "scout",
"description": "The MapComplete theme Scouting groups has a layer Group Campsites showing features with this tag",
"value": "yes"
},
{
"key": "group_only",
"description": "The MapComplete theme Scouting groups has a layer Group Campsites showing features with this tag",
"value": "yes"
},
{
"key": "id",
"description": "Layer 'Group Campsites' 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 'Scouting groups') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))"
},
{
"key": "group_only",
"description": "Layer 'Group Campsites' shows group_only=yes with a fixed text, namely 'This campsite is exclusively for groups' and allows to pick this as a default answer (in the mapcomplete.org theme 'Scouting groups')",
"value": "yes"
},
{
"key": "group_only",
"description": "Layer 'Group Campsites' shows group_only=no with a fixed text, namely 'This campsite is not exclusively for groups' and allows to pick this as a default answer (in the mapcomplete.org theme 'Scouting groups')",
"value": "no"
},
{
"key": "name",
"description": "Layer 'Group Campsites' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Scouting groups')"
},
{
"key": "charge",
"description": "Layer 'Group Campsites' shows and asks freeform values for key 'charge' (in the mapcomplete.org theme 'Scouting groups')"
},
{
"key": "fee",
"description": "Layer 'Group Campsites' shows fee=no with a fixed text, namely 'The campsite is free of charge' and allows to pick this as a default answer (in the mapcomplete.org theme 'Scouting groups')",
"value": "no"
},
{
"key": "fee",
"description": "Layer 'Group Campsites' shows fee=yes & charge= with a fixed text, namely 'A fee is charged here.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Scouting groups')",
"value": "yes"
},
{
"key": "charge",
"description": "Layer 'Group Campsites' shows fee=yes & charge= with a fixed text, namely 'A fee is charged here.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Scouting groups') Picking this answer will delete the key charge.",
"value": ""
},
{
"key": "capacity:persons",
"description": "Layer 'Group Campsites' shows and asks freeform values for key 'capacity:persons' (in the mapcomplete.org theme 'Scouting groups')"
},
{
"key": "phone",
"description": "Layer 'Group Campsites' shows and asks freeform values for key 'phone' (in the mapcomplete.org theme 'Scouting groups')"
},
{
"key": "contact:phone",
"description": "Layer 'Group Campsites' shows contact:phone~.+ with a fixed text, namely '{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}' (in the mapcomplete.org theme 'Scouting groups')"
},
{
"key": "email",
"description": "Layer 'Group Campsites' shows and asks freeform values for key 'email' (in the mapcomplete.org theme 'Scouting groups')"
},
{
"key": "contact:email",
"description": "Layer 'Group Campsites' shows contact:email~.+ with a fixed text, namely '<a href='mailto:{contact:email}' target='_blank' rel='noopener'>{contact:email}</a>' (in the mapcomplete.org theme 'Scouting groups')"
},
{
"key": "operator:email",
"description": "Layer 'Group Campsites' shows operator:email~.+ with a fixed text, namely '<a href='mailto:{operator:email}' target='_blank' rel='noopener'>{operator:email}</a>' (in the mapcomplete.org theme 'Scouting groups')"
},
{
"key": "website",
"description": "Layer 'Group Campsites' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Scouting groups')"
},
{
"key": "contact:website",
"description": "Layer 'Group Campsites' 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 'Scouting groups')"
},
{
"key": "contact:mastodon",
"description": "Layer 'Group Campsites' shows and asks freeform values for key 'contact:mastodon' (in the mapcomplete.org theme 'Scouting groups')"
},
{
"key": "image",
"description": "The layer 'Group Campsites 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 'Group Campsites 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 'Group Campsites 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 'Group Campsites 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 'Group Campsites 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"
}
]
}

View file

@ -1475,6 +1475,43 @@
"key": "contact:website",
"description": "Layer 'Pharmacies' 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 'Shops')"
},
{
"key": "addr:street",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Shops')",
"value": ""
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Shops')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Pharmacies' shows addr:street= & addr:unit= & addr:housenumber= with a fixed text, namely 'No address is known' (in the mapcomplete.org theme 'Shops')",
"value": ""
},
{
"key": "addr:housenumber",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:housenumber' (in the mapcomplete.org theme 'Shops')"
},
{
"key": "nohousenumber",
"description": "Layer 'Pharmacies' shows nohousenumber=yes with a fixed text, namely 'This building has no house number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')",
"value": "yes"
},
{
"key": "addr:street",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Shops') (This is only shown if nohousenumber!~^(yes)$)"
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows and asks freeform values for key 'addr:unit' (in the mapcomplete.org theme 'Shops')"
},
{
"key": "addr:unit",
"description": "Layer 'Pharmacies' shows addr:unit= with a fixed text, namely 'No unit number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops') Picking this answer will delete the key addr:unit.",
"value": ""
},
{
"key": "payment:cash",
"description": "Layer 'Pharmacies' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')",

View file

@ -451,7 +451,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -468,7 +468,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -391,8 +391,8 @@ The question is `Does this artwork serve as a bench?`
The question is `Does this bench have a backrest?`
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/two_sided.svg' style='width: 3rem; height: 3rem'> *This bench is two-sided and shares the backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a> & <a href='https://wiki.openstreetmap.org/wiki/Key:two_sided' target='_blank'>two_sided</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:two_sided%3Dyes' target='_blank'>yes</a>
- *This bench does have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a>
- *This bench does <b>not</b> have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dno' target='_blank'>no</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/one_sided.svg' style='width: 3rem; height: 3rem'> *This bench does have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%3Dyes' target='_blank'>yes</a>
- <img src='https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/./assets/layers/bench/no_backrest.svg' style='width: 3rem; height: 3rem'> *This bench does <b>not</b> have a backrest* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:backrest' target='_blank'>backrest</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:backrest%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%3Dbench' target='_blank'>bench</a>
This tagrendering has labels

View file

@ -1287,7 +1287,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -15,7 +15,6 @@ This theme contains the following layers:
- [address](../Layers/address.md)
- [crab_address](../Layers/crab_address.md)
- [current_view](../Layers/current_view.md)
- [named_streets](../Layers/named_streets.md)
Available languages:

View file

@ -466,7 +466,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -1284,7 +1284,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -502,7 +502,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>
@ -828,11 +828,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 |
-----|-----|----- |

View file

@ -34,6 +34,7 @@ This theme contains the following layers:
- [binocular](../Layers/binocular.md)
- [birdhide](../Layers/birdhide.md)
- [cafe_pub](../Layers/cafe_pub.md)
- [campsite](../Layers/campsite.md)
- [caravansites](../Layers/caravansites.md)
- [charge_point](../Layers/charge_point.md)
- [charging_station](../Layers/charging_station.md)

View file

@ -1070,7 +1070,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -9,14 +9,163 @@ The theme introduction reads:
This theme contains the following layers:
- [scouting_group](../Layers/scouting_group.md)
- [group_campsite (defined in this theme)](#group_campsite)
- [campsite](../Layers/campsite.md)
Available languages:
- en
- de
- uk
# Table of contents
- [Scouting groups ( scouting )](#scouting-groups-(-scouting-))
1. [Layers defined in this theme configuration file](#layers-defined-in-this-theme-configuration-file)
2. [group_campsite](#group_campsite)
- [Basic tags for this layer](#basic-tags-for-this-layer)
- [Supported attributes](#supported-attributes)
+ [group_only](#group_only)
+ [name](#name)
+ [fee](#fee)
+ [capacity_persons](#capacity_persons)
+ [phone](#phone)
+ [email](#email)
+ [website](#website)
+ [questions](#questions)
+ [mastodon](#mastodon)
+ [images](#images)
+ [lod](#lod)
- [Filters](#filters)
# Layers defined in this theme configuration file
These layers can not be reused in different themes.
# group_campsite
This layer is based on [campsite](../Layers/campsite.md)
Campsites
- This layer is shown at zoomlevel **7** and higher
No themes use this layer
## Basic tags for this layer
Elements must match **all** of the following expressions:
0. <a href='https://wiki.openstreetmap.org/wiki/Key:tourism' target='_blank'>tourism</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:tourism%3Dcamp_site' target='_blank'>camp_site</a>
1. <a href='https://wiki.openstreetmap.org/wiki/Key:group_only' target='_blank'>group_only</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dyes' target='_blank'>yes</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:scout' target='_blank'>scout</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:scout%3Dyes' target='_blank'>yes</a>
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22tourism%22%3D%22camp_site%22%5D%5B%22group_only%22%3D%22yes%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%20%20%20%20nwr%5B%22tourism%22%3D%22camp_site%22%5D%5B%22scout%22%3D%22yes%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/group_only#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/group_only/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [group_only](https://wiki.openstreetmap.org/wiki/Key:group_only) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dno) |
| <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/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) | [currency](../SpecialInputElements.md#currency) | [](https://wiki.openstreetmap.org/wiki/Tag:charge%3D) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/capacity:persons#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/capacity%3Apersons/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [capacity:persons](https://wiki.openstreetmap.org/wiki/Key:capacity:persons) | [pnat](../SpecialInputElements.md#pnat) | |
| <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/contact:mastodon#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/contact%3Amastodon/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [contact:mastodon](https://wiki.openstreetmap.org/wiki/Key:contact:mastodon) | [fediverse](../SpecialInputElements.md#fediverse) | |
### group_only
The question is `Is this campsite exclusively for groups?`
- *This campsite is exclusively for groups* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:group_only' target='_blank'>group_only</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dyes' target='_blank'>yes</a>
- *This campsite is not exclusively for groups* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:group_only' target='_blank'>group_only</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:group_only%3Dno' target='_blank'>no</a>
### name
The question is `What is the name of this campsite?`
*The name of this campsite is {name}* is shown if `name` is set
### fee
The question is `Is a fee charged here?`
*A fee of {charge} should be paid for here* is shown if `charge` is set
- *The campsite is free of charge* 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>
- *A fee is charged here.* 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> & charge=
### capacity_persons
The question is `How many people can stay here?`
*{capacity:persons} people can stay here* is shown if `capacity:persons` 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`
### questions
Show the questions block at this location
_This tagrendering has no question and is thus read-only_
*{questions()}*
### mastodon
Shows and asks for the mastodon handle
The question is `What is the Mastodon-handle of {title()}?`
*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set
### 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()}*
### lod
_This tagrendering has no question and is thus read-only_
*{linked_data_from_website()}*
This tagrendering has labels
`added_by_default`
## Filters
| id | question | osmTags |
-----|-----|----- |
| capacity_persons_filter.0 | *All capacities* (default) | |
| capacity_persons_filter.1 | Capacity between 1 and 20 persons | capacity:persons>=1 & capacity:persons<=20 |
| capacity_persons_filter.2 | Capacity between 21 and 50 persons | capacity:persons>=21 & capacity:persons<=50 |
| capacity_persons_filter.3 | Capacity between 51 and 100 persons | capacity:persons>=51 & capacity:persons<=100 |
| capacity_persons_filter.4 | Capacity between 101 and 200 persons | capacity:persons>=101 & capacity:persons<=200 |
| capacity_persons_filter.5 | Capacity between 201 and 500 persons | capacity:persons>=201 & capacity:persons<=500 |
| capacity_persons_filter.6 | Capacity over 500 persons | capacity:persons>=501 |
| capacity_persons_filter.7 | ? | capacity:persons= |
This document is autogenerated from [assets/themes/scouting/scouting.json](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/assets/themes/scouting/scouting.json)

View file

@ -457,7 +457,7 @@ This tagrendering is only visible in the popup if the following condition is met
The question is `Are medical services available here?`
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healtcare' target='_blank'>not:healtcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healtcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers eye exams by certified optometrists* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist' target='_blank'>optometrist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Doptometrist' target='_blank'>optometrist</a>
- *This shop offers hearing tests by a certified audiologist* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:healthcare' target='_blank'>healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist' target='_blank'>audiologist</a>. Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:not:healthcare' target='_blank'>not:healthcare</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:not:healthcare%3Daudiologist' target='_blank'>audiologist</a>
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician' target='_blank'>optician</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aid' target='_blank'>hearing_aid</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply' target='_blank'>medical_supply</a>

View file

@ -224,7 +224,7 @@ The default value is _true_
If true, 'dryrun' mode is activated. The app will behave as normal, except that changes to OSM will be printed onto the console instead of actually uploaded to osm.org
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L192)
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L190)
The default value is _false_
@ -232,7 +232,7 @@ The default value is _false_
If true, shows some extra debugging help such as all the available tags on every object
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L198)
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L196)
The default value is _false_
@ -240,7 +240,7 @@ The default value is _false_
If true, the location distance indication will not be written to the changeset and other privacy enhancing measures might be taken.
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L204)
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L202)
The default value is _false_
@ -248,7 +248,7 @@ The default value is _false_
Point mapcomplete to a different overpass-instance. Example: https://overpass-api.de/api/interpreter
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L210)
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L208)
The default value is _https://overpass-api.de/api/interpreter,https://overpass.private.coffee/api/interpreter,https://overpass.osm.jp/api/interpreter_
@ -256,7 +256,7 @@ The default value is _https://overpass-api.de/api/interpreter,https://overpass.p
Set a different timeout (in seconds) for queries in overpass
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L221)
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L219)
The default value is _30_
@ -264,7 +264,7 @@ The default value is _30_
point to switch between OSM-api and overpass
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L229)
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L227)
The default value is _16_
@ -272,7 +272,7 @@ The default value is _16_
Tilesize when the OSM-API is used to fetch data within a BBOX
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L237)
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L235)
The default value is _17_
@ -330,7 +330,7 @@ One can use the [ID of an ELI-layer](./ELI-overview.md) or use one of the global
- HDM_HOT
- osmfr-occitan
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L244)
This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L242)
No default value set
@ -410,7 +410,7 @@ The default value is _0_
The mode the application starts in, e.g. 'map', 'dashboard' or 'statistics'
This documentation is defined in the source code at [generateDocs.ts](ervdvn/git2/MapComplete/scripts/generateDocs.ts#L442)
This documentation is defined in the source code at [generateDocs.ts](ervdvn/git2/MapComplete/scripts/generateDocs.ts#L444)
The default value is _map_

View file

@ -582,7 +582,7 @@ The position of a signpost can be used by a hiker/biker/rider/s…
{{service_item
|name= [https://mapcomplete.org/scouting scouting]
|region= Worldwide
|lang= {{#language:en|en}}, {{#language:de|en}}
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:uk|en}}
|descr= A MapComplete theme: A scouting group is a social youth movement with a heavy emphasis on the outdoors
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|image= MapComplete_Screenshot.png
@ -618,7 +618,7 @@ The position of a signpost can be used by a hiker/biker/rider/s…
{{service_item
|name= [https://mapcomplete.org/transit transit]
|region= Worldwide
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:nl|en}}, {{#language:nb_NO|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:zh_Hant|en}}, {{#language:pl|en}}, {{#language:ko|en}}
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:nl|en}}, {{#language:nb_NO|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:zh_Hant|en}}, {{#language:pl|en}}, {{#language:ko|en}}, {{#language:uk|en}}
|descr= A MapComplete theme: Plan your trip with the help of the public transport system
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|image= MapComplete_Screenshot.png

View file

@ -1,19 +1,19 @@
<script lang="ts">
import { DownloadIcon } from "@rgossiaux/svelte-heroicons/solid"
import { DownloadIcon } from "@rgossiaux/svelte-heroicons/solid"
</script>
<div class="m-8 flex flex-col">
<h1>MapComplete Android App</h1>
<h1>MapComplete Android App</h1>
MapComplete is available as Android App as direct download. We are working on publishing this in
the play store and on FDroid too.
MapComplete is available as Android App as direct download.
We are working on publishing this in the play store and on FDroid too.
<a class="button primary flex justify-center" href="https://app.mapcomplete.org/mapcomplete-latest.apk">
<DownloadIcon class="w-8 h-8"/>
Download the latest version
</a>
<a class="button" href="https://mapcomplete.org">Go back to mapcomplete</a>
<a
class="button primary flex justify-center"
href="https://app.mapcomplete.org/mapcomplete-latest.apk"
>
<DownloadIcon class="h-8 w-8" />
Download the latest version
</a>
<a class="button" href="https://mapcomplete.org">Go back to mapcomplete</a>
</div>

View file

@ -13,9 +13,11 @@ const tokenSrc = new UIEventSource("")
const debug = new UIEventSource<string[]>([])
new Combine([
new VariableUiElement(debug.map(debug => "<ul><li>"+debug.join("</li><li>")+"</li></ul>")),
new VariableUiElement(tokenSrc)]).AttachTo("token")
new VariableUiElement(
debug.map((debug) => "<ul><li>" + debug.join("</li><li>") + "</li></ul>")
),
new VariableUiElement(tokenSrc),
]).AttachTo("token")
const connection = new OsmConnection()
connection.finishLogin(async () => {
@ -24,16 +26,16 @@ connection.finishLogin(async () => {
do {
await Utils.waitFor(500)
token = connection.getToken()
tokenSrc.set("Trying to get token ("+attempt+")")
tokenSrc.set("Trying to get token (" + attempt + ")")
attempt++
const dbg = []
Object.keys(localStorage).forEach(key => {
dbg.push(`${key} - ${localStorage.getItem(key)}`);
Object.keys(localStorage).forEach((key) => {
dbg.push(`${key} - ${localStorage.getItem(key)}`)
})
debug.set(dbg)
if(attempt > 10){
if (attempt > 10) {
window.location.reload()
}
} while (!token)

View file

@ -197,7 +197,6 @@
"question": {
"en": "Capacity between 21 and 50 persons"
},
"osmTags": {
"and": [
"capacity:persons>=21",

View file

@ -182,6 +182,26 @@
}
]
},
{
"id": "platform",
"question": {
"en": "With what platform was the change made?"
},
"mappings": [
{
"if": "android=",
"then": {
"en": "Made on the web"
}
},
{
"if": "android=yes",
"then": {
"en": "Made with the android app"
}
}
]
},
{
"id": "version",
"question": {
@ -769,18 +789,45 @@
}
]
},
{
"id": "platform",
"options": [
{
"question": {
"en": "Changeset added at least one image",
"cs": "Sada změn přidala alespoň jeden obrázek",
"de": "Changeset hat mindestens ein Bild hinzugefügt",
"es": "El conjunto de cambios agregó al menos una imagen",
"ko": "주요 변경사항에 최소 하나의 이미지가 추가 되었습니다",
"nl": "Changeset voegde minstens één afbeelding toe"
}
},
{
"question": {
"en": "Made with Android"
},
"osmTags": "android=yes"
},
{
"question": {
"en": "Made on the web"
},
"osmTags": "android="
}
]
},
{
"id": "added-image",
"options": [
{
"osmTags": "add-image>0",
"question": {
"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 agregó al menos una imagen",
"nl": "Changeset voegde minstens één afbeelding toe",
"ko": "주요 변경사항에 최소 하나의 이미지가 추가 되었습니다"
"en": "Exclude GRB theme",
"de": "GRB-Thema ausschließen",
"cs": "Vyloučit motiv GRB",
"es": "Excluir el tema GRB",
"nl": "GRB-thema uitsluiten",
"ko": "GRB 테마 제외"
}
}
]
@ -791,12 +838,12 @@
{
"osmTags": "theme!=grb",
"question": {
"en": "Exclude GRB theme",
"de": "GRB-Thema ausschließen",
"cs": "Vyloučit motiv GRB",
"es": "Excluir el tema GRB",
"nl": "GRB-thema uitsluiten",
"ko": "GRB 테마 제외"
"en": "Exclude etymology theme",
"de": "Etymologie-Thema ausschließen",
"cs": "Vyloučit etymologii tématu",
"es": "Excluir el tema de etimología",
"nl": "Thema etymologie uitsluiten",
"ko": "어원 테마 제외"
}
}
]

View file

@ -428,7 +428,12 @@
"options": [
{
"question": {
"en": "All platforms"
"en": "Changeset added at least one image",
"cs": "Sada změn přidala alespoň jeden obrázek",
"de": "Changeset hat mindestens ein Bild hinzugefügt",
"es": "El conjunto de cambios agregó al menos una imagen",
"ko": "주요 변경사항에 최소 하나의 이미지가 추가 되었습니다",
"nl": "Changeset voegde minstens één afbeelding toe"
}
},
{
@ -451,12 +456,12 @@
{
"osmTags": "add-image>0",
"question": {
"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 agregó al menos una imagen",
"nl": "Changeset voegde minstens één afbeelding toe",
"ko": "주요 변경사항에 최소 하나의 이미지가 추가 되었습니다"
"en": "Exclude GRB theme",
"de": "GRB-Thema ausschließen",
"cs": "Vyloučit motiv GRB",
"es": "Excluir el tema GRB",
"nl": "GRB-thema uitsluiten",
"ko": "GRB 테마 제외"
}
}
]
@ -467,12 +472,12 @@
{
"osmTags": "theme!=grb",
"question": {
"en": "Exclude GRB theme",
"de": "GRB-Thema ausschließen",
"cs": "Vyloučit motiv GRB",
"es": "Excluir el tema GRB",
"nl": "GRB-thema uitsluiten",
"ko": "GRB 테마 제외"
"en": "Exclude etymology theme",
"de": "Etymologie-Thema ausschließen",
"cs": "Vyloučit etymologii tématu",
"es": "Excluir el tema de etimología",
"nl": "Thema etymologie uitsluiten",
"ko": "어원 테마 제외"
}
}
]

View file

@ -1,11 +1,9 @@
import type { CapacitorConfig } from "@capacitor/cli";
import type { CapacitorConfig } from "@capacitor/cli"
const config: CapacitorConfig = {
appId: "org.mapcomplete",
appName: "MapComplete",
webDir: "dist-full"
};
export default config;
appId: "org.mapcomplete",
appName: "MapComplete",
webDir: "dist-full",
}
export default config

View file

@ -785,6 +785,13 @@
}
}
},
"11": {
"options": {
"0": {
"question": "Vyloučit etymologii tématu"
}
}
},
"2": {
"options": {
"0": {

View file

@ -785,6 +785,13 @@
}
}
},
"11": {
"options": {
"0": {
"question": "Etymologie-Thema ausschließen"
}
}
},
"2": {
"options": {
"0": {

View file

@ -785,6 +785,13 @@
}
}
},
"11": {
"options": {
"0": {
"question": "Exclude etymology theme"
}
}
},
"2": {
"options": {
"0": {
@ -831,6 +838,12 @@
"options": {
"0": {
"question": "Changeset added at least one image"
},
"1": {
"question": "Made with Android"
},
"2": {
"question": "Made on the web"
}
}
},
@ -856,6 +869,17 @@
"question": "What locale (language) was this change made in?",
"render": "User locale is {locale}"
},
"platform": {
"mappings": {
"0": {
"then": "Made on the web"
},
"1": {
"then": "Made with the android app"
}
},
"question": "With what platform was the change made?"
},
"show_changeset_id": {
"render": "Changeset <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>"
},

View file

@ -776,6 +776,13 @@
}
}
},
"11": {
"options": {
"0": {
"question": "Excluir el tema de etimología"
}
}
},
"2": {
"options": {
"0": {

View file

@ -785,6 +785,13 @@
}
}
},
"11": {
"options": {
"0": {
"question": "어원 테마 제외"
}
}
},
"2": {
"options": {
"0": {

View file

@ -836,6 +836,13 @@
}
}
},
"11": {
"options": {
"0": {
"question": "Thema etymologie uitsluiten"
}
}
},
"2": {
"options": {
"0": {

15
package-lock.json generated
View file

@ -12780,9 +12780,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001692",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz",
"integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==",
"version": "1.0.30001699",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz",
"integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==",
"dev": true,
"funding": [
{
@ -12797,7 +12797,8 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
]
],
"license": "CC-BY-4.0"
},
"node_modules/canonicalize": {
"version": "1.0.8",
@ -39820,9 +39821,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30001692",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz",
"integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==",
"version": "1.0.30001699",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz",
"integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==",
"dev": true
},
"canonicalize": {

View file

@ -8,7 +8,6 @@ import { Tiles } from "../src/Models/TileRange"
import ScriptUtils from "./ScriptUtils"
class DownloadCommunityIndex extends Script {
constructor() {
super("Updates the community index")
}
@ -18,7 +17,8 @@ class DownloadCommunityIndex extends Script {
}
private static targetZoomlevel: number = 6
private static upstreamUrl: string = "https://raw.githubusercontent.com/osmlab/osm-community-index/main/dist/"
private static upstreamUrl: string =
"https://raw.githubusercontent.com/osmlab/osm-community-index/main/dist/"
/**
* Prunes away unnecessary fields from a CommunityResource
@ -33,12 +33,14 @@ class DownloadCommunityIndex extends Script {
resolved: {
name: r.resolved.name,
description: r.resolved.description,
url: r.resolved.url
}
url: r.resolved.url,
},
}
}
private static stripResourcesObj(resources: Readonly<Record<string, Readonly<CommunityResource>>>) {
private static stripResourcesObj(
resources: Readonly<Record<string, Readonly<CommunityResource>>>
) {
const stripped: Record<string, CommunityResource> = {}
for (const k in resources) {
const type = resources[k].type
@ -52,20 +54,24 @@ class DownloadCommunityIndex extends Script {
}
public static async update(targetDirectory: string) {
const data = await Utils.downloadJson<FeatureCollection<Polygon | MultiPolygon, {
resources: Record<string, CommunityResource>,
nameEn: string,
id: string
}>>(DownloadCommunityIndex.upstreamUrl + "completeFeatureCollection.json"
)
const data = await Utils.downloadJson<
FeatureCollection<
Polygon | MultiPolygon,
{
resources: Record<string, CommunityResource>
nameEn: string
id: string
}
>
>(DownloadCommunityIndex.upstreamUrl + "completeFeatureCollection.json")
if (!existsSync(targetDirectory)) {
mkdirSync(targetDirectory)
}
const features = data.features
const global = features.find(
f => f.id === "Q2"
const global = features.find((f) => f.id === "Q2")
const globalProperties = DownloadCommunityIndex.stripResourcesObj(
global.properties.resources
)
const globalProperties = DownloadCommunityIndex.stripResourcesObj(global.properties.resources)
writeFileSync(targetDirectory + "/global.json", JSON.stringify(globalProperties), "utf8")
console.log("Written global properties")
@ -80,12 +86,15 @@ class DownloadCommunityIndex extends Script {
const url = `${DownloadCommunityIndex.upstreamUrl}img/${type}.svg`
await ScriptUtils.DownloadFileTo(url, `${targetDirectory}/${type}.svg`)
}
const local = features.filter(f => f.id !== "Q2")
const local = features.filter((f) => f.id !== "Q2")
const spread = GeoOperations.spreadIntoBboxes(local, DownloadCommunityIndex.targetZoomlevel)
let written = 0
let skipped = 0
const writtenTilesOverview: Record<number, number[]> = {}
writeFileSync(targetDirectory + "local.geojson", JSON.stringify({ type: "FeatureCollection", features: local }))
writeFileSync(
targetDirectory + "local.geojson",
JSON.stringify({ type: "FeatureCollection", features: local })
)
for (const tileIndex of spread.keys()) {
const features = spread.get(tileIndex)
const clipped = GeoOperations.clipAllInBox(features, tileIndex)
@ -94,7 +103,9 @@ class DownloadCommunityIndex extends Script {
continue
}
for (const f of clipped) {
f.properties.resources = DownloadCommunityIndex.stripResourcesObj(f.properties.resources)
f.properties.resources = DownloadCommunityIndex.stripResourcesObj(
f.properties.resources
)
}
const [z, x, y] = Tiles.tile_from_index(tileIndex)
@ -102,7 +113,11 @@ class DownloadCommunityIndex extends Script {
clipped.forEach((f) => {
delete f.bbox
})
writeFileSync(path, JSON.stringify({ type: "FeatureCollection", features: clipped }), "utf8")
writeFileSync(
path,
JSON.stringify({ type: "FeatureCollection", features: clipped }),
"utf8"
)
written++
let yList = writtenTilesOverview[x]
if (!yList) {
@ -113,11 +128,14 @@ class DownloadCommunityIndex extends Script {
console.log(`Written tile ${path}`)
}
console.log(`Created ${written} tiles, skipped ${skipped}`)
writeFileSync(targetDirectory + "/tile_6_overview.json", JSON.stringify(writtenTilesOverview), "utf8")
writeFileSync(
targetDirectory + "/tile_6_overview.json",
JSON.stringify(writtenTilesOverview),
"utf8"
)
console.log("Created overview file")
}
async main(args: string[]): Promise<void> {
const path = args[0]
if (!path) {
@ -126,7 +144,6 @@ class DownloadCommunityIndex extends Script {
}
await DownloadCommunityIndex.update(path)
}
}

View file

@ -138,7 +138,7 @@ export class GenerateDocs extends Script {
ScriptUtils.fixUtils()
this.WriteMarkdownFile("./Docs/SpecialRenderings.md", SpecialVisualizations.HelpMessage(), [
"src/UI/SpecialVisualizations.ts"
"src/UI/SpecialVisualizations.ts",
])
if (!existsSync("./Docs/Themes")) {
@ -171,7 +171,6 @@ export class GenerateDocs extends Script {
ScriptUtils.erasableLog("Written docs for theme", theme.id)
})
this.WriteMarkdownFile(
"./Docs/CalculatedTags.md",
["# Metatags", SimpleMetaTaggers.HelpText(), ExtraFunctions.HelpText()].join("\n"),

View file

@ -9,12 +9,16 @@ import {
DoesImageExist,
PrevalidateTheme,
ValidateLayer,
ValidateThemeEnsemble
ValidateThemeEnsemble,
} from "../src/Models/ThemeConfig/Conversion/Validation"
import { Translation } from "../src/UI/i18n/Translation"
import { PrepareLayer } from "../src/Models/ThemeConfig/Conversion/PrepareLayer"
import { PrepareTheme } from "../src/Models/ThemeConfig/Conversion/PrepareTheme"
import { Conversion, DesugaringContext, DesugaringStep } from "../src/Models/ThemeConfig/Conversion/Conversion"
import {
Conversion,
DesugaringContext,
DesugaringStep,
} from "../src/Models/ThemeConfig/Conversion/Conversion"
import { Utils } from "../src/Utils"
import Script from "./Script"
import { AllSharedLayers } from "../src/Customizations/AllSharedLayers"
@ -620,10 +624,7 @@ class LayerOverviewUtils extends Script {
for (const sharedLayerPath of ScriptUtils.getLayerPaths()) {
if (whitelist.size > 0) {
const idByPath = sharedLayerPath.split("/").at(-1).split(".")[0]
if (
!Constants.isPriviliged(idByPath) &&
!whitelist.has(idByPath)
) {
if (!Constants.isPriviliged(idByPath) && !whitelist.has(idByPath)) {
continue
}
}

View file

@ -338,7 +338,7 @@ class GenerateLayouts extends Script {
"https://api.panoramax.xyz",
"https://panoramax.mapcomplete.org",
"https://data.velopark.be",
"https://data.mapcomplete.org"
"https://data.mapcomplete.org",
].concat(...(await this.eliUrls()))
SpecialVisualizations.specialVisualizations.forEach((sv) => {

View file

@ -13,7 +13,6 @@ import StaticFeatureSource, {
} from "../FeatureSource/Sources/StaticFeatureSource"
import { MapProperties } from "../../Models/MapProperties"
import { Orientation } from "../../Sensors/Orientation"
;("use strict")
/**
* The geolocation-handler takes a map-location and a geolocation state.

View file

@ -6,7 +6,7 @@ import { bbox } from "@turf/bbox"
export class BBox {
static global: BBox = new BBox([
[-180, -90],
[180, 90]
[180, 90],
])
readonly maxLat: number
readonly maxLon: number
@ -62,7 +62,7 @@ export class BBox {
static fromLeafletBounds(bounds) {
return new BBox([
[bounds.getWest(), bounds.getNorth()],
[bounds.getEast(), bounds.getSouth()]
[bounds.getEast(), bounds.getSouth()],
])
}
@ -101,7 +101,7 @@ export class BBox {
}
return new BBox([
[maxLon, maxLat],
[minLon, minLat]
[minLon, minLat],
])
}
@ -128,7 +128,7 @@ export class BBox {
public unionWith(other: BBox) {
return new BBox([
[Math.max(this.maxLon, other.maxLon), Math.max(this.maxLat, other.maxLat)],
[Math.min(this.minLon, other.minLon), Math.min(this.minLat, other.minLat)]
[Math.min(this.minLon, other.minLon), Math.min(this.minLat, other.minLat)],
])
}
@ -181,7 +181,7 @@ export class BBox {
return new BBox([
[lon - s / 2, lat - s / 2],
[lon + s / 2, lat + s / 2]
[lon + s / 2, lat + s / 2],
])
}
@ -238,21 +238,21 @@ export class BBox {
const lonDiff = Math.min(maxIncrease / 2, Math.abs(this.maxLon - this.minLon) * factor)
return new BBox([
[this.minLon - lonDiff, this.minLat - latDiff],
[this.maxLon + lonDiff, this.maxLat + latDiff]
[this.maxLon + lonDiff, this.maxLat + latDiff],
])
}
padAbsolute(degrees: number): BBox {
return new BBox([
[this.minLon - degrees, this.minLat - degrees],
[this.maxLon + degrees, this.maxLat + degrees]
[this.maxLon + degrees, this.maxLat + degrees],
])
}
toLngLat(): [[number, number], [number, number]] {
return [
[this.minLon, this.minLat],
[this.maxLon, this.maxLat]
[this.maxLon, this.maxLat],
]
}
@ -271,7 +271,7 @@ export class BBox {
return {
type: "Feature",
properties: properties,
geometry: this.asGeometry()
geometry: this.asGeometry(),
}
}
@ -284,9 +284,9 @@ export class BBox {
[this.maxLon, this.minLat],
[this.maxLon, this.maxLat],
[this.minLon, this.maxLat],
[this.minLon, this.minLat]
]
]
[this.minLon, this.minLat],
],
],
}
}
@ -316,7 +316,7 @@ export class BBox {
minLon,
maxLon,
minLat,
maxLat
maxLat,
}
}

View file

@ -77,21 +77,34 @@ export default class SaveFeatureSourceToLocalStorage {
this.storage = storage
const singleTileSavers: Map<number, SingleTileSaver> = new Map<number, SingleTileSaver>()
features.features.addCallbackAndRunD((features) => {
if (features.some(f => {
let totalPoints = 0
if (f.geometry.type === "MultiPolygon") {
totalPoints = f.geometry.coordinates.map(rings => rings.map(ring => ring.length).reduce((a, b) => a + b)).reduce((a, b) => a + b)
} else if (f.geometry.type === "Polygon" || f.geometry.type === "MultiLineString") {
totalPoints = f.geometry.coordinates.map(ring => ring.length).reduce((a, b) => a + b)
} else if (f.geometry.type === "LineString") {
totalPoints = f.geometry.coordinates.length
}
if (totalPoints > 1000) {
console.warn(`Not caching tiles, detected a big object (${totalPoints} points for ${f.properties.id})`)
return true
}
return false
})) {
if (
features.some((f) => {
let totalPoints = 0
if (f.geometry.type === "MultiPolygon") {
totalPoints = f.geometry.coordinates
.map((rings) =>
rings.map((ring) => ring.length).reduce((a, b) => a + b)
)
.reduce((a, b) => a + b)
} else if (
f.geometry.type === "Polygon" ||
f.geometry.type === "MultiLineString"
) {
totalPoints = f.geometry.coordinates
.map((ring) => ring.length)
.reduce((a, b) => a + b)
} else if (f.geometry.type === "LineString") {
totalPoints = f.geometry.coordinates.length
}
if (totalPoints > 1000) {
console.warn(
`Not caching tiles, detected a big object (${totalPoints} points for ${f.properties.id})`
)
return true
}
return false
})
) {
// Has big objects
return
}

View file

@ -37,8 +37,11 @@ export default class DynamicGeoJsonTileSource extends UpdatableDynamicTileSource
if (DynamicGeoJsonTileSource.whitelistCache.has(whitelistUrl)) {
whitelist = DynamicGeoJsonTileSource.whitelistCache.get(whitelistUrl)
} else {
Utils.downloadJsonCached<Record<string | number, number[]>>(whitelistUrl, 1000 * 60 * 60)
.then(json => {
Utils.downloadJsonCached<Record<string | number, number[]>>(
whitelistUrl,
1000 * 60 * 60
)
.then((json) => {
const data = new Map<number, Set<number>>()
for (const x in json) {
if (x === "zoom") {

View file

@ -10,12 +10,12 @@ import {
MultiPolygon,
Point,
Polygon,
Position
Position,
} from "geojson"
import { Tiles } from "../Models/TileRange"
import { Utils } from "../Utils"
("use strict")
;("use strict")
export class GeoOperations {
private static readonly _earthRadius = 6378137
@ -29,7 +29,7 @@ export class GeoOperations {
"behind",
"sharp_left",
"left",
"slight_left"
"slight_left",
] as const
private static reverseBearing = {
N: 0,
@ -47,7 +47,7 @@ export class GeoOperations {
W: 270,
WNW: 292.5,
NW: 315,
NNW: 337.5
NNW: 337.5,
}
/**
@ -309,7 +309,7 @@ export class GeoOperations {
bufferSizeInMeter: number
): Feature<Polygon | MultiPolygon> | FeatureCollection<Polygon | MultiPolygon> {
return turf.buffer(feature, bufferSizeInMeter / 1000, {
units: "kilometers"
units: "kilometers",
})
}
@ -325,9 +325,9 @@ export class GeoOperations {
[lon0, lat],
[lon0, lat0],
[lon, lat0],
[lon, lat]
]
}
[lon, lat],
],
},
}
}
@ -345,7 +345,10 @@ export class GeoOperations {
public static nearestPoint(
way: Feature<LineString>,
point: [number, number]
): Feature<Point, { dist: number; index: number; multiFeatureIndex: number; location: number }> {
): Feature<
Point,
{ dist: number; index: number; multiFeatureIndex: number; location: number }
> {
return turf.nearestPointOnLine(<Feature<LineString>>way, point, { units: "kilometers" })
}
@ -368,9 +371,9 @@ export class GeoOperations {
type: "Feature",
geometry: {
type: "LineString",
coordinates: way.geometry.coordinates[0]
coordinates: way.geometry.coordinates[0],
},
properties: way.properties
properties: way.properties,
}
}
if (way.geometry.type === "MultiPolygon") {
@ -378,9 +381,9 @@ export class GeoOperations {
type: "Feature",
geometry: {
type: "MultiLineString",
coordinates: way.geometry.coordinates[0]
coordinates: way.geometry.coordinates[0],
},
properties: way.properties
properties: way.properties,
}
}
if (way.geometry.type === "LineString") {
@ -542,7 +545,10 @@ export class GeoOperations {
* Note: IDs are rewritten
* Also @see spreadIntoBBoxes
*/
public static clipAllInBox(features: ReadonlyArray<Readonly<Feature>>, tileIndex: number): Feature[] {
public static clipAllInBox(
features: ReadonlyArray<Readonly<Feature>>,
tileIndex: number
): Feature[] {
const bbox = Tiles.asGeojson(tileIndex)
const newFeatures: Feature[] = []
for (const f of features) {
@ -555,7 +561,7 @@ export class GeoOperations {
}
const properties = {
...f.properties,
id
id,
}
intersectionPart.properties = properties
newFeatures.push(intersectionPart)
@ -587,8 +593,8 @@ export class GeoOperations {
properties: {},
geometry: {
type: "Point",
coordinates: p
}
coordinates: p,
},
}
)
}
@ -604,7 +610,7 @@ export class GeoOperations {
trackPoints.push(trkpt)
}
const header =
"<gpx version=\"1.1\" creator=\"mapcomplete.org\" xmlns=\"http://www.topografix.com/GPX/1/1\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd\">"
'<gpx version="1.1" creator="mapcomplete.org" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">'
return (
header +
"\n<name>" +
@ -643,7 +649,7 @@ export class GeoOperations {
trackPoints.push(trkpt)
}
const header =
"<gpx version=\"1.1\" creator=\"mapcomplete.org\" xmlns=\"http://www.topografix.com/GPX/1/1\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd\">"
'<gpx version="1.1" creator="mapcomplete.org" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">'
return (
header +
"\n<name>" +
@ -669,7 +675,7 @@ export class GeoOperations {
const copy = {
...feature,
geometry: { ...feature.geometry }
geometry: { ...feature.geometry },
}
let coordinates: [number, number][]
if (feature.geometry.type === "LineString") {
@ -727,8 +733,8 @@ export class GeoOperations {
type: "Feature",
geometry: {
type: "LineString",
coordinates: [a, b]
}
coordinates: [a, b],
},
},
distanceMeter,
{ units: "meters" }
@ -769,13 +775,17 @@ export class GeoOperations {
possiblyEnclosingFeature: Readonly<Feature<Polygon | MultiPolygon>>
): boolean {
if (feature.geometry.type === "MultiPolygon") {
const polygons = feature.geometry.coordinates.map(coordinates =>
<Feature<Polygon>>{
type: "Feature", geometry: {
type: "Polygon", coordinates
const polygons = feature.geometry.coordinates.map(
(coordinates) =>
<Feature<Polygon>>{
type: "Feature",
geometry: {
type: "Polygon",
coordinates,
},
}
})
return !polygons.some(polygon => !booleanWithin(polygon, possiblyEnclosingFeature))
)
return !polygons.some((polygon) => !booleanWithin(polygon, possiblyEnclosingFeature))
}
return booleanWithin(feature, possiblyEnclosingFeature)
}
@ -784,7 +794,10 @@ export class GeoOperations {
* Create an intersection between two features.
* One or multiple new feature are returned based on 'toSplit', which'll have a geometry that is completely withing boundary
*/
public static clipWith(toSplit: Readonly<Feature>, boundary: Readonly<Feature<Polygon>>): Feature[] {
public static clipWith(
toSplit: Readonly<Feature>,
boundary: Readonly<Feature<Polygon>>
): Feature[] {
if (toSplit.geometry.type === "Point") {
const p = <Feature<Point>>toSplit
if (GeoOperations.inside(<[number, number]>p.geometry.coordinates, boundary)) {
@ -795,7 +808,10 @@ export class GeoOperations {
}
if (toSplit.geometry.type === "LineString") {
const splitup: Feature<LineString>[] = turf.lineSplit(<Feature<LineString>>toSplit, boundary).features
const splitup: Feature<LineString>[] = turf.lineSplit(
<Feature<LineString>>toSplit,
boundary
).features
const kept: Feature[] = []
for (const f of splitup) {
if (!GeoOperations.inside(GeoOperations.centerpointCoordinates(f), boundary)) {
@ -825,21 +841,29 @@ export class GeoOperations {
return kept
}
if (toSplit.geometry.type === "Polygon" || toSplit.geometry.type == "MultiPolygon") {
const splitup = turf.intersect(turf.featureCollection([<Feature<Polygon | MultiPolygon>>toSplit, boundary]))
const splitup = turf.intersect(
turf.featureCollection([<Feature<Polygon | MultiPolygon>>toSplit, boundary])
)
if (splitup === null) {
// No intersection found.
// Either: the boundary is contained fully in 'toSplit', 'toSplit' is contained fully in 'boundary' or they are unrelated at all
if (GeoOperations.completelyWithin(toSplit, boundary)) {
return [toSplit]
}
if (GeoOperations.completelyWithin(boundary, <Feature<Polygon | MultiPolygon>>toSplit)) {
return [{
type: "Feature",
properties: { ...toSplit.properties },
geometry: boundary.geometry,
bbox: boundary.bbox
}]
if (
GeoOperations.completelyWithin(
boundary,
<Feature<Polygon | MultiPolygon>>toSplit
)
) {
return [
{
type: "Feature",
properties: { ...toSplit.properties },
geometry: boundary.geometry,
bbox: boundary.bbox,
},
]
}
return []
}
@ -911,7 +935,9 @@ export class GeoOperations {
return undefined
case "end":
if (feature.geometry.type === "LineString") {
return <[number, number]>(<Feature<LineString>>feature).geometry.coordinates.at(-1)
return <[number, number]>(
(<Feature<LineString>>feature).geometry.coordinates.at(-1)
)
}
return undefined
default:
@ -934,8 +960,8 @@ export class GeoOperations {
properties: p.properties,
geometry: {
type: "LineString",
coordinates: p.geometry.coordinates[0]
}
coordinates: p.geometry.coordinates[0],
},
}
}
@ -963,7 +989,7 @@ export class GeoOperations {
console.debug("Splitting way", feature.properties.id)
result.push(<Feature>{
...feature,
geometry: { ...feature.geometry, coordinates: coors.slice(i + 1) }
geometry: { ...feature.geometry, coordinates: coors.slice(i + 1) },
})
coors = coors.slice(0, i + 1)
break
@ -972,7 +998,7 @@ export class GeoOperations {
}
result.push(<Feature>{
...feature,
geometry: { ...feature.geometry, coordinates: coors }
geometry: { ...feature.geometry, coordinates: coors },
})
}
}
@ -1146,8 +1172,8 @@ export class GeoOperations {
properties: multiLineStringFeature.properties,
geometry: {
type: "LineString",
coordinates: coors[0]
}
coordinates: coors[0],
},
}
}
return {
@ -1155,8 +1181,8 @@ export class GeoOperations {
properties: multiLineStringFeature.properties,
geometry: {
type: "MultiLineString",
coordinates: coors
}
coordinates: coors,
},
}
}
@ -1306,9 +1332,10 @@ export class GeoOperations {
}
if (e.message.indexOf("SweepLine tree") >= 0) {
console.log("Applying fallback intersection...")
const intersection = turf.intersect(turf.featureCollection([
const intersection = turf.intersect(
turf.featureCollection([
turf.truncate(feature),
turf.truncate(otherFeature)
turf.truncate(otherFeature),
])
)
if (intersection == null) {

View file

@ -83,11 +83,15 @@ export default class AllImageProviders {
): number {
let count = 0
const sources = [Imgur.singleton,
const sources = [
Imgur.singleton,
Mapillary.singleton,
Panoramax.singleton,
AllImageProviders.genericImageProvider]
const allPrefixes = Utils.Dedup(prefixes ?? [].concat(...sources.map(s => s.defaultKeyPrefixes)))
AllImageProviders.genericImageProvider,
]
const allPrefixes = Utils.Dedup(
prefixes ?? [].concat(...sources.map((s) => s.defaultKeyPrefixes))
)
for (const prefix of allPrefixes) {
for (const k in tags) {
if (!tags[k]) {

View file

@ -32,7 +32,7 @@ export default class PanoramaxImageProvider extends ImageProvider {
lat: number
}
): BaseUIElement {
const host = ("https://" + new URL(img.url).host)
const host = "https://" + new URL(img.url).host
const p = new Panoramax(host)
return new Link(
new SvelteUIElement(Panoramax_bw),

View file

@ -53,7 +53,7 @@ export class ChangesetHandler {
| { addAlias: (id0: string, id1: string) => void }
| undefined,
changes: Changes,
reportError: (e: string | Error, extramessage: string) => void,
reportError: (e: string | Error, extramessage: string) => void
) {
this.osmConnection = osmConnection
this._reportError = reportError
@ -114,7 +114,7 @@ export class ChangesetHandler {
private async UploadWithNew(
generateChangeXML: (csid: number, remappings: Map<string, string>) => string,
openChangeset: UIEventSource<number>,
extraMetaTags: ChangesetTag[],
extraMetaTags: ChangesetTag[]
) {
const csId = await this.OpenChangeset(extraMetaTags)
openChangeset.setData(csId)
@ -122,7 +122,7 @@ export class ChangesetHandler {
console.log(
"Opened a new changeset (openChangeset.data is undefined):",
changeset,
extraMetaTags,
extraMetaTags
)
const changes = await this.UploadChange(csId, changeset)
const hasSpecialMotivationChanges = ChangesetHandler.rewriteMetaTags(extraMetaTags, changes)
@ -145,7 +145,7 @@ export class ChangesetHandler {
public async UploadChangeset(
generateChangeXML: (csid: number, remappings: Map<string, string>) => string,
extraMetaTags: ChangesetTag[],
openChangeset: UIEventSource<number>,
openChangeset: UIEventSource<number>
): Promise<void> {
if (
!extraMetaTags.some((tag) => tag.key === "comment") ||
@ -180,13 +180,13 @@ export class ChangesetHandler {
try {
const rewritings = await this.UploadChange(
csId,
generateChangeXML(csId, this._remappings),
generateChangeXML(csId, this._remappings)
)
const rewrittenTags = this.RewriteTagsOf(
extraMetaTags,
rewritings,
oldChangesetMeta,
oldChangesetMeta
)
await this.UpdateTags(csId, rewrittenTags)
return // We are done!
@ -197,7 +197,7 @@ export class ChangesetHandler {
} catch (e) {
this._reportError(
e,
"While getting metadata from a changeset " + openChangeset.data,
"While getting metadata from a changeset " + openChangeset.data
)
}
}
@ -225,7 +225,7 @@ export class ChangesetHandler {
console.warn(
"Could not open/upload changeset due to ",
e,
"trying again with a another fresh changeset ",
"trying again with a another fresh changeset "
)
openChangeset.setData(undefined)
@ -251,7 +251,7 @@ export class ChangesetHandler {
uid: number // User ID
changes_count: number
tags: any
},
}
): ChangesetTag[] {
// Note: extraMetaTags is where all the tags are collected into
@ -388,7 +388,7 @@ export class ChangesetHandler {
tag.key !== undefined &&
tag.value !== undefined &&
tag.key !== "" &&
tag.value !== "",
tag.value !== ""
)
const metadata = tags.map((kv) => `<tag k="${kv.key}" v="${escapeHtml(kv.value)}"/>`)
const content = [`<osm><changeset>`, metadata, `</changeset></osm>`].join("")
@ -434,7 +434,7 @@ export class ChangesetHandler {
const csId = await this.osmConnection.put(
"changeset/create",
[`<osm><changeset>`, metadata, `</changeset></osm>`].join(""),
{ "Content-Type": "text/xml" },
{ "Content-Type": "text/xml" }
)
return Number(csId)
}
@ -444,12 +444,12 @@ export class ChangesetHandler {
*/
private async UploadChange(
changesetId: number,
changesetXML: string,
changesetXML: string
): Promise<Map<string, string>> {
const response = await this.osmConnection.post<XMLDocument>(
"changeset/" + changesetId + "/upload",
changesetXML,
{ "Content-Type": "text/xml" },
{ "Content-Type": "text/xml" }
)
const changes = this.parseUploadChangesetResponse(response)
console.log("Uploaded changeset ", changesetId)

View file

@ -10,44 +10,43 @@ import { AndroidPolyfill } from "../Web/AndroidPolyfill"
import { QueryParameters } from "../Web/QueryParameters"
interface OsmUserInfo {
"id": number,
"display_name": string,
"account_created": string,
"description": string,
"contributor_terms": {
"agreed": boolean,
"pd": boolean
id: number
display_name: string
account_created: string
description: string
contributor_terms: {
agreed: boolean
pd: boolean
}
"img"?: {
"href": string,
img?: {
href: string
}
"roles": string[]
"changesets": {
"count": number
roles: string[]
changesets: {
count: number
}
traces: {
count: number
}
"blocks": {
"received": {
"count": number,
"active": number
blocks: {
received: {
count: number
active: number
}
}
home?: {
lat: number,
lon: number,
lat: number
lon: number
zoom: number
}
"languages": string[]
"messages": {
"received": {
"count": number,
"unread": number
},
"sent": {
"count": number
languages: string[]
messages: {
received: {
count: number
unread: number
}
sent: {
count: number
}
id: number
@ -60,12 +59,10 @@ interface OsmUserInfo {
traces: { count: number }
blocks: { received: { count: number; active: number } }
img?: { href: string }
home: { lat: number, lon: number }
home: { lat: number; lon: number }
languages?: string[]
messages: { received: { count: number, unread: number }, sent: { count: number } }
}
messages: { received: { count: number; unread: number }; sent: { count: number } }
}
}
export default interface UserDetails {
@ -81,7 +78,6 @@ export default interface UserDetails {
tracesCount: number
description?: string
languages: string[]
}
export type OsmServiceState = "online" | "readonly" | "offline" | "unknown" | "unreachable"
@ -126,14 +122,14 @@ export class OsmConnection {
public userDetails: UIEventSource<UserDetails | undefined>
public isLoggedIn: Store<boolean>
public gpxServiceIsOnline: UIEventSource<OsmServiceState> = new UIEventSource<OsmServiceState>(
"unknown",
"unknown"
)
public apiIsOnline: UIEventSource<OsmServiceState> = new UIEventSource<OsmServiceState>(
"unknown",
"unknown"
)
public loadingStatus = new UIEventSource<"not-attempted" | "loading" | "error" | "logged-in">(
"not-attempted",
"not-attempted"
)
public preferencesHandler: OsmPreferences
public readonly _oauth_config: AuthConfig
@ -193,7 +189,7 @@ export class OsmConnection {
(user) =>
!!user &&
(this.apiIsOnline.data === "unknown" || this.apiIsOnline.data === "online"),
[this.apiIsOnline],
[this.apiIsOnline]
)
this._dryRun = options.dryRun ?? new UIEventSource<boolean>(false)
@ -232,7 +228,7 @@ export class OsmConnection {
defaultValue: string = undefined,
options?: {
prefix?: string
},
}
): UIEventSource<T | undefined> {
const prefix = options?.prefix ?? "mapcomplete-"
return <UIEventSource<T>>this.preferencesHandler.getPreference(key, defaultValue, prefix)
@ -241,7 +237,7 @@ export class OsmConnection {
public getPreference<T extends string = string>(
key: string,
defaultValue: string = undefined,
prefix: string = "mapcomplete-",
prefix: string = "mapcomplete-"
): UIEventSource<T | undefined> {
return <UIEventSource<T>>this.preferencesHandler.getPreference(key, defaultValue, prefix)
}
@ -275,7 +271,7 @@ export class OsmConnection {
}
this.updateAuthObject(true)
LocalStorageSource.get("location_before_login").setData(
Utils.runningFromConsole ? undefined : window.location.href,
Utils.runningFromConsole ? undefined : window.location.href
)
this.auth.authenticate((err) => {
@ -292,11 +288,13 @@ export class OsmConnection {
this.loadingStatus.setData("error")
return
}
const data = <{
"version": "0.6",
"license": "http://opendatacommons.org/licenses/odbl/1-0/",
"user": OsmUserInfo
}>JSON.parse(result)
const data = <
{
version: "0.6"
license: "http://opendatacommons.org/licenses/odbl/1-0/"
user: OsmUserInfo
}
>JSON.parse(result)
const user = data.user
const userdetails: UserDetails = {
uid: user.id,
@ -343,7 +341,7 @@ export class OsmConnection {
method: "GET" | "POST" | "PUT" | "DELETE" = "GET",
header?: Record<string, string>,
content?: string,
allowAnonymous: boolean = false,
allowAnonymous: boolean = false
): Promise<string> {
const connection: osmAuth = this.auth
if (allowAnonymous && !this.auth.authenticated()) {
@ -351,7 +349,7 @@ export class OsmConnection {
`${this.Backend()}/api/0.6/${path}`,
header,
method,
content,
content
)
if (possibleResult["content"]) {
return possibleResult["content"]
@ -371,15 +369,15 @@ export class OsmConnection {
method,
headers: header,
content,
path: `/api/0.6/${path}`
path: `/api/0.6/${path}`,
},
function(err, response) {
function (err, response) {
if (err !== null) {
error(err)
} else {
ok(response)
}
},
}
)
})
}
@ -388,7 +386,7 @@ export class OsmConnection {
path: string,
content?: string,
header?: Record<string, string>,
allowAnonymous: boolean = false,
allowAnonymous: boolean = false
): Promise<T> {
return <T>await this.interact(path, "POST", header, content, allowAnonymous)
}
@ -396,7 +394,7 @@ export class OsmConnection {
public async put<T extends string>(
path: string,
content?: string,
header?: Record<string, string>,
header?: Record<string, string>
): Promise<T> {
return <T>await this.interact(path, "PUT", header, content)
}
@ -404,7 +402,7 @@ export class OsmConnection {
public async get(
path: string,
header?: Record<string, string>,
allowAnonymous: boolean = false,
allowAnonymous: boolean = false
): Promise<string> {
return await this.interact(path, "GET", header, undefined, allowAnonymous)
}
@ -443,7 +441,7 @@ export class OsmConnection {
return new Promise<{ id: number }>((ok) => {
window.setTimeout(
() => ok({ id: Math.floor(Math.random() * 1000) }),
Math.random() * 5000,
Math.random() * 5000
)
})
}
@ -453,9 +451,9 @@ export class OsmConnection {
"notes.json",
content,
{
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
},
true,
true
)
const parsed = JSON.parse(response)
console.log("Got result:", parsed)
@ -482,14 +480,14 @@ export class OsmConnection {
* Note: these are called 'tags' on the wiki, but I opted to name them 'labels' instead as they aren't "key=value" tags, but just words.
*/
labels: string[]
},
}
): Promise<{ id: number }> {
if (this._dryRun.data) {
console.warn("Dryrun enabled - not actually uploading GPX ", gpx)
return new Promise<{ id: number }>((ok) => {
window.setTimeout(
() => ok({ id: Math.floor(Math.random() * 1000) }),
Math.random() * 5000,
Math.random() * 5000
)
})
}
@ -498,7 +496,7 @@ export class OsmConnection {
file: gpx,
description: options.description,
tags: options.labels?.join(",") ?? "",
visibility: options.visibility
visibility: options.visibility,
}
if (!contents.description) {
@ -506,9 +504,9 @@ export class OsmConnection {
}
const extras = {
file:
"; filename=\"" +
'; filename="' +
(options.filename ?? "gpx_track_mapcomplete_" + new Date().toISOString()) +
"\"\r\nContent-Type: application/gpx+xml"
'"\r\nContent-Type: application/gpx+xml',
}
const boundary = "987654"
@ -516,7 +514,7 @@ export class OsmConnection {
let body = ""
for (const key in contents) {
body += "--" + boundary + "\r\n"
body += "Content-Disposition: form-data; name=\"" + key + "\""
body += 'Content-Disposition: form-data; name="' + key + '"'
if (extras[key] !== undefined) {
body += extras[key]
}
@ -527,7 +525,7 @@ export class OsmConnection {
const response = await this.post("gpx/create", body, {
"Content-Type": "multipart/form-data; boundary=" + boundary,
"Content-Length": "" + body.length
"Content-Length": "" + body.length,
})
const parsed = JSON.parse(response)
console.log("Uploaded GPX track", parsed)
@ -548,15 +546,15 @@ export class OsmConnection {
{
method: "POST",
path: `/api/0.6/notes/${id}/comment?text=${encodeURIComponent(text)}`
path: `/api/0.6/notes/${id}/comment?text=${encodeURIComponent(text)}`,
},
function(err) {
function (err) {
if (err !== null) {
error(err)
} else {
ok()
}
},
}
)
})
}
@ -576,15 +574,18 @@ export class OsmConnection {
public getToken(): string {
// https://www.openstreetmap.orgoauth2_access_token
let prefix = this.Backend()
while(prefix.endsWith("/")){
prefix = prefix.substring(0, prefix.length-2)
while (prefix.endsWith("/")) {
prefix = prefix.substring(0, prefix.length - 2)
}
return QueryParameters.GetQueryParameter(prefix+ "oauth_token", undefined).data ?? window.localStorage.getItem(this._oauth_config.url + "oauth2_access_token")
return (
QueryParameters.GetQueryParameter(prefix + "oauth_token", undefined).data ??
window.localStorage.getItem(this._oauth_config.url + "oauth2_access_token")
)
}
private async loginAndroidPolyfill() {
const key = "https://www.openstreetmap.orgoauth2_access_token"
if(localStorage.getItem(key)){
if (localStorage.getItem(key)) {
// We are probably already logged in
return
}
@ -595,7 +596,6 @@ export class OsmConnection {
console.log("Logged in!")
}
await this.loadUserInfo()
}
private updateAuthObject(autoLogin: boolean) {
let redirect_uri = Utils.runningFromConsole
@ -614,7 +614,7 @@ export class OsmConnection {
*/
singlepage: !this._iframeMode && !AndroidPolyfill.inAndroid.data,
auto: autoLogin,
apiUrl: this._oauth_config.api_url ?? this._oauth_config.url
apiUrl: this._oauth_config.api_url ?? this._oauth_config.url,
})
if (AndroidPolyfill.inAndroid.data) {
this.loginAndroidPolyfill() // NO AWAIT!
@ -658,7 +658,8 @@ export class OsmConnection {
if (this.fakeUser) {
return
}
this.fetchCapabilities().then(({ api, gpx }) => {
this.fetchCapabilities()
.then(({ api, gpx }) => {
this.apiIsOnline.setData(api)
this.gpxServiceIsOnline.setData(gpx)
})
@ -695,7 +696,7 @@ export class OsmConnection {
}
try {
const result = await Utils.downloadJson<CapabilityResult>(
this.Backend() + "/api/0.6/capabilities.json",
this.Backend() + "/api/0.6/capabilities.json"
)
if (result?.api?.status === undefined) {
console.log("Something went wrong:", result)

View file

@ -1,4 +1,8 @@
import GeocodingProvider, { GeocodeResult, GeocodingOptions, SearchResult } from "./GeocodingProvider"
import GeocodingProvider, {
GeocodeResult,
GeocodingOptions,
SearchResult,
} from "./GeocodingProvider"
import { Utils } from "../../Utils"
import { Store, Stores } from "../UIEventSource"

View file

@ -5,7 +5,7 @@ import GeocodingProvider, {
GeocodingOptions,
GeocodingUtils,
ReverseGeocodingProvider,
ReverseGeocodingResult
ReverseGeocodingResult,
} from "./GeocodingProvider"
import { Utils } from "../../Utils"
import { Feature, FeatureCollection } from "geojson"

View file

@ -83,7 +83,10 @@ export default class ThemeSearch {
}
let linkPrefix = `${path}/${layout.id.toLowerCase()}.html?`
if ((location.hostname === "localhost" && !AndroidPolyfill.inAndroid.data) || location.hostname === "127.0.0.1") {
if (
(location.hostname === "localhost" && !AndroidPolyfill.inAndroid.data) ||
location.hostname === "127.0.0.1"
) {
linkPrefix = `${path}/theme.html?layout=${layout.id}&`
}

View file

@ -80,7 +80,7 @@ export class ReferencingWaysMetaTagger extends SimpleMetaTagger {
super({
keys: ["_referencing_ways"],
isLazy: true,
doc: "_referencing_ways contains - for a node - which ways use this node as point in their geometry. "
doc: "_referencing_ways contains - for a node - which ways use this node as point in their geometry. ",
})
}
@ -116,7 +116,7 @@ class CountryTagger extends SimpleMetaTagger {
super({
keys: ["_country"],
doc: "The country codes of the of the country/countries that the feature is located in (with latlon2country). Might contain _multiple_ countries, separated by a `;`",
includesDates: false
includesDates: false,
})
}
@ -213,9 +213,9 @@ class RewriteMetaInfoTags extends SimpleMetaTagger {
"_last_edit:changeset",
"_last_edit:timestamp",
"_version_number",
"_backend"
"_backend",
],
doc: "Information about the last edit of this object. This object will actually _rewrite_ some tags for features coming from overpass"
doc: "Information about the last edit of this object. This object will actually _rewrite_ some tags for features coming from overpass",
})
}
@ -246,16 +246,20 @@ class RewriteMetaInfoTags extends SimpleMetaTagger {
class NormalizePanoramax extends SimpleMetaTagger {
constructor() {
super(
{
keys: ["panoramax"],
doc: "Converts a `panoramax=hash1;hash2;hash3;...` into `panoramax=hash1`,`panoramax:0=hash1`...",
isLazy: false,
cleanupRetagger: true
})
super({
keys: ["panoramax"],
doc: "Converts a `panoramax=hash1;hash2;hash3;...` into `panoramax=hash1`,`panoramax:0=hash1`...",
isLazy: false,
cleanupRetagger: true,
})
}
private addValue(comesFromKey: string, tags: Record<string, string>, hashesToAdd: string[], postfix?: string) {
private addValue(
comesFromKey: string,
tags: Record<string, string>,
hashesToAdd: string[],
postfix?: string
) {
let basekey = "panoramax"
if (postfix) {
basekey = "panoramax:" + postfix
@ -279,7 +283,11 @@ class NormalizePanoramax extends SimpleMetaTagger {
* new NormalizePanoramax().applyMetaTagsOnFeature(_, _, tags, _)
* tags.data // => {"panoramax": "abc", "panoramax:0" : "def", "panoramax:1": "ghi", "panoramax:2":"xyz", "panoramax:3":"uvw", "panoramax:streetsign":"a", "panoramax:streetsign:0":"b","panoramax:streetsign:1": "c"}
*/
applyMetaTagsOnFeature(feature: Feature, layer: LayerConfig, tags: UIEventSource<Record<string, string>>): boolean {
applyMetaTagsOnFeature(
feature: Feature,
layer: LayerConfig,
tags: UIEventSource<Record<string, string>>
): boolean {
const tgs = tags.data
let somethingChanged = false
for (const key in tgs) {
@ -295,7 +303,6 @@ class NormalizePanoramax extends SimpleMetaTagger {
this.addValue(key, tgs, parts)
somethingChanged = true
} else {
const postfix = key.match(/panoramax:([^:]+)(:[0-9]+)?/)?.[1]
if (postfix) {
this.addValue(key, tgs, parts, postfix)
@ -316,7 +323,7 @@ export default class SimpleMetaTaggers {
public static geometryType = new InlineMetaTagger(
{
keys: ["_geometry:type"],
doc: "Adds the geometry type as property. This is identical to the GoeJson geometry type and is one of `Point`,`LineString`, `Polygon` and exceptionally `MultiPolygon` or `MultiLineString`"
doc: "Adds the geometry type as property. This is identical to the GoeJson geometry type and is one of `Point`,`LineString`, `Polygon` and exceptionally `MultiPolygon` or `MultiLineString`",
},
(feature) => {
const changed = feature.properties["_geometry:type"] === feature.geometry.type
@ -342,12 +349,12 @@ export default class SimpleMetaTaggers {
W: 270,
WNW: 292.5,
NW: 315,
NNW: 337.5
NNW: 337.5,
}
private static latlon = new InlineMetaTagger(
{
keys: ["_lat", "_lon"],
doc: "The latitude and longitude of the point (or centerpoint in the case of a way/area)"
doc: "The latitude and longitude of the point (or centerpoint in the case of a way/area)",
},
(feature) => {
const centerPoint = GeoOperations.centerpoint(feature)
@ -362,7 +369,7 @@ export default class SimpleMetaTaggers {
{
doc: "The layer-id to which this feature belongs. Note that this might be return any applicable if `passAllFeatures` is defined.",
keys: ["_layer"],
includesDates: false
includesDates: false,
},
(feature, layer) => {
if (feature.properties._layer === layer.id) {
@ -378,11 +385,11 @@ export default class SimpleMetaTaggers {
"sidewalk:left",
"sidewalk:right",
"generic_key:left:property",
"generic_key:right:property"
"generic_key:right:property",
],
doc: "Rewrites tags from 'generic_key:both:property' as 'generic_key:left:property' and 'generic_key:right:property' (and similar for sidewalk tagging). Note that this rewritten tags _will be reuploaded on a change_. To prevent to much unrelated retagging, this is only enabled if the layer has at least some lineRenderings with offset defined",
includesDates: false,
cleanupRetagger: true
cleanupRetagger: true,
},
(feature, layer) => {
if (!layer.lineRendering.some((lr) => lr.leftRightSensitive)) {
@ -396,7 +403,7 @@ export default class SimpleMetaTaggers {
{
keys: ["_surface"],
doc: "The surface area of the feature in square meters. Not set on points and ways",
isLazy: true
isLazy: true,
},
(feature) => {
if (feature.geometry.type !== "Polygon" && feature.geometry.type !== "MultiPolygon") {
@ -414,7 +421,7 @@ export default class SimpleMetaTaggers {
{
keys: ["_surface:ha"],
doc: "The surface area of the feature in hectare. Not set on points and ways",
isLazy: true
isLazy: true,
},
(feature) => {
if (feature.geometry.type !== "Polygon" && feature.geometry.type !== "MultiPolygon") {
@ -432,7 +439,7 @@ export default class SimpleMetaTaggers {
private static levels = new InlineMetaTagger(
{
doc: "Extract the 'level'-tag into a normalized, ';'-separated value called '_level' (which also includes 'repeat_on'). The `level` tag (without underscore) will be normalized with only the value of `level`.",
keys: ["_level"]
keys: ["_level"],
},
(feature) => {
let somethingChanged = false
@ -467,7 +474,7 @@ export default class SimpleMetaTaggers {
private static canonicalize = new InlineMetaTagger(
{
doc: "If 'units' is defined in the layoutConfig, then this metatagger will rewrite the specified keys to have the canonical form (e.g. `1meter` will be rewritten to `1m`; `1` will be rewritten to `1m` as well)",
keys: ["Theme-defined keys"]
keys: ["Theme-defined keys"],
},
(feature, _, __, state) => {
const units = Utils.NoNull(
@ -524,7 +531,7 @@ export default class SimpleMetaTaggers {
private static lngth = new InlineMetaTagger(
{
keys: ["_length", "_length:km"],
doc: "The total length of a feature in meters (and in kilometers, rounded to one decimal for '_length:km'). For a surface, the length of the perimeter"
doc: "The total length of a feature in meters (and in kilometers, rounded to one decimal for '_length:km'). For a surface, the length of the perimeter",
},
(feature) => {
const l = GeoOperations.lengthInMeters(feature)
@ -540,7 +547,7 @@ export default class SimpleMetaTaggers {
keys: ["_isOpen"],
doc: "If 'opening_hours' is present, it will add the current state of the feature (being 'yes' or 'no')",
includesDates: true,
isLazy: true
isLazy: true,
},
(feature) => {
if (Utils.runningFromConsole) {
@ -579,8 +586,8 @@ export default class SimpleMetaTaggers {
lon: lon,
address: {
country_code: tags._country.toLowerCase(),
state: undefined
}
state: undefined,
},
},
<any>{ tag_key: "opening_hours" }
)
@ -592,14 +599,14 @@ export default class SimpleMetaTaggers {
delete tags._isOpen
tags["_isOpen"] = "parse_error"
}
}
},
})
}
)
private static directionSimplified = new InlineMetaTagger(
{
keys: ["_direction:numerical", "_direction:leftright"],
doc: "_direction:numerical is a normalized, numerical direction based on 'camera:direction' or on 'direction'; it is only present if a valid direction is found (e.g. 38.5 or NE). _direction:leftright is either 'left' or 'right', which is left-looking on the map or 'right-looking' on the map"
doc: "_direction:numerical is a normalized, numerical direction based on 'camera:direction' or on 'direction'; it is only present if a valid direction is found (e.g. 38.5 or NE). _direction:leftright is either 'left' or 'right', which is left-looking on the map or 'right-looking' on the map",
},
(feature) => {
const tags = feature.properties
@ -624,7 +631,7 @@ export default class SimpleMetaTaggers {
{
keys: ["_direction:centerpoint"],
isLazy: true,
doc: "_direction:centerpoint is the direction of the linestring (in degrees) if one were standing at the projected centerpoint."
doc: "_direction:centerpoint is the direction of the linestring (in degrees) if one were standing at the projected centerpoint.",
},
(feature: Feature) => {
if (feature.geometry.type !== "LineString") {
@ -647,7 +654,7 @@ export default class SimpleMetaTaggers {
delete feature.properties["_direction:centerpoint"]
feature.properties["_direction:centerpoint"] = bearing
return bearing
}
},
})
return true
@ -657,7 +664,7 @@ export default class SimpleMetaTaggers {
{
keys: ["_now:date", "_now:datetime"],
doc: "Adds the time that the data got loaded - pretty much the time of downloading from overpass. The format is YYYY-MM-DD hh:mm, aka 'sortable' aka ISO-8601-but-not-entirely",
includesDates: true
includesDates: true,
},
(feature) => {
const now = new Date()
@ -681,7 +688,7 @@ export default class SimpleMetaTaggers {
keys: ["_last_edit:passed_time"],
doc: "Gives the number of seconds since the last edit. Note that this will _not_ update, but rather be the number of seconds elapsed at the moment this tag is read first",
isLazy: true,
includesDates: true
includesDates: true,
},
(feature) => {
Utils.AddLazyProperty(feature.properties, "_last_edit:passed_time", () => {
@ -700,7 +707,7 @@ export default class SimpleMetaTaggers {
{
keys: ["_currency"],
doc: "Adds the currency valid for the object, based on country or explicit tagging. Can be a single currency or a semicolon-separated list of currencies. Empty if no currency is found.",
isLazy: true
isLazy: true,
},
(feature: Feature, layer: LayerConfig, tagsStore: UIEventSource<OsmTags>) => {
if (tagsStore === undefined) {
@ -742,7 +749,6 @@ export default class SimpleMetaTaggers {
}
)
public static metatags: SimpleMetaTagger[] = [
SimpleMetaTaggers.latlon,
SimpleMetaTaggers.layerInfo,
@ -762,7 +768,7 @@ export default class SimpleMetaTaggers {
SimpleMetaTaggers.referencingWays,
SimpleMetaTaggers.timeSinceLastEdit,
SimpleMetaTaggers.currency,
SimpleMetaTaggers.normalizePanoramax
SimpleMetaTaggers.normalizePanoramax,
]
/**
@ -844,8 +850,8 @@ export default class SimpleMetaTaggers {
[
"Metatags are extra tags available, in order to display more data or to give better questions.",
"They are calculated automatically on every feature when the data arrives in the webbrowser. This document gives an overview of the available metatags.",
"**Hint:** when using metatags, add the [query parameter](URL_Parameters.md) `debug=true` to the URL. This will include a box in the popup for features which shows all the properties of the object"
].join("\n")
"**Hint:** when using metatags, add the [query parameter](URL_Parameters.md) `debug=true` to the URL. This will include a box in the popup for features which shows all the properties of the object",
].join("\n"),
]
subElements.push("## Metatags calculated by MapComplete")

View file

@ -182,7 +182,9 @@ export default class FeatureSwitchState extends OsmConnectionFeatureSwitches {
let testingDefaultValue = false
if (
!Constants.osmAuthConfig.url.startsWith("https://master.apis.dev.openstreetmap.org") && !Utils.runningFromConsole && location.hostname === "127.0.0.1"
!Constants.osmAuthConfig.url.startsWith("https://master.apis.dev.openstreetmap.org") &&
!Utils.runningFromConsole &&
location.hostname === "127.0.0.1"
) {
testingDefaultValue = true
}

View file

@ -25,7 +25,7 @@ export class GeoLocationState {
* 'denied' means that we don't have access
*/
public readonly permission: UIEventSource<GeolocationPermissionState> = new UIEventSource(
"prompt",
"prompt"
)
/**
@ -130,7 +130,7 @@ export class GeoLocationState {
}
return Translations.t.general.waitingForLocation
},
[this.allowMoving, this.permission, this.currentGPSLocation],
[this.allowMoving, this.permission, this.currentGPSLocation]
)
}
@ -165,15 +165,15 @@ export class GeoLocationState {
return
}
if(AndroidPolyfill.inAndroid.data){
if (AndroidPolyfill.inAndroid.data) {
this.permission.setData("requested")
this.permission.addCallbackAndRunD(p => {
if(p === "granted"){
this.permission.addCallbackAndRunD((p) => {
if (p === "granted") {
this.startWatching()
return true
}
})
AndroidPolyfill.requestGeoPermission().then(state => {
AndroidPolyfill.requestGeoPermission().then((state) => {
const granted = state.value === "true"
this.permission.set(granted ? "granted" : "denied")
})
@ -218,15 +218,14 @@ export class GeoLocationState {
* @private
*/
private async startWatching() {
if(AndroidPolyfill.inAndroid.data){
AndroidPolyfill.watchLocation( this.currentGPSLocation, location => {
if (AndroidPolyfill.inAndroid.data) {
AndroidPolyfill.watchLocation(this.currentGPSLocation, (location) => {
console.log(JSON.stringify(location))
})
}
navigator.geolocation.watchPosition(
(position: GeolocationPosition) => {
(position: GeolocationPosition) => {
this._gpsAvailable.set(true)
this.currentGPSLocation.setData(position.coords)
this._previousLocationGrant.setData(true)
@ -249,5 +248,4 @@ export class GeoLocationState {
}
)
}
}

View file

@ -350,7 +350,9 @@ export default class UserRelatedState {
* List of all hidden themes that have been seen before
* @param osmConnection
*/
public static initDiscoveredHiddenThemes(osmConnection: OsmConnection): Store<undefined | string[]> {
public static initDiscoveredHiddenThemes(
osmConnection: OsmConnection
): Store<undefined | string[]> {
const prefix = "mapcomplete-hidden-theme-"
const userPreferences = osmConnection.preferencesHandler.allPreferences
return userPreferences.mapD((preferences) =>

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

@ -7,7 +7,9 @@ import { Store, UIEventSource } from "../UIEventSource"
import { OsmConnection } from "../Osm/OsmConnection"
export interface DatabridgePlugin {
request<T extends (string | object) = string | object>(options: { key: string }): Promise<{ value: T }>;
request<T extends string | object = string | object>(options: {
key: string
}): Promise<{ value: T }>
}
const DatabridgePluginSingleton = registerPlugin<DatabridgePlugin>("Databridge", {
@ -28,17 +30,25 @@ export class AndroidPolyfill {
private static readonly databridgePlugin: DatabridgePlugin = DatabridgePluginSingleton
private static readonly _inAndroid: UIEventSource<boolean> = new UIEventSource<boolean>(false)
public static readonly inAndroid: Store<boolean> = AndroidPolyfill._inAndroid
private static readonly _geolocationPermission: UIEventSource<"granted" | "denied" | "prompt"> = new UIEventSource("prompt")
public static readonly geolocationPermission: Store<"granted" | "denied" | "prompt"> = this._geolocationPermission
private static readonly _geolocationPermission: UIEventSource<"granted" | "denied" | "prompt"> =
new UIEventSource("prompt")
public static readonly geolocationPermission: Store<"granted" | "denied" | "prompt"> =
this._geolocationPermission
/**
* Registers 'navigator.'
* @private
*/
private static backfillGeolocation(databridgePlugin: DatabridgePlugin) {
const src = UIEventSource.FromPromise(databridgePlugin.request({ key: "location:has-permission" }))
src.addCallbackAndRunD(permission => {
console.log("> Checking geopermission gave: ", JSON.stringify(permission), permission.value)
const src = UIEventSource.FromPromise(
databridgePlugin.request({ key: "location:has-permission" })
)
src.addCallbackAndRunD((permission) => {
console.log(
"> Checking geopermission gave: ",
JSON.stringify(permission),
permission.value
)
const granted = permission.value === "true"
AndroidPolyfill._geolocationPermission.set(granted ? "granted" : "denied")
})
@ -61,17 +71,25 @@ export class AndroidPolyfill {
}
public static async requestLoginCodes() {
const result = await DatabridgePluginSingleton.request<{ oauth_token: string }>({ key: "request:login" })
const result = await DatabridgePluginSingleton.request<{ oauth_token: string }>({
key: "request:login",
})
const token: string = result.value.oauth_token
console.log("AndroidPolyfill: received oauth_token; trying to pass them to the oauth lib", token)
console.log(
"AndroidPolyfill: received oauth_token; trying to pass them to the oauth lib",
token
)
return token
}
public static onBackButton(callback: () => boolean, options: {
returnToIndex: Store<boolean>
}) {
public static onBackButton(
callback: () => boolean,
options: {
returnToIndex: Store<boolean>
}
) {
console.log("Registering back button callback", callback)
DatabridgePluginSingleton.request({ key: "backbutton" }).then(ev => {
DatabridgePluginSingleton.request({ key: "backbutton" }).then((ev) => {
console.log("AndroidPolyfill: received backbutton: ", ev)
if (ev === null) {
// Probably in web environment
@ -88,28 +106,38 @@ export class AndroidPolyfill {
window.location.href = "/"
}
})
}
public static watchLocation(writeInto: UIEventSource<GeolocationCoordinates>, callback: (location) => void) {
public static watchLocation(
writeInto: UIEventSource<GeolocationCoordinates>,
callback: (location) => void
) {
DatabridgePluginSingleton.request({
key: "location:watch",
}).then((l: {
value: { latitude: number, longitude: number, accuraccy: number, altidude: number, heading: number, speed:number }
}) => {
// example l: {"value":{"latitude":51.0618627,"longitude":3.730468566666667,"accuracy":2.0393495559692383,"altitude":46.408,"heading":168.2969970703125}}
console.log("Received location from Android:", JSON.stringify(l))
const loc = l.value
writeInto.set({
latitude: loc.latitude,
longitude: loc.longitude,
heading: loc.heading,
accuracy: loc.accuraccy,
altitude: loc.altidude,
altitudeAccuracy: undefined,
speed: loc.speed,
})
})
}).then(
(l: {
value: {
latitude: number
longitude: number
accuraccy: number
altidude: number
heading: number
speed: number
}
}) => {
// example l: {"value":{"latitude":51.0618627,"longitude":3.730468566666667,"accuracy":2.0393495559692383,"altitude":46.408,"heading":168.2969970703125}}
console.log("Received location from Android:", JSON.stringify(l))
const loc = l.value
writeInto.set({
latitude: loc.latitude,
longitude: loc.longitude,
heading: loc.heading,
accuracy: loc.accuraccy,
altitude: loc.altidude,
altitudeAccuracy: undefined,
speed: loc.speed,
})
}
)
}
}

View file

@ -2,22 +2,21 @@
* Various tools and types to work with the community index (https://openstreetmap.community/; https://github.com/osmlab/osm-community-index)
*/
export interface CommunityResource {
/**
* A unique identifier for the resource
* "pattern": "^[-_.A-Za-z0-9]+$"
*/
id: string,
id: string
/**
* Type of community resource (thus: platform)
*/
type: string,
type: string
/**
* included and excluded locations for this item
* See location-conflation documentation for compatible values: https://github.com/rapideditor/location-conflation#readme
*/
locationSet?,
locationSet?
/** Array of ISO-639-1 (2 letter) or ISO-639-3 (3 letter) codes in lowercase
* */
@ -27,7 +26,5 @@ export interface CommunityResource {
*/
account?: string
resolved?: { url: string, name: string, description: string } & Record<string, string>
resolved?: { url: string; name: string; description: string } & Record<string, string>
}

View file

@ -36,14 +36,14 @@ export default class ThemeViewStateHashActor {
*
*/
constructor(state: {
featureSwitches: {featureSwitchBackToThemeOverview: Store<boolean>}
indexedFeatures: IndexedFeatureSource,
selectedElement: UIEventSource<Feature>,
guistate: MenuState,
featureSwitches: { featureSwitchBackToThemeOverview: Store<boolean> }
indexedFeatures: IndexedFeatureSource
selectedElement: UIEventSource<Feature>
guistate: MenuState
}) {
this._state = state
AndroidPolyfill.onBackButton(() => this.back(), {
returnToIndex: state.featureSwitches.featureSwitchBackToThemeOverview
returnToIndex: state.featureSwitches.featureSwitchBackToThemeOverview,
})
const hashOnLoad = Hash.hash.data
@ -81,7 +81,6 @@ export default class ThemeViewStateHashActor {
// When all is done, set the hash. This must happen last to give the code above correct info
this.setHash()
}
/**

View file

@ -129,8 +129,8 @@ export default class TagRenderingConfig {
this.id
)
}
if(json.labels && !Array.isArray( json.labels)){
throw (`Invalid labels at ${context}: labels should be a list of strings, but got a ${typeof json.labels}`)
if (json.labels && !Array.isArray(json.labels)) {
throw `Invalid labels at ${context}: labels should be a list of strings, but got a ${typeof json.labels}`
}
this.labels = json.labels ?? []

View file

@ -18,7 +18,7 @@ import { Store, UIEventSource } from "../../Logic/UIEventSource"
import NearbyFeatureSource from "../../Logic/FeatureSource/Sources/NearbyFeatureSource"
import {
SummaryTileSource,
SummaryTileSourceRewriter
SummaryTileSourceRewriter,
} from "../../Logic/FeatureSource/TiledFeatureSource/SummaryTileSource"
import { ShowDataLayerOptions } from "../../UI/Map/ShowDataLayerOptions"
@ -94,10 +94,7 @@ export class WithSpecialLayers extends WithChangesState {
const maxzoom = Math.min(...normalLayers.map((l) => l.minzoom))
const layers = this.theme.layers.filter(
(l) =>
!Constants.isPriviliged(l) &&
l.source.geojsonSource === undefined &&
l.doCount
(l) => !Constants.isPriviliged(l) && l.source.geojsonSource === undefined && l.doCount
)
if (!Constants.SummaryServer || layers.length === 0) {
return undefined

View file

@ -81,12 +81,12 @@ export class Tiles {
return [z, x, index % factor]
}
static asGeojson(index: number): Feature<Polygon>;
static asGeojson(x: number, y: number, z: number): Feature<Polygon>;
static asGeojson(index: number): Feature<Polygon>
static asGeojson(x: number, y: number, z: number): Feature<Polygon>
static asGeojson(zIndex: number, x?: number, y?: number): Feature<Polygon> {
let z = zIndex
if (x === undefined) {
[z, x, y] = Tiles.tile_from_index(zIndex)
;[z, x, y] = Tiles.tile_from_index(zIndex)
}
const bounds = Tiles.tile_bounds_lon_lat(z, x, y)
return new BBox(bounds).asGeoJson()

View file

@ -107,13 +107,16 @@
}
})
AndroidPolyfill.onBackButton((() => {
if(searchIsFocussed.data){
searchIsFocussed.set(false)
return true
}
return false
}), {returnToIndex: new ImmutableStore(false)})
AndroidPolyfill.onBackButton(
() => {
if (searchIsFocussed.data) {
searchIsFocussed.set(false)
return true
}
return false
},
{ returnToIndex: new ImmutableStore(false) }
)
/**
* Opens the first search candidate
@ -228,11 +231,19 @@
<Tr cls="link-underline" t={Translations.t.general.aboutMapComplete.intro} />
<span class="link-underline flex flex-col gap-y-1">
<a class="flex" href="https://source.mapcomplete.org/MapComplete/MapComplete/" target="_blank">
<a
class="flex"
href="https://source.mapcomplete.org/MapComplete/MapComplete/"
target="_blank"
>
<Forgejo class="mr-2 h-6 w-6" />
<Tr t={Translations.t.general.attribution.gotoSourceCode} />
</a>
<a class="flex" href="https://source.mapcomplete.org/MapComplete/MapComplete/issues" target="_blank">
<a
class="flex"
href="https://source.mapcomplete.org/MapComplete/MapComplete/issues"
target="_blank"
>
<Bug class="mr-2 h-6 w-6" />
<Tr t={Translations.t.general.attribution.openIssueTracker} />
</a>

View file

@ -149,7 +149,7 @@
>
<div
class={twMerge(
"absolute top-0 left-0 flex cursor-pointer items-center justify-center break-words text-xs",
"absolute left-0 top-0 flex cursor-pointer items-center justify-center break-words text-xs",
size
)}
>
@ -161,7 +161,7 @@
</div>
</div>
{#if $bearingFromGps !== undefined}
<div class={twMerge("absolute top-0 left-0 rounded-full", size)}>
<div class={twMerge("absolute left-0 top-0 rounded-full", size)}>
<Compass_arrow
class={size}
style={`transform: rotate( calc( 45deg + ${$bearingFromGps - ($compass ?? 0)}deg) );`}

View file

@ -13,7 +13,7 @@
<!-- Draw the background over the total screen -->
<div
class="absolute top-0 left-0 h-screen w-screen"
class="absolute left-0 top-0 h-screen w-screen"
on:click={() => {
console.log("OnClose")
dispatch("close")
@ -38,8 +38,8 @@
</div>
<slot name="close-button">
<!-- The close button is placed _after_ the default slot in order to always paint it on top -->
<div class="absolute top-0 right-0">
<CloseButton class="normal-background mt-2 mr-2" on:click={() => dispatch("close")} />
<div class="absolute right-0 top-0">
<CloseButton class="normal-background mr-2 mt-2" on:click={() => dispatch("close")} />
</div>
</slot>
</div>

View file

@ -6,7 +6,7 @@
</script>
<div class={cls}>
<div class="min-w-6 h-6 w-6 shrink-0 animate-spin self-center">
<div class="h-6 w-6 min-w-6 shrink-0 animate-spin self-center">
<Loading />
</div>
<div class="ml-2">

View file

@ -47,7 +47,7 @@
{#if !hiddenFail}
<slot name="error">
<div class="alert flex flex-col items-center">
<div class="max-w-64 flex items-center">
<div class="flex max-w-64 items-center">
<Invalid class="m-2 h-8 w-8 shrink-0" />
<Tr t={offlineModes[$apiState] ?? t.loginFailedUnreachableMode} />
</div>

View file

@ -11,7 +11,7 @@
<div
aria-modal="true"
autofocus
class="normal-background absolute top-0 right-0 flex h-screen w-full flex-col overflow-y-auto drop-shadow-2xl md:w-6/12 lg:w-5/12 xl:w-4/12"
class="normal-background absolute right-0 top-0 flex h-screen w-full flex-col overflow-y-auto drop-shadow-2xl md:w-6/12 lg:w-5/12 xl:w-4/12"
role="dialog"
style="max-width: 100vw; max-height: 100vh; z-index: 11"
tabindex="-1"

View file

@ -31,7 +31,7 @@
inputElement?.select()
}
})
}else if(document.activeElement === inputElement){
} else if (document.activeElement === inputElement) {
inputElement?.blur()
}
})

View file

@ -1,7 +1,6 @@
<div class="flex h-full flex-col">
<div class="low-interaction flex items-center justify-between p-4 drop-shadow-md">
<div class="flex gap-x-2 items-center">
<div class="flex items-center gap-x-2">
<slot name="title-start" />
<h2 class="m-0">
<slot name="title" />

View file

@ -23,10 +23,15 @@
>([])
tileToFetch.addCallbackAndRun(async (url) => {
const data = await Utils.downloadJsonCached<FeatureCollection<Polygon, {
nameEn: string,
resources: Record<string, CommunityResource>
}>>(url, 24 * 60 * 60)
const data = await Utils.downloadJsonCached<
FeatureCollection<
Polygon,
{
nameEn: string
resources: Record<string, CommunityResource>
}
>
>(url, 24 * 60 * 60)
if (data === undefined) {
return
}
@ -39,9 +44,13 @@
[location]
)
const globalResources: UIEventSource<Record<string, CommunityResource>> = UIEventSource.FromPromise(Utils.downloadJsonCached<Record<string, CommunityResource>>(
Constants.communityIndexHost + "/global.json", 24 * 60 * 60 * 1000
))
const globalResources: UIEventSource<Record<string, CommunityResource>> =
UIEventSource.FromPromise(
Utils.downloadJsonCached<Record<string, CommunityResource>>(
Constants.communityIndexHost + "/global.json",
24 * 60 * 60 * 1000
)
)
</script>
<div>

View file

@ -26,10 +26,7 @@
{/if}
{#each resources as resource}
<div class="link-underline my-4 flex items-center">
<img
class="m-2 h-8 w-8"
src={`${Constants.communityIndexHost}${resource.type}.svg`}
/>
<img class="m-2 h-8 w-8" src={`${Constants.communityIndexHost}${resource.type}.svg`} />
<div class="flex flex-col">
<a
href={resource.resolved?.url}

View file

@ -26,7 +26,7 @@
<div class="border-box m-2 flex flex-wrap border-b border-gray-300">
<img
class={twJoin(
"min-h-12 mr-2 mb-2 w-12",
"mb-2 mr-2 min-h-12 w-12",
license["mostly_white"] && "h-12 rounded-full bg-slate-400"
)}
src={iconPath}

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