forked from MapComplete/MapComplete
chore: automated housekeeping...
This commit is contained in:
parent
8ef7af613f
commit
00151afdea
114 changed files with 2857 additions and 2135 deletions
|
@ -644,6 +644,10 @@
|
||||||
- ticket_machine
|
- ticket_machine
|
||||||
- vending_machine
|
- vending_machine
|
||||||
|
|
||||||
|
### wheelchair
|
||||||
|
|
||||||
|
- pharmacy
|
||||||
|
|
||||||
### {preset_type_select()}
|
### {preset_type_select()}
|
||||||
|
|
||||||
- police
|
- police
|
||||||
|
|
|
@ -538,7 +538,8 @@ This table gives a summary of ids, names and other metainformation. [See the onl
|
||||||
| CBJ_Aerial_20230516 | CBJ Aerial Imagery (May 2023) | photo | ⭐ | City and Borough of Juneau |
|
| CBJ_Aerial_20230516 | CBJ Aerial Imagery (May 2023) | photo | ⭐ | City and Borough of Juneau |
|
||||||
| CBJ_Aerial_20230618 | CBJ Aerial Imagery (June 2023) | photo | | City and Borough of Juneau |
|
| CBJ_Aerial_20230618 | CBJ Aerial Imagery (June 2023) | photo | | City and Borough of Juneau |
|
||||||
| FNSB_Aerial_2023 | FNSB Aerial Imagery (2023) | photo | ⭐ | Fairbanks North Star Borough |
|
| FNSB_Aerial_2023 | FNSB Aerial Imagery (2023) | photo | ⭐ | Fairbanks North Star Borough |
|
||||||
| MOA_Aerial_2021 | MOA Aerial Imagery (2021) | photo | | Municipality of Anchorage GIS |
|
| MOA_Aerial_2021 | MOA Aerial Imagery (2021) | historicphoto | | Municipality of Anchorage GIS |
|
||||||
|
| MOA_Aerial_2024 | MOA Aerial Imagery (2024) | photo | ⭐ | Municipality of Anchorage GIS |
|
||||||
| MSB_Aerial_2019 | MSB Aerial Imagery - Area 1(2019) | historicphoto | | Matanuska-Susitna Borough GIS Division |
|
| MSB_Aerial_2019 | MSB Aerial Imagery - Area 1(2019) | historicphoto | | Matanuska-Susitna Borough GIS Division |
|
||||||
| MSB_Aerial_2020 | MSB Aerial Imagery - Area 2 (2020) | historicphoto | | Matanuska-Susitna Borough GIS Division |
|
| MSB_Aerial_2020 | MSB Aerial Imagery - Area 2 (2020) | historicphoto | | Matanuska-Susitna Borough GIS Division |
|
||||||
| MSB_Aerial_2021 | MSB Aerial Imagery - Area 3 (2021) | historicphoto | | Matanuska-Susitna Borough GIS Division |
|
| MSB_Aerial_2021 | MSB Aerial Imagery - Area 3 (2021) | historicphoto | | Matanuska-Susitna Borough GIS Division |
|
||||||
|
@ -558,20 +559,27 @@ This table gives a summary of ids, names and other metainformation. [See the onl
|
||||||
| LA_County_Basemap | LA County Basemap | map | | Los Angeles County |
|
| LA_County_Basemap | LA County Basemap | map | | Los Angeles County |
|
||||||
| Manhattan_Beach_CA_2023 | City of Manhattan Beach Orthoimagery (2023) | photo | | City of Manhattan Beach |
|
| Manhattan_Beach_CA_2023 | City of Manhattan Beach Orthoimagery (2023) | photo | | City of Manhattan Beach |
|
||||||
| Manteca_CA_2022 | City of Manteca Orthoimagery (2022) | photo | | City of Manteca |
|
| Manteca_CA_2022 | City of Manteca Orthoimagery (2022) | photo | | City of Manteca |
|
||||||
| Modesto_CA_2023 | City of Modesto Orthoimagery (2023) | photo | | City of Modesto |
|
| Modesto_CA_2023 | City of Modesto Orthoimagery (2023) | historicphoto | | City of Modesto |
|
||||||
|
| Modesto_CA_2024 | City of Modesto Orthoimagery (2024) | photo | | City of Modesto |
|
||||||
| Orange_CA_2022 | Orange County Orthoimagery (2022) | photo | | Orange County |
|
| Orange_CA_2022 | Orange County Orthoimagery (2022) | photo | | Orange County |
|
||||||
| Roseville_CA_2023 | City of Roseville Orthoimagery (2023) | historicphoto | | City of Roseville |
|
| Roseville_CA_2023 | City of Roseville Orthoimagery (2023) | historicphoto | | City of Roseville |
|
||||||
| Roseville_CA_2024 | City of Roseville Orthoimagery (2024) | photo | | City of Roseville |
|
| Roseville_CA_2024 | City of Roseville Orthoimagery (2024) | photo | | City of Roseville |
|
||||||
| Sacramento_CA_2022 | Sacramento County Orthoimagery (2022) | photo | | Sacramento County |
|
| Sacramento_CA_2022 | Sacramento County Orthoimagery (2022) | photo | | Sacramento County |
|
||||||
| San_Bernardino_CA_2023 | San Bernardino County Orthoimagery (2023) | photo | | San Bernardino County |
|
| San_Bernardino_CA_2023 | San Bernardino County Orthoimagery (2023) | historicphoto | | San Bernardino County |
|
||||||
| San_Francisco_CA_2022 | San Francisco Orthoimagery (2022) | historicphoto | | City and County of San Francisco |
|
| San_Bernardino_CA_2024 | San Bernardino County Orthoimagery (2024) | photo | | San Bernardino County |
|
||||||
| San_Francisco_CA_2022_CIR | San Francisco Orthoimagery CIR (2022) | historicphoto | | City and County of San Francisco |
|
| San_Francisco_2022 | San Francisco Orthoimagery (2022) | historicphoto | | City and County of San Francisco |
|
||||||
| San_Francisco_Ortho_2023 | San Francisco Orthoimagery (2023) | photo | | City and County of San Francisco |
|
| San_Francisco_2022_CIR | San Francisco Orthoimagery CIR (2022) | historicphoto | | City and County of San Francisco |
|
||||||
|
| San_Francisco_2023 | San Francisco Orthoimagery (2023) | historicphoto | | City and County of San Francisco |
|
||||||
|
| San_Francisco_2023_CIR | San Francisco Orthoimagery CIR (2023) | historicphoto | | City and County of San Francisco |
|
||||||
|
| San_Francisco_2024 | San Francisco Orthoimagery (2024) | photo | | City and County of San Francisco |
|
||||||
|
| San_Francisco_2024_CIR | San Francisco Orthoimagery CIR (2024) | photo | | City and County of San Francisco |
|
||||||
| San_Mateo_CA_2022 | San Mateo County Orthoimagery (2022) | photo | | San Mateo County |
|
| San_Mateo_CA_2022 | San Mateo County Orthoimagery (2022) | photo | | San Mateo County |
|
||||||
| Santa_Clara_CA_2022 | Santa Clara County Orthoimagery (2022) | photo | | County of Santa Clara |
|
| Santa_Clara_CA_2022 | Santa Clara County Orthoimagery (2022) | photo | | County of Santa Clara |
|
||||||
| Santa_Clara_CA_2023 | Santa Clara County Orthoimagery (2023) | photo | | County of Santa Clara |
|
| Santa_Clara_CA_2023 | Santa Clara County Orthoimagery (2023) | photo | | County of Santa Clara |
|
||||||
| Santa_Rosa_CA_2022 | City of Santa Rosa Orthoimagery (2022) | photo | | City of Santa Rosa |
|
| Santa_Rosa_CA_2022 | City of Santa Rosa Orthoimagery (2022) | photo | | City of Santa Rosa |
|
||||||
| Solano_CA_2022 | Solano County Orthoimagery (2022) | photo | | Solano County |
|
| Solano_CA_2022 | Solano County Orthoimagery (2022) | historicphoto | | Solano County |
|
||||||
|
| Solano_CA_2023 | Solano County Orthoimagery (2023) | historicphoto | | Solano County |
|
||||||
|
| Solano_CA_2024 | Solano County Orthoimagery (2024) | photo | | Solano County |
|
||||||
| Stockton_CA_2023 | City of Stockton Orthoimagery (2023) | photo | | City of Stockton |
|
| Stockton_CA_2023 | City of Stockton Orthoimagery (2023) | photo | | City of Stockton |
|
||||||
| Arapahoe-County-Aerials-Latest | Arapahoe County Aerials Latest | photo | | Arapahoe County GIS |
|
| Arapahoe-County-Aerials-Latest | Arapahoe County Aerials Latest | photo | | Arapahoe County GIS |
|
||||||
| MCGIS-County-NAIP-Imagery-2015 | Mesa County GIS NAIP 2015 | historicphoto | | Mesa County GIS |
|
| MCGIS-County-NAIP-Imagery-2015 | Mesa County GIS NAIP 2015 | historicphoto | | Mesa County GIS |
|
||||||
|
@ -579,7 +587,8 @@ This table gives a summary of ids, names and other metainformation. [See the onl
|
||||||
| MCGIS-County-Valleywide-Imagery-2020 | Mesa County GIS Valleywide 2020 | historicphoto | | Mesa County GIS |
|
| MCGIS-County-Valleywide-Imagery-2020 | Mesa County GIS Valleywide 2020 | historicphoto | | Mesa County GIS |
|
||||||
| MCGIS-County-Valleywide-Imagery-2022 | Mesa County GIS Valleywide 2022 | photo | | Mesa County GIS |
|
| MCGIS-County-Valleywide-Imagery-2022 | Mesa County GIS Valleywide 2022 | photo | | Mesa County GIS |
|
||||||
| MCGIS-County-Valleywide-Imagery-2024 | Mesa County GIS Valleywide 2024 | photo | | Mesa County GIS |
|
| MCGIS-County-Valleywide-Imagery-2024 | Mesa County GIS Valleywide 2024 | photo | | Mesa County GIS |
|
||||||
| CT_ECO_Ortho_2019_RGB | CT ECO Orthoimagery (2019) | photo | | Connecticut Environmental Conditions Online |
|
| CT_ECO_Ortho_2019_RGB | CT ECO Orthoimagery (2019) | historicphoto | | Connecticut Environmental Conditions Online |
|
||||||
|
| CT_ECO_Ortho_2023_RGB | CT ECO Orthoimagery (2023) | photo | | Connecticut Environmental Conditions Online |
|
||||||
| CT_ECO_Shaded_relief_2016 | CT ECO Shaded Relief | elevation | | Connecticut Environmental Conditions Online |
|
| CT_ECO_Shaded_relief_2016 | CT ECO Shaded Relief | elevation | | Connecticut Environmental Conditions Online |
|
||||||
| MetroCOG_Ortho_2020 | MetroCOG Orthoimagery (2020) | photo | | Connecticut Metropolitan Council of Governments |
|
| MetroCOG_Ortho_2020 | MetroCOG Orthoimagery (2020) | photo | | Connecticut Metropolitan Council of Governments |
|
||||||
| DC_From_Above_Ortho_2019 | DC From Above Orthophoto 2019 | historicphoto | | OCTO, DCGIS |
|
| DC_From_Above_Ortho_2019 | DC From Above Orthophoto 2019 | historicphoto | | OCTO, DCGIS |
|
||||||
|
@ -588,7 +597,7 @@ This table gives a summary of ids, names and other metainformation. [See the onl
|
||||||
| Delaware2012Orthophotography | Delaware 2012 Orthophotography | historicphoto | | Digital Aerial Solutions, LLC, FirstMap |
|
| Delaware2012Orthophotography | Delaware 2012 Orthophotography | historicphoto | | Digital Aerial Solutions, LLC, FirstMap |
|
||||||
| DE_Orthophotography_2017_NC | Delaware 2017 Orthophotography (Natural Color) | historicphoto | | Surdex Corp, FirstMap |
|
| DE_Orthophotography_2017_NC | Delaware 2017 Orthophotography (Natural Color) | historicphoto | | Surdex Corp, FirstMap |
|
||||||
| Delaware_FirstMap_2021 | Delaware FirstMap 2021 | historicphoto | | Hexagon, FirstMap |
|
| Delaware_FirstMap_2021 | Delaware FirstMap 2021 | historicphoto | | Hexagon, FirstMap |
|
||||||
| Delaware_FirstMap_2022 | Delaware FirstMap 2022 | photo | | Sanborn Map Company, FirstMap |
|
| Delaware_FirstMap_2022 | Delaware FirstMap 2022 | photo | ⭐ | Sanborn Map Company, FirstMap |
|
||||||
| Delaware_Parks_2022 | Delaware Parks 2022 | photo | | Sanborn Map Company, FirstMap |
|
| Delaware_Parks_2022 | Delaware Parks 2022 | photo | | Sanborn Map Company, FirstMap |
|
||||||
| Alachua_Ortho_2020 | Alachua County Orthoimagery (2020) | historicphoto | | Alachua County Property Appraiser’s Office |
|
| Alachua_Ortho_2020 | Alachua County Orthoimagery (2020) | historicphoto | | Alachua County Property Appraiser’s Office |
|
||||||
| Alachua_Ortho_2023 | Alachua County Orthoimagery (2023) | photo | | Alachua County Property Appraiser’s Office |
|
| Alachua_Ortho_2023 | Alachua County Orthoimagery (2023) | photo | | Alachua County Property Appraiser’s Office |
|
||||||
|
@ -818,7 +827,8 @@ This table gives a summary of ids, names and other metainformation. [See the onl
|
||||||
| Suan_Juan_WA_2023 | Suan Juan County Aerials (2023) | photo | ⭐ | San Juan County GIS |
|
| Suan_Juan_WA_2023 | Suan Juan County Aerials (2023) | photo | ⭐ | San Juan County GIS |
|
||||||
| Suan_Juan_WA_Basemap | Suan Juan County Basemap | map | | San Juan County GIS |
|
| Suan_Juan_WA_Basemap | Suan Juan County Basemap | map | | San Juan County GIS |
|
||||||
| Snohomish_WA_2020 | Snohomish County Orthoimagery (2020) | historicphoto | | Snohomish County GIS |
|
| Snohomish_WA_2020 | Snohomish County Orthoimagery (2020) | historicphoto | | Snohomish County GIS |
|
||||||
| Snohomish_WA_2022 | Snohomish County Orthoimagery (2022) | photo | | Snohomish County GIS |
|
| Snohomish_WA_2022 | Snohomish County Orthoimagery (2022) | historicphoto | | Snohomish County GIS |
|
||||||
|
| Snohomish_WA_2024 | Snohomish County Orthoimagery (2024) | photo | | Snohomish County GIS |
|
||||||
| WISC_DNR_Ortho_Composite | Wisconsin Leaf-Off Orthophotography (DNR) | photo | | Wisconsin Regional Orthoimagery Consortium, Southeastern Wisconsin Regional Planning Commission, Wisconsin Department of Natural Resources |
|
| WISC_DNR_Ortho_Composite | Wisconsin Leaf-Off Orthophotography (DNR) | photo | | Wisconsin Regional Orthoimagery Consortium, Southeastern Wisconsin Regional Planning Commission, Wisconsin Department of Natural Resources |
|
||||||
| Monongalia_WV_2022 | Monongalia County 2022 Aerial Imagery | historicphoto | | Monongalia Morgantown Area Geospatial Information Consortium |
|
| Monongalia_WV_2022 | Monongalia County 2022 Aerial Imagery | historicphoto | | Monongalia Morgantown Area Geospatial Information Consortium |
|
||||||
| Monongalia_WV_2023 | Monongalia County 2023 Aerial Imagery | photo | ⭐ | Monongalia Morgantown Area Geospatial Information Consortium |
|
| Monongalia_WV_2023 | Monongalia County 2023 Aerial Imagery | photo | ⭐ | Monongalia Morgantown Area Geospatial Information Consortium |
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
We will complete data from advertising features with reference, operator and lit
|
We will complete data from advertising features with reference, operator and lit
|
||||||
|
|
||||||
- This layer is shown at zoomlevel **15** and higher
|
- This layer is shown at zoomlevel **13** and higher
|
||||||
- This layer will automatically load [walls_and_buildings](./walls_and_buildings.md) into the layout as it depends on it: preset `a billboard mounted to a wall` snaps to this layer (advertising.presets[1])
|
- This layer will automatically load [walls_and_buildings](./walls_and_buildings.md) into the layout as it depends on it: preset `a billboard mounted to a wall` snaps to this layer (advertising.presets[1])
|
||||||
- This layer will automatically load [walls_and_buildings](./walls_and_buildings.md) into the layout as it depends on it: preset `a poster box mounted on a wall` snaps to this layer (advertising.presets[3])
|
- This layer will automatically load [walls_and_buildings](./walls_and_buildings.md) into the layout as it depends on it: preset `a poster box mounted on a wall` snaps to this layer (advertising.presets[3])
|
||||||
- This layer will automatically load [shelter](./shelter.md) into the layout as it depends on it: preset `a poster box part of a public transport shelter` snaps to this layer (advertising.presets[4])
|
- This layer will automatically load [shelter](./shelter.md) into the layout as it depends on it: preset `a poster box part of a public transport shelter` snaps to this layer (advertising.presets[4])
|
||||||
|
|
|
@ -362,6 +362,25 @@ This tagrendering has labels
|
||||||
| artwork-artwork_type.12 | Tilework | artwork_type=tilework |
|
| artwork-artwork_type.12 | Tilework | artwork_type=tilework |
|
||||||
| artwork-artwork_type.13 | Woodcarving | artwork_type=woodcarving |
|
| artwork-artwork_type.13 | Woodcarving | artwork_type=woodcarving |
|
||||||
|
|
||||||
|
| id | question | osmTags |
|
||||||
|
-----|-----|----- |
|
||||||
|
| memorial-type.0 | *What type of memorial is this?* (default) | |
|
||||||
|
| memorial-type.1 | This is a statue | memorial=statue |
|
||||||
|
| memorial-type.2 | This is a plaque | memorial=plaque |
|
||||||
|
| memorial-type.3 | This is a commemorative bench | memorial=bench |
|
||||||
|
| memorial-type.4 | This is a ghost bike - a bicycle painted white to remember a cyclist whom deceased because of a car crash | memorial=ghost_bike |
|
||||||
|
| memorial-type.5 | This is a stolperstein (stumbing stone) | memorial=stolperstein |
|
||||||
|
| memorial-type.6 | This is a stele | memorial=stele |
|
||||||
|
| memorial-type.7 | This is a memorial stone | memorial=stone |
|
||||||
|
| memorial-type.8 | This is a bust | memorial=bust |
|
||||||
|
| memorial-type.9 | This is a sculpture | memorial=sculpture |
|
||||||
|
| memorial-type.10 | This is an obelisk | memorial=obelisk |
|
||||||
|
| memorial-type.11 | This is a cross | memorial=cross |
|
||||||
|
| memorial-type.12 | This is a blue plaque | memorial=blue_plaque |
|
||||||
|
| memorial-type.13 | This is a historic tank, permanently placed in public space as memorial | memorial=tank |
|
||||||
|
| memorial-type.14 | This is a memorial tree | memorial=tree |
|
||||||
|
| memorial-type.15 | This is a gravestone; the person is buried here | historic=tomb |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
This document is autogenerated from [assets/layers/artwork/artwork.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/artwork/artwork.json)
|
This document is autogenerated from [assets/layers/artwork/artwork.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/artwork/artwork.json)
|
||||||
|
|
|
@ -365,6 +365,25 @@ This tagrendering has labels
|
||||||
| artwork-artwork_type.12 | Tilework | artwork_type=tilework |
|
| artwork-artwork_type.12 | Tilework | artwork_type=tilework |
|
||||||
| artwork-artwork_type.13 | Woodcarving | artwork_type=woodcarving |
|
| artwork-artwork_type.13 | Woodcarving | artwork_type=woodcarving |
|
||||||
|
|
||||||
|
| id | question | osmTags |
|
||||||
|
-----|-----|----- |
|
||||||
|
| memorial-type.0 | *What type of memorial is this?* (default) | |
|
||||||
|
| memorial-type.1 | This is a statue | memorial=statue |
|
||||||
|
| memorial-type.2 | This is a plaque | memorial=plaque |
|
||||||
|
| memorial-type.3 | This is a commemorative bench | memorial=bench |
|
||||||
|
| memorial-type.4 | This is a ghost bike - a bicycle painted white to remember a cyclist whom deceased because of a car crash | memorial=ghost_bike |
|
||||||
|
| memorial-type.5 | This is a stolperstein (stumbing stone) | memorial=stolperstein |
|
||||||
|
| memorial-type.6 | This is a stele | memorial=stele |
|
||||||
|
| memorial-type.7 | This is a memorial stone | memorial=stone |
|
||||||
|
| memorial-type.8 | This is a bust | memorial=bust |
|
||||||
|
| memorial-type.9 | This is a sculpture | memorial=sculpture |
|
||||||
|
| memorial-type.10 | This is an obelisk | memorial=obelisk |
|
||||||
|
| memorial-type.11 | This is a cross | memorial=cross |
|
||||||
|
| memorial-type.12 | This is a blue plaque | memorial=blue_plaque |
|
||||||
|
| memorial-type.13 | This is a historic tank, permanently placed in public space as memorial | memorial=tank |
|
||||||
|
| memorial-type.14 | This is a memorial tree | memorial=tree |
|
||||||
|
| memorial-type.15 | This is a gravestone; the person is buried here | historic=tomb |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
This document is autogenerated from [assets/themes/ghostsigns/ghostsigns.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/ghostsigns/ghostsigns.json)
|
This document is autogenerated from [assets/themes/ghostsigns/ghostsigns.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/ghostsigns/ghostsigns.json)
|
||||||
|
|
|
@ -434,7 +434,7 @@ The question is `Does this shop sell bikes?`
|
||||||
- *This shop sells new bikes* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail' target='_blank'>service:bicycle:retail</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes' target='_blank'>yes</a>
|
- *This shop sells new bikes* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail' target='_blank'>service:bicycle:retail</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes' target='_blank'>yes</a>
|
||||||
- *This shop doesn't sell new bikes* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail' target='_blank'>service:bicycle:retail</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno' target='_blank'>no</a>
|
- *This shop doesn't sell new bikes* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail' target='_blank'>service:bicycle:retail</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%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:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doutdoor' target='_blank'>outdoor</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsport' target='_blank'>sport</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Ddiy' target='_blank'>diy</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Ddoityourself' target='_blank'>doityourself</a> | service:bicycle:retail~.+
|
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%3Doutdoor' target='_blank'>outdoor</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsport' target='_blank'>sport</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsports' target='_blank'>sports</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Ddiy' target='_blank'>diy</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Ddoityourself' target='_blank'>doityourself</a> | service:bicycle:retail~.+
|
||||||
|
|
||||||
### bike_second_hand
|
### bike_second_hand
|
||||||
|
|
||||||
|
@ -455,7 +455,7 @@ The question is `Does this shop repair bikes?`
|
||||||
- *This shop only repairs bikes bought here* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair' target='_blank'>service:bicycle:repair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold' target='_blank'>only_sold</a>
|
- *This shop only repairs bikes bought here* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair' target='_blank'>service:bicycle:repair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold' target='_blank'>only_sold</a>
|
||||||
- *This shop only repairs bikes of a certain brand* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair' target='_blank'>service:bicycle:repair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand' target='_blank'>brand</a>
|
- *This shop only repairs bikes of a certain brand* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair' target='_blank'>service:bicycle:repair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand' target='_blank'>brand</a>
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail' target='_blank'>service:bicycle:retail</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes' target='_blank'>yes</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand' target='_blank'>service:bicycle:second_hand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes' target='_blank'>yes</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand' target='_blank'>service:bicycle:second_hand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly' target='_blank'>only</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsport' target='_blank'>sport</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doutdoor' target='_blank'>outdoor</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbicycle' target='_blank'>bicycle</a> | service:bicycle:repair~.+
|
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail' target='_blank'>service:bicycle:retail</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes' target='_blank'>yes</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand' target='_blank'>service:bicycle:second_hand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes' target='_blank'>yes</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand' target='_blank'>service:bicycle:second_hand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly' target='_blank'>only</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsport' target='_blank'>sport</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsports' target='_blank'>sports</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doutdoor' target='_blank'>outdoor</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbicycle' target='_blank'>bicycle</a> | service:bicycle:repair~.+
|
||||||
|
|
||||||
### bicycle_rental
|
### bicycle_rental
|
||||||
|
|
||||||
|
@ -464,7 +464,7 @@ The question is `Does this shop rent out bikes?`
|
||||||
- *This shop rents out bikes* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:rental' target='_blank'>service:bicycle:rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:rental%3Dyes' target='_blank'>yes</a>
|
- *This shop rents out bikes* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:rental' target='_blank'>service:bicycle:rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:rental%3Dyes' target='_blank'>yes</a>
|
||||||
- *This shop doesn't rent out bikes* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:rental' target='_blank'>service:bicycle:rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:rental%3Dno' target='_blank'>no</a>
|
- *This shop doesn't rent out bikes* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:rental' target='_blank'>service:bicycle:rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:rental%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:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbicycle' target='_blank'>bicycle</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsport' target='_blank'>sport</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbicycle_repair' target='_blank'>bicycle_repair</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doutdoor' target='_blank'>outdoor</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Drental' target='_blank'>rental</a> | service:bicycle:rental~.+
|
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%3Dbicycle' target='_blank'>bicycle</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsport' target='_blank'>sport</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsports' target='_blank'>sports</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbicycle_repair' target='_blank'>bicycle_repair</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Doutdoor' target='_blank'>outdoor</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:shop' target='_blank'>shop</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:shop%3Drental' target='_blank'>rental</a> | service:bicycle:rental~.+
|
||||||
|
|
||||||
### bicycle-types
|
### bicycle-types
|
||||||
|
|
||||||
|
@ -586,7 +586,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -578,7 +578,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -587,7 +587,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,6 @@ 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/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/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/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/wheelchair#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/wheelchair/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) |
|
|
||||||
|
|
||||||
### images
|
### 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 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
|
||||||
|
@ -124,11 +123,8 @@ The question is `Which methods of payment are accepted here?`
|
||||||
|
|
||||||
### wheelchair
|
### wheelchair
|
||||||
|
|
||||||
The question is `Is this pharmacy easy to access on a wheelchair?`
|
_This tagrendering has no question and is thus read-only_
|
||||||
|
*wheelchair*
|
||||||
- *This pharmacy is easy to access on a wheelchair* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:wheelchair' target='_blank'>wheelchair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes' target='_blank'>yes</a>
|
|
||||||
- *This pharmacy is hard to access on a wheelchair* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:wheelchair' target='_blank'>wheelchair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno' target='_blank'>no</a>
|
|
||||||
- *This pharmacy has limited access for wheelchair users* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:wheelchair' target='_blank'>wheelchair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited' target='_blank'>limited</a>
|
|
||||||
|
|
||||||
### leftover-questions
|
### leftover-questions
|
||||||
|
|
||||||
|
|
|
@ -595,7 +595,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -592,7 +592,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -592,7 +592,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -578,7 +578,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -587,7 +587,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -582,7 +582,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -20,7 +20,7 @@ This layer shows surveillance cameras and allows a contributor to update informa
|
||||||
- [camera_direction](#camera_direction)
|
- [camera_direction](#camera_direction)
|
||||||
- [Operator](#operator)
|
- [Operator](#operator)
|
||||||
- [Surveillance type: public, outdoor, indoor](#surveillance-type-public,-outdoor,-indoor)
|
- [Surveillance type: public, outdoor, indoor](#surveillance-type-public,-outdoor,-indoor)
|
||||||
- [is_indoor](#is_indoor)
|
- [camera_is_indoor](#camera_is_indoor)
|
||||||
- [Level](#level)
|
- [Level](#level)
|
||||||
- [Surveillance:zone](#surveillancezone)
|
- [Surveillance:zone](#surveillancezone)
|
||||||
- [camera:mount](#cameramount)
|
- [camera:mount](#cameramount)
|
||||||
|
@ -109,22 +109,20 @@ The question is `What kind of surveillance is this camera?`
|
||||||
- *An outdoor, yet private area is surveilled (e.g. a parking lot, a fuel station, courtyard, entrance, private driveway, …)* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:surveillance' target='_blank'>surveillance</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:surveillance%3Doutdoor' target='_blank'>outdoor</a>
|
- *An outdoor, yet private area is surveilled (e.g. a parking lot, a fuel station, courtyard, entrance, private driveway, …)* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:surveillance' target='_blank'>surveillance</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:surveillance%3Doutdoor' target='_blank'>outdoor</a>
|
||||||
- *A private indoor area is surveilled, e.g. a shop, a private underground parking, …* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:surveillance' target='_blank'>surveillance</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:surveillance%3Dindoor' target='_blank'>indoor</a>
|
- *A private indoor area is surveilled, e.g. a shop, a private underground parking, …* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:surveillance' target='_blank'>surveillance</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:surveillance%3Dindoor' target='_blank'>indoor</a>
|
||||||
|
|
||||||
### is_indoor
|
### camera_is_indoor
|
||||||
|
|
||||||
The question is `Is the public space surveilled by this camera an indoor or outdoor space?`
|
The question is `Is this camera located inside or outside?`
|
||||||
|
|
||||||
- *This camera is located indoors* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:indoor' target='_blank'>indoor</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dyes' target='_blank'>yes</a>
|
- *This camera is located indoors* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:indoor' target='_blank'>indoor</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dyes' target='_blank'>yes</a>
|
||||||
- *This camera is located outdoors* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:indoor' target='_blank'>indoor</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dno' target='_blank'>no</a>
|
- *This camera is located outdoors* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:indoor' target='_blank'>indoor</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dno' target='_blank'>no</a>
|
||||||
- *This camera is probably located outdoors* is shown if with indoor=. _This option cannot be chosen as answer_
|
- *This camera is probably located outdoors* is shown if with indoor=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:surveillance:type' target='_blank'>surveillance:type</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:surveillance:type%3Dpublic' target='_blank'>public</a>
|
|
||||||
|
|
||||||
### Level
|
### Level
|
||||||
|
|
||||||
The question is `On which level is this camera located?`
|
The question is `On which level is this camera located?`
|
||||||
*Located on level {level}* is shown if `level` is set
|
*Located on level {level}* is shown if `level` is set
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: <a href='https://wiki.openstreetmap.org/wiki/Key:indoor' target='_blank'>indoor</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dyes' target='_blank'>yes</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:surveillance:type' target='_blank'>surveillance:type</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:surveillance:type%3Dye' target='_blank'>ye</a>
|
This tagrendering is only visible in the popup if the following condition is met: (<a href='https://wiki.openstreetmap.org/wiki/Key:indoor' target='_blank'>indoor</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dyes' target='_blank'>yes</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:surveillance' target='_blank'>surveillance</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:surveillance%3Dindoor' target='_blank'>indoor</a>) & (<a href='https://wiki.openstreetmap.org/wiki/Key:surveillance:type' target='_blank'>surveillance:type</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:surveillance:type%3Dalpr' target='_blank'>alpr</a> | <a href='https://wiki.openstreetmap.org/wiki/Key:surveillance:type' target='_blank'>surveillance:type</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:surveillance:type%3Dcamera' target='_blank'>camera</a>) & camera:type!=doorbell
|
||||||
|
|
||||||
### Surveillance:zone
|
### Surveillance:zone
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ Layer showing tactile maps, which can be used by visually impaired people to nav
|
||||||
## Themes using this layer
|
## Themes using this layer
|
||||||
|
|
||||||
- [blind_osm](https://mapcomplete.org/blind_osm)
|
- [blind_osm](https://mapcomplete.org/blind_osm)
|
||||||
|
- [maps](https://mapcomplete.org/maps)
|
||||||
- [personal](https://mapcomplete.org/personal)
|
- [personal](https://mapcomplete.org/personal)
|
||||||
|
|
||||||
## Presets
|
## Presets
|
||||||
|
|
|
@ -28,6 +28,7 @@ Layer showing tactile models, three-dimensional models of the surrounding area.
|
||||||
## Themes using this layer
|
## Themes using this layer
|
||||||
|
|
||||||
- [blind_osm](https://mapcomplete.org/blind_osm)
|
- [blind_osm](https://mapcomplete.org/blind_osm)
|
||||||
|
- [maps](https://mapcomplete.org/maps)
|
||||||
- [personal](https://mapcomplete.org/personal)
|
- [personal](https://mapcomplete.org/personal)
|
||||||
|
|
||||||
## Presets
|
## Presets
|
||||||
|
|
|
@ -1051,7 +1051,7 @@
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"location": {
|
"location": {
|
||||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}]",
|
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}, {if: \"value=waypoints\", then: \"Show an icon on every intermediate point of a way\"}]",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -1428,7 +1428,14 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
"description": "question: What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onSoftDelete": {
|
||||||
|
"description": "question: What tags should be applied when the object is soft-deleted?",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -1676,7 +1683,14 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
"description": "question: What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onSoftDelete": {
|
||||||
|
"description": "question: What tags should be applied when the object is soft-deleted?",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
|
|
@ -1039,7 +1039,7 @@ export default {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"location": {
|
"location": {
|
||||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}]",
|
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}, {if: \"value=waypoints\", then: \"Show an icon on every intermediate point of a way\"}]",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -1414,7 +1414,14 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
"description": "question: What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onSoftDelete": {
|
||||||
|
"description": "question: What tags should be applied when the object is soft-deleted?",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -1661,7 +1668,14 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
"description": "question: What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onSoftDelete": {
|
||||||
|
"description": "question: What tags should be applied when the object is soft-deleted?",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"location": {
|
"location": {
|
||||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}]",
|
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}, {if: \"value=waypoints\", then: \"Show an icon on every intermediate point of a way\"}]",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
|
|
@ -3,7 +3,7 @@ export default {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"location": {
|
"location": {
|
||||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}]",
|
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}, {if: \"value=waypoints\", then: \"Show an icon on every intermediate point of a way\"}]",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
|
|
@ -114,7 +114,14 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
"description": "question: What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onSoftDelete": {
|
||||||
|
"description": "question: What tags should be applied when the object is soft-deleted?",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
|
|
@ -114,7 +114,14 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
"description": "question: What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onSoftDelete": {
|
||||||
|
"description": "question: What tags should be applied when the object is soft-deleted?",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
|
|
@ -931,7 +931,7 @@
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"location": {
|
"location": {
|
||||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}]",
|
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}, {if: \"value=waypoints\", then: \"Show an icon on every intermediate point of a way\"}]",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -1308,7 +1308,14 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
"description": "question: What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onSoftDelete": {
|
||||||
|
"description": "question: What tags should be applied when the object is soft-deleted?",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -1556,7 +1563,14 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
"description": "question: What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onSoftDelete": {
|
||||||
|
"description": "question: What tags should be applied when the object is soft-deleted?",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
|
|
@ -919,7 +919,7 @@ export default {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"location": {
|
"location": {
|
||||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}]",
|
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons\"}, {if: \"value=polygon_centroid\",then: \"Show an icon at a polygon centroid (but not if it is a way)\"}, {if: \"value=waypoints\", then: \"Show an icon on every intermediate point of a way\"}]",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -1294,7 +1294,14 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
"description": "question: What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onSoftDelete": {
|
||||||
|
"description": "question: What tags should be applied when the object is soft-deleted?",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -1541,7 +1548,14 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
"description": "question: What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onSoftDelete": {
|
||||||
|
"description": "question: What tags should be applied when the object is soft-deleted?",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
|
|
@ -1154,6 +1154,14 @@ Clears all user preferences
|
||||||
|
|
||||||
<code>`{clear_all()}`</code>
|
<code>`{clear_all()}`</code>
|
||||||
|
|
||||||
|
### disabled_questions
|
||||||
|
|
||||||
|
Shows which questions are disabled for every layer. Used in 'settings'
|
||||||
|
|
||||||
|
#### Example usage of disabled_questions
|
||||||
|
|
||||||
|
<code>`{disabled_questions()}`</code>
|
||||||
|
|
||||||
### auto_apply
|
### auto_apply
|
||||||
|
|
||||||
A button to run many actions for many features at once. To effectively use this button, you'll need some ingredients:
|
A button to run many actions for many features at once. To effectively use this button, you'll need some ingredients:
|
||||||
|
|
|
@ -1917,21 +1917,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Second hand shops' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Circular economy') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
"description": "Layer 'Second hand shops' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Circular economy') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Second hand shops' 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 'Circular economy') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Second hand shops' 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 'Circular economy') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Second hand shops' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Circular economy') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Second hand shops' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Circular economy') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Second hand shops' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Circular economy') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Second hand shops' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Circular economy') 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": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -1926,21 +1926,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer '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 'Climbing gyms, clubs and spots') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer '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 'Climbing gyms, clubs and spots') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') 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": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -1321,12 +1321,12 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:retail",
|
"key": "service:bicycle:retail",
|
||||||
"description": "Layer 'Bike repair/shop' shows service:bicycle:retail=yes with a fixed text, namely 'This shop sells new 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:retail~.+ | shop=outdoor | shop=sport | shop=diy | shop=doityourself)",
|
"description": "Layer 'Bike repair/shop' shows service:bicycle:retail=yes with a fixed text, namely 'This shop sells new 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:retail~.+ | shop=outdoor | shop=sport | shop=sports | shop=diy | shop=doityourself)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:retail",
|
"key": "service:bicycle:retail",
|
||||||
"description": "Layer 'Bike repair/shop' shows service:bicycle:retail=no with a fixed text, namely 'This shop doesn't sell new 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:retail~.+ | shop=outdoor | shop=sport | shop=diy | shop=doityourself)",
|
"description": "Layer 'Bike repair/shop' shows service:bicycle:retail=no with a fixed text, namely 'This shop doesn't sell new 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:retail~.+ | shop=outdoor | shop=sport | shop=sports | shop=diy | shop=doityourself)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1346,32 +1346,32 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:repair",
|
"key": "service:bicycle:repair",
|
||||||
"description": "Layer 'Bike repair/shop' shows service:bicycle:repair=yes with a fixed text, namely 'This shop repairs 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:repair~.+ | shop=sport | shop=outdoor | shop=bicycle | service:bicycle:retail=yes | service:bicycle:second_hand=yes | service:bicycle:second_hand=only)",
|
"description": "Layer 'Bike repair/shop' shows service:bicycle:repair=yes with a fixed text, namely 'This shop repairs 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:repair~.+ | shop=sport | shop=sports | shop=outdoor | shop=bicycle | service:bicycle:retail=yes | service:bicycle:second_hand=yes | service:bicycle:second_hand=only)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:repair",
|
"key": "service:bicycle:repair",
|
||||||
"description": "Layer 'Bike repair/shop' shows service:bicycle:repair=no with a fixed text, namely 'This shop doesn't repair 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:repair~.+ | shop=sport | shop=outdoor | shop=bicycle | service:bicycle:retail=yes | service:bicycle:second_hand=yes | service:bicycle:second_hand=only)",
|
"description": "Layer 'Bike repair/shop' shows service:bicycle:repair=no with a fixed text, namely 'This shop doesn't repair 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:repair~.+ | shop=sport | shop=sports | shop=outdoor | shop=bicycle | service:bicycle:retail=yes | service:bicycle:second_hand=yes | service:bicycle:second_hand=only)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:repair",
|
"key": "service:bicycle:repair",
|
||||||
"description": "Layer 'Bike repair/shop' shows service:bicycle:repair=only_sold with a fixed text, namely 'This shop only repairs bikes bought 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:repair~.+ | shop=sport | shop=outdoor | shop=bicycle | service:bicycle:retail=yes | service:bicycle:second_hand=yes | service:bicycle:second_hand=only)",
|
"description": "Layer 'Bike repair/shop' shows service:bicycle:repair=only_sold with a fixed text, namely 'This shop only repairs bikes bought 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:repair~.+ | shop=sport | shop=sports | shop=outdoor | shop=bicycle | service:bicycle:retail=yes | service:bicycle:second_hand=yes | service:bicycle:second_hand=only)",
|
||||||
"value": "only_sold"
|
"value": "only_sold"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:repair",
|
"key": "service:bicycle:repair",
|
||||||
"description": "Layer 'Bike repair/shop' shows service:bicycle:repair=brand with a fixed text, namely 'This shop only repairs bikes of a certain brand' 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:repair~.+ | shop=sport | shop=outdoor | shop=bicycle | service:bicycle:retail=yes | service:bicycle:second_hand=yes | service:bicycle:second_hand=only)",
|
"description": "Layer 'Bike repair/shop' shows service:bicycle:repair=brand with a fixed text, namely 'This shop only repairs bikes of a certain brand' 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:repair~.+ | shop=sport | shop=sports | shop=outdoor | shop=bicycle | service:bicycle:retail=yes | service:bicycle:second_hand=yes | service:bicycle:second_hand=only)",
|
||||||
"value": "brand"
|
"value": "brand"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:rental",
|
"key": "service:bicycle:rental",
|
||||||
"description": "Layer 'Bike repair/shop' shows service:bicycle:rental=yes with a fixed text, namely 'This shop rents 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=bicycle_repair | shop=outdoor | shop=rental)",
|
"description": "Layer 'Bike repair/shop' shows service:bicycle:rental=yes with a fixed text, namely 'This shop rents 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": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:rental",
|
"key": "service:bicycle:rental",
|
||||||
"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=bicycle_repair | shop=outdoor | shop=rental)",
|
"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"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1498,21 +1498,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"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!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
"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",
|
"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!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"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"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"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!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"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"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"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!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"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": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -929,21 +929,6 @@
|
||||||
"key": "payment:qr_code",
|
"key": "payment:qr_code",
|
||||||
"description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')",
|
"description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=yes with a fixed text, namely 'This pharmacy is easy to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')",
|
|
||||||
"value": "yes"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=no with a fixed text, namely 'This pharmacy is hard to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')",
|
|
||||||
"value": "no"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=limited with a fixed text, namely 'This pharmacy has limited access for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')",
|
|
||||||
"value": "limited"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -2108,21 +2108,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Glutenfree') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Glutenfree') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer '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 'Glutenfree') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer '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 'Glutenfree') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Glutenfree') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Glutenfree') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Glutenfree') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Glutenfree') 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": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -407,21 +407,6 @@
|
||||||
"description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')",
|
"description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=yes with a fixed text, namely 'This pharmacy is easy to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')",
|
|
||||||
"value": "yes"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=no with a fixed text, namely 'This pharmacy is hard to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')",
|
|
||||||
"value": "no"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=limited with a fixed text, namely 'This pharmacy has limited access for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')",
|
|
||||||
"value": "limited"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"key": "shop",
|
"key": "shop",
|
||||||
"description": "The MapComplete theme Healthcare has a layer Shop showing features with this tag"
|
"description": "The MapComplete theme Healthcare has a layer Shop showing features with this tag"
|
||||||
|
@ -1642,21 +1627,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Healthcare') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Healthcare') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer '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 'Healthcare') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer '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 'Healthcare') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Healthcare') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Healthcare') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Healthcare') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Healthcare') 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": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -2108,21 +2108,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Lactose free shops and restaurants') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Lactose free shops and restaurants') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer '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 'Lactose free shops and restaurants') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer '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 'Lactose free shops and restaurants') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Lactose free shops and restaurants') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Lactose free shops and restaurants') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Lactose free shops and restaurants') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Lactose free shops and restaurants') 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": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -127,6 +127,132 @@
|
||||||
"key": "map_source:attribution",
|
"key": "map_source:attribution",
|
||||||
"description": "Layer 'Maps' shows map_source:attribution=no with a fixed text, namely 'There is no attribution at all' (in the mapcomplete.org theme 'A map of maps') (This is only shown if map_source~^((O|)pen(S|s)treet(M|m)ap)$ | map_source=osm | map_source=OSM)",
|
"description": "Layer 'Maps' shows map_source:attribution=no with a fixed text, namely 'There is no attribution at all' (in the mapcomplete.org theme 'A map of maps') (This is only shown if map_source~^((O|)pen(S|s)treet(M|m)ap)$ | map_source=osm | map_source=OSM)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "information",
|
||||||
|
"description": "The MapComplete theme A map of maps has a layer Tactile Maps showing features with this tag",
|
||||||
|
"value": "tactile_map"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "id",
|
||||||
|
"description": "Layer 'Tactile Maps' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'A map of maps') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "image",
|
||||||
|
"description": "The layer 'Tactile Maps allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "panoramax",
|
||||||
|
"description": "The layer 'Tactile Maps allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "mapillary",
|
||||||
|
"description": "The layer 'Tactile Maps allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikidata",
|
||||||
|
"description": "The layer 'Tactile Maps allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikipedia",
|
||||||
|
"description": "The layer 'Tactile Maps allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "blind:description:en",
|
||||||
|
"description": "Layer 'Tactile Maps' shows and asks freeform values for key 'blind:description:en' (in the mapcomplete.org theme 'A map of maps')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "braille",
|
||||||
|
"description": "Layer 'Tactile Maps' shows braille=yes with a fixed text, namely 'This tactile map has braille text.' and allows to pick this as a default answer (in the mapcomplete.org theme 'A map of maps')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "braille",
|
||||||
|
"description": "Layer 'Tactile Maps' shows braille=no with a fixed text, namely 'This tactile map does not have braille text.' and allows to pick this as a default answer (in the mapcomplete.org theme 'A map of maps')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "embossed_letters",
|
||||||
|
"description": "Layer 'Tactile Maps' shows embossed_letters=yes with a fixed text, namely 'This tactile map has embossed letters.' and allows to pick this as a default answer (in the mapcomplete.org theme 'A map of maps')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "embossed_letters",
|
||||||
|
"description": "Layer 'Tactile Maps' shows embossed_letters=no with a fixed text, namely 'This tactile map does not have embossed letters.' and allows to pick this as a default answer (in the mapcomplete.org theme 'A map of maps')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "website",
|
||||||
|
"description": "Layer 'Tactile Maps' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'A map of maps')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "contact:website",
|
||||||
|
"description": "Layer 'Tactile Maps' shows contact:website~.+ with a fixed text, namely '<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>' (in the mapcomplete.org theme 'A map of maps')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "information",
|
||||||
|
"description": "The MapComplete theme A map of maps has a layer Tactile Models showing features with this tag",
|
||||||
|
"value": "tactile_model"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "id",
|
||||||
|
"description": "Layer 'Tactile Models' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'A map of maps') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "image",
|
||||||
|
"description": "The layer 'Tactile Models allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "panoramax",
|
||||||
|
"description": "The layer 'Tactile Models allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "mapillary",
|
||||||
|
"description": "The layer 'Tactile Models allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikidata",
|
||||||
|
"description": "The layer 'Tactile Models allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikipedia",
|
||||||
|
"description": "The layer 'Tactile Models allows to upload images and adds them under the 'panoramax'-tag (and panoramax:0, panoramax:1, ... for multiple images). Furthermore, this layer shows images based on the keys panoramax, image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "blind:description:en",
|
||||||
|
"description": "Layer 'Tactile Models' shows and asks freeform values for key 'blind:description:en' (in the mapcomplete.org theme 'A map of maps')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "braille",
|
||||||
|
"description": "Layer 'Tactile Models' shows braille=yes with a fixed text, namely 'There is a braille description.' and allows to pick this as a default answer (in the mapcomplete.org theme 'A map of maps')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "braille",
|
||||||
|
"description": "Layer 'Tactile Models' shows braille=no with a fixed text, namely 'There is no braille description.' and allows to pick this as a default answer (in the mapcomplete.org theme 'A map of maps')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "embossed_letters",
|
||||||
|
"description": "Layer 'Tactile Models' shows embossed_letters=yes with a fixed text, namely 'There are embossed letters describing the model.' and allows to pick this as a default answer (in the mapcomplete.org theme 'A map of maps')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "embossed_letters",
|
||||||
|
"description": "Layer 'Tactile Models' shows embossed_letters=no with a fixed text, namely 'There are no embossed letters describing the model.' and allows to pick this as a default answer (in the mapcomplete.org theme 'A map of maps')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "scale",
|
||||||
|
"description": "Layer 'Tactile Models' shows and asks freeform values for key 'scale' (in the mapcomplete.org theme 'A map of maps')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "website",
|
||||||
|
"description": "Layer 'Tactile Models' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'A map of maps')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "contact:website",
|
||||||
|
"description": "Layer 'Tactile Models' shows contact:website~.+ with a fixed text, namely '<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>' (in the mapcomplete.org theme 'A map of maps')"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -2666,21 +2666,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'OnWheels') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'OnWheels') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer '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 'OnWheels') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer '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 'OnWheels') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'OnWheels') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'OnWheels') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'OnWheels') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'OnWheels') 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": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -3192,21 +3192,6 @@
|
||||||
"description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')",
|
"description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=yes with a fixed text, namely 'This pharmacy is easy to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')",
|
|
||||||
"value": "yes"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=no with a fixed text, namely 'This pharmacy is hard to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')",
|
|
||||||
"value": "no"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=limited with a fixed text, namely 'This pharmacy has limited access for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')",
|
|
||||||
"value": "limited"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"key": "amenity",
|
"key": "amenity",
|
||||||
"description": "The MapComplete theme OnWheels has a layer Doctors showing features with this tag",
|
"description": "The MapComplete theme OnWheels has a layer Doctors showing features with this tag",
|
||||||
|
|
|
@ -1996,21 +1996,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Dog-friendly shops' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
"description": "Layer 'Dog-friendly shops' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Dog-friendly shops' 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 'Veterinarians, dog parks and other pet-amenities') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Dog-friendly shops' 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 'Veterinarians, dog parks and other pet-amenities') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Dog-friendly shops' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Dog-friendly shops' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Dog-friendly shops' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Dog-friendly shops' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities') 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": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -1557,21 +1557,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Postbox and Post Office Map') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Postbox and Post Office Map') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer '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 'Postbox and Post Office Map') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer '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 'Postbox and Post Office Map') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Postbox and Post Office Map') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Postbox and Post Office Map') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Postbox and Post Office Map') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Postbox and Post Office Map') 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": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -1215,21 +1215,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Shops') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Shops') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer '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 'Shops') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer '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 'Shops') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Shops') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Shops') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Shops') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Shops') 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": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1450,21 +1450,6 @@
|
||||||
"description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')",
|
"description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=yes with a fixed text, namely 'This pharmacy is easy to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')",
|
|
||||||
"value": "yes"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=no with a fixed text, namely 'This pharmacy is hard to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')",
|
|
||||||
"value": "no"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "wheelchair",
|
|
||||||
"description": "Layer 'Pharmacies' shows wheelchair=limited with a fixed text, namely 'This pharmacy has limited access for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')",
|
|
||||||
"value": "limited"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"key": "amenity",
|
"key": "amenity",
|
||||||
"description": "The MapComplete theme Shops has a layer Ice cream parlors showing features with this tag",
|
"description": "The MapComplete theme Shops has a layer Ice cream parlors showing features with this tag",
|
||||||
|
|
|
@ -594,6 +594,650 @@
|
||||||
"description": "Layer 'Sports centres' shows wheelchair=no with a fixed text, namely 'This place is not reachable with a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
"description": "Layer 'Sports centres' shows wheelchair=no with a fixed text, namely 'This place is not reachable with a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows and asks freeform values for key 'sport' (in the mapcomplete.org theme 'Sports')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=9pin with a fixed text, namely 'Nine-pin bowling' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "9pin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=10pin with a fixed text, namely 'Ten-pin bowling' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "10pin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=aerobics with a fixed text, namely 'Aerobics' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "aerobics"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=american_football with a fixed text, namely 'American football' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "american_football"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=aikido with a fixed text, namely 'Aikido' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "aikido"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=archery with a fixed text, namely 'Archery' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "archery"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=athletics with a fixed text, namely 'Athletics' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "athletics"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=australian_football with a fixed text, namely 'Australian rules football' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "australian_football"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=badminton with a fixed text, namely 'Badminton' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "badminton"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=bandy with a fixed text, namely 'Bandy' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "bandy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=base with a fixed text, namely 'BASE jumping' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "base"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=baseball with a fixed text, namely 'Baseball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "baseball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=basketball with a fixed text, namely 'Basketball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "basketball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=beachvolleyball with a fixed text, namely 'Beachvolleyball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "beachvolleyball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=biathlon with a fixed text, namely 'Biathlon' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "biathlon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=billiards with a fixed text, namely 'Cue sports' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "billiards"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=bmx with a fixed text, namely 'BMX' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "bmx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=bobsleigh with a fixed text, namely 'Bobsleigh' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "bobsleigh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=boules with a fixed text, namely 'Boules' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "boules"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=bowls with a fixed text, namely 'Bowls' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "bowls"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=boxing with a fixed text, namely 'Boxing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "boxing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=bullfighting with a fixed text, namely 'Bullfighting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "bullfighting"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=canadian_football with a fixed text, namely 'Canadian football' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "canadian_football"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=canoe with a fixed text, namely 'Canoe' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "canoe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=chess with a fixed text, namely 'Chess' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "chess"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=cliff_diving with a fixed text, namely 'Non-competitive diving' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "cliff_diving"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=climbing with a fixed text, namely 'Rock climbing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "climbing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=climbing_adventure with a fixed text, namely 'Climbing Adventure' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "climbing_adventure"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=cockfighting with a fixed text, namely 'Cockfighting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "cockfighting"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=cricket with a fixed text, namely 'Cricket' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "cricket"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=crossfit with a fixed text, namely 'CrossFit' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "crossfit"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=croquet with a fixed text, namely 'Croquet' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "croquet"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=curling with a fixed text, namely 'Curling' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "curling"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=cycle_polo with a fixed text, namely 'Cycle Polo' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "cycle_polo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=cycling with a fixed text, namely 'Cycling' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "cycling"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=dance with a fixed text, namely 'Dance' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "dance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=darts with a fixed text, namely 'Darts' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "darts"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=dog_agility with a fixed text, namely 'Dog agility' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "dog_agility"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=dog_racing with a fixed text, namely 'Greyhound racing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "dog_racing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=dragon_boat with a fixed text, namely 'Dragon Boat' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "dragon_boat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=equestrian with a fixed text, namely 'Equestrianism' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "equestrian"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=fencing with a fixed text, namely 'Fencing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "fencing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=field_hockey with a fixed text, namely 'Field hockey' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "field_hockey"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=fitness with a fixed text, namely 'Fitness' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "fitness"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=five-a-side with a fixed text, namely '5 person soccer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "five-a-side"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=floorball with a fixed text, namely 'Floorball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "floorball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=four_square with a fixed text, namely 'Four square' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "four_square"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=free_flying with a fixed text, namely 'Paragliding' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "free_flying"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=futsal with a fixed text, namely 'Futsal' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "futsal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=gaelic_games with a fixed text, namely 'Gaelic games' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "gaelic_games"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=gaga with a fixed text, namely 'Gaga ball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "gaga"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=golf with a fixed text, namely 'Golf' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "golf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=gymnastics with a fixed text, namely 'Gymnastics' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "gymnastics"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=handball with a fixed text, namely 'Handball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "handball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=hapkido with a fixed text, namely 'Hapkido' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "hapkido"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=hiking with a fixed text, namely 'Hiking' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "hiking"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=horseshoes with a fixed text, namely 'Horseshoes' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "horseshoes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=horse_racing with a fixed text, namely 'Horse racing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "horse_racing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=ice_hockey with a fixed text, namely 'Ice Hockey' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "ice_hockey"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=ice_skating with a fixed text, namely 'Ice skating' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "ice_skating"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=ice_stock with a fixed text, namely 'Ice stock sport' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "ice_stock"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=judo with a fixed text, namely 'Judo' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "judo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=karate with a fixed text, namely 'Karate' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "karate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=karting with a fixed text, namely 'Kart racing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "karting"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=kickboxing with a fixed text, namely 'Kickboxing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "kickboxing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=kitesurfing with a fixed text, namely 'Kitesurfing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "kitesurfing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=korfball with a fixed text, namely 'Korfball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "korfball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=krachtball with a fixed text, namely 'Krachtball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "krachtball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=lacrosse with a fixed text, namely 'Lacrosse' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "lacrosse"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=laser_tag with a fixed text, namely 'Laser tag' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "laser_tag"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=martial_arts with a fixed text, namely 'Martial arts' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "martial_arts"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=miniature_golf with a fixed text, namely 'Miniature golf' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "miniature_golf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=model_aerodrome with a fixed text, namely 'Radio-controlled aircraft' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "model_aerodrome"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=motocross with a fixed text, namely 'Motocross' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "motocross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=motor with a fixed text, namely 'Motorsport' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "motor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=multi with a fixed text, namely 'Multiple kind of sports' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "multi"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=netball with a fixed text, namely 'Netball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "netball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=obstacle_course with a fixed text, namely 'Obstacle course' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "obstacle_course"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=orienteering with a fixed text, namely 'Orienteering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "orienteering"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=paddle_tennis with a fixed text, namely 'Paddle tennis' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "paddle_tennis"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=padel with a fixed text, namely 'Padel' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "padel"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=paintball with a fixed text, namely 'Paintball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "paintball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=parachuting with a fixed text, namely 'Parachuting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "parachuting"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=parkour with a fixed text, namely 'Parkour' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "parkour"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=pelota with a fixed text, namely 'Palota' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "pelota"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=pesäpallo with a fixed text, namely 'Pesäpallo' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "pesäpallo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=pickleball with a fixed text, namely 'Pickleball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "pickleball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=pilates with a fixed text, namely 'Pilates' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "pilates"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=pole_dance with a fixed text, namely 'Pole dance' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "pole_dance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=racquet with a fixed text, namely 'Racquetball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "racquet"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=rc_car with a fixed text, namely 'Radio-controlled car' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "rc_car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=roller_skating with a fixed text, namely 'Roller skating' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "roller_skating"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=rowing with a fixed text, namely 'Rowing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "rowing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=rugby_league with a fixed text, namely 'Rugby league' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "rugby_league"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=rugby_union with a fixed text, namely 'Rugby union' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "rugby_union"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=running with a fixed text, namely 'Running' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "running"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=sailing with a fixed text, namely 'Sailing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "sailing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=scuba_diving with a fixed text, namely 'Scuba diving' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "scuba_diving"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=shooting with a fixed text, namely 'Shooting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "shooting"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=shot-put with a fixed text, namely 'Shot-put' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "shot-put"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=skateboard with a fixed text, namely 'Skateboard' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "skateboard"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=ski_jumping with a fixed text, namely 'Ski jumping' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "ski_jumping"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=snooker with a fixed text, namely 'Snooker' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "snooker"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=soccer with a fixed text, namely 'Soccer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "soccer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=softball with a fixed text, namely 'Softball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "softball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=speedway with a fixed text, namely 'Motorcycle speedway' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "speedway"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=squash with a fixed text, namely 'Squash' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "squash"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=sumo with a fixed text, namely 'Sumo' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "sumo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=surfing with a fixed text, namely 'Surfing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "surfing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=swimming with a fixed text, namely 'Swimming' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "swimming"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=table_tennis with a fixed text, namely 'Table tennis' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "table_tennis"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=table_soccer with a fixed text, namely 'Table soccer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "table_soccer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=taekwondo with a fixed text, namely 'Taekwondo' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "taekwondo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=tennis with a fixed text, namely 'Tennis' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "tennis"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=teqball with a fixed text, namely 'Teqball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "teqball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=toboggan with a fixed text, namely 'Toboggan' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "toboggan"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=trampoline with a fixed text, namely 'Trampoline' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "trampoline"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=ultimate with a fixed text, namely 'Ultimate frisbee' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "ultimate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=ultralight_aviation with a fixed text, namely 'Ultralight aviation' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "ultralight_aviation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=volleyball with a fixed text, namely 'Volleyball' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "volleyball"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=wakeboarding with a fixed text, namely 'Wakeboarding' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "wakeboarding"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=water_polo with a fixed text, namely 'Water polo' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "water_polo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=water_ski with a fixed text, namely 'Waterskiing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "water_ski"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=weightlifting with a fixed text, namely 'Olympic weightlifting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "weightlifting"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=windsurfing with a fixed text, namely 'Windsurfing' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "windsurfing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=wrestling with a fixed text, namely 'Wrestling' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "wrestling"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=yoga with a fixed text, namely 'Yoga' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "yoga"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sport",
|
||||||
|
"description": "Layer 'Sports centres' shows sport=zurkhaneh_sport with a fixed text, namely 'Zurkhaneh sport' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')",
|
||||||
|
"value": "zurkhaneh_sport"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "shop",
|
"key": "shop",
|
||||||
"description": "The MapComplete theme Sports has a layer Shop showing features with this tag",
|
"description": "The MapComplete theme Sports has a layer Shop showing features with this tag",
|
||||||
|
@ -1790,21 +2434,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Sports') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
"description": "Layer 'Shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Sports') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer '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 'Sports') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer '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 'Sports') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:fee",
|
"key": "service:bicycle:cleaning:fee",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Sports') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Sports') (This is only shown if amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "service:bicycle:cleaning:charge",
|
"key": "service:bicycle:cleaning:charge",
|
||||||
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Sports') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)",
|
"description": "Layer 'Shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Sports') 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": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -118,22 +118,22 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "indoor",
|
"key": "indoor",
|
||||||
"description": "Layer 'Surveillance camera's' shows indoor=yes with a fixed text, namely 'This camera is located indoors' and allows to pick this as a default answer (in the mapcomplete.org theme 'Surveillance under Surveillance') (This is only shown if surveillance:type=public)",
|
"description": "Layer 'Surveillance camera's' shows indoor=yes with a fixed text, namely 'This camera is located indoors' and allows to pick this as a default answer (in the mapcomplete.org theme 'Surveillance under Surveillance') (This is only shown if surveillance!=outdoor & surveillance!=indoor)",
|
||||||
"value": "yes"
|
"value": "yes"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "indoor",
|
"key": "indoor",
|
||||||
"description": "Layer 'Surveillance camera's' shows indoor=no with a fixed text, namely 'This camera is located outdoors' and allows to pick this as a default answer (in the mapcomplete.org theme 'Surveillance under Surveillance') (This is only shown if surveillance:type=public)",
|
"description": "Layer 'Surveillance camera's' shows indoor=no with a fixed text, namely 'This camera is located outdoors' and allows to pick this as a default answer (in the mapcomplete.org theme 'Surveillance under Surveillance') (This is only shown if surveillance!=outdoor & surveillance!=indoor)",
|
||||||
"value": "no"
|
"value": "no"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "indoor",
|
"key": "indoor",
|
||||||
"description": "Layer 'Surveillance camera's' shows indoor= with a fixed text, namely 'This camera is probably located outdoors' (in the mapcomplete.org theme 'Surveillance under Surveillance') Picking this answer will delete the key indoor. (This is only shown if surveillance:type=public)",
|
"description": "Layer 'Surveillance camera's' shows indoor= with a fixed text, namely 'This camera is probably located outdoors' (in the mapcomplete.org theme 'Surveillance under Surveillance') Picking this answer will delete the key indoor. (This is only shown if surveillance!=outdoor & surveillance!=indoor)",
|
||||||
"value": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "level",
|
"key": "level",
|
||||||
"description": "Layer 'Surveillance camera's' shows and asks freeform values for key 'level' (in the mapcomplete.org theme 'Surveillance under Surveillance') (This is only shown if indoor=yes | surveillance:type=ye)"
|
"description": "Layer 'Surveillance camera's' shows and asks freeform values for key 'level' (in the mapcomplete.org theme 'Surveillance under Surveillance') (This is only shown if camera:type!=doorbell & (indoor=yes | surveillance=indoor) & (surveillance:type=alpr | surveillance:type=camera))"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "surveillance:zone",
|
"key": "surveillance:zone",
|
||||||
|
|
|
@ -27,6 +27,7 @@ Available languages:
|
||||||
- hu
|
- hu
|
||||||
- pl
|
- pl
|
||||||
- nl
|
- nl
|
||||||
|
- fr
|
||||||
|
|
||||||
# Table of contents
|
# Table of contents
|
||||||
|
|
||||||
|
@ -608,7 +609,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -627,7 +627,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ Available languages:
|
||||||
- pl
|
- pl
|
||||||
- hu
|
- hu
|
||||||
- uk
|
- uk
|
||||||
|
- nl
|
||||||
|
|
||||||
# Layers defined in this theme configuration file
|
# Layers defined in this theme configuration file
|
||||||
These layers can not be reused in different themes.
|
These layers can not be reused in different themes.
|
||||||
|
|
|
@ -20,6 +20,7 @@ Available languages:
|
||||||
- cs
|
- cs
|
||||||
- hu
|
- hu
|
||||||
- uk
|
- uk
|
||||||
|
- nl
|
||||||
|
|
||||||
# Layers defined in this theme configuration file
|
# Layers defined in this theme configuration file
|
||||||
These layers can not be reused in different themes.
|
These layers can not be reused in different themes.
|
||||||
|
|
|
@ -20,6 +20,7 @@ Available languages:
|
||||||
- es
|
- es
|
||||||
- cs
|
- cs
|
||||||
- uk
|
- uk
|
||||||
|
- nl
|
||||||
|
|
||||||
# Table of contents
|
# Table of contents
|
||||||
|
|
||||||
|
@ -543,6 +544,25 @@ This tagrendering has labels
|
||||||
| artwork-artwork_type.12 | Tilework | artwork_type=tilework |
|
| artwork-artwork_type.12 | Tilework | artwork_type=tilework |
|
||||||
| artwork-artwork_type.13 | Woodcarving | artwork_type=woodcarving |
|
| artwork-artwork_type.13 | Woodcarving | artwork_type=woodcarving |
|
||||||
|
|
||||||
|
| id | question | osmTags |
|
||||||
|
-----|-----|----- |
|
||||||
|
| memorial-type.0 | *What type of memorial is this?* (default) | |
|
||||||
|
| memorial-type.1 | This is a statue | memorial=statue |
|
||||||
|
| memorial-type.2 | This is a plaque | memorial=plaque |
|
||||||
|
| memorial-type.3 | This is a commemorative bench | memorial=bench |
|
||||||
|
| memorial-type.4 | This is a ghost bike - a bicycle painted white to remember a cyclist whom deceased because of a car crash | memorial=ghost_bike |
|
||||||
|
| memorial-type.5 | This is a stolperstein (stumbing stone) | memorial=stolperstein |
|
||||||
|
| memorial-type.6 | This is a stele | memorial=stele |
|
||||||
|
| memorial-type.7 | This is a memorial stone | memorial=stone |
|
||||||
|
| memorial-type.8 | This is a bust | memorial=bust |
|
||||||
|
| memorial-type.9 | This is a sculpture | memorial=sculpture |
|
||||||
|
| memorial-type.10 | This is an obelisk | memorial=obelisk |
|
||||||
|
| memorial-type.11 | This is a cross | memorial=cross |
|
||||||
|
| memorial-type.12 | This is a blue plaque | memorial=blue_plaque |
|
||||||
|
| memorial-type.13 | This is a historic tank, permanently placed in public space as memorial | memorial=tank |
|
||||||
|
| memorial-type.14 | This is a memorial tree | memorial=tree |
|
||||||
|
| memorial-type.15 | This is a gravestone; the person is buried here | historic=tomb |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
This document is autogenerated from [assets/themes/ghostsigns/ghostsigns.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/ghostsigns/ghostsigns.json)
|
This document is autogenerated from [assets/themes/ghostsigns/ghostsigns.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/ghostsigns/ghostsigns.json)
|
||||||
|
|
|
@ -26,6 +26,8 @@ Available languages:
|
||||||
- ru
|
- ru
|
||||||
- hu
|
- hu
|
||||||
- uk
|
- uk
|
||||||
|
- fr
|
||||||
|
- nl
|
||||||
|
|
||||||
# Table of contents
|
# Table of contents
|
||||||
|
|
||||||
|
@ -1405,7 +1407,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ Available languages:
|
||||||
- ca
|
- ca
|
||||||
- ru
|
- ru
|
||||||
- uk
|
- uk
|
||||||
|
- nl
|
||||||
|
|
||||||
# Layers defined in this theme configuration file
|
# Layers defined in this theme configuration file
|
||||||
These layers can not be reused in different themes.
|
These layers can not be reused in different themes.
|
||||||
|
|
|
@ -625,7 +625,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@ Available languages:
|
||||||
- ru
|
- ru
|
||||||
- hu
|
- hu
|
||||||
- uk
|
- uk
|
||||||
|
- fr
|
||||||
|
- nl
|
||||||
|
|
||||||
# Layers defined in this theme configuration file
|
# Layers defined in this theme configuration file
|
||||||
These layers can not be reused in different themes.
|
These layers can not be reused in different themes.
|
||||||
|
|
|
@ -17,6 +17,7 @@ Available languages:
|
||||||
- es
|
- es
|
||||||
- cs
|
- cs
|
||||||
- hu
|
- hu
|
||||||
|
- nl
|
||||||
|
|
||||||
# Layers defined in this theme configuration file
|
# Layers defined in this theme configuration file
|
||||||
These layers can not be reused in different themes.
|
These layers can not be reused in different themes.
|
||||||
|
|
|
@ -24,6 +24,7 @@ Available languages:
|
||||||
- cs
|
- cs
|
||||||
- hu
|
- hu
|
||||||
- uk
|
- uk
|
||||||
|
- nl
|
||||||
|
|
||||||
# Table of contents
|
# Table of contents
|
||||||
|
|
||||||
|
@ -1403,7 +1404,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,8 @@ Available languages:
|
||||||
- cs
|
- cs
|
||||||
- hu
|
- hu
|
||||||
- uk
|
- uk
|
||||||
|
- fr
|
||||||
|
- nl
|
||||||
|
|
||||||
# Layers defined in this theme configuration file
|
# Layers defined in this theme configuration file
|
||||||
These layers can not be reused in different themes.
|
These layers can not be reused in different themes.
|
||||||
|
|
|
@ -17,6 +17,8 @@ Available languages:
|
||||||
- de
|
- de
|
||||||
- cs
|
- cs
|
||||||
- es
|
- es
|
||||||
|
- fr
|
||||||
|
- nl
|
||||||
|
|
||||||
# Table of contents
|
# Table of contents
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,8 @@ The theme introduction reads:
|
||||||
This theme contains the following layers:
|
This theme contains the following layers:
|
||||||
|
|
||||||
- [map](../Layers/map.md)
|
- [map](../Layers/map.md)
|
||||||
|
- [tactile_map](../Layers/tactile_map.md)
|
||||||
|
- [tactile_model](../Layers/tactile_model.md)
|
||||||
|
|
||||||
Available languages:
|
Available languages:
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,8 @@ Available languages:
|
||||||
- es
|
- es
|
||||||
- cs
|
- cs
|
||||||
- hu
|
- hu
|
||||||
|
- fr
|
||||||
|
- nl
|
||||||
|
|
||||||
# Table of contents
|
# Table of contents
|
||||||
|
|
||||||
|
@ -659,7 +661,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -1177,7 +1177,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@ Available languages:
|
||||||
- cs
|
- cs
|
||||||
- hu
|
- hu
|
||||||
- uk
|
- uk
|
||||||
|
- nl
|
||||||
|
|
||||||
# Layers defined in this theme configuration file
|
# Layers defined in this theme configuration file
|
||||||
These layers can not be reused in different themes.
|
These layers can not be reused in different themes.
|
||||||
|
|
|
@ -616,7 +616,7 @@ The question is `How much does it cost to use the cleaning service?`
|
||||||
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
- *The cleaning service is free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>
|
||||||
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
- *Free to use* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a> & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_
|
||||||
|
|
||||||
This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
This tagrendering is only visible in the popup if the following condition is met: amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+
|
||||||
|
|
||||||
### internet
|
### internet
|
||||||
|
|
||||||
|
|
|
@ -412,7 +412,7 @@ The default value is _0_
|
||||||
|
|
||||||
The mode the application starts in, e.g. 'map', 'dashboard' or 'statistics'
|
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#L436)
|
This documentation is defined in the source code at [generateDocs.ts](ervdvn/git/MapComplete/scripts/generateDocs.ts#L436)
|
||||||
|
|
||||||
The default value is _map_
|
The default value is _map_
|
||||||
|
|
||||||
|
|
|
@ -211,7 +211,7 @@
|
||||||
{{service_item
|
{{service_item
|
||||||
|name= [https://mapcomplete.org/bicycle_parkings bicycle_parkings]
|
|name= [https://mapcomplete.org/bicycle_parkings bicycle_parkings]
|
||||||
|region= Worldwide
|
|region= Worldwide
|
||||||
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:zh_Hans|en}}, {{#language:it|en}}, {{#language:fil|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:uk|en}}, {{#language:pl|en}}, {{#language:nl|en}}
|
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:zh_Hans|en}}, {{#language:it|en}}, {{#language:fil|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:uk|en}}, {{#language:pl|en}}, {{#language:nl|en}}, {{#language:fr|en}}
|
||||||
|descr= A MapComplete theme: A map showing all types of bicycle parkings
|
|descr= A MapComplete theme: A map showing all types of bicycle parkings
|
||||||
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
||||||
|image= MapComplete_Screenshot.png
|
|image= MapComplete_Screenshot.png
|
||||||
|
@ -310,7 +310,7 @@
|
||||||
{{service_item
|
{{service_item
|
||||||
|name= [https://mapcomplete.org/elongated_coin elongated_coin]
|
|name= [https://mapcomplete.org/elongated_coin elongated_coin]
|
||||||
|region= Worldwide
|
|region= Worldwide
|
||||||
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:pl|en}}, {{#language:uk|en}}
|
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:pl|en}}, {{#language:uk|en}}, {{#language:nl|en}}
|
||||||
|descr= A MapComplete theme: Find penny presses to create your own elongated coins
|
|descr= A MapComplete theme: Find penny presses to create your own elongated coins
|
||||||
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
||||||
|image= MapComplete_Screenshot.png
|
|image= MapComplete_Screenshot.png
|
||||||
|
@ -328,7 +328,7 @@
|
||||||
{{service_item
|
{{service_item
|
||||||
|name= [https://mapcomplete.org/fireplace fireplace]
|
|name= [https://mapcomplete.org/fireplace fireplace]
|
||||||
|region= Worldwide
|
|region= Worldwide
|
||||||
|lang= {{#language:de|en}}, {{#language:en|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:uk|en}}, {{#language:nl|en}}
|
|lang= {{#language:de|en}}, {{#language:en|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:uk|en}}, {{#language:nl|en}}, {{#language:fr|en}}
|
||||||
|descr= A MapComplete theme: Outdoor place to make a fire or a fixed barbecue in an official place
|
|descr= A MapComplete theme: Outdoor place to make a fire or a fixed barbecue in an official place
|
||||||
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
||||||
|image= MapComplete_Screenshot.png
|
|image= MapComplete_Screenshot.png
|
||||||
|
@ -355,7 +355,7 @@
|
||||||
{{service_item
|
{{service_item
|
||||||
|name= [https://mapcomplete.org/ghostsigns ghostsigns]
|
|name= [https://mapcomplete.org/ghostsigns ghostsigns]
|
||||||
|region= Worldwide
|
|region= Worldwide
|
||||||
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:uk|en}}
|
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:uk|en}}, {{#language:fr|en}}, {{#language:nl|en}}
|
||||||
|descr= A MapComplete theme: A map showing disused signs on buildings
|
|descr= A MapComplete theme: A map showing disused signs on buildings
|
||||||
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
||||||
|image= MapComplete_Screenshot.png
|
|image= MapComplete_Screenshot.png
|
||||||
|
@ -364,7 +364,7 @@
|
||||||
{{service_item
|
{{service_item
|
||||||
|name= [https://mapcomplete.org/glutenfree glutenfree]
|
|name= [https://mapcomplete.org/glutenfree glutenfree]
|
||||||
|region= Worldwide
|
|region= Worldwide
|
||||||
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:uk|en}}
|
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:uk|en}}, {{#language:nl|en}}
|
||||||
|descr= A MapComplete theme: A crowdsourced map with glutenfree items
|
|descr= A MapComplete theme: A crowdsourced map with glutenfree items
|
||||||
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
||||||
|image= MapComplete_Screenshot.png
|
|image= MapComplete_Screenshot.png
|
||||||
|
@ -373,7 +373,7 @@
|
||||||
{{service_item
|
{{service_item
|
||||||
|name= [https://mapcomplete.org/guideposts guideposts]
|
|name= [https://mapcomplete.org/guideposts guideposts]
|
||||||
|region= Worldwide
|
|region= Worldwide
|
||||||
|lang= {{#language:en|en}}, {{#language:cs|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:pl|en}}, {{#language:uk|en}}
|
|lang= {{#language:en|en}}, {{#language:cs|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:pl|en}}, {{#language:uk|en}}, {{#language:nl|en}}
|
||||||
|descr= A MapComplete theme: Guideposts (also known as fingerposts or finger posts) are often found along official hiking, cycling, skiing or horseback riding routes to indicate the directions to different destinations
|
|descr= A MapComplete theme: Guideposts (also known as fingerposts or finger posts) are often found along official hiking, cycling, skiing or horseback riding routes to indicate the directions to different destinations
|
||||||
|
|
||||||
The position of a signpost can be used by a hiker/biker/rider/s…
|
The position of a signpost can be used by a hiker/biker/rider/s…
|
||||||
|
@ -411,7 +411,7 @@ The position of a signpost can be used by a hiker/biker/rider/s…
|
||||||
{{service_item
|
{{service_item
|
||||||
|name= [https://mapcomplete.org/icecream icecream]
|
|name= [https://mapcomplete.org/icecream icecream]
|
||||||
|region= Worldwide
|
|region= Worldwide
|
||||||
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:cs|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:it|en}}
|
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:cs|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:it|en}}, {{#language:nl|en}}
|
||||||
|descr= A MapComplete theme: A map showing ice cream parlors and ice cream vending machines
|
|descr= A MapComplete theme: A map showing ice cream parlors and ice cream vending machines
|
||||||
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
||||||
|image= MapComplete_Screenshot.png
|
|image= MapComplete_Screenshot.png
|
||||||
|
@ -438,7 +438,7 @@ The position of a signpost can be used by a hiker/biker/rider/s…
|
||||||
{{service_item
|
{{service_item
|
||||||
|name= [https://mapcomplete.org/lactosefree lactosefree]
|
|name= [https://mapcomplete.org/lactosefree lactosefree]
|
||||||
|region= Worldwide
|
|region= Worldwide
|
||||||
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:uk|en}}
|
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:uk|en}}, {{#language:nl|en}}
|
||||||
|descr= A MapComplete theme: A crowdsourced map with lactose free shops and restaurants
|
|descr= A MapComplete theme: A crowdsourced map with lactose free shops and restaurants
|
||||||
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
||||||
|image= MapComplete_Screenshot.png
|
|image= MapComplete_Screenshot.png
|
||||||
|
@ -447,7 +447,7 @@ The position of a signpost can be used by a hiker/biker/rider/s…
|
||||||
{{service_item
|
{{service_item
|
||||||
|name= [https://mapcomplete.org/lighthouses lighthouses]
|
|name= [https://mapcomplete.org/lighthouses lighthouses]
|
||||||
|region= Worldwide
|
|region= Worldwide
|
||||||
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:uk|en}}
|
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:uk|en}}, {{#language:fr|en}}, {{#language:nl|en}}
|
||||||
|descr= A MapComplete theme: Lighthouses are tall buildings with a light on top to guide marine traffic
|
|descr= A MapComplete theme: Lighthouses are tall buildings with a light on top to guide marine traffic
|
||||||
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
||||||
|image= MapComplete_Screenshot.png
|
|image= MapComplete_Screenshot.png
|
||||||
|
@ -573,7 +573,7 @@ The position of a signpost can be used by a hiker/biker/rider/s…
|
||||||
{{service_item
|
{{service_item
|
||||||
|name= [https://mapcomplete.org/ski ski]
|
|name= [https://mapcomplete.org/ski ski]
|
||||||
|region= Worldwide
|
|region= Worldwide
|
||||||
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:uk|en}}
|
|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:uk|en}}, {{#language:fr|en}}, {{#language:nl|en}}
|
||||||
|descr= A MapComplete theme: Everything you need to go skiing
|
|descr= A MapComplete theme: Everything you need to go skiing
|
||||||
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
|material= {{yes|[https://mapcomplete.org/ Yes]}}
|
||||||
|image= MapComplete_Screenshot.png
|
|image= MapComplete_Screenshot.png
|
||||||
|
|
|
@ -240,7 +240,7 @@
|
||||||
"en": "Totem",
|
"en": "Totem",
|
||||||
"de": "Totem",
|
"de": "Totem",
|
||||||
"cs": "Totem",
|
"cs": "Totem",
|
||||||
"nl": "Aanplakzuil",
|
"nl": "Reclamezuil",
|
||||||
"fr": "Totem",
|
"fr": "Totem",
|
||||||
"eu": "Totem",
|
"eu": "Totem",
|
||||||
"pl": "Totem",
|
"pl": "Totem",
|
||||||
|
@ -797,7 +797,7 @@
|
||||||
"zh_Hans": "图腾",
|
"zh_Hans": "图腾",
|
||||||
"it": "un totem",
|
"it": "un totem",
|
||||||
"uk": "тотем",
|
"uk": "тотем",
|
||||||
"nl": "een totem"
|
"nl": "eem reclamezuil"
|
||||||
},
|
},
|
||||||
"exampleImages": [
|
"exampleImages": [
|
||||||
"./assets/themes/advertising/AdvertisingTotem_004.jpg",
|
"./assets/themes/advertising/AdvertisingTotem_004.jpg",
|
||||||
|
@ -1139,7 +1139,8 @@
|
||||||
"pl": "To jest totem",
|
"pl": "To jest totem",
|
||||||
"pt_BR": "Isso é um totem",
|
"pt_BR": "Isso é um totem",
|
||||||
"zh_Hans": "这是一个图腾",
|
"zh_Hans": "这是一个图腾",
|
||||||
"pt": "Isto é um totem"
|
"pt": "Isto é um totem",
|
||||||
|
"nl": "Dit is een reclamezuil"
|
||||||
},
|
},
|
||||||
"icon": {
|
"icon": {
|
||||||
"path": "./assets/themes/advertising/totem.svg",
|
"path": "./assets/themes/advertising/totem.svg",
|
||||||
|
|
|
@ -18,10 +18,12 @@
|
||||||
"icon": "circle",
|
"icon": "circle",
|
||||||
"color": {
|
"color": {
|
||||||
"render": "white",
|
"render": "white",
|
||||||
"mappings": [{
|
"mappings": [
|
||||||
"if": "reuse=yes",
|
{
|
||||||
"then": "#cccccc"
|
"if": "reuse=yes",
|
||||||
}]
|
"then": "#cccccc"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -35,15 +35,15 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"lineRendering": [ {
|
"lineRendering": [
|
||||||
"width": "13",
|
{
|
||||||
"color": "black"
|
"width": "13",
|
||||||
},
|
"color": "black"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"width": "8",
|
"width": "8",
|
||||||
"color": "white"
|
"color": "white"
|
||||||
}
|
}
|
||||||
|
|
||||||
],
|
],
|
||||||
"allowMove": false
|
"allowMove": false
|
||||||
}
|
}
|
||||||
|
|
|
@ -5805,20 +5805,6 @@
|
||||||
},
|
},
|
||||||
"question": "Quin és el nom de la farmàcia?",
|
"question": "Quin és el nom de la farmàcia?",
|
||||||
"render": "Aquesta farmàcia es diu {name}"
|
"render": "Aquesta farmàcia es diu {name}"
|
||||||
},
|
|
||||||
"wheelchair": {
|
|
||||||
"mappings": {
|
|
||||||
"0": {
|
|
||||||
"then": "Aquesta farmàcia és fàcil d'accedir en una cadira de rodes"
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"then": "Aquesta farmàcia es difícil d'accedir amb una cadira de rodes"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"then": "Aquesta farmàcia té un accés limitat per a usuaris amb cadira de rodes"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"question": "És fàcil accedir a aquesta farmàcia amb una cadira de rodes?"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
|
|
|
@ -6378,20 +6378,6 @@
|
||||||
},
|
},
|
||||||
"question": "Jak se lékárna jmenuje?",
|
"question": "Jak se lékárna jmenuje?",
|
||||||
"render": "Tato lékárna se jmenuje {name}"
|
"render": "Tato lékárna se jmenuje {name}"
|
||||||
},
|
|
||||||
"wheelchair": {
|
|
||||||
"mappings": {
|
|
||||||
"0": {
|
|
||||||
"then": "Tato lékárna je snadno přístupná na invalidním vozíku"
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"then": "Tato lékárna je těžko přístupná na invalidním vozíku"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"then": "Tato lékárna má omezený přístup pro vozíčkáře"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"question": "Je tato lékárna snadno přístupná na invalidním vozíku?"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
|
|
|
@ -7659,20 +7659,6 @@
|
||||||
},
|
},
|
||||||
"question": "Wie lautet der Name der Apotheke?",
|
"question": "Wie lautet der Name der Apotheke?",
|
||||||
"render": "Der Name der Apotheke lautet {name}"
|
"render": "Der Name der Apotheke lautet {name}"
|
||||||
},
|
|
||||||
"wheelchair": {
|
|
||||||
"mappings": {
|
|
||||||
"0": {
|
|
||||||
"then": "Die Apotheke ist für Rollstuhlfahrer leicht zugänglich"
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"then": "Die Apotheke ist für Rollstuhlfahrer nur schwer zugänglich"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"then": "Die Apotheke ist für Rollstuhlfahrer nur eingeschränkt zugänglich"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"question": "Ist die Apotheke für Rollstuhlfahrer leicht zugänglich?"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
|
|
|
@ -7659,20 +7659,6 @@
|
||||||
},
|
},
|
||||||
"question": "What is the name of the pharmacy?",
|
"question": "What is the name of the pharmacy?",
|
||||||
"render": "This pharmacy is called {name}"
|
"render": "This pharmacy is called {name}"
|
||||||
},
|
|
||||||
"wheelchair": {
|
|
||||||
"mappings": {
|
|
||||||
"0": {
|
|
||||||
"then": "This pharmacy is easy to access on a wheelchair"
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"then": "This pharmacy is hard to access on a wheelchair"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"then": "This pharmacy has limited access for wheelchair users"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"question": "Is this pharmacy easy to access on a wheelchair?"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
|
|
|
@ -7645,20 +7645,6 @@
|
||||||
},
|
},
|
||||||
"question": "¿Cuál es el nombre de la farmacia?",
|
"question": "¿Cuál es el nombre de la farmacia?",
|
||||||
"render": "Esta farmacia se llama {name}"
|
"render": "Esta farmacia se llama {name}"
|
||||||
},
|
|
||||||
"wheelchair": {
|
|
||||||
"mappings": {
|
|
||||||
"0": {
|
|
||||||
"then": "Esta farmacia es de fácil acceso en silla de ruedas"
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"then": "Esta farmacia es de difícil acceso en silla de ruedas"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"then": "Esta farmacia tiene acceso limitado para usuarios de silla de ruedas"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"question": "¿Es esta farmacia de fácil acceso en silla de ruedas?"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
|
|
|
@ -4744,20 +4744,6 @@
|
||||||
},
|
},
|
||||||
"question": "Quel est le nom de cette pharmacie ?",
|
"question": "Quel est le nom de cette pharmacie ?",
|
||||||
"render": "Cette pharmacie s'appelle {name}"
|
"render": "Cette pharmacie s'appelle {name}"
|
||||||
},
|
|
||||||
"wheelchair": {
|
|
||||||
"mappings": {
|
|
||||||
"0": {
|
|
||||||
"then": "Cette pharmacie est facile d'accès en chaise roulante"
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"then": "Cette pharmacie est difficilement accessible en chaise roulante"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"then": "L'accès à cette pharmacie est limité en chaise roulante"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"question": "Cette pharmacie est-elle facilement accessible en chaise roulante ?"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
|
|
|
@ -6288,20 +6288,6 @@
|
||||||
},
|
},
|
||||||
"question": "Wat is de naam van deze apotheek?",
|
"question": "Wat is de naam van deze apotheek?",
|
||||||
"render": "Deze apotheek heet {name}"
|
"render": "Deze apotheek heet {name}"
|
||||||
},
|
|
||||||
"wheelchair": {
|
|
||||||
"mappings": {
|
|
||||||
"0": {
|
|
||||||
"then": "Deze apotheek is makkelijk te bereiken met een rolstoel"
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"then": "Deze apotheek is moeilijk te bereiken met een rolstoel"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"then": "Deze apotheek is bereikbaar met een rolstoel, maar het is niet makkelijk"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"question": "Is het mogelijk om deze apotheek te bereiken met een rolstoel?"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
|
|
|
@ -2963,13 +2963,6 @@
|
||||||
"name": {
|
"name": {
|
||||||
"question": "Jak nazywa się ta apteka?",
|
"question": "Jak nazywa się ta apteka?",
|
||||||
"render": "Nazwa tej apteki to {name}"
|
"render": "Nazwa tej apteki to {name}"
|
||||||
},
|
|
||||||
"wheelchair": {
|
|
||||||
"mappings": {
|
|
||||||
"0": {
|
|
||||||
"then": "Ta apteka jest łatwo dostępna na wózku"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
|
|
106
langs/nl.json
106
langs/nl.json
|
@ -304,10 +304,11 @@
|
||||||
"loginToStart": "Meld je aan om deze vraag te beantwoorden",
|
"loginToStart": "Meld je aan om deze vraag te beantwoorden",
|
||||||
"loginWithOpenStreetMap": "Aanmelden met OpenStreetMap",
|
"loginWithOpenStreetMap": "Aanmelden met OpenStreetMap",
|
||||||
"logout": "Afmelden",
|
"logout": "Afmelden",
|
||||||
|
"mappingsAreHidden": "Sommige opties zijn verborgen. Gebruik zoeken om meer opties te tonen.",
|
||||||
"menu": {
|
"menu": {
|
||||||
|
"aboutCurrentThemeTitle": "Over deze kaart",
|
||||||
"aboutMapComplete": "Over MapComplete",
|
"aboutMapComplete": "Over MapComplete",
|
||||||
"filter": "Filter data",
|
"filter": "Filter data",
|
||||||
"aboutCurrentThemeTitle": "Over deze kaart",
|
|
||||||
"moreUtilsTitle": "Ontdek meer",
|
"moreUtilsTitle": "Ontdek meer",
|
||||||
"openHereDifferentApp": "Open de huidige locatie in andere toepassingen",
|
"openHereDifferentApp": "Open de huidige locatie in andere toepassingen",
|
||||||
"showIntroduction": "Toon introductie",
|
"showIntroduction": "Toon introductie",
|
||||||
|
@ -372,6 +373,7 @@
|
||||||
"versionInfo": "v{version} - gemaakt op {date}"
|
"versionInfo": "v{version} - gemaakt op {date}"
|
||||||
},
|
},
|
||||||
"pickLanguage": "Kies je taal",
|
"pickLanguage": "Kies je taal",
|
||||||
|
"poweredByMapComplete": "Powered by MapComplete - crowdsourced, thematische kaarten met OpenStreetMap",
|
||||||
"poweredByOsm": "Gebouwd met OpenStreetMap",
|
"poweredByOsm": "Gebouwd met OpenStreetMap",
|
||||||
"questionBox": {
|
"questionBox": {
|
||||||
"answeredMultiple": "Je beantwoordde {answered} vragen",
|
"answeredMultiple": "Je beantwoordde {answered} vragen",
|
||||||
|
@ -387,6 +389,7 @@
|
||||||
},
|
},
|
||||||
"readYourMessages": "Gelieve eerst je berichten op OpenStreetMap te lezen alvorens nieuwe objecten toe te voegen.",
|
"readYourMessages": "Gelieve eerst je berichten op OpenStreetMap te lezen alvorens nieuwe objecten toe te voegen.",
|
||||||
"removeLocationHistory": "Verwijder de geschiedenis aan locaties",
|
"removeLocationHistory": "Verwijder de geschiedenis aan locaties",
|
||||||
|
"retry": "Opnieuw proberen",
|
||||||
"returnToTheMap": "Ga terug naar de kaart",
|
"returnToTheMap": "Ga terug naar de kaart",
|
||||||
"save": "Opslaan",
|
"save": "Opslaan",
|
||||||
"screenToSmall": "Open {theme} in een nieuw venster",
|
"screenToSmall": "Open {theme} in een nieuw venster",
|
||||||
|
@ -400,37 +403,40 @@
|
||||||
"error": "Niet gelukt…",
|
"error": "Niet gelukt…",
|
||||||
"instructions": "Gebruik de zoekbalk om locaties, filters of om andere kaarten te zoeken",
|
"instructions": "Gebruik de zoekbalk om locaties, filters of om andere kaarten te zoeken",
|
||||||
"locations": "Plaatsen",
|
"locations": "Plaatsen",
|
||||||
|
"nMoreFilters": "{n} meer",
|
||||||
"nothing": "Niets gevonden…",
|
"nothing": "Niets gevonden…",
|
||||||
|
"nothingFor": "Geen resultaten gevonden voor {term}",
|
||||||
"otherMaps": "Andere kaarten",
|
"otherMaps": "Andere kaarten",
|
||||||
"pickFilter": "Kies een filter",
|
"pickFilter": "Kies een filter",
|
||||||
"recentThemes": "Recent bezochte kaarten",
|
"recentThemes": "Recent bezochte kaarten",
|
||||||
"recents": "Recent bekeken plaatsen",
|
"recents": "Recent bekeken plaatsen",
|
||||||
"search": "Zoek naar een locatie, filter of kaart",
|
"search": "Zoek naar een locatie, filter of kaart",
|
||||||
"searchShort": "Zoek…",
|
"searchShort": "Zoek…",
|
||||||
"searching": "Aan het zoeken…",
|
"searching": "Aan het zoeken…"
|
||||||
"nMoreFilters": "{n} meer",
|
|
||||||
"nothingFor": "Geen resultaten gevonden voor {term}"
|
|
||||||
},
|
},
|
||||||
|
"searchAnswer": "Zoek een optie…",
|
||||||
|
"seeIndex": "Zie het overzich van alle thematische kaarten",
|
||||||
"share": "Deel deze locatie",
|
"share": "Deel deze locatie",
|
||||||
"sharescreen": {
|
"sharescreen": {
|
||||||
"copiedToClipboard": "Link gekopieerd naar klembord",
|
"copiedToClipboard": "Link gekopieerd naar klembord",
|
||||||
|
"documentation": "Voor meer informatie over beschikbare URL-parameters, <a href='https://github.com/pietervdvn/MapComplete/blob/develop/Docs/URL_Parameters.md' target='_blank'>raadpleeg de documentatie</a>",
|
||||||
"embedIntro": "<h3>Plaats dit op je website</h3>Voeg dit kaartje toe op je eigen website.<br/>We moedigen dit zelfs aan - je hoeft geen toestemming te vragen.<br/> Het is gratis en zal dat altijd blijven. Hoe meer het gebruikt wordt, hoe waardevoller",
|
"embedIntro": "<h3>Plaats dit op je website</h3>Voeg dit kaartje toe op je eigen website.<br/>We moedigen dit zelfs aan - je hoeft geen toestemming te vragen.<br/> Het is gratis en zal dat altijd blijven. Hoe meer het gebruikt wordt, hoe waardevoller",
|
||||||
"fsUserbadge": "Activeer de login-knop en dus de mogelijkheid om data aan te passen",
|
|
||||||
"fsWelcomeMessage": "Toon het welkomstbericht en de bijhorende tabbladen",
|
|
||||||
"intro": "Kopieer onderstaande link om deze kaart naar vrienden en familie door te sturen:",
|
|
||||||
"thanksForSharing": "Bedankt om te delen!",
|
|
||||||
"title": "Deel deze kaart",
|
|
||||||
"fsBackground": "Wisselende achtergronden inschakelen",
|
"fsBackground": "Wisselende achtergronden inschakelen",
|
||||||
"fsFilter": "De mogelijkheid inschakelen om te wisselen tussen lagen en filters",
|
"fsFilter": "De mogelijkheid inschakelen om te wisselen tussen lagen en filters",
|
||||||
"fsGeolocation": "Geolocatie inschakelen",
|
"fsGeolocation": "Geolocatie inschakelen",
|
||||||
|
"fsUserbadge": "Activeer de login-knop en dus de mogelijkheid om data aan te passen",
|
||||||
|
"fsWelcomeMessage": "Toon het welkomstbericht en de bijhorende tabbladen",
|
||||||
|
"intro": "Kopieer onderstaande link om deze kaart naar vrienden en familie door te sturen:",
|
||||||
"openInOtherApplications": "De huidige locatie openen met een andere kaarttoepassing",
|
"openInOtherApplications": "De huidige locatie openen met een andere kaarttoepassing",
|
||||||
"openLayers": "Open het menu met lagen en filters",
|
"openLayers": "Open het menu met lagen en filters",
|
||||||
"options": "Opties voor delen",
|
"options": "Opties voor delen",
|
||||||
"stateIsIncluded": "De huidige status van de lagen en filters is opgenomen in de gedeelde link en iframe.",
|
"stateIsIncluded": "De huidige status van de lagen en filters is opgenomen in de gedeelde link en iframe.",
|
||||||
"documentation": "Voor meer informatie over beschikbare URL-parameters, <a href='https://github.com/pietervdvn/MapComplete/blob/develop/Docs/URL_Parameters.md' target='_blank'>raadpleeg de documentatie</a>"
|
"thanksForSharing": "Bedankt om te delen!",
|
||||||
|
"title": "Deel deze kaart"
|
||||||
},
|
},
|
||||||
"skip": "Sla deze vraag over",
|
"skip": "Sla deze vraag over",
|
||||||
"testing": "Testmode - wijzigingen worden niet opgeslaan",
|
"testing": "Testmode - wijzigingen worden niet opgeslaan",
|
||||||
|
"uploadError": "Fout tijdens het uploaden van wijzigingen: {error}",
|
||||||
"uploadGpx": {
|
"uploadGpx": {
|
||||||
"choosePermission": "Kies hieronder of je traject gedeeld moet worden:",
|
"choosePermission": "Kies hieronder of je traject gedeeld moet worden:",
|
||||||
"confirm": "Bevestig upload",
|
"confirm": "Bevestig upload",
|
||||||
|
@ -458,6 +464,9 @@
|
||||||
"uploadFinished": "Je traject is geupload!",
|
"uploadFinished": "Je traject is geupload!",
|
||||||
"uploading": "Traject uploaden…"
|
"uploading": "Traject uploaden…"
|
||||||
},
|
},
|
||||||
|
"uploadPending": "{count} wijzigingen in behandeling",
|
||||||
|
"uploadPendingSingle": "Eén wijziging in behandeling",
|
||||||
|
"uploadingChanges": "Wijzigingen aan het uploaden…",
|
||||||
"useSearch": "Gebruik de zoekfunctie hierboven om meer opties te zien",
|
"useSearch": "Gebruik de zoekfunctie hierboven om meer opties te zien",
|
||||||
"visualFeedback": {
|
"visualFeedback": {
|
||||||
"closestFeaturesAre": "{n} objecten in beeld.",
|
"closestFeaturesAre": "{n} objecten in beeld.",
|
||||||
|
@ -482,6 +491,8 @@
|
||||||
"straight": "vooruit"
|
"straight": "vooruit"
|
||||||
},
|
},
|
||||||
"east": "Naar het oosten",
|
"east": "Naar het oosten",
|
||||||
|
"fromGps": "{distance} {direction} van uw locatie",
|
||||||
|
"fromMapCenter": "{distance} {direction} van het midden van de kaart",
|
||||||
"in": "Aan het inzoomen naar zoomlevel {z}",
|
"in": "Aan het inzoomen naar zoomlevel {z}",
|
||||||
"islocked": "Bewegen vergrendeld rond je huidige locatie. Duw op de geolocatie-knop om te ontgrendelen.",
|
"islocked": "Bewegen vergrendeld rond je huidige locatie. Duw op de geolocatie-knop om te ontgrendelen.",
|
||||||
"locked": "Bewegen vergrendeld rond jouw huidige locatie.",
|
"locked": "Bewegen vergrendeld rond jouw huidige locatie.",
|
||||||
|
@ -494,10 +505,9 @@
|
||||||
"unlocked": "Bewegen ontgrendeld",
|
"unlocked": "Bewegen ontgrendeld",
|
||||||
"viewportCenterCloseToGps": "De kaart is gecentreerd op je huidige GPS-locatie.",
|
"viewportCenterCloseToGps": "De kaart is gecentreerd op je huidige GPS-locatie.",
|
||||||
"viewportCenterDetails": "Het kaartbeeldcentrum is {distance} {bearing} vanaf je huidige locatie.",
|
"viewportCenterDetails": "Het kaartbeeldcentrum is {distance} {bearing} vanaf je huidige locatie.",
|
||||||
"west": "Naar het westen",
|
"west": "Naar het westen"
|
||||||
"fromGps": "{distance} {direction} van uw locatie",
|
|
||||||
"fromMapCenter": "{distance} {direction} van het midden van de kaart"
|
|
||||||
},
|
},
|
||||||
|
"waitingForGeopermission": "Aan het wachten op toestemming om geolocatie te gebruiken…",
|
||||||
"waitingForLocation": "Je locatie wordt gezocht…",
|
"waitingForLocation": "Je locatie wordt gezocht…",
|
||||||
"weekdays": {
|
"weekdays": {
|
||||||
"abbreviations": {
|
"abbreviations": {
|
||||||
|
@ -539,17 +549,7 @@
|
||||||
"searchToShort": "Je zoekopdracht is te kort, vul een langere tekst in",
|
"searchToShort": "Je zoekopdracht is te kort, vul een langere tekst in",
|
||||||
"searchWikidata": "Zoek op Wikidata",
|
"searchWikidata": "Zoek op Wikidata",
|
||||||
"wikipediaboxTitle": "Wikipedia"
|
"wikipediaboxTitle": "Wikipedia"
|
||||||
},
|
}
|
||||||
"retry": "Opnieuw proberen",
|
|
||||||
"searchAnswer": "Zoek een optie…",
|
|
||||||
"seeIndex": "Zie het overzich van alle thematische kaarten",
|
|
||||||
"uploadError": "Fout tijdens het uploaden van wijzigingen: {error}",
|
|
||||||
"mappingsAreHidden": "Sommige opties zijn verborgen. Gebruik zoeken om meer opties te tonen.",
|
|
||||||
"poweredByMapComplete": "Powered by MapComplete - crowdsourced, thematische kaarten met OpenStreetMap",
|
|
||||||
"uploadPending": "{count} wijzigingen in behandeling",
|
|
||||||
"uploadPendingSingle": "Eén wijziging in behandeling",
|
|
||||||
"uploadingChanges": "Wijzigingen aan het uploaden…",
|
|
||||||
"waitingForGeopermission": "Aan het wachten op toestemming om geolocatie te gebruiken…"
|
|
||||||
},
|
},
|
||||||
"hotkeyDocumentation": {
|
"hotkeyDocumentation": {
|
||||||
"action": "Actie",
|
"action": "Actie",
|
||||||
|
@ -557,21 +557,21 @@
|
||||||
"geolocate": "Centreer de map op je huidige positie of zoom verder in naar de huidige positie. Vraagt geolocatie-toegang",
|
"geolocate": "Centreer de map op je huidige positie of zoom verder in naar de huidige positie. Vraagt geolocatie-toegang",
|
||||||
"intro": "MapComplete ondersteunt de volgende sneltoetsen:",
|
"intro": "MapComplete ondersteunt de volgende sneltoetsen:",
|
||||||
"key": "Toets-combinatie",
|
"key": "Toets-combinatie",
|
||||||
|
"openFilterPanel": "Opent het POI-lagen- en filterpaneel",
|
||||||
"openLayersPanel": "Open het paneel met lagen en filters",
|
"openLayersPanel": "Open het paneel met lagen en filters",
|
||||||
|
"queryCurrentLocation": "Toon het adres dichtst bij het midden van de kaart",
|
||||||
"selectAerial": "Verander de achtergrondlaag naar luchtfoto's of satelietfoto's. Wisselt tussen de twee beste, beschikbare lagen",
|
"selectAerial": "Verander de achtergrondlaag naar luchtfoto's of satelietfoto's. Wisselt tussen de twee beste, beschikbare lagen",
|
||||||
|
"selectFavourites": "Open de pagina met favorieten",
|
||||||
|
"selectItem": "Selecteer het POI het dichtst bij het midden van de kaart (crosshair). Alleen wanneer toetsenbordnavigatie wordt gebruikt",
|
||||||
|
"selectItem2": "Selecteer het POI het op één na dichtst bij het midden van de kaart (crosshair). Alleen wanneer toetsenbordnavigatie wordt gebruikt",
|
||||||
|
"selectItem3": "Selecteer het POI het op twee na dichtst bij het midden van de kaart (crosshair). Alleen wanneer toetsenbordnavigatie wordt gebruikt",
|
||||||
"selectMap": "Gebruik een niet-OpenStreetMap-gebaseerde kaart als achtergrond. Wisselt tussen de twee beste, beschikbare lagen",
|
"selectMap": "Gebruik een niet-OpenStreetMap-gebaseerde kaart als achtergrond. Wisselt tussen de twee beste, beschikbare lagen",
|
||||||
"selectMapnik": "Gebruik OpenStreetMap-carto als achtergrondlaag",
|
"selectMapnik": "Gebruik OpenStreetMap-carto als achtergrondlaag",
|
||||||
"selectOsmbasedmap": "Gebruik een OpenStreetMap-gebaseerde achtergrondkaart (of schakel de achtergrond-rasterlaag uit)",
|
"selectOsmbasedmap": "Gebruik een OpenStreetMap-gebaseerde achtergrondkaart (of schakel de achtergrond-rasterlaag uit)",
|
||||||
"selectSearch": "Selecteer de zoekbalk om locaties te zoeken",
|
"selectSearch": "Selecteer de zoekbalk om locaties te zoeken",
|
||||||
"title": "Sneltoetsen",
|
|
||||||
"queryCurrentLocation": "Toon het adres dichtst bij het midden van de kaart",
|
|
||||||
"selectFavourites": "Open de pagina met favorieten",
|
|
||||||
"selectItem2": "Selecteer het POI het op één na dichtst bij het midden van de kaart (crosshair). Alleen wanneer toetsenbordnavigatie wordt gebruikt",
|
|
||||||
"shakePhone": "Schudden met je telefoon",
|
"shakePhone": "Schudden met je telefoon",
|
||||||
"translationMode": "Vertaalmodus in- of uitschakelen",
|
"title": "Sneltoetsen",
|
||||||
"openFilterPanel": "Opent het POI-lagen- en filterpaneel",
|
"translationMode": "Vertaalmodus in- of uitschakelen"
|
||||||
"selectItem": "Selecteer het POI het dichtst bij het midden van de kaart (crosshair). Alleen wanneer toetsenbordnavigatie wordt gebruikt",
|
|
||||||
"selectItem3": "Selecteer het POI het op twee na dichtst bij het midden van de kaart (crosshair). Alleen wanneer toetsenbordnavigatie wordt gebruikt"
|
|
||||||
},
|
},
|
||||||
"image": {
|
"image": {
|
||||||
"addPicture": "Voeg foto toe",
|
"addPicture": "Voeg foto toe",
|
||||||
|
@ -580,48 +580,48 @@
|
||||||
"dontDelete": "Annuleren",
|
"dontDelete": "Annuleren",
|
||||||
"isDeleted": "Verwijderd",
|
"isDeleted": "Verwijderd",
|
||||||
"nearby": {
|
"nearby": {
|
||||||
"link": "Deze afbeelding toont het object",
|
|
||||||
"seeNearby": "Bekijk foto's in de buurt",
|
|
||||||
"title": "Straatafbeeldingen uit de buurt",
|
|
||||||
"failed": "Afbeeldingen ophalen van {service} mislukt",
|
|
||||||
"close": "Paneel met nabije afbeeldingen samenvouwen",
|
"close": "Paneel met nabije afbeeldingen samenvouwen",
|
||||||
"noNearbyImages": "Geen afbeeldingen in de buurt gevonden"
|
"failed": "Afbeeldingen ophalen van {service} mislukt",
|
||||||
|
"link": "Deze afbeelding toont het object",
|
||||||
|
"noNearbyImages": "Geen afbeeldingen in de buurt gevonden",
|
||||||
|
"seeNearby": "Bekijk foto's in de buurt",
|
||||||
|
"title": "Straatafbeeldingen uit de buurt"
|
||||||
},
|
},
|
||||||
"pleaseLogin": "Gelieve je aan te melden om een foto toe te voegen",
|
|
||||||
"respectPrivacy": "Voeg geen Google Maps, Google Streetview of foto's met auteursrechten toe.",
|
|
||||||
"toBig": "Je afbeelding is te groot, namelijk {actual_size}. Gelieve afbeeldingen van maximaal {max_size} te gebruiken",
|
|
||||||
"uploadDone": "Je afbeelding is toegevoegd. Bedankt om te helpen!",
|
|
||||||
"uploadFailed": "Afbeelding uploaden mislukt. Heb je internet? Gebruik je Brave of UMatrix? Dan moet je derde partijen toelaten.",
|
|
||||||
"uploadMultipleDone": "{count} afbeeldingen zijn toegevoegd. Bedankt voor je bijdrage!",
|
|
||||||
"uploadingMultiple": "Bezig met {count} foto's te uploaden…",
|
|
||||||
"uploadingPicture": "Bezig met een foto te uploaden…",
|
|
||||||
"panoramax": {
|
"panoramax": {
|
||||||
"deletionRequested": "Het rapport is verzonden. Een moderator zal er binnenkort naar kijken",
|
"deletionRequested": "Het rapport is verzonden. Een moderator zal er binnenkort naar kijken",
|
||||||
"freeform": "Is er andere relevante informatie?",
|
"freeform": "Is er andere relevante informatie?",
|
||||||
"otherFreeform": "Waarom moet deze afbeelding worden verwijderd:",
|
"otherFreeform": "Waarom moet deze afbeelding worden verwijderd:",
|
||||||
|
"placeholder": "Leg uit waarom de foto verwijderd moet worden",
|
||||||
"report": {
|
"report": {
|
||||||
"blur_missing": "Op deze foto is een gezicht of nummerplaat niet geblurd",
|
|
||||||
"blur_excess": "Er is te geblurd, waardoor de foto onbruikbaar is",
|
"blur_excess": "Er is te geblurd, waardoor de foto onbruikbaar is",
|
||||||
|
"blur_missing": "Op deze foto is een gezicht of nummerplaat niet geblurd",
|
||||||
"copyright": "De foto bevat auteursrechtelijk beschermde inhoud",
|
"copyright": "De foto bevat auteursrechtelijk beschermde inhoud",
|
||||||
|
"inappropriate": "Deze foto is ongepast (bevat naakt, roept op tot haat of is geen straatbeeld)",
|
||||||
"mislocated": "De foto is van een andere locatie",
|
"mislocated": "De foto is van een andere locatie",
|
||||||
"other": "Een andere reden, specificeer",
|
"other": "Een andere reden, specificeer",
|
||||||
"picture_low_quality": "De foto is van lage kwaliteit",
|
"picture_low_quality": "De foto is van lage kwaliteit",
|
||||||
"privacy": "De foto toont een privé-eigendom",
|
"privacy": "De foto toont een privé-eigendom"
|
||||||
"inappropriate": "Deze foto is ongepast (bevat naakt, roept op tot haat of is geen straatbeeld)"
|
|
||||||
},
|
},
|
||||||
"requestDeletion": "Verwijdering van foto aanvragen",
|
"requestDeletion": "Verwijdering van foto aanvragen",
|
||||||
"title": "Waarom zou dit beeld permanent verwijderd moeten worden?",
|
"title": "Waarom zou dit beeld permanent verwijderd moeten worden?"
|
||||||
"placeholder": "Leg uit waarom de foto verwijderd moet worden"
|
|
||||||
},
|
},
|
||||||
|
"pleaseLogin": "Gelieve je aan te melden om een foto toe te voegen",
|
||||||
"processing": "De server is je beeld aan het verwerken",
|
"processing": "De server is je beeld aan het verwerken",
|
||||||
|
"respectPrivacy": "Voeg geen Google Maps, Google Streetview of foto's met auteursrechten toe.",
|
||||||
|
"toBig": "Je afbeelding is te groot, namelijk {actual_size}. Gelieve afbeeldingen van maximaal {max_size} te gebruiken",
|
||||||
"unlink": {
|
"unlink": {
|
||||||
"button": "Link naar foto verwijderen",
|
"button": "Link naar foto verwijderen",
|
||||||
"title": "Link naar deze afbeelding verwijderen?",
|
"explanation": "Door de link naar deze afbeelding te verwijderen, wordt deze niet meer getoond bij dit object. De afbeelding zal nog steeds verschijnen bij nabije afbeeldingen en mogelijk ook andere objecten.",
|
||||||
"explanation": "Door de link naar deze afbeelding te verwijderen, wordt deze niet meer getoond bij dit object. De afbeelding zal nog steeds verschijnen bij nabije afbeeldingen en mogelijk ook andere objecten."
|
"title": "Link naar deze afbeelding verwijderen?"
|
||||||
},
|
},
|
||||||
"upload": {
|
"upload": {
|
||||||
"failReasons": "Mogelijk heb je geen verbinding meer met het internet"
|
"failReasons": "Mogelijk heb je geen verbinding meer met het internet"
|
||||||
}
|
},
|
||||||
|
"uploadDone": "Je afbeelding is toegevoegd. Bedankt om te helpen!",
|
||||||
|
"uploadFailed": "Afbeelding uploaden mislukt. Heb je internet? Gebruik je Brave of UMatrix? Dan moet je derde partijen toelaten.",
|
||||||
|
"uploadMultipleDone": "{count} afbeeldingen zijn toegevoegd. Bedankt voor je bijdrage!",
|
||||||
|
"uploadingMultiple": "Bezig met {count} foto's te uploaden…",
|
||||||
|
"uploadingPicture": "Bezig met een foto te uploaden…"
|
||||||
},
|
},
|
||||||
"importInspector": {
|
"importInspector": {
|
||||||
"title": "Inspecteer en beheer importeer-notas"
|
"title": "Inspecteer en beheer importeer-notas"
|
||||||
|
|
12
package-lock.json
generated
12
package-lock.json
generated
|
@ -8020,9 +8020,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001680",
|
"version": "1.0.30001684",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz",
|
||||||
"integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==",
|
"integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -26969,9 +26969,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"caniuse-lite": {
|
"caniuse-lite": {
|
||||||
"version": "1.0.30001680",
|
"version": "1.0.30001684",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz",
|
||||||
"integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==",
|
"integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"canonicalize": {
|
"canonicalize": {
|
||||||
|
|
|
@ -42,7 +42,7 @@ export class ImgurToPanoramax extends Script {
|
||||||
test: "7f34cf53-27ff-46c9-ac22-78511fa8457a",
|
test: "7f34cf53-27ff-46c9-ac22-78511fa8457a",
|
||||||
cc0: "e9bcb8c0-8ade-4ac9-bc9f-cfa464221fd6", // "1de6f4a1-73ac-4c75-ab7f-2a2aabddf50a", // "f0d6f78a-ff95-4db1-8494-6eb44a17bb37",
|
cc0: "e9bcb8c0-8ade-4ac9-bc9f-cfa464221fd6", // "1de6f4a1-73ac-4c75-ab7f-2a2aabddf50a", // "f0d6f78a-ff95-4db1-8494-6eb44a17bb37",
|
||||||
ccby: "288a8052-b475-422c-811a-4f6f1a00015e",
|
ccby: "288a8052-b475-422c-811a-4f6f1a00015e",
|
||||||
ccbysa: "f3d02893-b4c1-4cd6-8b27-e27ab57eb59a"
|
ccbysa: "f3d02893-b4c1-4cd6-8b27-e27ab57eb59a",
|
||||||
} as const
|
} as const
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
@ -146,7 +146,7 @@ export class ImgurToPanoramax extends Script {
|
||||||
console.log("Already uploaded", panohash)
|
console.log("Already uploaded", panohash)
|
||||||
return new And([
|
return new And([
|
||||||
new Tag(key.replace("image", "panoramax"), panohash),
|
new Tag(key.replace("image", "panoramax"), panohash),
|
||||||
new Tag(key, "")
|
new Tag(key, ""),
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -177,8 +177,8 @@ export class ImgurToPanoramax extends Script {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
const sequence = this.sequenceIds[license.licenseShortName?.toLowerCase()]
|
const sequence = this.sequenceIds[license.licenseShortName?.toLowerCase()]
|
||||||
console.log("Reading ",path)
|
console.log("Reading ", path)
|
||||||
if(!existsSync(path)){
|
if (!existsSync(path)) {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
const handle = await open(path)
|
const handle = await open(path)
|
||||||
|
@ -193,7 +193,7 @@ export class ImgurToPanoramax extends Script {
|
||||||
|
|
||||||
const file = new MyFile([], path)
|
const file = new MyFile([], path)
|
||||||
|
|
||||||
file.stream = function() {
|
file.stream = function () {
|
||||||
return handle.readableWebStream()
|
return handle.readableWebStream()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ export class ImgurToPanoramax extends Script {
|
||||||
const license = await this.getRawInfo("https://i.imgur.com/" + imgurkey + ".jpg")
|
const license = await this.getRawInfo("https://i.imgur.com/" + imgurkey + ".jpg")
|
||||||
const date = new Date(license.datetime * 1000)
|
const date = new Date(license.datetime * 1000)
|
||||||
const panolicense = await this.panoramax.panoramax.search({
|
const panolicense = await this.panoramax.panoramax.search({
|
||||||
ids: [panokey]
|
ids: [panokey],
|
||||||
})
|
})
|
||||||
const panodata = panolicense[0]
|
const panodata = panolicense[0]
|
||||||
const collection: string = panodata.collection
|
const collection: string = panodata.collection
|
||||||
|
@ -241,13 +241,13 @@ export class ImgurToPanoramax extends Script {
|
||||||
method: "PATCH",
|
method: "PATCH",
|
||||||
headers: { "content-type": "application/json" },
|
headers: { "content-type": "application/json" },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
ts: date.getTime()
|
ts: date.getTime(),
|
||||||
})
|
}),
|
||||||
})
|
})
|
||||||
console.log(
|
console.log(
|
||||||
"Patched date of ",
|
"Patched date of ",
|
||||||
p.createViewLink({
|
p.createViewLink({
|
||||||
imageId: panokey
|
imageId: panokey,
|
||||||
}),
|
}),
|
||||||
url,
|
url,
|
||||||
"result is",
|
"result is",
|
||||||
|
@ -268,14 +268,8 @@ export class ImgurToPanoramax extends Script {
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
const bounds = new BBox([
|
const bounds = new BBox([
|
||||||
[
|
[-180, -90],
|
||||||
-180,
|
[180, 90],
|
||||||
-90
|
|
||||||
],
|
|
||||||
[
|
|
||||||
180,
|
|
||||||
90
|
|
||||||
]
|
|
||||||
])
|
])
|
||||||
const maxcount = 10000
|
const maxcount = 10000
|
||||||
const overpassfilters: RegexTag[] = []
|
const overpassfilters: RegexTag[] = []
|
||||||
|
@ -331,7 +325,7 @@ export class ImgurToPanoramax extends Script {
|
||||||
f.properties,
|
f.properties,
|
||||||
{
|
{
|
||||||
theme: "image-mover",
|
theme: "image-mover",
|
||||||
changeType: "link-image"
|
changeType: "link-image",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
changes.push(...(await action.CreateChangeDescriptions()))
|
changes.push(...(await action.CreateChangeDescriptions()))
|
||||||
|
|
|
@ -61,7 +61,7 @@ export default class FilteringFeatureSource implements FeatureSource {
|
||||||
|
|
||||||
selectedElement?.addCallback(() => this.update())
|
selectedElement?.addCallback(() => this.update())
|
||||||
|
|
||||||
zoomlevel?.mapD(z => Math.floor(z)).addCallback(() => this.update())
|
zoomlevel?.mapD((z) => Math.floor(z)).addCallback(() => this.update())
|
||||||
|
|
||||||
this.update()
|
this.update()
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,7 @@ export default class FilteringFeatureSource implements FeatureSource {
|
||||||
const newFeatures = (features ?? []).filter((f) => {
|
const newFeatures = (features ?? []).filter((f) => {
|
||||||
this.registerCallback(f.properties.id)
|
this.registerCallback(f.properties.id)
|
||||||
|
|
||||||
if(selectedElement === f.properties.id){
|
if (selectedElement === f.properties.id) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ export default class PanoramaxImageProvider extends ImageProvider {
|
||||||
private static defaultPanoramax = new AuthorizedPanoramax(
|
private static defaultPanoramax = new AuthorizedPanoramax(
|
||||||
Constants.panoramax.url,
|
Constants.panoramax.url,
|
||||||
Constants.panoramax.token,
|
Constants.panoramax.token,
|
||||||
3000,
|
3000
|
||||||
)
|
)
|
||||||
|
|
||||||
public defaultKeyPrefixes: string[] = ["panoramax"]
|
public defaultKeyPrefixes: string[] = ["panoramax"]
|
||||||
|
@ -30,7 +30,7 @@ export default class PanoramaxImageProvider extends ImageProvider {
|
||||||
location?: {
|
location?: {
|
||||||
lon: number
|
lon: number
|
||||||
lat: number
|
lat: number
|
||||||
},
|
}
|
||||||
): BaseUIElement {
|
): BaseUIElement {
|
||||||
const p = new Panoramax(img.host)
|
const p = new Panoramax(img.host)
|
||||||
return new Link(
|
return new Link(
|
||||||
|
@ -39,7 +39,7 @@ export default class PanoramaxImageProvider extends ImageProvider {
|
||||||
imageId: img?.id,
|
imageId: img?.id,
|
||||||
location,
|
location,
|
||||||
}),
|
}),
|
||||||
true,
|
true
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ export default class PanoramaxImageProvider extends ImageProvider {
|
||||||
img?.status !== undefined &&
|
img?.status !== undefined &&
|
||||||
img?.status !== "ready" &&
|
img?.status !== "ready" &&
|
||||||
img?.status !== "broken" &&
|
img?.status !== "broken" &&
|
||||||
img?.status !== "hidden",
|
img?.status !== "hidden"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ export class PanoramaxUploader implements ImageUploader {
|
||||||
author: string,
|
author: string,
|
||||||
noblur: boolean = false,
|
noblur: boolean = false,
|
||||||
sequenceId?: string,
|
sequenceId?: string,
|
||||||
datetime?: string,
|
datetime?: string
|
||||||
): Promise<{
|
): Promise<{
|
||||||
key: string
|
key: string
|
||||||
value: string
|
value: string
|
||||||
|
@ -214,25 +214,34 @@ export class PanoramaxUploader implements ImageUploader {
|
||||||
const tags = await ExifReader.load(blob)
|
const tags = await ExifReader.load(blob)
|
||||||
const [[latD], [latM], [latS, latSDenom]] = <
|
const [[latD], [latM], [latS, latSDenom]] = <
|
||||||
[[number, number], [number, number], [number, number]]
|
[[number, number], [number, number], [number, number]]
|
||||||
>tags?.GPSLatitude?.value
|
>tags?.GPSLatitude?.value
|
||||||
const [[lonD], [lonM], [lonS, lonSDenom]] = <
|
const [[lonD], [lonM], [lonS, lonSDenom]] = <
|
||||||
[[number, number], [number, number], [number, number]]
|
[[number, number], [number, number], [number, number]]
|
||||||
>tags?.GPSLongitude?.value
|
>tags?.GPSLongitude?.value
|
||||||
|
|
||||||
const exifLat = latD + latM / 60 + latS / (3600 * latSDenom)
|
const exifLat = latD + latM / 60 + latS / (3600 * latSDenom)
|
||||||
const exifLon = lonD + lonM / 60 + lonS / (3600 * lonSDenom)
|
const exifLon = lonD + lonM / 60 + lonS / (3600 * lonSDenom)
|
||||||
if (typeof exifLat === "number" && !isNaN(exifLat) && typeof exifLon === "number" && !isNaN(exifLon)
|
if (
|
||||||
&& !(exifLat === 0 && exifLon === 0)) {
|
typeof exifLat === "number" &&
|
||||||
|
!isNaN(exifLat) &&
|
||||||
|
typeof exifLon === "number" &&
|
||||||
|
!isNaN(exifLon) &&
|
||||||
|
!(exifLat === 0 && exifLon === 0)
|
||||||
|
) {
|
||||||
lat = exifLat
|
lat = exifLat
|
||||||
lon = exifLon
|
lon = exifLon
|
||||||
}
|
}
|
||||||
const [date, time] = tags.DateTime.value[0].split(" ")
|
const [date, time] = tags.DateTime.value[0].split(" ")
|
||||||
const exifDatetime = new Date(date.replaceAll(":", "-") + "T" + time)
|
const exifDatetime = new Date(date.replaceAll(":", "-") + "T" + time)
|
||||||
if(exifDatetime.getFullYear() === 1970){
|
if (exifDatetime.getFullYear() === 1970) {
|
||||||
// The data probably got reset to the epoch
|
// The data probably got reset to the epoch
|
||||||
// we don't use the value
|
// we don't use the value
|
||||||
console.log("Datetime from picture is probably invalid:", exifDatetime, "using 'now' instead")
|
console.log(
|
||||||
}else{
|
"Datetime from picture is probably invalid:",
|
||||||
|
exifDatetime,
|
||||||
|
"using 'now' instead"
|
||||||
|
)
|
||||||
|
} else {
|
||||||
datetime = exifDatetime.toISOString()
|
datetime = exifDatetime.toISOString()
|
||||||
}
|
}
|
||||||
console.log("Tags are", tags)
|
console.log("Tags are", tags)
|
||||||
|
|
|
@ -563,13 +563,14 @@ export default class UserRelatedState {
|
||||||
return amendedPrefs
|
return amendedPrefs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The disabled questions for this theme and layer
|
* The disabled questions for this theme and layer
|
||||||
*/
|
*/
|
||||||
public getThemeDisabled(themeId: string, layerId: string): UIEventSource<string[]> {
|
public getThemeDisabled(themeId: string, layerId: string): UIEventSource<string[]> {
|
||||||
const flatSource = this.osmConnection.getPreference("disabled-questions-" + themeId + "-" + layerId, "[]")
|
const flatSource = this.osmConnection.getPreference(
|
||||||
|
"disabled-questions-" + themeId + "-" + layerId,
|
||||||
|
"[]"
|
||||||
|
)
|
||||||
return UIEventSource.asObject<string[]>(flatSource, [])
|
return UIEventSource.asObject<string[]>(flatSource, [])
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,42 @@
|
||||||
import { Utils } from "../../Utils"
|
import { Utils } from "../../Utils"
|
||||||
/** This code is autogenerated - do not edit. Edit ./assets/layers/usersettings/usersettings.json instead */
|
/** This code is autogenerated - do not edit. Edit ./assets/layers/usersettings/usersettings.json instead */
|
||||||
export class ThemeMetaTagging {
|
export class ThemeMetaTagging {
|
||||||
public static readonly themeName = "usersettings"
|
public static readonly themeName = "usersettings"
|
||||||
|
|
||||||
public metaTaggging_for_usersettings(feat: {properties: Record<string, string>}) {
|
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, "_mastodon_candidate_md", () =>
|
||||||
Utils.AddLazyProperty(feat.properties, '_d', () => feat.properties._description?.replace(/</g,'<')?.replace(/>/g,'>') ?? '' )
|
feat.properties._description
|
||||||
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) )
|
.match(/\[[^\]]*\]\((.*(mastodon|en.osm.town).*)\).*/)
|
||||||
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) )
|
?.at(1)
|
||||||
Utils.AddLazyProperty(feat.properties, '_mastodon_candidate', () => feat.properties._mastodon_candidate_md ?? feat.properties._mastodon_candidate_a )
|
)
|
||||||
feat.properties['__current_backgroun'] = 'initial_value'
|
Utils.AddLazyProperty(
|
||||||
}
|
feat.properties,
|
||||||
|
"_d",
|
||||||
|
() => feat.properties._description?.replace(/</g, "<")?.replace(/>/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"
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -504,14 +504,8 @@ export class TagUtils {
|
||||||
* regex.matchesProperties({maxspeed: "50 mph"}) // => true
|
* regex.matchesProperties({maxspeed: "50 mph"}) // => true
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static Tag(
|
public static Tag(json: string, context?: string | ConversionContext): FlatTag
|
||||||
json: string,
|
public static Tag(json: TagConfigJson, context?: string | ConversionContext): TagsFilterClosed
|
||||||
context?: string | ConversionContext
|
|
||||||
): FlatTag;
|
|
||||||
public static Tag(
|
|
||||||
json: TagConfigJson,
|
|
||||||
context?: string | ConversionContext
|
|
||||||
): TagsFilterClosed;
|
|
||||||
public static Tag(
|
public static Tag(
|
||||||
json: TagConfigJson,
|
json: TagConfigJson,
|
||||||
context: string | ConversionContext = ""
|
context: string | ConversionContext = ""
|
||||||
|
|
|
@ -210,7 +210,11 @@ export default class FilteredLayer {
|
||||||
* - the specified 'global filters'
|
* - the specified 'global filters'
|
||||||
* - the 'isShown'-filter set by the layer
|
* - the 'isShown'-filter set by the layer
|
||||||
*/
|
*/
|
||||||
public isShown(properties: Record<string, string>, globalFilters?: GlobalFilter[], zoomlevel?: number): boolean {
|
public isShown(
|
||||||
|
properties: Record<string, string>,
|
||||||
|
globalFilters?: GlobalFilter[],
|
||||||
|
zoomlevel?: number
|
||||||
|
): boolean {
|
||||||
if (properties._deleted === "yes") {
|
if (properties._deleted === "yes") {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -219,7 +223,7 @@ export default class FilteredLayer {
|
||||||
if (neededTags !== undefined) {
|
if (neededTags !== undefined) {
|
||||||
const doesMatch = neededTags.matchesProperties(properties)
|
const doesMatch = neededTags.matchesProperties(properties)
|
||||||
if (globalFilter.forceShowOnMatch) {
|
if (globalFilter.forceShowOnMatch) {
|
||||||
if(doesMatch){
|
if (doesMatch) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
} else if (!doesMatch) {
|
} else if (!doesMatch) {
|
||||||
|
@ -241,7 +245,10 @@ export default class FilteredLayer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(zoomlevel !== undefined && (this.layerDef.minzoom > zoomlevel || this.layerDef.minzoomVisible < zoomlevel)){
|
if (
|
||||||
|
zoomlevel !== undefined &&
|
||||||
|
(this.layerDef.minzoom > zoomlevel || this.layerDef.minzoomVisible < zoomlevel)
|
||||||
|
) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,10 +20,14 @@ export interface MapProperties {
|
||||||
readonly allowRotating: UIEventSource<true | boolean>
|
readonly allowRotating: UIEventSource<true | boolean>
|
||||||
readonly rotation: UIEventSource<number>
|
readonly rotation: UIEventSource<number>
|
||||||
readonly pitch: UIEventSource<number>
|
readonly pitch: UIEventSource<number>
|
||||||
readonly lastClickLocation: Store<{ lon: number; lat: number ; /**
|
readonly lastClickLocation: Store<{
|
||||||
|
lon: number
|
||||||
|
lat: number
|
||||||
|
/**
|
||||||
* The nearest feature from a MapComplete layer
|
* The nearest feature from a MapComplete layer
|
||||||
*/
|
*/
|
||||||
nearestFeature?: Feature}>
|
nearestFeature?: Feature
|
||||||
|
}>
|
||||||
readonly allowZooming: UIEventSource<true | boolean>
|
readonly allowZooming: UIEventSource<true | boolean>
|
||||||
readonly useTerrain: Store<boolean>
|
readonly useTerrain: Store<boolean>
|
||||||
readonly showScale: UIEventSource<boolean>
|
readonly showScale: UIEventSource<boolean>
|
||||||
|
|
|
@ -41,7 +41,7 @@ export default class PointRenderingConfig extends WithContextLoader {
|
||||||
"end",
|
"end",
|
||||||
"projected_centerpoint",
|
"projected_centerpoint",
|
||||||
"polygon_centroid",
|
"polygon_centroid",
|
||||||
"waypoints"
|
"waypoints",
|
||||||
])
|
])
|
||||||
public readonly location: Set<
|
public readonly location: Set<
|
||||||
| "point"
|
| "point"
|
||||||
|
|
|
@ -88,7 +88,7 @@ export default class TagRenderingConfig {
|
||||||
| string
|
| string
|
||||||
| TagRenderingConfigJson
|
| TagRenderingConfigJson
|
||||||
| (QuestionableTagRenderingConfigJson & { questionHintIsMd?: boolean }),
|
| (QuestionableTagRenderingConfigJson & { questionHintIsMd?: boolean }),
|
||||||
context?: string,
|
context?: string
|
||||||
) {
|
) {
|
||||||
let json = <string | QuestionableTagRenderingConfigJson>config
|
let json = <string | QuestionableTagRenderingConfigJson>config
|
||||||
if (json === undefined) {
|
if (json === undefined) {
|
||||||
|
@ -145,22 +145,22 @@ export default class TagRenderingConfig {
|
||||||
this.questionhint = Translations.T(json.questionHint, translationKey + ".questionHint")
|
this.questionhint = Translations.T(json.questionHint, translationKey + ".questionHint")
|
||||||
this.questionHintIsMd = json["questionHintIsMd"] ?? false
|
this.questionHintIsMd = json["questionHintIsMd"] ?? false
|
||||||
this.description = Translations.T(json.description, translationKey + ".description")
|
this.description = Translations.T(json.description, translationKey + ".description")
|
||||||
if(json.onSoftDelete && !Array.isArray(json.onSoftDelete)){
|
if (json.onSoftDelete && !Array.isArray(json.onSoftDelete)) {
|
||||||
throw context+".onSoftDelete Not an array: "+typeof json.onSoftDelete
|
throw context + ".onSoftDelete Not an array: " + typeof json.onSoftDelete
|
||||||
}
|
}
|
||||||
this.onSoftDelete = json.onSoftDelete?.map(t => {
|
this.onSoftDelete = json.onSoftDelete?.map((t) => {
|
||||||
const tag = TagUtils.Tag(t, context)
|
const tag = TagUtils.Tag(t, context)
|
||||||
if (tag instanceof RegexTag) {
|
if (tag instanceof RegexTag) {
|
||||||
throw context+".onSoftDelete Invalid onSoftDelete: cannot upload tag " + t
|
throw context + ".onSoftDelete Invalid onSoftDelete: cannot upload tag " + t
|
||||||
}
|
}
|
||||||
if (tag instanceof ComparingTag) {
|
if (tag instanceof ComparingTag) {
|
||||||
throw context+".onSoftDelete Invalid onSoftDelete: cannot upload tag " + t
|
throw context + ".onSoftDelete Invalid onSoftDelete: cannot upload tag " + t
|
||||||
}
|
}
|
||||||
return tag
|
return tag
|
||||||
})
|
})
|
||||||
this.editButtonAriaLabel = Translations.T(
|
this.editButtonAriaLabel = Translations.T(
|
||||||
json.editButtonAriaLabel,
|
json.editButtonAriaLabel,
|
||||||
translationKey + ".editButtonAriaLabel",
|
translationKey + ".editButtonAriaLabel"
|
||||||
)
|
)
|
||||||
|
|
||||||
this.condition = TagUtils.Tag(json.condition ?? { and: [] }, `${context}.condition`)
|
this.condition = TagUtils.Tag(json.condition ?? { and: [] }, `${context}.condition`)
|
||||||
|
@ -176,7 +176,7 @@ export default class TagRenderingConfig {
|
||||||
}
|
}
|
||||||
this.metacondition = TagUtils.Tag(
|
this.metacondition = TagUtils.Tag(
|
||||||
json.metacondition ?? { and: [] },
|
json.metacondition ?? { and: [] },
|
||||||
`${context}.metacondition`,
|
`${context}.metacondition`
|
||||||
)
|
)
|
||||||
if (json.freeform) {
|
if (json.freeform) {
|
||||||
if (
|
if (
|
||||||
|
@ -194,7 +194,7 @@ export default class TagRenderingConfig {
|
||||||
}, perhaps you meant ${Utils.sortedByLevenshteinDistance(
|
}, perhaps you meant ${Utils.sortedByLevenshteinDistance(
|
||||||
json.freeform.key,
|
json.freeform.key,
|
||||||
<any>Validators.availableTypes,
|
<any>Validators.availableTypes,
|
||||||
(s) => <any>s,
|
(s) => <any>s
|
||||||
)}`
|
)}`
|
||||||
}
|
}
|
||||||
const type: ValidatorType = <any>json.freeform.type ?? "string"
|
const type: ValidatorType = <any>json.freeform.type ?? "string"
|
||||||
|
@ -216,7 +216,7 @@ export default class TagRenderingConfig {
|
||||||
placeholder,
|
placeholder,
|
||||||
addExtraTags:
|
addExtraTags:
|
||||||
json.freeform.addExtraTags?.map((tg, i) =>
|
json.freeform.addExtraTags?.map((tg, i) =>
|
||||||
TagUtils.ParseUploadableTag(tg, `${context}.extratag[${i}]`),
|
TagUtils.ParseUploadableTag(tg, `${context}.extratag[${i}]`)
|
||||||
) ?? [],
|
) ?? [],
|
||||||
inline: json.freeform.inline ?? false,
|
inline: json.freeform.inline ?? false,
|
||||||
default: json.freeform.default,
|
default: json.freeform.default,
|
||||||
|
@ -282,8 +282,8 @@ export default class TagRenderingConfig {
|
||||||
context,
|
context,
|
||||||
this.multiAnswer,
|
this.multiAnswer,
|
||||||
this.question !== undefined,
|
this.question !== undefined,
|
||||||
commonIconSize,
|
commonIconSize
|
||||||
),
|
)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
this.mappings = []
|
this.mappings = []
|
||||||
|
@ -309,7 +309,7 @@ export default class TagRenderingConfig {
|
||||||
for (const expectedKey of keys) {
|
for (const expectedKey of keys) {
|
||||||
if (usedKeys.indexOf(expectedKey) < 0) {
|
if (usedKeys.indexOf(expectedKey) < 0) {
|
||||||
const msg = `${context}.mappings[${i}]: This mapping only defines values for ${usedKeys.join(
|
const msg = `${context}.mappings[${i}]: This mapping only defines values for ${usedKeys.join(
|
||||||
", ",
|
", "
|
||||||
)}, but it should also give a value for ${expectedKey}`
|
)}, but it should also give a value for ${expectedKey}`
|
||||||
this.configuration_warnings.push(msg)
|
this.configuration_warnings.push(msg)
|
||||||
}
|
}
|
||||||
|
@ -356,7 +356,7 @@ export default class TagRenderingConfig {
|
||||||
context: string,
|
context: string,
|
||||||
multiAnswer?: boolean,
|
multiAnswer?: boolean,
|
||||||
isQuestionable?: boolean,
|
isQuestionable?: boolean,
|
||||||
commonSize: string = "small",
|
commonSize: string = "small"
|
||||||
): Mapping {
|
): Mapping {
|
||||||
const ctx = `${translationKey}.mappings.${i}`
|
const ctx = `${translationKey}.mappings.${i}`
|
||||||
if (mapping.if === undefined) {
|
if (mapping.if === undefined) {
|
||||||
|
@ -365,7 +365,7 @@ export default class TagRenderingConfig {
|
||||||
if (mapping.then === undefined) {
|
if (mapping.then === undefined) {
|
||||||
if (mapping["render"] !== undefined) {
|
if (mapping["render"] !== undefined) {
|
||||||
throw `${ctx}: Invalid mapping: no 'then'-clause found. You might have typed 'render' instead of 'then', change it in ${JSON.stringify(
|
throw `${ctx}: Invalid mapping: no 'then'-clause found. You might have typed 'render' instead of 'then', change it in ${JSON.stringify(
|
||||||
mapping,
|
mapping
|
||||||
)}`
|
)}`
|
||||||
}
|
}
|
||||||
throw `${ctx}: Invalid mapping: no 'then'-clause found in ${JSON.stringify(mapping)}`
|
throw `${ctx}: Invalid mapping: no 'then'-clause found in ${JSON.stringify(mapping)}`
|
||||||
|
@ -376,7 +376,7 @@ export default class TagRenderingConfig {
|
||||||
|
|
||||||
if (mapping["render"] !== undefined) {
|
if (mapping["render"] !== undefined) {
|
||||||
throw `${ctx}: Invalid mapping: a 'render'-key is present, this is probably a bug: ${JSON.stringify(
|
throw `${ctx}: Invalid mapping: a 'render'-key is present, this is probably a bug: ${JSON.stringify(
|
||||||
mapping,
|
mapping
|
||||||
)}`
|
)}`
|
||||||
}
|
}
|
||||||
if (typeof mapping.if !== "string" && mapping.if["length"] !== undefined) {
|
if (typeof mapping.if !== "string" && mapping.if["length"] !== undefined) {
|
||||||
|
@ -387,8 +387,14 @@ export default class TagRenderingConfig {
|
||||||
throw `${ctx}.addExtraTags: expected a list, but got a ${typeof mapping.addExtraTags}`
|
throw `${ctx}.addExtraTags: expected a list, but got a ${typeof mapping.addExtraTags}`
|
||||||
}
|
}
|
||||||
if (mapping.addExtraTags !== undefined && multiAnswer) {
|
if (mapping.addExtraTags !== undefined && multiAnswer) {
|
||||||
const usedKeys = mapping.addExtraTags?.flatMap((et) => TagUtils.Tag(et, context).usedKeys())
|
const usedKeys = mapping.addExtraTags?.flatMap((et) =>
|
||||||
if (usedKeys.some((key) => TagUtils.Tag(mapping.if, context).usedKeys().indexOf(key) > 0)) {
|
TagUtils.Tag(et, context).usedKeys()
|
||||||
|
)
|
||||||
|
if (
|
||||||
|
usedKeys.some(
|
||||||
|
(key) => TagUtils.Tag(mapping.if, context).usedKeys().indexOf(key) > 0
|
||||||
|
)
|
||||||
|
) {
|
||||||
throw `${ctx}: Invalid mapping: got a multi-Answer with addExtraTags which also modifies one of the keys; this is not allowed`
|
throw `${ctx}: Invalid mapping: got a multi-Answer with addExtraTags which also modifies one of the keys; this is not allowed`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -399,11 +405,11 @@ export default class TagRenderingConfig {
|
||||||
} else if (mapping.hideInAnswer !== undefined) {
|
} else if (mapping.hideInAnswer !== undefined) {
|
||||||
hideInAnswer = TagUtils.Tag(
|
hideInAnswer = TagUtils.Tag(
|
||||||
mapping.hideInAnswer,
|
mapping.hideInAnswer,
|
||||||
`${context}.mapping[${i}].hideInAnswer`,
|
`${context}.mapping[${i}].hideInAnswer`
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
const addExtraTags = (mapping.addExtraTags ?? []).map((str, j) =>
|
const addExtraTags = (mapping.addExtraTags ?? []).map((str, j) =>
|
||||||
TagUtils.SimpleTag(str, `${ctx}.addExtraTags[${j}]`),
|
TagUtils.SimpleTag(str, `${ctx}.addExtraTags[${j}]`)
|
||||||
)
|
)
|
||||||
if (hideInAnswer === true && addExtraTags.length > 0) {
|
if (hideInAnswer === true && addExtraTags.length > 0) {
|
||||||
throw `${ctx}: Invalid mapping: 'hideInAnswer' is set to 'true', but 'addExtraTags' is enabled as well. This means that extra tags will be applied if this mapping is chosen as answer, but it cannot be chosen as answer. This either indicates a thought error or obsolete code that must be removed.`
|
throw `${ctx}: Invalid mapping: 'hideInAnswer' is set to 'true', but 'addExtraTags' is enabled as well. This means that extra tags will be applied if this mapping is chosen as answer, but it cannot be chosen as answer. This either indicates a thought error or obsolete code that must be removed.`
|
||||||
|
@ -499,7 +505,7 @@ export default class TagRenderingConfig {
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
public GetRenderValues(
|
public GetRenderValues(
|
||||||
tags: Record<string, string>,
|
tags: Record<string, string>
|
||||||
): { then: Translation; icon?: string; iconClass?: string }[] {
|
): { then: Translation; icon?: string; iconClass?: string }[] {
|
||||||
if (!this.multiAnswer) {
|
if (!this.multiAnswer) {
|
||||||
return [this.GetRenderValueWithImage(tags)]
|
return [this.GetRenderValueWithImage(tags)]
|
||||||
|
@ -522,7 +528,7 @@ export default class TagRenderingConfig {
|
||||||
return mapping
|
return mapping
|
||||||
}
|
}
|
||||||
return undefined
|
return undefined
|
||||||
}),
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
if (freeformKeyDefined && tags[this.freeform.key] !== undefined) {
|
if (freeformKeyDefined && tags[this.freeform.key] !== undefined) {
|
||||||
|
@ -530,7 +536,7 @@ export default class TagRenderingConfig {
|
||||||
applicableMappings
|
applicableMappings
|
||||||
?.flatMap((m) => m.if?.usedTags() ?? [])
|
?.flatMap((m) => m.if?.usedTags() ?? [])
|
||||||
?.filter((kv) => kv.key === this.freeform.key)
|
?.filter((kv) => kv.key === this.freeform.key)
|
||||||
?.map((kv) => kv.value),
|
?.map((kv) => kv.value)
|
||||||
)
|
)
|
||||||
|
|
||||||
const freeformValues = tags[this.freeform.key].split(";")
|
const freeformValues = tags[this.freeform.key].split(";")
|
||||||
|
@ -539,7 +545,7 @@ export default class TagRenderingConfig {
|
||||||
applicableMappings.push({
|
applicableMappings.push({
|
||||||
then: new TypedTranslation<object>(
|
then: new TypedTranslation<object>(
|
||||||
this.render.replace("{" + this.freeform.key + "}", leftover).translations,
|
this.render.replace("{" + this.freeform.key + "}", leftover).translations,
|
||||||
this.render.context,
|
this.render.context
|
||||||
),
|
),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -557,7 +563,7 @@ export default class TagRenderingConfig {
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
public GetRenderValueWithImage(
|
public GetRenderValueWithImage(
|
||||||
tags: Record<string, string>,
|
tags: Record<string, string>
|
||||||
): { then: TypedTranslation<any>; icon?: string; iconClass?: string } | undefined {
|
): { then: TypedTranslation<any>; icon?: string; iconClass?: string } | undefined {
|
||||||
if (this.condition !== undefined) {
|
if (this.condition !== undefined) {
|
||||||
if (!this.condition.matchesProperties(tags)) {
|
if (!this.condition.matchesProperties(tags)) {
|
||||||
|
@ -626,7 +632,7 @@ export default class TagRenderingConfig {
|
||||||
const answerMappings = this.mappings?.filter((m) => m.hideInAnswer !== true)
|
const answerMappings = this.mappings?.filter((m) => m.hideInAnswer !== true)
|
||||||
if (key === undefined) {
|
if (key === undefined) {
|
||||||
const values: { k: string; v: string }[][] = Utils.NoNull(
|
const values: { k: string; v: string }[][] = Utils.NoNull(
|
||||||
answerMappings?.map((m) => m.if.asChange({})) ?? [],
|
answerMappings?.map((m) => m.if.asChange({})) ?? []
|
||||||
)
|
)
|
||||||
if (values.length === 0) {
|
if (values.length === 0) {
|
||||||
return
|
return
|
||||||
|
@ -644,15 +650,15 @@ export default class TagRenderingConfig {
|
||||||
return {
|
return {
|
||||||
key: commonKey,
|
key: commonKey,
|
||||||
values: Utils.NoNull(
|
values: Utils.NoNull(
|
||||||
values.map((arr) => arr.filter((item) => item.k === commonKey)[0]?.v),
|
values.map((arr) => arr.filter((item) => item.k === commonKey)[0]?.v)
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let values = Utils.NoNull(
|
let values = Utils.NoNull(
|
||||||
answerMappings?.map(
|
answerMappings?.map(
|
||||||
(m) => m.if.asChange({}).filter((item) => item.k === key)[0]?.v,
|
(m) => m.if.asChange({}).filter((item) => item.k === key)[0]?.v
|
||||||
) ?? [],
|
) ?? []
|
||||||
)
|
)
|
||||||
if (values.length === undefined) {
|
if (values.length === undefined) {
|
||||||
values = undefined
|
values = undefined
|
||||||
|
@ -716,7 +722,7 @@ export default class TagRenderingConfig {
|
||||||
freeformValue: string | undefined,
|
freeformValue: string | undefined,
|
||||||
singleSelectedMapping: number,
|
singleSelectedMapping: number,
|
||||||
multiSelectedMapping: boolean[] | undefined,
|
multiSelectedMapping: boolean[] | undefined,
|
||||||
currentProperties: Record<string, string>,
|
currentProperties: Record<string, string>
|
||||||
): UploadableTag {
|
): UploadableTag {
|
||||||
if (typeof freeformValue === "string") {
|
if (typeof freeformValue === "string") {
|
||||||
freeformValue = freeformValue?.trim()
|
freeformValue = freeformValue?.trim()
|
||||||
|
@ -791,7 +797,7 @@ export default class TagRenderingConfig {
|
||||||
new And([
|
new And([
|
||||||
new Tag(this.freeform.key, freeformValue),
|
new Tag(this.freeform.key, freeformValue),
|
||||||
...(this.freeform.addExtraTags ?? []),
|
...(this.freeform.addExtraTags ?? []),
|
||||||
]),
|
])
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
const and = TagUtils.FlattenMultiAnswer([...selectedMappings, ...unselectedMappings])
|
const and = TagUtils.FlattenMultiAnswer([...selectedMappings, ...unselectedMappings])
|
||||||
|
@ -861,11 +867,11 @@ export default class TagRenderingConfig {
|
||||||
}
|
}
|
||||||
const msgs: string[] = [
|
const msgs: string[] = [
|
||||||
icon +
|
icon +
|
||||||
" " +
|
" " +
|
||||||
"*" +
|
"*" +
|
||||||
m.then.textFor(lang) +
|
m.then.textFor(lang) +
|
||||||
"* is shown if with " +
|
"* is shown if with " +
|
||||||
m.if.asHumanString(true, false, {}),
|
m.if.asHumanString(true, false, {}),
|
||||||
]
|
]
|
||||||
|
|
||||||
if (m.hideInAnswer === true) {
|
if (m.hideInAnswer === true) {
|
||||||
|
@ -874,11 +880,11 @@ export default class TagRenderingConfig {
|
||||||
if (m.ifnot !== undefined) {
|
if (m.ifnot !== undefined) {
|
||||||
msgs.push(
|
msgs.push(
|
||||||
"Unselecting this answer will add " +
|
"Unselecting this answer will add " +
|
||||||
m.ifnot.asHumanString(true, false, {}),
|
m.ifnot.asHumanString(true, false, {})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
return msgs.join(". ")
|
return msgs.join(". ")
|
||||||
}),
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -887,7 +893,7 @@ export default class TagRenderingConfig {
|
||||||
const conditionAsLink = (<TagsFilter>this.condition.optimize()).asHumanString(
|
const conditionAsLink = (<TagsFilter>this.condition.optimize()).asHumanString(
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
{},
|
{}
|
||||||
)
|
)
|
||||||
condition =
|
condition =
|
||||||
"This tagrendering is only visible in the popup if the following condition is met: " +
|
"This tagrendering is only visible in the popup if the following condition is met: " +
|
||||||
|
@ -921,7 +927,7 @@ export default class TagRenderingConfig {
|
||||||
this.metacondition,
|
this.metacondition,
|
||||||
this.condition,
|
this.condition,
|
||||||
this.freeform?.key ? new RegexTag(this.freeform?.key, /.*/) : undefined,
|
this.freeform?.key ? new RegexTag(this.freeform?.key, /.*/) : undefined,
|
||||||
this.invalidValues,
|
this.invalidValues
|
||||||
)
|
)
|
||||||
for (const m of this.mappings ?? []) {
|
for (const m of this.mappings ?? []) {
|
||||||
tags.push(m.if)
|
tags.push(m.if)
|
||||||
|
@ -943,7 +949,7 @@ export default class TagRenderingConfig {
|
||||||
*/
|
*/
|
||||||
public removeToSetUnknown(
|
public removeToSetUnknown(
|
||||||
partOfLayer: LayerConfig,
|
partOfLayer: LayerConfig,
|
||||||
currentTags: Record<string, string>,
|
currentTags: Record<string, string>
|
||||||
): string[] | undefined {
|
): string[] | undefined {
|
||||||
if (!partOfLayer?.source || !currentTags) {
|
if (!partOfLayer?.source || !currentTags) {
|
||||||
return
|
return
|
||||||
|
@ -991,7 +997,7 @@ export class TagRenderingConfigUtils {
|
||||||
public static withNameSuggestionIndex(
|
public static withNameSuggestionIndex(
|
||||||
config: TagRenderingConfig,
|
config: TagRenderingConfig,
|
||||||
tags: UIEventSource<Record<string, string>>,
|
tags: UIEventSource<Record<string, string>>,
|
||||||
feature?: Feature,
|
feature?: Feature
|
||||||
): Store<TagRenderingConfig> {
|
): Store<TagRenderingConfig> {
|
||||||
const isNSI = NameSuggestionIndex.supportedTypes().indexOf(config.freeform?.key) >= 0
|
const isNSI = NameSuggestionIndex.supportedTypes().indexOf(config.freeform?.key) >= 0
|
||||||
if (!isNSI) {
|
if (!isNSI) {
|
||||||
|
@ -1009,8 +1015,8 @@ export class TagRenderingConfigUtils {
|
||||||
tags,
|
tags,
|
||||||
country.split(";"),
|
country.split(";"),
|
||||||
center,
|
center,
|
||||||
{ sortByFrequency: true },
|
{ sortByFrequency: true }
|
||||||
),
|
)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
return extraMappings.map((extraMappings) => {
|
return extraMappings.map((extraMappings) => {
|
||||||
|
|
|
@ -178,7 +178,7 @@ export default class ThemeViewState implements SpecialVisualizationState {
|
||||||
this.map = new UIEventSource<MlMap>(undefined)
|
this.map = new UIEventSource<MlMap>(undefined)
|
||||||
const geolocationState = new GeoLocationState()
|
const geolocationState = new GeoLocationState()
|
||||||
const initial = new InitialMapPositioning(layout, geolocationState)
|
const initial = new InitialMapPositioning(layout, geolocationState)
|
||||||
this.mapProperties = new MapLibreAdaptor(this.map, initial, {correctClick: 20})
|
this.mapProperties = new MapLibreAdaptor(this.map, initial, { correctClick: 20 })
|
||||||
|
|
||||||
this.featureSwitchIsTesting = this.featureSwitches.featureSwitchIsTesting
|
this.featureSwitchIsTesting = this.featureSwitches.featureSwitchIsTesting
|
||||||
this.featureSwitchUserbadge = this.featureSwitches.featureSwitchEnableLogin
|
this.featureSwitchUserbadge = this.featureSwitches.featureSwitchEnableLogin
|
||||||
|
@ -557,9 +557,12 @@ export default class ThemeViewState implements SpecialVisualizationState {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
private setSelectedElement(feature: Feature){
|
private setSelectedElement(feature: Feature) {
|
||||||
const current = this.selectedElement.data
|
const current = this.selectedElement.data
|
||||||
if(current?.properties?.id !== undefined && current.properties.id === feature.properties.id ){
|
if (
|
||||||
|
current?.properties?.id !== undefined &&
|
||||||
|
current.properties.id === feature.properties.id
|
||||||
|
) {
|
||||||
console.log("Not setting selected, same id", current, feature)
|
console.log("Not setting selected, same id", current, feature)
|
||||||
return // already set
|
return // already set
|
||||||
}
|
}
|
||||||
|
@ -1002,13 +1005,12 @@ export default class ThemeViewState implements SpecialVisualizationState {
|
||||||
this.userRelatedState.recentlyVisitedSearch.add(r)
|
this.userRelatedState.recentlyVisitedSearch.add(r)
|
||||||
})
|
})
|
||||||
|
|
||||||
this.mapProperties.lastClickLocation.addCallbackD(lastClick => {
|
this.mapProperties.lastClickLocation.addCallbackD((lastClick) => {
|
||||||
if(lastClick.mode !== "left" || !lastClick.nearestFeature){
|
if (lastClick.mode !== "left" || !lastClick.nearestFeature) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const f = lastClick.nearestFeature
|
const f = lastClick.nearestFeature
|
||||||
this.setSelectedElement(f)
|
this.setSelectedElement(f)
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
this.userRelatedState.showScale.addCallbackAndRun((showScale) => {
|
this.userRelatedState.showScale.addCallbackAndRun((showScale) => {
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.dots-menu > path) {
|
:global(.dots-menu > path) {
|
||||||
fill: var(--button-background-hover);
|
fill: var(--button-background-hover);
|
||||||
transition: fill 350ms linear;
|
transition: fill 350ms linear;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
@ -73,9 +73,9 @@
|
||||||
background-color: white;
|
background-color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.transition-background {
|
.transition-background {
|
||||||
transition: background-color 150ms linear;
|
transition: background-color 150ms linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
.transition-background.collapsed {
|
.transition-background.collapsed {
|
||||||
background-color: #00000000;
|
background-color: #00000000;
|
||||||
|
|
|
@ -65,7 +65,10 @@
|
||||||
|
|
||||||
{#if $value.length > 0}
|
{#if $value.length > 0}
|
||||||
<Backspace
|
<Backspace
|
||||||
on:click={(e) =>{ value.set("") ; e.preventDefault()}}
|
on:click={(e) => {
|
||||||
|
value.set("")
|
||||||
|
e.preventDefault()
|
||||||
|
}}
|
||||||
color="var(--button-background)"
|
color="var(--button-background)"
|
||||||
class="mr-3 h-6 w-6 cursor-pointer"
|
class="mr-3 h-6 w-6 cursor-pointer"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
(s) =>
|
(s) =>
|
||||||
(s === "yes" &&
|
(s === "yes" &&
|
||||||
state?.userRelatedState?.osmConnection?.userDetails?.data?.csCount >=
|
state?.userRelatedState?.osmConnection?.userDetails?.data?.csCount >=
|
||||||
Constants.userJourney.tagsVisibleAt) ||
|
Constants.userJourney.tagsVisibleAt) ||
|
||||||
s === "always" ||
|
s === "always" ||
|
||||||
s === "full"
|
s === "full"
|
||||||
)
|
)
|
||||||
|
@ -64,9 +64,9 @@
|
||||||
<Tr t={filteredLayer.layerDef.name} />
|
<Tr t={filteredLayer.layerDef.name} />
|
||||||
|
|
||||||
{#if $zoomlevel < layer.minzoom}
|
{#if $zoomlevel < layer.minzoom}
|
||||||
<span class="alert">
|
<span class="alert">
|
||||||
<Tr t={Translations.t.general.layerSelection.zoomInToSeeThisLayer} />
|
<Tr t={Translations.t.general.layerSelection.zoomInToSeeThisLayer} />
|
||||||
</span>
|
</span>
|
||||||
{/if}
|
{/if}
|
||||||
</Checkbox>
|
</Checkbox>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
|
@ -65,22 +65,24 @@
|
||||||
export let onlyLink: boolean
|
export let onlyLink: boolean
|
||||||
const t = Translations.t.general.menu
|
const t = Translations.t.general.menu
|
||||||
let shown = new UIEventSource(state.guistate.pageStates.menu.data || !onlyLink)
|
let shown = new UIEventSource(state.guistate.pageStates.menu.data || !onlyLink)
|
||||||
state.guistate.pageStates.menu.addCallback(isShown => {
|
state.guistate.pageStates.menu.addCallback((isShown) => {
|
||||||
if(!onlyLink){
|
if (!onlyLink) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if(isShown){
|
if (isShown) {
|
||||||
shown.setData(true)
|
shown.setData(true)
|
||||||
}else{
|
} else {
|
||||||
Utils.waitFor(250).then(() => {
|
Utils.waitFor(250).then(() => {
|
||||||
shown.setData(state.guistate.pageStates.menu.data)
|
shown.setData(state.guistate.pageStates.menu.data)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="low-interaction flex h-screen flex-col gap-y-2 overflow-y-auto p-2 sm:gap-y-3 sm:p-3" class:hidden={!$shown}>
|
<div
|
||||||
|
class="low-interaction flex h-screen flex-col gap-y-2 overflow-y-auto p-2 sm:gap-y-3 sm:p-3"
|
||||||
|
class:hidden={!$shown}
|
||||||
|
>
|
||||||
<div class="flex justify-between">
|
<div class="flex justify-between">
|
||||||
<h2>
|
<h2>
|
||||||
<Tr t={t.title} />
|
<Tr t={t.title} />
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
/**
|
/**
|
||||||
* Reuse a point if the clicked location is within this amount of meter
|
* Reuse a point if the clicked location is within this amount of meter
|
||||||
*/
|
*/
|
||||||
export let snapTolerance: number = 5
|
export let snapTolerance: number = 5
|
||||||
|
|
||||||
let map: UIEventSource<MlMap> = new UIEventSource<MlMap>(undefined)
|
let map: UIEventSource<MlMap> = new UIEventSource<MlMap>(undefined)
|
||||||
let adaptor = new MapLibreAdaptor(map, mapProperties)
|
let adaptor = new MapLibreAdaptor(map, mapProperties)
|
||||||
|
@ -101,7 +101,8 @@
|
||||||
})
|
})
|
||||||
let id = 0
|
let id = 0
|
||||||
adaptor.lastClickLocation.addCallbackD(({ lon, lat }) => {
|
adaptor.lastClickLocation.addCallbackD(({ lon, lat }) => {
|
||||||
let projected: Feature<Point, {index:number, id?: number, reuse?: string}> = GeoOperations.nearestPoint(wayGeojson, [lon, lat])
|
let projected: Feature<Point, { index: number; id?: number; reuse?: string }> =
|
||||||
|
GeoOperations.nearestPoint(wayGeojson, [lon, lat])
|
||||||
|
|
||||||
console.log("Added splitpoint", projected, id)
|
console.log("Added splitpoint", projected, id)
|
||||||
|
|
||||||
|
@ -110,36 +111,36 @@
|
||||||
const i = projected.properties.index
|
const i = projected.properties.index
|
||||||
const p = projected.geometry.coordinates
|
const p = projected.geometry.coordinates
|
||||||
const way = wayGeojson.geometry.coordinates
|
const way = wayGeojson.geometry.coordinates
|
||||||
const nextPoint = <[number,number]> way[i + 1]
|
const nextPoint = <[number, number]>way[i + 1]
|
||||||
const nextDistance = GeoOperations.distanceBetween(nextPoint, p)
|
const nextDistance = GeoOperations.distanceBetween(nextPoint, p)
|
||||||
const previousPoint = <[number,number]> way[i]
|
const previousPoint = <[number, number]>way[i]
|
||||||
const previousDistance = GeoOperations.distanceBetween(previousPoint, p)
|
const previousDistance = GeoOperations.distanceBetween(previousPoint, p)
|
||||||
|
|
||||||
console.log("ND", nextDistance, "PD", previousDistance)
|
console.log("ND", nextDistance, "PD", previousDistance)
|
||||||
if(nextDistance <= snapTolerance && previousDistance >= nextDistance){
|
if (nextDistance <= snapTolerance && previousDistance >= nextDistance) {
|
||||||
projected = {
|
projected = {
|
||||||
type:"Feature",
|
type: "Feature",
|
||||||
geometry: {
|
geometry: {
|
||||||
type:"Point",
|
type: "Point",
|
||||||
coordinates: nextPoint
|
coordinates: nextPoint,
|
||||||
},
|
},
|
||||||
properties: {
|
properties: {
|
||||||
index: i+1,
|
index: i + 1,
|
||||||
reuse: "yes"
|
reuse: "yes",
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (previousDistance <= snapTolerance && previousDistance < nextDistance){
|
if (previousDistance <= snapTolerance && previousDistance < nextDistance) {
|
||||||
projected = {
|
projected = {
|
||||||
type:"Feature",
|
type: "Feature",
|
||||||
geometry: {
|
geometry: {
|
||||||
type:"Point",
|
type: "Point",
|
||||||
coordinates: previousPoint
|
coordinates: previousPoint,
|
||||||
},
|
},
|
||||||
properties: {
|
properties: {
|
||||||
index: i,
|
index: i,
|
||||||
reuse: "yes"
|
reuse: "yes",
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
|
|
||||||
let errors = new UIEventSource<Translation[]>([])
|
let errors = new UIEventSource<Translation[]>([])
|
||||||
|
|
||||||
async function handleFiles(files: FileList, ignoreGps: boolean= false) {
|
async function handleFiles(files: FileList, ignoreGps: boolean = false) {
|
||||||
const errs = []
|
const errs = []
|
||||||
for (let i = 0; i < files.length; i++) {
|
for (let i = 0; i < files.length; i++) {
|
||||||
const file = files.item(i)
|
const file = files.item(i)
|
||||||
|
@ -102,7 +102,11 @@
|
||||||
capture="environment"
|
capture="environment"
|
||||||
cls="button border-2 flex flex-col"
|
cls="button border-2 flex flex-col"
|
||||||
multiple={true}
|
multiple={true}
|
||||||
on:submit={(e) =>{ handleFiles(e.detail) ; e.preventDefault(); e.stopPropagation()}}
|
on:submit={(e) => {
|
||||||
|
handleFiles(e.detail)
|
||||||
|
e.preventDefault()
|
||||||
|
e.stopPropagation()
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<div class="flex w-full items-center justify-center text-2xl">
|
<div class="flex w-full items-center justify-center text-2xl">
|
||||||
{#if image !== undefined}
|
{#if image !== undefined}
|
||||||
|
@ -114,7 +118,7 @@
|
||||||
{labelText}
|
{labelText}
|
||||||
{:else}
|
{:else}
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<Tr t={t.addPicture}/>
|
<Tr t={t.addPicture} />
|
||||||
{#if noBlur}
|
{#if noBlur}
|
||||||
<span class="subtle text-sm">
|
<span class="subtle text-sm">
|
||||||
<Tr t={t.upload.noBlur} />
|
<Tr t={t.upload.noBlur} />
|
||||||
|
@ -128,9 +132,13 @@
|
||||||
accept=".jpg, .jpeg"
|
accept=".jpg, .jpeg"
|
||||||
cls="flex justify-center md:hidden button"
|
cls="flex justify-center md:hidden button"
|
||||||
multiple={true}
|
multiple={true}
|
||||||
on:submit={(e) =>{ return handleFiles(e.detail, true) ; e.preventDefault(); e.stopPropagation()}}
|
on:submit={(e) => {
|
||||||
|
return handleFiles(e.detail, true)
|
||||||
|
e.preventDefault()
|
||||||
|
e.stopPropagation()
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Tr t={t.selectFile}/>
|
<Tr t={t.selectFile} />
|
||||||
</FileSelector>
|
</FileSelector>
|
||||||
<div class="subtle text-xs italic">
|
<div class="subtle text-xs italic">
|
||||||
<Tr t={Translations.t.general.attribution.panoramaxLicenseCCBYSA} />
|
<Tr t={Translations.t.general.attribution.panoramaxLicenseCCBYSA} />
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
import { ImmutableStore, Store, UIEventSource } from "../../Logic/UIEventSource"
|
import { ImmutableStore, Store, UIEventSource } from "../../Logic/UIEventSource"
|
||||||
import maplibregl, { Map as MLMap, Map as MlMap, ScaleControl, SourceSpecification } from "maplibre-gl"
|
import maplibregl, {
|
||||||
|
Map as MLMap,
|
||||||
|
Map as MlMap,
|
||||||
|
ScaleControl,
|
||||||
|
SourceSpecification,
|
||||||
|
} from "maplibre-gl"
|
||||||
import { RasterLayerPolygon } from "../../Models/RasterLayers"
|
import { RasterLayerPolygon } from "../../Models/RasterLayers"
|
||||||
import { Utils } from "../../Utils"
|
import { Utils } from "../../Utils"
|
||||||
import { BBox } from "../../Logic/BBox"
|
import { BBox } from "../../Logic/BBox"
|
||||||
|
@ -43,10 +48,16 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
||||||
readonly allowRotating: UIEventSource<true | boolean | undefined>
|
readonly allowRotating: UIEventSource<true | boolean | undefined>
|
||||||
readonly allowZooming: UIEventSource<true | boolean | undefined>
|
readonly allowZooming: UIEventSource<true | boolean | undefined>
|
||||||
readonly lastClickLocation: Store<
|
readonly lastClickLocation: Store<
|
||||||
undefined | { lon: number; lat: number; mode: "left" | "right" | "middle" , /**
|
| undefined
|
||||||
* The nearest feature from a MapComplete layer
|
| {
|
||||||
*/
|
lon: number
|
||||||
nearestFeature?: Feature }
|
lat: number
|
||||||
|
mode: "left" | "right" | "middle"
|
||||||
|
/**
|
||||||
|
* The nearest feature from a MapComplete layer
|
||||||
|
*/
|
||||||
|
nearestFeature?: Feature
|
||||||
|
}
|
||||||
>
|
>
|
||||||
readonly minzoom: UIEventSource<number>
|
readonly minzoom: UIEventSource<number>
|
||||||
readonly maxzoom: UIEventSource<number>
|
readonly maxzoom: UIEventSource<number>
|
||||||
|
@ -64,9 +75,13 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
||||||
|
|
||||||
private readonly _maplibreMap: Store<MLMap>
|
private readonly _maplibreMap: Store<MLMap>
|
||||||
|
|
||||||
constructor(maplibreMap: Store<MLMap>, state?: Partial<MapProperties>, options?:{
|
constructor(
|
||||||
correctClick?: number
|
maplibreMap: Store<MLMap>,
|
||||||
}) {
|
state?: Partial<MapProperties>,
|
||||||
|
options?: {
|
||||||
|
correctClick?: number
|
||||||
|
}
|
||||||
|
) {
|
||||||
if (!MapLibreAdaptor.pmtilesInited) {
|
if (!MapLibreAdaptor.pmtilesInited) {
|
||||||
maplibregl.addProtocol("pmtiles", new Protocol().tile)
|
maplibregl.addProtocol("pmtiles", new Protocol().tile)
|
||||||
MapLibreAdaptor.pmtilesInited = true
|
MapLibreAdaptor.pmtilesInited = true
|
||||||
|
@ -106,7 +121,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
||||||
const lastClickLocation = new UIEventSource<{
|
const lastClickLocation = new UIEventSource<{
|
||||||
lat: number
|
lat: number
|
||||||
lon: number
|
lon: number
|
||||||
mode: "left" | "right" | "middle",
|
mode: "left" | "right" | "middle"
|
||||||
nearestFeature?: Feature
|
nearestFeature?: Feature
|
||||||
}>(undefined)
|
}>(undefined)
|
||||||
this.lastClickLocation = lastClickLocation
|
this.lastClickLocation = lastClickLocation
|
||||||
|
@ -126,30 +141,32 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
||||||
const mouseEvent: MouseEvent = e.originalEvent
|
const mouseEvent: MouseEvent = e.originalEvent
|
||||||
mode = mode ?? clickmodes[mouseEvent.button]
|
mode = mode ?? clickmodes[mouseEvent.button]
|
||||||
let nearestFeature: Feature = undefined
|
let nearestFeature: Feature = undefined
|
||||||
if(options?.correctClick && maplibreMap.data){
|
if (options?.correctClick && maplibreMap.data) {
|
||||||
const map = maplibreMap.data
|
const map = maplibreMap.data
|
||||||
const point = e.point
|
const point = e.point
|
||||||
const buffer = options?.correctClick
|
const buffer = options?.correctClick
|
||||||
const features = map.queryRenderedFeatures([
|
const features = map
|
||||||
[point.x - buffer, point.y - buffer],
|
.queryRenderedFeatures([
|
||||||
[point.x + buffer, point.y + buffer]
|
[point.x - buffer, point.y - buffer],
|
||||||
]).filter(f => f.source.startsWith("mapcomplete_"))
|
[point.x + buffer, point.y + buffer],
|
||||||
if(features.length === 1){
|
])
|
||||||
|
.filter((f) => f.source.startsWith("mapcomplete_"))
|
||||||
|
if (features.length === 1) {
|
||||||
nearestFeature = features[0]
|
nearestFeature = features[0]
|
||||||
}else{
|
} else {
|
||||||
let nearestD: number = undefined
|
let nearestD: number = undefined
|
||||||
for (const feature of features) {
|
for (const feature of features) {
|
||||||
let d: number // in meter
|
let d: number // in meter
|
||||||
if(feature.geometry.type === "LineString"){
|
if (feature.geometry.type === "LineString") {
|
||||||
const way = <Feature<LineString>> feature
|
const way = <Feature<LineString>>feature
|
||||||
const lngLat:[number,number] = [e.lngLat.lng, e.lngLat.lat]
|
const lngLat: [number, number] = [e.lngLat.lng, e.lngLat.lat]
|
||||||
const p = GeoOperations.nearestPoint(way, lngLat)
|
const p = GeoOperations.nearestPoint(way, lngLat)
|
||||||
console.log(">>>",p, way, lngLat)
|
console.log(">>>", p, way, lngLat)
|
||||||
if(!p){
|
if (!p) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
d = p.properties.dist * 1000
|
d = p.properties.dist * 1000
|
||||||
if(nearestFeature === undefined || d < nearestD){
|
if (nearestFeature === undefined || d < nearestD) {
|
||||||
nearestFeature = way
|
nearestFeature = way
|
||||||
nearestD = d
|
nearestD = d
|
||||||
}
|
}
|
||||||
|
@ -158,7 +175,6 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lastClickLocation.setData({ lon, lat, mode, nearestFeature })
|
lastClickLocation.setData({ lon, lat, mode, nearestFeature })
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
maplibreMap.addCallbackAndRunD((map) => {
|
maplibreMap.addCallbackAndRunD((map) => {
|
||||||
|
|
|
@ -39,7 +39,7 @@ class PointRenderingLayer {
|
||||||
visibility?: Store<boolean>,
|
visibility?: Store<boolean>,
|
||||||
fetchStore?: (id: string) => Store<Record<string, string>>,
|
fetchStore?: (id: string) => Store<Record<string, string>>,
|
||||||
onClick?: (feature: Feature) => void,
|
onClick?: (feature: Feature) => void,
|
||||||
selectedElement?: Store<{ properties: { id?: string } }>,
|
selectedElement?: Store<{ properties: { id?: string } }>
|
||||||
) {
|
) {
|
||||||
this._visibility = visibility
|
this._visibility = visibility
|
||||||
this._config = config
|
this._config = config
|
||||||
|
@ -98,7 +98,7 @@ class PointRenderingLayer {
|
||||||
" while rendering",
|
" while rendering",
|
||||||
location,
|
location,
|
||||||
"of",
|
"of",
|
||||||
this._config,
|
this._config
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
const id = feature.properties.id + "-" + location
|
const id = feature.properties.id + "-" + location
|
||||||
|
@ -110,7 +110,10 @@ class PointRenderingLayer {
|
||||||
this.addPoint(feature, <[number, number]>loc)
|
this.addPoint(feature, <[number, number]>loc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (feature.geometry.type === "MultiLineString" || feature.geometry.type === "Polygon") {
|
if (
|
||||||
|
feature.geometry.type === "MultiLineString" ||
|
||||||
|
feature.geometry.type === "Polygon"
|
||||||
|
) {
|
||||||
for (const coors of feature.geometry.coordinates) {
|
for (const coors of feature.geometry.coordinates) {
|
||||||
for (const loc of coors) {
|
for (const loc of coors) {
|
||||||
this.addPoint(feature, <[number, number]>loc)
|
this.addPoint(feature, <[number, number]>loc)
|
||||||
|
@ -122,7 +125,7 @@ class PointRenderingLayer {
|
||||||
|
|
||||||
const loc = GeoOperations.featureToCoordinateWithRenderingType(
|
const loc = GeoOperations.featureToCoordinateWithRenderingType(
|
||||||
<any>feature,
|
<any>feature,
|
||||||
location,
|
location
|
||||||
)
|
)
|
||||||
if (loc === undefined) {
|
if (loc === undefined) {
|
||||||
continue
|
continue
|
||||||
|
@ -251,7 +254,7 @@ class LineRenderingLayer {
|
||||||
config: LineRenderingConfig,
|
config: LineRenderingConfig,
|
||||||
visibility?: Store<boolean>,
|
visibility?: Store<boolean>,
|
||||||
fetchStore?: (id: string) => Store<Record<string, string>>,
|
fetchStore?: (id: string) => Store<Record<string, string>>,
|
||||||
onClick?: (feature: Feature) => void,
|
onClick?: (feature: Feature) => void
|
||||||
) {
|
) {
|
||||||
this._layername = layername
|
this._layername = layername
|
||||||
this._map = map
|
this._map = map
|
||||||
|
@ -271,7 +274,7 @@ class LineRenderingLayer {
|
||||||
|
|
||||||
private async addSymbolLayer(
|
private async addSymbolLayer(
|
||||||
sourceId: string,
|
sourceId: string,
|
||||||
imageAlongWay: { if?: TagsFilter; then: string }[],
|
imageAlongWay: { if?: TagsFilter; then: string }[]
|
||||||
) {
|
) {
|
||||||
const map = this._map
|
const map = this._map
|
||||||
await Promise.allSettled(
|
await Promise.allSettled(
|
||||||
|
@ -301,7 +304,7 @@ class LineRenderingLayer {
|
||||||
spec.filter = filter
|
spec.filter = filter
|
||||||
}
|
}
|
||||||
map.addLayer(spec)
|
map.addLayer(spec)
|
||||||
}),
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -311,7 +314,7 @@ class LineRenderingLayer {
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
private calculatePropsFor(
|
private calculatePropsFor(
|
||||||
properties: Record<string, string>,
|
properties: Record<string, string>
|
||||||
): Partial<Record<(typeof LineRenderingLayer.lineConfigKeys)[number], string>> {
|
): Partial<Record<(typeof LineRenderingLayer.lineConfigKeys)[number], string>> {
|
||||||
const config = this._config
|
const config = this._config
|
||||||
|
|
||||||
|
@ -393,7 +396,7 @@ class LineRenderingLayer {
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(
|
console.error(
|
||||||
`Invalid dasharray in layer ${this._layername}:`,
|
`Invalid dasharray in layer ${this._layername}:`,
|
||||||
this._config.dashArray,
|
this._config.dashArray
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -410,11 +413,11 @@ class LineRenderingLayer {
|
||||||
}
|
}
|
||||||
map.setFeatureState(
|
map.setFeatureState(
|
||||||
{ source: this._layername, id: feature.properties.id },
|
{ source: this._layername, id: feature.properties.id },
|
||||||
this.calculatePropsFor(feature.properties),
|
this.calculatePropsFor(feature.properties)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this._onClick){
|
if (this._onClick) {
|
||||||
map.on("click", linelayer, (e) => {
|
map.on("click", linelayer, (e) => {
|
||||||
// line-layer-listener
|
// line-layer-listener
|
||||||
e.originalEvent["consumed"] = true
|
e.originalEvent["consumed"] = true
|
||||||
|
@ -455,7 +458,7 @@ class LineRenderingLayer {
|
||||||
"Error while setting visibility of layers ",
|
"Error while setting visibility of layers ",
|
||||||
linelayer,
|
linelayer,
|
||||||
polylayer,
|
polylayer,
|
||||||
e,
|
e
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -476,7 +479,7 @@ class LineRenderingLayer {
|
||||||
console.trace(
|
console.trace(
|
||||||
"Got a feature without ID; this causes rendering bugs:",
|
"Got a feature without ID; this causes rendering bugs:",
|
||||||
feature,
|
feature,
|
||||||
"from",
|
"from"
|
||||||
)
|
)
|
||||||
LineRenderingLayer.missingIdTriggered = true
|
LineRenderingLayer.missingIdTriggered = true
|
||||||
}
|
}
|
||||||
|
@ -488,7 +491,7 @@ class LineRenderingLayer {
|
||||||
if (this._fetchStore === undefined) {
|
if (this._fetchStore === undefined) {
|
||||||
map.setFeatureState(
|
map.setFeatureState(
|
||||||
{ source: this._layername, id },
|
{ source: this._layername, id },
|
||||||
this.calculatePropsFor(feature.properties),
|
this.calculatePropsFor(feature.properties)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
const tags = this._fetchStore(id)
|
const tags = this._fetchStore(id)
|
||||||
|
@ -505,7 +508,7 @@ class LineRenderingLayer {
|
||||||
}
|
}
|
||||||
map.setFeatureState(
|
map.setFeatureState(
|
||||||
{ source: this._layername, id },
|
{ source: this._layername, id },
|
||||||
this.calculatePropsFor(properties),
|
this.calculatePropsFor(properties)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -529,7 +532,7 @@ export default class ShowDataLayer {
|
||||||
layer: LayerConfig
|
layer: LayerConfig
|
||||||
drawMarkers?: true | boolean
|
drawMarkers?: true | boolean
|
||||||
drawLines?: true | boolean
|
drawLines?: true | boolean
|
||||||
},
|
}
|
||||||
) {
|
) {
|
||||||
this._options = options
|
this._options = options
|
||||||
this.onDestroy.push(map.addCallbackAndRunD((map) => this.initDrawFeatures(map)))
|
this.onDestroy.push(map.addCallbackAndRunD((map) => this.initDrawFeatures(map)))
|
||||||
|
@ -539,7 +542,7 @@ export default class ShowDataLayer {
|
||||||
mlmap: UIEventSource<MlMap>,
|
mlmap: UIEventSource<MlMap>,
|
||||||
features: FeatureSource,
|
features: FeatureSource,
|
||||||
layers: LayerConfig[],
|
layers: LayerConfig[],
|
||||||
options?: Partial<ShowDataLayerOptions>,
|
options?: Partial<ShowDataLayerOptions>
|
||||||
) {
|
) {
|
||||||
const perLayer: PerLayerFeatureSourceSplitter<FeatureSourceForLayer> =
|
const perLayer: PerLayerFeatureSourceSplitter<FeatureSourceForLayer> =
|
||||||
new PerLayerFeatureSourceSplitter(
|
new PerLayerFeatureSourceSplitter(
|
||||||
|
@ -547,7 +550,7 @@ export default class ShowDataLayer {
|
||||||
features,
|
features,
|
||||||
{
|
{
|
||||||
constructStore: (features, layer) => new SimpleFeatureSource(layer, features),
|
constructStore: (features, layer) => new SimpleFeatureSource(layer, features),
|
||||||
},
|
}
|
||||||
)
|
)
|
||||||
if (options?.zoomToFeatures) {
|
if (options?.zoomToFeatures) {
|
||||||
options.zoomToFeatures = false
|
options.zoomToFeatures = false
|
||||||
|
@ -571,7 +574,7 @@ export default class ShowDataLayer {
|
||||||
public static showRange(
|
public static showRange(
|
||||||
map: Store<MlMap>,
|
map: Store<MlMap>,
|
||||||
features: FeatureSource,
|
features: FeatureSource,
|
||||||
doShowLayer?: Store<boolean>,
|
doShowLayer?: Store<boolean>
|
||||||
): ShowDataLayer {
|
): ShowDataLayer {
|
||||||
return new ShowDataLayer(map, {
|
return new ShowDataLayer(map, {
|
||||||
layer: ShowDataLayer.rangeLayer,
|
layer: ShowDataLayer.rangeLayer,
|
||||||
|
@ -580,8 +583,7 @@ export default class ShowDataLayer {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
public destruct() {
|
public destruct() {}
|
||||||
}
|
|
||||||
|
|
||||||
private static zoomToCurrentFeatures(map: MlMap, features: Feature[]) {
|
private static zoomToCurrentFeatures(map: MlMap, features: Feature[]) {
|
||||||
if (!features || !map || features.length == 0) {
|
if (!features || !map || features.length == 0) {
|
||||||
|
@ -605,8 +607,8 @@ export default class ShowDataLayer {
|
||||||
this._options.layer.title === undefined
|
this._options.layer.title === undefined
|
||||||
? undefined
|
? undefined
|
||||||
: (feature: Feature) => {
|
: (feature: Feature) => {
|
||||||
selectedElement?.setData(feature)
|
selectedElement?.setData(feature)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this._options.drawLines !== false) {
|
if (this._options.drawLines !== false) {
|
||||||
for (let i = 0; i < this._options.layer.lineRendering.length; i++) {
|
for (let i = 0; i < this._options.layer.lineRendering.length; i++) {
|
||||||
|
@ -618,7 +620,7 @@ export default class ShowDataLayer {
|
||||||
lineRenderingConfig,
|
lineRenderingConfig,
|
||||||
doShowLayer,
|
doShowLayer,
|
||||||
fetchStore,
|
fetchStore,
|
||||||
onClick,
|
onClick
|
||||||
)
|
)
|
||||||
this.onDestroy.push(l.destruct)
|
this.onDestroy.push(l.destruct)
|
||||||
}
|
}
|
||||||
|
@ -634,13 +636,13 @@ export default class ShowDataLayer {
|
||||||
doShowLayer,
|
doShowLayer,
|
||||||
fetchStore,
|
fetchStore,
|
||||||
onClick,
|
onClick,
|
||||||
selectedElement,
|
selectedElement
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this._options.zoomToFeatures) {
|
if (this._options.zoomToFeatures) {
|
||||||
features.features.addCallbackAndRunD((features) =>
|
features.features.addCallbackAndRunD((features) =>
|
||||||
ShowDataLayer.zoomToCurrentFeatures(map, features),
|
ShowDataLayer.zoomToCurrentFeatures(map, features)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,11 +61,11 @@
|
||||||
const changedProperties = TagUtils.changeAsProperties(selectedTags.asChange(tags?.data ?? {}))
|
const changedProperties = TagUtils.changeAsProperties(selectedTags.asChange(tags?.data ?? {}))
|
||||||
const deleteReason = changedProperties[DeleteConfig.deleteReasonKey]
|
const deleteReason = changedProperties[DeleteConfig.deleteReasonKey]
|
||||||
if (deleteReason) {
|
if (deleteReason) {
|
||||||
|
|
||||||
let softDeletionTags: UploadableTag
|
let softDeletionTags: UploadableTag
|
||||||
if(hasSoftDeletion){
|
if (hasSoftDeletion) {
|
||||||
softDeletionTags = new And([deleteConfig.softDeletionTags,
|
softDeletionTags = new And([
|
||||||
...layer.tagRenderings.flatMap(tr => tr.onSoftDelete ?? []),
|
deleteConfig.softDeletionTags,
|
||||||
|
...layer.tagRenderings.flatMap((tr) => tr.onSoftDelete ?? []),
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,11 @@
|
||||||
* Shows _all_ disabled questions
|
* Shows _all_ disabled questions
|
||||||
*/
|
*/
|
||||||
export let state
|
export let state
|
||||||
let layers = state.layout.layers.filter(l => l.isNormal())
|
let layers = state.layout.layers.filter((l) => l.isNormal())
|
||||||
|
|
||||||
let allDisabled = Stores.concat<string>(layers.map(l => state.userRelatedState.getThemeDisabled(state.layout.id, l.id))).map(l => [].concat(...l))
|
let allDisabled = Stores.concat<string>(
|
||||||
|
layers.map((l) => state.userRelatedState.getThemeDisabled(state.layout.id, l.id))
|
||||||
|
).map((l) => [].concat(...l))
|
||||||
const t = Translations.t.general.questions
|
const t = Translations.t.general.questions
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
<script lang="ts">/**
|
<script lang="ts">
|
||||||
* Gives an overview of questions which are disabled for the given theme
|
/**
|
||||||
*/
|
* Gives an overview of questions which are disabled for the given theme
|
||||||
import UserRelatedState from "../../Logic/State/UserRelatedState"
|
*/
|
||||||
import LayerConfig from "../../Models/ThemeConfig/LayerConfig"
|
import UserRelatedState from "../../Logic/State/UserRelatedState"
|
||||||
import ThemeViewState from "../../Models/ThemeViewState"
|
import LayerConfig from "../../Models/ThemeConfig/LayerConfig"
|
||||||
import Tr from "../Base/Tr.svelte"
|
import ThemeViewState from "../../Models/ThemeViewState"
|
||||||
import { Translation } from "../i18n/Translation"
|
import Tr from "../Base/Tr.svelte"
|
||||||
import { XMarkIcon } from "@babeard/svelte-heroicons/mini"
|
import { Translation } from "../i18n/Translation"
|
||||||
import ToSvelte from "../Base/ToSvelte.svelte"
|
import { XMarkIcon } from "@babeard/svelte-heroicons/mini"
|
||||||
|
import ToSvelte from "../Base/ToSvelte.svelte"
|
||||||
|
|
||||||
export let layer: LayerConfig
|
export let layer: LayerConfig
|
||||||
export let state: ThemeViewState
|
export let state: ThemeViewState
|
||||||
|
|
||||||
let disabledQuestions = state.userRelatedState.getThemeDisabled(state.layout.id, layer.id)
|
let disabledQuestions = state.userRelatedState.getThemeDisabled(state.layout.id, layer.id)
|
||||||
|
|
||||||
function getQuestion(id: string): Translation {
|
function getQuestion(id: string): Translation {
|
||||||
return layer.tagRenderings.find(q => q.id === id).question.Subs({})
|
return layer.tagRenderings.find((q) => q.id === id).question.Subs({})
|
||||||
}
|
}
|
||||||
|
|
||||||
function enable(idToEnable: string) {
|
function enable(idToEnable: string) {
|
||||||
const newList = disabledQuestions.data.filter(id => id !== idToEnable)
|
const newList = disabledQuestions.data.filter((id) => id !== idToEnable)
|
||||||
disabledQuestions.set(newList)
|
disabledQuestions.set(newList)
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if $disabledQuestions.length > 0}
|
{#if $disabledQuestions.length > 0}
|
||||||
<div class="low-interaction p-2">
|
<div class="low-interaction p-2">
|
||||||
|
<h4 class="my-2 flex">
|
||||||
<h4 class="flex my-2">
|
|
||||||
<div class="no-image-background block h-6 w-6">
|
<div class="no-image-background block h-6 w-6">
|
||||||
<ToSvelte construct={() => layer.defaultIcon()} />
|
<ToSvelte construct={() => layer.defaultIcon()} />
|
||||||
</div>
|
</div>
|
||||||
|
@ -37,7 +37,7 @@ function enable(idToEnable: string) {
|
||||||
{#each $disabledQuestions as id}
|
{#each $disabledQuestions as id}
|
||||||
<button class="badge button-unstyled" on:click={() => enable(id)}>
|
<button class="badge button-unstyled" on:click={() => enable(id)}>
|
||||||
<Tr cls="ml-2" t={getQuestion(id)} />
|
<Tr cls="ml-2" t={getQuestion(id)} />
|
||||||
<XMarkIcon class="w-4 h-4 mr-2" />
|
<XMarkIcon class="mr-2 h-4 w-4" />
|
||||||
</button>
|
</button>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -88,7 +88,13 @@
|
||||||
{:else if step === "splitting"}
|
{:else if step === "splitting"}
|
||||||
<div class="interactive border-interactive flex flex-col p-2">
|
<div class="interactive border-interactive flex flex-col p-2">
|
||||||
<div class="h-80 w-full">
|
<div class="h-80 w-full">
|
||||||
<WaySplitMap {state} {splitPoints} {osmWay} {snapTolerance} mapProperties={{rasterLayer: state.mapProperties.rasterLayer}}/>
|
<WaySplitMap
|
||||||
|
{state}
|
||||||
|
{splitPoints}
|
||||||
|
{osmWay}
|
||||||
|
{snapTolerance}
|
||||||
|
mapProperties={{ rasterLayer: state.mapProperties.rasterLayer }}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex w-full flex-wrap-reverse md:flex-nowrap">
|
<div class="flex w-full flex-wrap-reverse md:flex-nowrap">
|
||||||
<BackButton
|
<BackButton
|
||||||
|
|
|
@ -45,16 +45,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
const baseQuestions = (layer?.tagRenderings ?? [])?.filter(
|
const baseQuestions = (layer?.tagRenderings ?? [])?.filter(
|
||||||
(tr) => allowed(tr.labels) && tr.question !== undefined,
|
(tr) => allowed(tr.labels) && tr.question !== undefined
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ids of skipped questions
|
* Ids of skipped questions
|
||||||
*/
|
*/
|
||||||
let skippedQuestions = new UIEventSource<Set<string>>(new Set<string>())
|
let skippedQuestions = new UIEventSource<Set<string>>(new Set<string>())
|
||||||
let layerDisabledForTheme = state.userRelatedState.getThemeDisabled(state.theme.id, layer.id)
|
let layerDisabledForTheme = state.userRelatedState.getThemeDisabled(state.theme.id, layer.id)
|
||||||
layerDisabledForTheme.addCallbackAndRunD(disabled => {
|
layerDisabledForTheme.addCallbackAndRunD((disabled) => {
|
||||||
skippedQuestions.set(new Set(disabled.concat(Array.from(skippedQuestions.data))))
|
skippedQuestions.set(new Set(disabled.concat(Array.from(skippedQuestions.data))))
|
||||||
})
|
})
|
||||||
let questionboxElem: HTMLDivElement
|
let questionboxElem: HTMLDivElement
|
||||||
|
@ -78,10 +77,10 @@
|
||||||
}
|
}
|
||||||
return questionsToAsk
|
return questionsToAsk
|
||||||
},
|
},
|
||||||
[skippedQuestions],
|
[skippedQuestions]
|
||||||
)
|
)
|
||||||
let firstQuestion: UIEventSource<TagRenderingConfig> = new UIEventSource<TagRenderingConfig>(
|
let firstQuestion: UIEventSource<TagRenderingConfig> = new UIEventSource<TagRenderingConfig>(
|
||||||
undefined,
|
undefined
|
||||||
)
|
)
|
||||||
let allQuestionsToAsk: UIEventSource<TagRenderingConfig[]> = new UIEventSource<
|
let allQuestionsToAsk: UIEventSource<TagRenderingConfig[]> = new UIEventSource<
|
||||||
TagRenderingConfig[]
|
TagRenderingConfig[]
|
||||||
|
@ -106,7 +105,6 @@
|
||||||
let loginEnabled = state.featureSwitches.featureSwitchEnableLogin
|
let loginEnabled = state.featureSwitches.featureSwitchEnableLogin
|
||||||
let debug = state.featureSwitches.featureSwitchIsDebugging
|
let debug = state.featureSwitches.featureSwitchIsDebugging
|
||||||
|
|
||||||
|
|
||||||
function skip(question: { id: string }, didAnswer: boolean = false) {
|
function skip(question: { id: string }, didAnswer: boolean = false) {
|
||||||
skippedQuestions.data.add(question.id) // Must use ID, the config object might be a copy of the original
|
skippedQuestions.data.add(question.id) // Must use ID, the config object might be a copy of the original
|
||||||
skippedQuestions.ping()
|
skippedQuestions.ping()
|
||||||
|
@ -131,13 +129,7 @@
|
||||||
{#if $showAllQuestionsAtOnce}
|
{#if $showAllQuestionsAtOnce}
|
||||||
<div class="flex flex-col gap-y-1">
|
<div class="flex flex-col gap-y-1">
|
||||||
{#each $allQuestionsToAsk as question (question.id)}
|
{#each $allQuestionsToAsk as question (question.id)}
|
||||||
<TagRenderingQuestionDynamic
|
<TagRenderingQuestionDynamic config={question} {tags} {selectedElement} {state} {layer} />
|
||||||
config={question}
|
|
||||||
{tags}
|
|
||||||
{selectedElement}
|
|
||||||
{state}
|
|
||||||
{layer}
|
|
||||||
/>
|
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
{:else if $firstQuestion !== undefined}
|
{:else if $firstQuestion !== undefined}
|
||||||
|
@ -148,14 +140,14 @@
|
||||||
{state}
|
{state}
|
||||||
{tags}
|
{tags}
|
||||||
on:saved={() => {
|
on:saved={() => {
|
||||||
skip($firstQuestion, true)
|
skip($firstQuestion, true)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
class="secondary"
|
class="secondary"
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
skip($firstQuestion)
|
skip($firstQuestion)
|
||||||
}}
|
}}
|
||||||
slot="cancel"
|
slot="cancel"
|
||||||
>
|
>
|
||||||
<Tr t={Translations.t.general.skip} />
|
<Tr t={Translations.t.general.skip} />
|
||||||
|
@ -170,7 +162,6 @@
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<div class="mt-4 mb-8">
|
<div class="mt-4 mb-8">
|
||||||
|
|
||||||
{#if skipped + answered > 0}
|
{#if skipped + answered > 0}
|
||||||
<div class="flex justify-center">
|
<div class="flex justify-center">
|
||||||
{#if answered === 0}
|
{#if answered === 0}
|
||||||
|
@ -198,9 +189,9 @@
|
||||||
{:else}
|
{:else}
|
||||||
<Tr
|
<Tr
|
||||||
t={Translations.t.general.questionBox.answeredMultipleSkippedMultiple.Subs({
|
t={Translations.t.general.questionBox.answeredMultipleSkippedMultiple.Subs({
|
||||||
answered,
|
answered,
|
||||||
skipped,
|
skipped,
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
@ -215,7 +206,6 @@
|
||||||
>
|
>
|
||||||
<Tr t={Translations.t.general.questionBox.reactivate} />
|
<Tr t={Translations.t.general.questionBox.reactivate} />
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
@ -223,13 +213,12 @@
|
||||||
<button
|
<button
|
||||||
class="w-full"
|
class="w-full"
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
skippedQuestions.setData(new Set())
|
skippedQuestions.setData(new Set())
|
||||||
skipped = 0
|
skipped = 0
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Show the disabled questions for this object
|
Show the disabled questions for this object
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
{/if}
|
{/if}
|
||||||
{#if $debug}
|
{#if $debug}
|
||||||
Skipped questions are {Array.from($skippedQuestions).join(", ")}
|
Skipped questions are {Array.from($skippedQuestions).join(", ")}
|
||||||
|
|
|
@ -93,7 +93,7 @@
|
||||||
return !m.hideInAnswer.matchesProperties(tgs)
|
return !m.hideInAnswer.matchesProperties(tgs)
|
||||||
})
|
})
|
||||||
selectedMapping = mappings?.findIndex(
|
selectedMapping = mappings?.findIndex(
|
||||||
(mapping) => mapping.if.matchesProperties(tgs) || mapping.alsoShowIf?.matchesProperties(tgs),
|
(mapping) => mapping.if.matchesProperties(tgs) || mapping.alsoShowIf?.matchesProperties(tgs)
|
||||||
)
|
)
|
||||||
if (selectedMapping < 0) {
|
if (selectedMapping < 0) {
|
||||||
selectedMapping = undefined
|
selectedMapping = undefined
|
||||||
|
@ -201,7 +201,7 @@
|
||||||
if (freeformValue?.length > 0) {
|
if (freeformValue?.length > 0) {
|
||||||
selectedMapping = config.mappings.length
|
selectedMapping = config.mappings.length
|
||||||
}
|
}
|
||||||
}),
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
$: {
|
$: {
|
||||||
|
@ -219,7 +219,7 @@
|
||||||
$freeformInput,
|
$freeformInput,
|
||||||
selectedMapping,
|
selectedMapping,
|
||||||
checkedMappings,
|
checkedMappings,
|
||||||
tags.data,
|
tags.data
|
||||||
)
|
)
|
||||||
if (featureSwitchIsDebugging?.data) {
|
if (featureSwitchIsDebugging?.data) {
|
||||||
console.log(
|
console.log(
|
||||||
|
@ -231,7 +231,7 @@
|
||||||
currentTags: tags.data,
|
currentTags: tags.data,
|
||||||
},
|
},
|
||||||
" --> ",
|
" --> ",
|
||||||
selectedTags,
|
selectedTags
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -253,7 +253,7 @@
|
||||||
selectedTags = new And([...selectedTags.and, ...extraTagsArray])
|
selectedTags = new And([...selectedTags.and, ...extraTagsArray])
|
||||||
} else {
|
} else {
|
||||||
console.error(
|
console.error(
|
||||||
"selectedTags is not of type Tag or And, it is a " + JSON.stringify(selectedTags),
|
"selectedTags is not of type Tag or And, it is a " + JSON.stringify(selectedTags)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -322,7 +322,7 @@
|
||||||
onDestroy(
|
onDestroy(
|
||||||
state.osmConnection?.userDetails?.addCallbackAndRun((ud) => {
|
state.osmConnection?.userDetails?.addCallbackAndRun((ud) => {
|
||||||
numberOfCs = ud.csCount
|
numberOfCs = ud.csCount
|
||||||
}),
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -351,7 +351,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function enableQuestion() {
|
function enableQuestion() {
|
||||||
const newList = disabledInTheme.data?.filter(id => id !== config.id)
|
const newList = disabledInTheme.data?.filter((id) => id !== config.id)
|
||||||
disabledInTheme.set(newList)
|
disabledInTheme.set(newList)
|
||||||
menuIsOpened.set(false)
|
menuIsOpened.set(false)
|
||||||
}
|
}
|
||||||
|
@ -359,7 +359,6 @@
|
||||||
|
|
||||||
{#if question !== undefined}
|
{#if question !== undefined}
|
||||||
<div class={clss}>
|
<div class={clss}>
|
||||||
|
|
||||||
{#if layer.isNormal()}
|
{#if layer.isNormal()}
|
||||||
<LoginToggle {state}>
|
<LoginToggle {state}>
|
||||||
<DotMenu hideBackground={true} open={menuIsOpened}>
|
<DotMenu hideBackground={true} open={menuIsOpened}>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue