Merge branch 'master' into develop
This commit is contained in:
commit
9a4cdaf1ad
192 changed files with 9167 additions and 12079 deletions
|
@ -40,6 +40,7 @@
|
|||
+ [all_tags](#all_tags)
|
||||
+ [multilevels](#multilevels)
|
||||
+ [induction-loop](#induction-loop)
|
||||
+ [wikidata.tactile_writing-braille](#wikidatatactile_writing-braille)
|
||||
+ [questions](#questions)
|
||||
+ [export_as_gpx](#export_as_gpx)
|
||||
+ [export_as_geojson](#export_as_geojson)
|
||||
|
@ -48,6 +49,12 @@
|
|||
+ [id_presets.shop_types](#id_presetsshop_types)
|
||||
+ [school.capacity](#schoolcapacity)
|
||||
+ [school.gender](#schoolgender)
|
||||
+ [opening_hours_24_7](#opening_hours_24_7)
|
||||
+ [toilet.toilets-type](#toilettoilets-type)
|
||||
+ [toilet.toilets-changing-table](#toilettoilets-changing-table)
|
||||
+ [toilet.toilet-changing_table:location](#toilettoilet-changing_table:location)
|
||||
+ [toilet.toilet-handwashing](#toilettoilet-handwashing)
|
||||
+ [toilet.toilet-has-paper](#toilettoilet-has-paper)
|
||||
+ [wikidata.language](#wikidatalanguage)
|
||||
|
||||
|
||||
|
@ -88,6 +95,7 @@
|
|||
- climbing_area
|
||||
- climbing_gym
|
||||
- climbing_route
|
||||
- crossings
|
||||
- defibrillator
|
||||
- doctors
|
||||
- dogpark
|
||||
|
@ -96,6 +104,7 @@
|
|||
- entrance
|
||||
- extinguisher
|
||||
- fire_station
|
||||
- fitness_centre
|
||||
- food
|
||||
- ghost_bike
|
||||
- governments
|
||||
|
@ -124,9 +133,11 @@
|
|||
- shops
|
||||
- slow_roads
|
||||
- sport_pitch
|
||||
- sports_centre
|
||||
- street_lamps
|
||||
- surveillance_camera
|
||||
- toilet
|
||||
- toilet_at_amenity
|
||||
- trail
|
||||
- transit_stops
|
||||
- tree_node
|
||||
|
@ -166,6 +177,7 @@
|
|||
- climbing_club
|
||||
- climbing_gym
|
||||
- doctors
|
||||
- fitness_centre
|
||||
- food
|
||||
- governments
|
||||
- hackerspace
|
||||
|
@ -179,6 +191,7 @@
|
|||
- recycling
|
||||
- school
|
||||
- shops
|
||||
- sports_centre
|
||||
- tertiary_education
|
||||
- veterinary
|
||||
|
||||
|
@ -199,6 +212,7 @@
|
|||
- climbing_club
|
||||
- climbing_gym
|
||||
- doctors
|
||||
- fitness_centre
|
||||
- food
|
||||
- governments
|
||||
- hackerspace
|
||||
|
@ -209,6 +223,7 @@
|
|||
- recycling
|
||||
- school
|
||||
- shops
|
||||
- sports_centre
|
||||
- tertiary_education
|
||||
- veterinary
|
||||
|
||||
|
@ -229,6 +244,7 @@
|
|||
- climbing_club
|
||||
- climbing_gym
|
||||
- doctors
|
||||
- fitness_centre
|
||||
- food
|
||||
- governments
|
||||
- hackerspace
|
||||
|
@ -239,6 +255,7 @@
|
|||
- recycling
|
||||
- school
|
||||
- shops
|
||||
- sports_centre
|
||||
- tertiary_education
|
||||
|
||||
|
||||
|
@ -258,11 +275,16 @@
|
|||
- climbing_club
|
||||
- climbing_gym
|
||||
- doctors
|
||||
- fitness_centre
|
||||
- fitness_station
|
||||
- food
|
||||
- kindergarten_childcare
|
||||
- parcel_lockers
|
||||
- pharmacy
|
||||
- postoffices
|
||||
- shops
|
||||
- sports_centre
|
||||
- toilet_at_amenity
|
||||
- veterinary
|
||||
|
||||
|
||||
|
@ -279,6 +301,7 @@
|
|||
- bike_themed_object
|
||||
- climbing_route
|
||||
- toilet
|
||||
- toilet_at_amenity
|
||||
|
||||
|
||||
|
||||
|
@ -321,12 +344,14 @@
|
|||
- cafe_pub
|
||||
- charging_station
|
||||
- entrance
|
||||
- fitness_centre
|
||||
- food
|
||||
- parking
|
||||
- picnic_table
|
||||
- reception_desk
|
||||
- shops
|
||||
- toilet
|
||||
- toilet_at_amenity
|
||||
|
||||
|
||||
|
||||
|
@ -361,10 +386,12 @@
|
|||
|
||||
- cafe_pub
|
||||
- defibrillator
|
||||
- fitness_centre
|
||||
- food
|
||||
- hackerspace
|
||||
- hotel
|
||||
- observation_tower
|
||||
- sports_centre
|
||||
- transit_stops
|
||||
|
||||
|
||||
|
@ -455,6 +482,7 @@
|
|||
|
||||
- cafe_pub
|
||||
- dogpark
|
||||
- fitness_centre
|
||||
- food
|
||||
- hackerspace
|
||||
- hotel
|
||||
|
@ -588,6 +616,18 @@
|
|||
|
||||
|
||||
|
||||
### wikidata.tactile_writing-braille
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- elevator
|
||||
- stairs
|
||||
|
||||
|
||||
|
||||
|
||||
### questions
|
||||
|
||||
|
||||
|
@ -680,6 +720,72 @@
|
|||
|
||||
|
||||
|
||||
### opening_hours_24_7
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- toilet
|
||||
|
||||
|
||||
|
||||
|
||||
### toilet.toilets-type
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- toilet_at_amenity
|
||||
|
||||
|
||||
|
||||
|
||||
### toilet.toilets-changing-table
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- toilet_at_amenity
|
||||
|
||||
|
||||
|
||||
|
||||
### toilet.toilet-changing_table:location
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- toilet_at_amenity
|
||||
|
||||
|
||||
|
||||
|
||||
### toilet.toilet-handwashing
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- toilet_at_amenity
|
||||
|
||||
|
||||
|
||||
|
||||
### toilet.toilet-has-paper
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- toilet_at_amenity
|
||||
|
||||
|
||||
|
||||
|
||||
### wikidata.language
|
||||
|
||||
|
||||
|
|
|
@ -815,6 +815,8 @@ The following layers are included in MapComplete:
|
|||
- [extinguisher](./Layers/extinguisher.md)
|
||||
- [filters](./Layers/filters.md)
|
||||
- [fire_station](./Layers/fire_station.md)
|
||||
- [fitness_centre](./Layers/fitness_centre.md)
|
||||
- [fitness_station](./Layers/fitness_station.md)
|
||||
- [food](./Layers/food.md)
|
||||
- [ghost_bike](./Layers/ghost_bike.md)
|
||||
- [governments](./Layers/governments.md)
|
||||
|
@ -862,12 +864,17 @@ The following layers are included in MapComplete:
|
|||
- [shelter](./Layers/shelter.md)
|
||||
- [shops](./Layers/shops.md)
|
||||
- [slow_roads](./Layers/slow_roads.md)
|
||||
- [speed_camera](./Layers/speed_camera.md)
|
||||
- [speed_display](./Layers/speed_display.md)
|
||||
- [split_point](./Layers/split_point.md)
|
||||
- [sport_pitch](./Layers/sport_pitch.md)
|
||||
- [sports_centre](./Layers/sports_centre.md)
|
||||
- [stairs](./Layers/stairs.md)
|
||||
- [street_lamps](./Layers/street_lamps.md)
|
||||
- [surveillance_camera](./Layers/surveillance_camera.md)
|
||||
- [tertiary_education](./Layers/tertiary_education.md)
|
||||
- [toilet](./Layers/toilet.md)
|
||||
- [toilet_at_amenity](./Layers/toilet_at_amenity.md)
|
||||
- [trail](./Layers/trail.md)
|
||||
- [transit_routes](./Layers/transit_routes.md)
|
||||
- [transit_stops](./Layers/transit_stops.md)
|
||||
|
|
|
@ -27,6 +27,7 @@ The following items can be easily reused in your layers
|
|||
+ [dog-access](#dog-access)
|
||||
+ [description](#description)
|
||||
+ [opening_hours](#opening_hours)
|
||||
+ [opening_hours_24_7](#opening_hours_24_7)
|
||||
+ [service:electricity](#serviceelectricity)
|
||||
+ [payment-options](#payment-options)
|
||||
+ [payment-options-advanced](#payment-options-advanced)
|
||||
|
@ -263,6 +264,21 @@ What are the opening hours of {title()}?
|
|||
|
||||
|
||||
|
||||
### opening_hours_24_7
|
||||
|
||||
|
||||
|
||||
<h3>Opening hours</h3>{opening_hours_table(opening_hours)}
|
||||
|
||||
What are the opening hours of {title()}?
|
||||
|
||||
|
||||
|
||||
- 24/7 opened (including holidays)
|
||||
|
||||
|
||||
|
||||
|
||||
### service:electricity
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
|
||||
|
||||
<img src='https://mapcomplete.osm.be/./assets/svg/pencil.svg' height="100px">
|
||||
|
||||
|
||||
Layer to mark any street as cyclestreet
|
||||
|
||||
|
@ -60,7 +60,7 @@ this quick overview is incomplete
|
|||
|
||||
attribute | type | values which are supported by this layer
|
||||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/cyclestreet#values) [cyclestreet](https://wiki.openstreetmap.org/wiki/Key:cyclestreet) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes) [yes](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes) [](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3D) [](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3D)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/traffic_sign#values) [traffic_sign](https://wiki.openstreetmap.org/wiki/Key:traffic_sign) | Multiple choice | [DE:244.1,1020-30](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1020-30) [DE:244.1,1022-12,1024-10](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12,1024-10) [DE:244.1,1022-12](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12) [DE:244.1,1024-10](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1024-10) [DE:244.1](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/cyclestreet:start_date#values) [cyclestreet:start_date](https://wiki.openstreetmap.org/wiki/Key:cyclestreet:start_date) | [date](../SpecialInputElements.md#date) |
|
||||
|
||||
|
||||
|
@ -89,13 +89,38 @@ The question is Is the street <b>{name}</b> a cyclestreet?
|
|||
|
||||
|
||||
- This street is a cyclestreet (and has a speed limit of 30 km/h) corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:cyclestreet' target='_blank'>cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes' target='_blank'>yes</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:maxspeed' target='_blank'>maxspeed</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:maxspeed%3D30' target='_blank'>30</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:overtaking:motor_vehicle' target='_blank'>overtaking:motor_vehicle</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:overtaking:motor_vehicle%3Dno' target='_blank'>no</a>`
|
||||
- This street is a bicycle road corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:bicycle_road' target='_blank'>bicycle_road</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:bicycle_road%3Dyes' target='_blank'>yes</a>`
|
||||
- This option cannot be chosen as answer
|
||||
- This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later) corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:bicycle_road' target='_blank'>bicycle_road</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:bicycle_road%3Dyes' target='_blank'>yes</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:maxspeed' target='_blank'>maxspeed</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:maxspeed%3D30' target='_blank'>30</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:source:maxspeed' target='_blank'>source:maxspeed</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:source:maxspeed%3DDE:bicycle_road' target='_blank'>DE:bicycle_road</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:vehicle' target='_blank'>vehicle</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:vehicle%3Dno' target='_blank'>no</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:bicycle' target='_blank'>bicycle</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:bicycle%3Ddesignated' target='_blank'>designated</a>`
|
||||
- This street is a cyclestreet corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:cyclestreet' target='_blank'>cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes' target='_blank'>yes</a>`
|
||||
- This street will become a cyclestreet soon corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:proposed:cyclestreet' target='_blank'>proposed:cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:proposed:cyclestreet%3Dyes' target='_blank'>yes</a>`
|
||||
- This street will become a bicycle road soon corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:proposed:bicycle_road' target='_blank'>proposed:bicycle_road</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:proposed:bicycle_road%3Dyes' target='_blank'>yes</a>`
|
||||
- This street is not a cyclestreet corresponds with ``
|
||||
|
||||
|
||||
|
||||
|
||||
### supplementary_sign
|
||||
|
||||
|
||||
|
||||
The question is What sign does this bicycle road have?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Residents allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1020-30' target='_blank'>DE:244.1,1020-30</a>`
|
||||
- Motor vehicles allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12,1024-10' target='_blank'>DE:244.1,1022-12,1024-10</a>`
|
||||
- Motorcycles allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12' target='_blank'>DE:244.1,1022-12</a>`
|
||||
- Cars allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1024-10' target='_blank'>DE:244.1,1024-10</a>`
|
||||
- There are no supplementary signs at this bicycle road. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1' target='_blank'>DE:244.1</a>`
|
||||
|
||||
|
||||
Only visible if `bicycle_road=yes&_country=de` is shown
|
||||
|
||||
|
||||
|
||||
### future_cyclestreet
|
||||
|
||||
|
||||
|
|
|
@ -70,19 +70,10 @@ attribute | type | values which are supported by this layer
|
|||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/service:bicycle:retail#values) [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/service:bicycle:repair#values) [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/service:bicycle:rental#values) [service:bicycle:rental](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:rental) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:rental%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:rental%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/rental#values) [rental](https://wiki.openstreetmap.org/wiki/Key:rental) | [string](../SpecialInputElements.md#string) | [city_bike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dcity_bike) [ebike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Debike) [bmx](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dbmx) [mtb](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dmtb) [kid_bike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dkid_bike) [tandem](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dtandem) [racebike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dracebike) [bike_helmet](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dbike_helmet)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/capacity:city_bike#values) [capacity:city_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:city_bike) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/capacity:ebike#values) [capacity:ebike](https://wiki.openstreetmap.org/wiki/Key:capacity:ebike) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/capacity:kid_bike#values) [capacity:kid_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:kid_bike) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/capacity:bmx#values) [capacity:bmx](https://wiki.openstreetmap.org/wiki/Key:capacity:bmx) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/capacity:mtb#values) [capacity:mtb](https://wiki.openstreetmap.org/wiki/Key:capacity:mtb) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/capacity:bicycle_pannier#values) [capacity:bicycle_pannier](https://wiki.openstreetmap.org/wiki/Key:capacity:bicycle_pannier) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/capacity:tandem_bicycle#values) [capacity:tandem_bicycle](https://wiki.openstreetmap.org/wiki/Key:capacity:tandem_bicycle) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/service:bicycle:second_hand#values) [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/service:bicycle:pump#values) [service:bicycle:pump](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:pump) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump%3Dno) [separate](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump%3Dseparate)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/service:bicycle:diy#values) [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/service:bicycle:cleaning#values) [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/service:bicycle:cleaning:charge#values) [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/description#values) [description](https://wiki.openstreetmap.org/wiki/Key:description) | [string](../SpecialInputElements.md#string) |
|
||||
|
||||
|
||||
|
@ -269,157 +260,13 @@ The question is Does this shop rent out bikes?
|
|||
|
||||
|
||||
|
||||
### bicycle-types
|
||||
### bicyclerentalbicyclerental
|
||||
|
||||
|
||||
|
||||
The question is What kind of bicycles and accessories are rented here?
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
This rendering asks information about the property [rental](https://wiki.openstreetmap.org/wiki/Key:rental)
|
||||
|
||||
This is rendered with {rental} is rented here
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Normal city bikes can be rented here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:rental' target='_blank'>rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:rental%3Dcity_bike' target='_blank'>city_bike</a>`
|
||||
- Electrical bikes can be rented here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:rental' target='_blank'>rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:rental%3Debike' target='_blank'>ebike</a>`
|
||||
- BMX bikes can be rented here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:rental' target='_blank'>rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:rental%3Dbmx' target='_blank'>bmx</a>`
|
||||
- Mountainbikes can be rented here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:rental' target='_blank'>rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:rental%3Dmtb' target='_blank'>mtb</a>`
|
||||
- Bikes for children can be rented here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:rental' target='_blank'>rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:rental%3Dkid_bike' target='_blank'>kid_bike</a>`
|
||||
- Tandem bicycles can be rented here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:rental' target='_blank'>rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:rental%3Dtandem' target='_blank'>tandem</a>`
|
||||
- Race bicycles can be rented here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:rental' target='_blank'>rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:rental%3Dracebike' target='_blank'>racebike</a>`
|
||||
- Bike helmets can be rented here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:rental' target='_blank'>rental</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:rental%3Dbike_helmet' target='_blank'>bike_helmet</a>`
|
||||
|
||||
|
||||
This tagrendering has labels `bicycle_rental`
|
||||
|
||||
|
||||
|
||||
### rental-capacity-city_bike
|
||||
|
||||
|
||||
|
||||
The question is How much city bikes can be rented here?
|
||||
|
||||
This rendering asks information about the property [capacity:city_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:city_bike)
|
||||
|
||||
This is rendered with {capacity:city_bike} city bikes can be rented here
|
||||
|
||||
|
||||
|
||||
Only visible if `rental~^(.*city_bike.*)$` is shown
|
||||
|
||||
This tagrendering has labels `bicycle_rental`
|
||||
|
||||
|
||||
|
||||
### rental-capacity-ebike
|
||||
|
||||
|
||||
|
||||
The question is How much electrical bikes can be rented here?
|
||||
|
||||
This rendering asks information about the property [capacity:ebike](https://wiki.openstreetmap.org/wiki/Key:capacity:ebike)
|
||||
|
||||
This is rendered with {capacity:ebike} electrical bikes can be rented here
|
||||
|
||||
|
||||
|
||||
Only visible if `rental~^(.*ebike.*)$` is shown
|
||||
|
||||
This tagrendering has labels `bicycle_rental`
|
||||
|
||||
|
||||
|
||||
### rental-capacity-kid_bike
|
||||
|
||||
|
||||
|
||||
The question is How much bikes for children can be rented here?
|
||||
|
||||
This rendering asks information about the property [capacity:kid_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:kid_bike)
|
||||
|
||||
This is rendered with {capacity:kid_bike} bikes for children can be rented here
|
||||
|
||||
|
||||
|
||||
Only visible if `rental~^(.*kid_bike.*)$` is shown
|
||||
|
||||
This tagrendering has labels `bicycle_rental`
|
||||
|
||||
|
||||
|
||||
### rental-capacity-bmx
|
||||
|
||||
|
||||
|
||||
The question is How much BMX bikes can be rented here?
|
||||
|
||||
This rendering asks information about the property [capacity:bmx](https://wiki.openstreetmap.org/wiki/Key:capacity:bmx)
|
||||
|
||||
This is rendered with {capacity:bmx} BMX bikes can be rented here
|
||||
|
||||
|
||||
|
||||
Only visible if `rental~^(.*bmx.*)$` is shown
|
||||
|
||||
This tagrendering has labels `bicycle_rental`
|
||||
|
||||
|
||||
|
||||
### rental-capacity-mtb
|
||||
|
||||
|
||||
|
||||
The question is How much mountainbike can be rented here?
|
||||
|
||||
This rendering asks information about the property [capacity:mtb](https://wiki.openstreetmap.org/wiki/Key:capacity:mtb)
|
||||
|
||||
This is rendered with {capacity:mtb} mountainbike can be rented here
|
||||
|
||||
|
||||
|
||||
Only visible if `rental~^(.*mtb.*)$` is shown
|
||||
|
||||
This tagrendering has labels `bicycle_rental`
|
||||
|
||||
|
||||
|
||||
### rental-capacity-bicycle_pannier
|
||||
|
||||
|
||||
|
||||
The question is How much bicycle panniers can be rented here?
|
||||
|
||||
This rendering asks information about the property [capacity:bicycle_pannier](https://wiki.openstreetmap.org/wiki/Key:capacity:bicycle_pannier)
|
||||
|
||||
This is rendered with {capacity:bicycle_pannier} bicycle panniers can be rented here
|
||||
|
||||
|
||||
|
||||
Only visible if `rental~^(.*bicycle_pannier.*)$` is shown
|
||||
|
||||
This tagrendering has labels `bicycle_rental`
|
||||
|
||||
|
||||
|
||||
### rental-capacity-tandem_bicycle
|
||||
|
||||
|
||||
|
||||
The question is How much tandem can be rented here?
|
||||
|
||||
This rendering asks information about the property [capacity:tandem_bicycle](https://wiki.openstreetmap.org/wiki/Key:capacity:tandem_bicycle)
|
||||
|
||||
This is rendered with {capacity:tandem_bicycle} tandem can be rented here
|
||||
|
||||
|
||||
|
||||
Only visible if `rental~^(.*tandem_bicycle.*)$` is shown
|
||||
|
||||
This tagrendering has labels `bicycle_rental`
|
||||
|
||||
|
||||
|
||||
|
@ -491,23 +338,12 @@ The question is Are bicycles washed here?
|
|||
|
||||
|
||||
|
||||
### bike_cleaning-service:bicycle:cleaning:charge
|
||||
### bikecleaningbikecleaningservicebicyclecleaningcharge
|
||||
|
||||
|
||||
|
||||
The question is How much does it cost to use the cleaning service?
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
This rendering asks information about the property [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge)
|
||||
|
||||
This is rendered with Using the cleaning service costs {service:bicycle:cleaning:charge}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- The cleaning service is free to use corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dno' target='_blank'>no</a>`
|
||||
- Free to use corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:fee' target='_blank'>service:bicycle:cleaning:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning:fee%3Dyes' target='_blank'>yes</a>`
|
||||
- This option cannot be chosen as answer
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -68,9 +68,6 @@ attribute | type | values which are supported by this layer
|
|||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:name%3D)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/climbing#values) [climbing](https://wiki.openstreetmap.org/wiki/Key:climbing) | Multiple choice | [boulder](https://wiki.openstreetmap.org/wiki/Tag:climbing%3Dboulder) [crag](https://wiki.openstreetmap.org/wiki/Tag:climbing%3Dcrag) [area](https://wiki.openstreetmap.org/wiki/Tag:climbing%3Darea)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/rock#values) [rock](https://wiki.openstreetmap.org/wiki/Key:rock) | [string](../SpecialInputElements.md#string) | [limestone](https://wiki.openstreetmap.org/wiki/Tag:rock%3Dlimestone)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/url#values) [url](https://wiki.openstreetmap.org/wiki/Key:url) | [url](../SpecialInputElements.md#url) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/charge#values) [charge](https://wiki.openstreetmap.org/wiki/Key:charge) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:charge%3D)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/climbing:boulder#values) [climbing:boulder](https://wiki.openstreetmap.org/wiki/Key:climbing:boulder) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dno) [limited](https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dlimited)
|
||||
|
||||
|
||||
|
||||
|
@ -184,59 +181,4 @@ This is rendered with The rock type is {rock}
|
|||
|
||||
Only visible if `climbing=crag|natural=cliff|natural=bare_rock` is shown
|
||||
|
||||
|
||||
|
||||
### website
|
||||
|
||||
|
||||
|
||||
The question is Is there a (unofficial) website with more informations (e.g. topos)?
|
||||
|
||||
This rendering asks information about the property [url](https://wiki.openstreetmap.org/wiki/Key:url)
|
||||
|
||||
This is rendered with <a href='{url}' target='_blank'>{url}</a>
|
||||
|
||||
|
||||
|
||||
Only visible if `leisure!~^(sports_centre)$&sport=climbing` is shown
|
||||
|
||||
|
||||
|
||||
### fee
|
||||
|
||||
|
||||
|
||||
The question is Is a fee required to climb here?
|
||||
|
||||
This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
|
||||
|
||||
This is rendered with A fee of {charge} should be paid for climbing here
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Climbing here is free of charge corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fee' target='_blank'>fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fee%3Dno' target='_blank'>no</a>`
|
||||
- Paying a fee is required to climb here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fee' target='_blank'>fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fee%3Dyes' target='_blank'>yes</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### bouldering
|
||||
|
||||
|
||||
|
||||
The question is Is bouldering possible here?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Bouldering is possible here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:climbing:boulder' target='_blank'>climbing:boulder</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dyes' target='_blank'>yes</a>`
|
||||
- Bouldering is not possible here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:climbing:boulder' target='_blank'>climbing:boulder</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dno' target='_blank'>no</a>`
|
||||
- Bouldering is possible, allthough there are only a few routes corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:climbing:boulder' target='_blank'>climbing:boulder</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dlimited' target='_blank'>limited</a>`
|
||||
- There are {climbing:boulder} boulder routes corresponds with `climbing:boulder~.+`
|
||||
- This option cannot be chosen as answer
|
||||
|
||||
|
||||
This document is autogenerated from [assets/layers/climbing_area/climbing_area.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/climbing_area/climbing_area.json)
|
|
@ -65,14 +65,7 @@ attribute | type | values which are supported by this layer
|
|||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/charge#values) [charge](https://wiki.openstreetmap.org/wiki/Key:charge) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:charge%3D)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/climbing:length#values) [climbing:length](https://wiki.openstreetmap.org/wiki/Key:climbing:length) | [pfloat](../SpecialInputElements.md#pfloat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/climbing:grade:french:min#values) [climbing:grade:french:min](https://wiki.openstreetmap.org/wiki/Key:climbing:grade:french:min) | [string](../SpecialInputElements.md#string) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/climbing:grade:french:max#values) [climbing:grade:french:max](https://wiki.openstreetmap.org/wiki/Key:climbing:grade:french:max) | [string](../SpecialInputElements.md#string) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/climbing:boulder#values) [climbing:boulder](https://wiki.openstreetmap.org/wiki/Key:climbing:boulder) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dno) [limited](https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dlimited)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/climbing:sport#values) [climbing:sport](https://wiki.openstreetmap.org/wiki/Key:climbing:sport) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:climbing:sport%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:climbing:sport%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/climbing:bolts:max#values) [climbing:bolts:max](https://wiki.openstreetmap.org/wiki/Key:climbing:bolts:max) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/climbing:speed#values) [climbing:speed](https://wiki.openstreetmap.org/wiki/Key:climbing:speed) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:climbing:speed%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:climbing:speed%3Dno)
|
||||
|
||||
|
||||
|
@ -164,26 +157,6 @@ This is rendered with <a href='mailto:{email}' target='_blank'>{email}</a>
|
|||
|
||||
|
||||
|
||||
### fee
|
||||
|
||||
|
||||
|
||||
The question is Is a fee required to climb here?
|
||||
|
||||
This rendering asks information about the property [charge](https://wiki.openstreetmap.org/wiki/Key:charge)
|
||||
|
||||
This is rendered with A fee of {charge} should be paid for climbing here
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Climbing here is free of charge corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fee' target='_blank'>fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fee%3Dno' target='_blank'>no</a>`
|
||||
- Paying a fee is required to climb here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fee' target='_blank'>fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fee%3Dyes' target='_blank'>yes</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### opening_hours
|
||||
|
||||
|
||||
|
@ -198,103 +171,6 @@ This is rendered with <h3>Opening hours</h3>{opening_hours_table(opening_hours)
|
|||
|
||||
|
||||
|
||||
### average_length
|
||||
|
||||
|
||||
|
||||
The question is What is the (average) length of the routes in meters?
|
||||
|
||||
This rendering asks information about the property [climbing:length](https://wiki.openstreetmap.org/wiki/Key:climbing:length)
|
||||
|
||||
This is rendered with The routes are <b>{canonical(climbing:length)}</b> long on average
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### min_difficulty
|
||||
|
||||
|
||||
|
||||
The question is What is the grade of the easiest route here, according to the french classification system?
|
||||
|
||||
This rendering asks information about the property [climbing:grade:french:min](https://wiki.openstreetmap.org/wiki/Key:climbing:grade:french:min)
|
||||
|
||||
This is rendered with The lowest grade is {climbing:grade:french:min} according to the french/belgian system
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### max_difficulty
|
||||
|
||||
|
||||
|
||||
The question is What is the highest grade route here, according to the french classification system?
|
||||
|
||||
This rendering asks information about the property [climbing:grade:french:max](https://wiki.openstreetmap.org/wiki/Key:climbing:grade:french:max)
|
||||
|
||||
This is rendered with The highest grade is {climbing:grade:french:max} according to the french/belgian system
|
||||
|
||||
|
||||
|
||||
Only visible if `climbing!~^(route)$&climbing:sport=yes|sport=climbing` is shown
|
||||
|
||||
|
||||
|
||||
### bouldering
|
||||
|
||||
|
||||
|
||||
The question is Is bouldering possible here?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Bouldering is possible here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:climbing:boulder' target='_blank'>climbing:boulder</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dyes' target='_blank'>yes</a>`
|
||||
- Bouldering is not possible here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:climbing:boulder' target='_blank'>climbing:boulder</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dno' target='_blank'>no</a>`
|
||||
- Bouldering is possible, allthough there are only a few routes corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:climbing:boulder' target='_blank'>climbing:boulder</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:climbing:boulder%3Dlimited' target='_blank'>limited</a>`
|
||||
- There are {climbing:boulder} boulder routes corresponds with `climbing:boulder~.+`
|
||||
- This option cannot be chosen as answer
|
||||
|
||||
|
||||
|
||||
|
||||
### sportclimbing
|
||||
|
||||
|
||||
|
||||
The question is Is sport climbing possible here on fixed anchors?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Sport climbing is possible here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:climbing:sport' target='_blank'>climbing:sport</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:climbing:sport%3Dyes' target='_blank'>yes</a>`
|
||||
- Sport climbing is not possible here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:climbing:sport' target='_blank'>climbing:sport</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:climbing:sport%3Dno' target='_blank'>no</a>`
|
||||
- There are {climbing:sport} sport climbing routes corresponds with `climbing:sport~.+`
|
||||
- This option cannot be chosen as answer
|
||||
|
||||
|
||||
|
||||
|
||||
### max_bolts
|
||||
|
||||
|
||||
|
||||
The question is How many bolts do routes in {title()} have at most?
|
||||
|
||||
This rendering asks information about the property [climbing:bolts:max](https://wiki.openstreetmap.org/wiki/Key:climbing:bolts:max)
|
||||
|
||||
This is rendered with The sport climbing routes here have at most {climbing:bolts:max} bolts.<div class='subtle'>This is without relays and indicates how much quickdraws a climber needs</div>
|
||||
|
||||
|
||||
|
||||
Only visible if `climbing:sport=yes` is shown
|
||||
|
||||
|
||||
|
||||
### Speed climbing?
|
||||
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ Crossings for pedestrians and cyclists
|
|||
|
||||
|
||||
|
||||
- [blind_osm](https://mapcomplete.osm.be/blind_osm)
|
||||
- [cycle_infra](https://mapcomplete.osm.be/cycle_infra)
|
||||
- [kerbs_and_crossings](https://mapcomplete.osm.be/kerbs_and_crossings)
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
|
@ -69,12 +70,28 @@ attribute | type | values which are supported by this layer
|
|||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/crossing:island#values) [crossing:island](https://wiki.openstreetmap.org/wiki/Key:crossing:island) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:crossing:island%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:crossing:island%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/tactile_paving#values) [tactile_paving](https://wiki.openstreetmap.org/wiki/Key:tactile_paving) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:tactile_paving%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:tactile_paving%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/button_operated#values) [button_operated](https://wiki.openstreetmap.org/wiki/Key:button_operated) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:button_operated%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:button_operated%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/traffic_signals:sound#values) [traffic_signals:sound](https://wiki.openstreetmap.org/wiki/Key:traffic_signals:sound) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:sound%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:sound%3Dno) [locate](https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:sound%3Dlocate) [walk](https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:sound%3Dwalk)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/traffic_signals:vibration#values) [traffic_signals:vibration](https://wiki.openstreetmap.org/wiki/Key:traffic_signals:vibration) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:vibration%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:vibration%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/traffic_signals:arrow#values) [traffic_signals:arrow](https://wiki.openstreetmap.org/wiki/Key:traffic_signals:arrow) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:arrow%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:arrow%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/traffic_signals:minimap#values) [traffic_signals:minimap](https://wiki.openstreetmap.org/wiki/Key:traffic_signals:minimap) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:minimap%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:minimap%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/red_turn:right:bicycle#values) [red_turn:right:bicycle](https://wiki.openstreetmap.org/wiki/Key:red_turn:right:bicycle) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:red_turn:right:bicycle%3Dyes) [yes](https://wiki.openstreetmap.org/wiki/Tag:red_turn:right:bicycle%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:red_turn:right:bicycle%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/red_turn:straight:bicycle#values) [red_turn:straight:bicycle](https://wiki.openstreetmap.org/wiki/Key:red_turn:straight:bicycle) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:red_turn:straight:bicycle%3Dyes) [yes](https://wiki.openstreetmap.org/wiki/Tag:red_turn:straight:bicycle%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:red_turn:straight:bicycle%3Dno)
|
||||
|
||||
|
||||
|
||||
|
||||
### images
|
||||
|
||||
|
||||
|
||||
This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata`
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### crossing-type
|
||||
|
||||
|
||||
|
@ -188,6 +205,80 @@ Only visible if `highway=traffic_signals|crossing=traffic_signals` is shown
|
|||
|
||||
|
||||
|
||||
### crossing-sound
|
||||
|
||||
|
||||
|
||||
The question is Does this traffic light have sound signals to aid crossing?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This traffic light has sound signals to help crossing, both for finding the crossing and for crossing. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_signals:sound' target='_blank'>traffic_signals:sound</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:sound%3Dyes' target='_blank'>yes</a>`
|
||||
- This traffic light does not have sound signals to help crossing. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_signals:sound' target='_blank'>traffic_signals:sound</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:sound%3Dno' target='_blank'>no</a>`
|
||||
- This traffic light has a sound signal to help locate the pole, but no signal to sign that it is safe to cross. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_signals:sound' target='_blank'>traffic_signals:sound</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:sound%3Dlocate' target='_blank'>locate</a>`
|
||||
- This traffic light has a sound signal to sign that it is safe to cross, but no signal to help locate the pole. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_signals:sound' target='_blank'>traffic_signals:sound</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:sound%3Dwalk' target='_blank'>walk</a>`
|
||||
|
||||
|
||||
Only visible if `crossing=traffic_signals` is shown
|
||||
|
||||
|
||||
|
||||
### crossing-vibration
|
||||
|
||||
|
||||
|
||||
The question is Does this traffic light have vibration signals to aid crossing? (usually located at the bottom of the crossing button)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- The button for this traffic light has a vibration signal to indicate that it is safe to cross. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_signals:vibration' target='_blank'>traffic_signals:vibration</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:vibration%3Dyes' target='_blank'>yes</a>`
|
||||
- The button for this traffic light does not have a vibration signal to indicate that it is safe to cross. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_signals:vibration' target='_blank'>traffic_signals:vibration</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:vibration%3Dno' target='_blank'>no</a>`
|
||||
|
||||
|
||||
Only visible if `crossing=traffic_signals&button_operated=yes` is shown
|
||||
|
||||
|
||||
|
||||
### crossing-arrow
|
||||
|
||||
|
||||
|
||||
The question is Does this traffic light have an arrow pointing in the direction of crossing?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This traffic light has an arrow pointing in the direction of crossing. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_signals:arrow' target='_blank'>traffic_signals:arrow</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:arrow%3Dyes' target='_blank'>yes</a>`
|
||||
- This traffic light does <b>not</b> have an arrow pointing in the direction of crossing. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_signals:arrow' target='_blank'>traffic_signals:arrow</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:arrow%3Dno' target='_blank'>no</a>`
|
||||
|
||||
|
||||
Only visible if `crossing=traffic_signals` is shown
|
||||
|
||||
|
||||
|
||||
### crossing-minimap
|
||||
|
||||
|
||||
|
||||
The question is Does this traffic light have a tactile map showing the layout of the crossing?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This traffic light has a tactile map showing the layout of the crossing. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_signals:minimap' target='_blank'>traffic_signals:minimap</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:minimap%3Dyes' target='_blank'>yes</a>`
|
||||
- This traffic light does <b>not</b> have a tactile map showing the layout of the crossing. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_signals:minimap' target='_blank'>traffic_signals:minimap</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_signals:minimap%3Dno' target='_blank'>no</a>`
|
||||
|
||||
|
||||
Only visible if `crossing=traffic_signals` is shown
|
||||
|
||||
|
||||
|
||||
### crossing-right-turn-through-red
|
||||
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ All infrastructure that someone can cycle over, accompanied with questions about
|
|||
|
||||
|
||||
|
||||
- [blind_osm](https://mapcomplete.osm.be/blind_osm)
|
||||
- [cycle_infra](https://mapcomplete.osm.be/cycle_infra)
|
||||
- [kerbs_and_crossings](https://mapcomplete.osm.be/kerbs_and_crossings)
|
||||
- [onwheels](https://mapcomplete.osm.be/onwheels)
|
||||
|
|
|
@ -184,7 +184,7 @@ The question is Please give some explanation on where the defibrillator can be
|
|||
|
||||
This rendering asks information about the property [defibrillator:location](https://wiki.openstreetmap.org/wiki/Key:defibrillator:location)
|
||||
|
||||
This is rendered with <i>Extra information about the location (in the local languagel):</i><br/>{defibrillator:location}
|
||||
This is rendered with <i>Extra information about the location (in the local language):</i><br/>{defibrillator:location}
|
||||
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -25,6 +25,7 @@ This layer show elevators and asks for operational status and elevator dimension
|
|||
|
||||
|
||||
|
||||
- [blind_osm](https://mapcomplete.osm.be/blind_osm)
|
||||
- [indoors](https://mapcomplete.osm.be/indoors)
|
||||
- [onwheels](https://mapcomplete.osm.be/onwheels)
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
|
||||
|
||||
<img src='https://mapcomplete.osm.be/./assets/themes/cyclestreets/F111.svg' height="100px">
|
||||
|
||||
|
||||
A cyclestreet is a street where motorized traffic is not allowed to overtake a cyclist
|
||||
|
||||
|
@ -39,10 +39,10 @@ Elements must have the all of following tags to be shown on this layer:
|
|||
|
||||
|
||||
|
||||
- <a href='https://wiki.openstreetmap.org/wiki/Key:cyclestreet' target='_blank'>cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes' target='_blank'>yes</a>
|
||||
- <a href='https://wiki.openstreetmap.org/wiki/Key:cyclestreet' target='_blank'>cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes' target='_blank'>yes</a>|<a href='https://wiki.openstreetmap.org/wiki/Key:bicycle_road' target='_blank'>bicycle_road</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:bicycle_road%3Dyes' target='_blank'>yes</a>
|
||||
|
||||
|
||||
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22cyclestreet%22%3D%22yes%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
|
||||
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22bicycle_road%22%3D%22yes%22%5D(%7B%7Bbbox%7D%7D)%3B%0A%20%20%20%20nwr%5B%22cyclestreet%22%3D%22yes%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
|
||||
|
||||
|
||||
|
||||
|
@ -59,7 +59,7 @@ this quick overview is incomplete
|
|||
|
||||
attribute | type | values which are supported by this layer
|
||||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/cyclestreet#values) [cyclestreet](https://wiki.openstreetmap.org/wiki/Key:cyclestreet) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes) [yes](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes) [](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3D) [](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3D)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/traffic_sign#values) [traffic_sign](https://wiki.openstreetmap.org/wiki/Key:traffic_sign) | Multiple choice | [DE:244.1,1020-30](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1020-30) [DE:244.1,1022-12,1024-10](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12,1024-10) [DE:244.1,1022-12](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12) [DE:244.1,1024-10](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1024-10) [DE:244.1](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/cyclestreet:start_date#values) [cyclestreet:start_date](https://wiki.openstreetmap.org/wiki/Key:cyclestreet:start_date) | [date](../SpecialInputElements.md#date) |
|
||||
|
||||
|
||||
|
@ -88,13 +88,38 @@ The question is Is the street <b>{name}</b> a cyclestreet?
|
|||
|
||||
|
||||
- This street is a cyclestreet (and has a speed limit of 30 km/h) corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:cyclestreet' target='_blank'>cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes' target='_blank'>yes</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:maxspeed' target='_blank'>maxspeed</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:maxspeed%3D30' target='_blank'>30</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:overtaking:motor_vehicle' target='_blank'>overtaking:motor_vehicle</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:overtaking:motor_vehicle%3Dno' target='_blank'>no</a>`
|
||||
- This street is a bicycle road corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:bicycle_road' target='_blank'>bicycle_road</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:bicycle_road%3Dyes' target='_blank'>yes</a>`
|
||||
- This option cannot be chosen as answer
|
||||
- This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later) corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:bicycle_road' target='_blank'>bicycle_road</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:bicycle_road%3Dyes' target='_blank'>yes</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:maxspeed' target='_blank'>maxspeed</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:maxspeed%3D30' target='_blank'>30</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:source:maxspeed' target='_blank'>source:maxspeed</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:source:maxspeed%3DDE:bicycle_road' target='_blank'>DE:bicycle_road</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:vehicle' target='_blank'>vehicle</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:vehicle%3Dno' target='_blank'>no</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:bicycle' target='_blank'>bicycle</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:bicycle%3Ddesignated' target='_blank'>designated</a>`
|
||||
- This street is a cyclestreet corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:cyclestreet' target='_blank'>cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes' target='_blank'>yes</a>`
|
||||
- This street will become a cyclestreet soon corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:proposed:cyclestreet' target='_blank'>proposed:cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:proposed:cyclestreet%3Dyes' target='_blank'>yes</a>`
|
||||
- This street will become a bicycle road soon corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:proposed:bicycle_road' target='_blank'>proposed:bicycle_road</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:proposed:bicycle_road%3Dyes' target='_blank'>yes</a>`
|
||||
- This street is not a cyclestreet corresponds with ``
|
||||
|
||||
|
||||
|
||||
|
||||
### supplementary_sign
|
||||
|
||||
|
||||
|
||||
The question is What sign does this bicycle road have?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Residents allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1020-30' target='_blank'>DE:244.1,1020-30</a>`
|
||||
- Motor vehicles allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12,1024-10' target='_blank'>DE:244.1,1022-12,1024-10</a>`
|
||||
- Motorcycles allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12' target='_blank'>DE:244.1,1022-12</a>`
|
||||
- Cars allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1024-10' target='_blank'>DE:244.1,1024-10</a>`
|
||||
- There are no supplementary signs at this bicycle road. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1' target='_blank'>DE:244.1</a>`
|
||||
|
||||
|
||||
Only visible if `bicycle_road=yes&_country=de` is shown
|
||||
|
||||
|
||||
|
||||
### future_cyclestreet
|
||||
|
||||
|
||||
|
|
232
Docs/Layers/fitness_centre.md
Normal file
232
Docs/Layers/fitness_centre.md
Normal file
|
@ -0,0 +1,232 @@
|
|||
|
||||
|
||||
fitness_centre
|
||||
================
|
||||
|
||||
|
||||
|
||||
<img src='https://mapcomplete.osm.be/circle:white;./assets/layers/fitness_centre/gym.svg' height="100px">
|
||||
|
||||
Layer showing fitness centres
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This layer is shown at zoomlevel **12** and higher
|
||||
|
||||
|
||||
|
||||
|
||||
#### Themes using this layer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
- [sports](https://mapcomplete.osm.be/sports)
|
||||
|
||||
|
||||
|
||||
|
||||
Basic tags for this layer
|
||||
---------------------------
|
||||
|
||||
|
||||
|
||||
Elements must have the all of following tags to be shown on this layer:
|
||||
|
||||
|
||||
|
||||
- <a href='https://wiki.openstreetmap.org/wiki/Key:leisure' target='_blank'>leisure</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:leisure%3Dfitness_centre' target='_blank'>fitness_centre</a>
|
||||
|
||||
|
||||
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22leisure%22%3D%22fitness_centre%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
|
||||
|
||||
|
||||
|
||||
Supported attributes
|
||||
----------------------
|
||||
|
||||
|
||||
|
||||
Warning:
|
||||
|
||||
this quick overview is incomplete
|
||||
|
||||
|
||||
|
||||
attribute | type | values which are supported by this layer
|
||||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/wheelchair#values) [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/level#values) [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1)
|
||||
|
||||
|
||||
|
||||
|
||||
### name
|
||||
|
||||
|
||||
|
||||
The question is What is the name of this fitness centre?
|
||||
|
||||
This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
|
||||
|
||||
This is rendered with This fitness centre is called {name}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This fitness centre has no name corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:noname' target='_blank'>noname</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:noname%3Dyes' target='_blank'>yes</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### images
|
||||
|
||||
|
||||
|
||||
This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata`
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### phone
|
||||
|
||||
|
||||
|
||||
The question is What is the phone number of {title()}?
|
||||
|
||||
This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
|
||||
|
||||
This is rendered with <a href='tel:{phone}'>{phone}</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- <a href='tel:{contact:phone}'>{contact:phone}</a> corresponds with `contact:phone~.+`
|
||||
- This option cannot be chosen as answer
|
||||
|
||||
|
||||
|
||||
|
||||
### email
|
||||
|
||||
|
||||
|
||||
The question is What is the email address of {title()}?
|
||||
|
||||
This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
|
||||
|
||||
This is rendered with <a href='mailto:{email}' target='_blank'>{email}</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- <a href='mailto:{contact:email}' target='_blank'>{contact:email}</a> corresponds with `contact:email~.+`
|
||||
- This option cannot be chosen as answer
|
||||
|
||||
|
||||
|
||||
|
||||
### website
|
||||
|
||||
|
||||
|
||||
The question is What is the website of {title()}?
|
||||
|
||||
This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
|
||||
|
||||
This is rendered with <a href='{website}' target='_blank'>{website}</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- <a href='{contact:website}' target='_blank'>{contact:website}</a> corresponds with `contact:website~.+`
|
||||
- This option cannot be chosen as answer
|
||||
|
||||
|
||||
|
||||
|
||||
### opening_hours
|
||||
|
||||
|
||||
|
||||
The question is What are the opening hours of {title()}?
|
||||
|
||||
This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
|
||||
|
||||
This is rendered with <h3>Opening hours</h3>{opening_hours_table(opening_hours)}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### wheelchair-access
|
||||
|
||||
|
||||
|
||||
The question is Is this place accessible with a wheelchair?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This place is specially adapted for wheelchair users corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:wheelchair' target='_blank'>wheelchair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated' target='_blank'>designated</a>`
|
||||
- This place is easily reachable with a wheelchair corresponds 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>`
|
||||
- It is possible to reach this place in a wheelchair, but it is not easy corresponds 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>`
|
||||
- This place is not reachable with a wheelchair corresponds 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>`
|
||||
|
||||
|
||||
|
||||
|
||||
### level
|
||||
|
||||
|
||||
|
||||
The question is On what level is this feature located?
|
||||
|
||||
This rendering asks information about the property [level](https://wiki.openstreetmap.org/wiki/Key:level)
|
||||
|
||||
This is rendered with Located on the {level}th floor
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Located underground corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:location' target='_blank'>location</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:location%3Dunderground' target='_blank'>underground</a>`
|
||||
- This option cannot be chosen as answer
|
||||
- Located on the ground floor corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:level' target='_blank'>level</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:level%3D0' target='_blank'>0</a>`
|
||||
- Located on the ground floor corresponds with ``
|
||||
- This option cannot be chosen as answer
|
||||
- Located on the first floor corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:level' target='_blank'>level</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:level%3D1' target='_blank'>1</a>`
|
||||
- Located on the first basement level corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:level' target='_blank'>level</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:level%3D-1' target='_blank'>-1</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### reviews
|
||||
|
||||
|
||||
|
||||
Shows the reviews module (including the possibility to leave a review)
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
This document is autogenerated from [assets/layers/fitness_centre/fitness_centre.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/fitness_centre/fitness_centre.json)
|
155
Docs/Layers/fitness_station.md
Normal file
155
Docs/Layers/fitness_station.md
Normal file
|
@ -0,0 +1,155 @@
|
|||
|
||||
|
||||
fitness_station
|
||||
=================
|
||||
|
||||
|
||||
|
||||
<img src='https://mapcomplete.osm.be/circle:white;./assets/layers/fitness_station/fitness.svg' height="100px">
|
||||
|
||||
Find a fitness station near you, and add missing ones.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This layer is shown at zoomlevel **12** and higher
|
||||
|
||||
|
||||
|
||||
|
||||
#### Themes using this layer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
- [sports](https://mapcomplete.osm.be/sports)
|
||||
|
||||
|
||||
|
||||
|
||||
Basic tags for this layer
|
||||
---------------------------
|
||||
|
||||
|
||||
|
||||
Elements must have the all of following tags to be shown on this layer:
|
||||
|
||||
|
||||
|
||||
- <a href='https://wiki.openstreetmap.org/wiki/Key:leisure' target='_blank'>leisure</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:leisure%3Dfitness_station' target='_blank'>fitness_station</a>
|
||||
|
||||
|
||||
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22leisure%22%3D%22fitness_station%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
|
||||
|
||||
|
||||
|
||||
Supported attributes
|
||||
----------------------
|
||||
|
||||
|
||||
|
||||
Warning:
|
||||
|
||||
this quick overview is incomplete
|
||||
|
||||
|
||||
|
||||
attribute | type | values which are supported by this layer
|
||||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/fitness_station#values) [fitness_station](https://wiki.openstreetmap.org/wiki/Key:fitness_station) | Multiple choice | [horizontal_bar](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dhorizontal_bar) [sign](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dsign) [sit-up](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dsit-up) [push-up](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dpush-up) [stretch_bars](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dstretch_bars) [hyperextension](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dhyperextension) [rings](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Drings) [horizontal_ladder](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dhorizontal_ladder) [wall_bars](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dwall_bars) [slalom](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dslalom) [stepping_stones](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dstepping_stones) [leapfrog](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dleapfrog) [beam_jump](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dbeam_jump) [hurdling](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dhurdling) [wall](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dwall) [balance_beam](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dbalance_beam) [log_lifting](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dlog_lifting) [captains_chair](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dcaptains_chair) [box](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dbox) [battling_ropes](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dbattling_ropes) [excercise_bike](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dexcercise_bike) [elliptical_trainer](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Delliptical_trainer) [air_walker](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dair_walker) [rower](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Drower) [slackline](https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dslackline)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/operator#values) [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
|
||||
|
||||
|
||||
|
||||
|
||||
### name
|
||||
|
||||
|
||||
|
||||
The question is What is the name of this fitness station?
|
||||
|
||||
This rendering asks information about the property [name](https://wiki.openstreetmap.org/wiki/Key:name)
|
||||
|
||||
This is rendered with This fitness station is called {name}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This fitness station doesn't have a name corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:noname' target='_blank'>noname</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:noname%3Dyes' target='_blank'>yes</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### type
|
||||
|
||||
|
||||
|
||||
The question is What kind of equipment does this fitness station have?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This fitness station has a horizontal bar, high enough for pull-ups. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dhorizontal_bar' target='_blank'>horizontal_bar</a>`
|
||||
- This fitness station has a sign with instructions for a specific exercise. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dsign' target='_blank'>sign</a>`
|
||||
- This fitness station has a facility for sit-ups. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dsit-up' target='_blank'>sit-up</a>`
|
||||
- This fitness station has a facility for push-ups. Usually consists of one or more low horizontal bars. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dpush-up' target='_blank'>push-up</a>`
|
||||
- This fitness station has bars for stretching. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dstretch_bars' target='_blank'>stretch_bars</a>`
|
||||
- This fitness station has a station for making hyperextensions. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dhyperextension' target='_blank'>hyperextension</a>`
|
||||
- This fitness station has rings for gymnastic exercises. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Drings' target='_blank'>rings</a>`
|
||||
- This fitness station has a horizontal ladder, also known as monkey bars. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dhorizontal_ladder' target='_blank'>horizontal_ladder</a>`
|
||||
- This fitness station has wall bars to climb on. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dwall_bars' target='_blank'>wall_bars</a>`
|
||||
- This fitness station has posts for performing slalom exercises. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dslalom' target='_blank'>slalom</a>`
|
||||
- This fitness station has stepping stones. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dstepping_stones' target='_blank'>stepping_stones</a>`
|
||||
- This fitness station has cones for performing leapfrog jumps. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dleapfrog' target='_blank'>leapfrog</a>`
|
||||
- This fitness station has beams to jump over. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dbeam_jump' target='_blank'>beam_jump</a>`
|
||||
- This fitness station has hurdles to cross. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dhurdling' target='_blank'>hurdling</a>`
|
||||
- This fitness station has a wall to climb on. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dwall' target='_blank'>wall</a>`
|
||||
- This fitness station has a balance beam. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dbalance_beam' target='_blank'>balance_beam</a>`
|
||||
- This fitness station has a log with a handle on the end to lift. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dlog_lifting' target='_blank'>log_lifting</a>`
|
||||
- This fitness station has a chair with only elbow supports and a rear (without seat), for performing leg raises. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dcaptains_chair' target='_blank'>captains_chair</a>`
|
||||
- This fitness station has a box that can be used for jumping. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dbox' target='_blank'>box</a>`
|
||||
- This fitness station has battling ropes. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dbattling_ropes' target='_blank'>battling_ropes</a>`
|
||||
- This fitness station has a stationary bicycle. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dexcercise_bike' target='_blank'>excercise_bike</a>`
|
||||
- This fitness station has a cross-trainer. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Delliptical_trainer' target='_blank'>elliptical_trainer</a>`
|
||||
- This fitness station has an air walker. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dair_walker' target='_blank'>air_walker</a>`
|
||||
- This fitness station has a rower. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Drower' target='_blank'>rower</a>`
|
||||
- This fitness station has a slackline. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:fitness_station' target='_blank'>fitness_station</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:fitness_station%3Dslackline' target='_blank'>slackline</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### operator
|
||||
|
||||
|
||||
|
||||
The question is Who maintains this fitness station?
|
||||
|
||||
This rendering asks information about the property [operator](https://wiki.openstreetmap.org/wiki/Key:operator)
|
||||
|
||||
This is rendered with The fitness station is maintained by {operator}.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### opening_hours
|
||||
|
||||
|
||||
|
||||
The question is What are the opening hours of {title()}?
|
||||
|
||||
This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
|
||||
|
||||
This is rendered with <h3>Opening hours</h3>{opening_hours_table(opening_hours)}
|
||||
|
||||
|
||||
|
||||
This document is autogenerated from [assets/layers/fitness_station/fitness_station.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/fitness_station/fitness_station.json)
|
|
@ -28,6 +28,7 @@ A layer showing kerbs.
|
|||
|
||||
|
||||
|
||||
- [blind_osm](https://mapcomplete.osm.be/blind_osm)
|
||||
- [kerbs_and_crossings](https://mapcomplete.osm.be/kerbs_and_crossings)
|
||||
- [onwheels](https://mapcomplete.osm.be/onwheels)
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
|
@ -66,7 +67,7 @@ attribute | type | values which are supported by this layer
|
|||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/kerb#values) [kerb](https://wiki.openstreetmap.org/wiki/Key:kerb) | Multiple choice | [raised](https://wiki.openstreetmap.org/wiki/Tag:kerb%3Draised) [lowered](https://wiki.openstreetmap.org/wiki/Tag:kerb%3Dlowered) [flush](https://wiki.openstreetmap.org/wiki/Tag:kerb%3Dflush)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/tactile_paving#values) [tactile_paving](https://wiki.openstreetmap.org/wiki/Key:tactile_paving) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:tactile_paving%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:tactile_paving%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/kerb:height#values) [kerb:height](https://wiki.openstreetmap.org/wiki/Key:kerb:height) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/kerb:height#values) [kerb:height](https://wiki.openstreetmap.org/wiki/Key:kerb:height) | [pnat](../SpecialInputElements.md#pnat) | [0](https://wiki.openstreetmap.org/wiki/Tag:kerb:height%3D0)
|
||||
|
||||
|
||||
|
||||
|
@ -138,4 +139,9 @@ This is rendered with Kerb height: {kerb:height}
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
- This kerb is flush and is lower than 1cm. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:kerb:height' target='_blank'>kerb:height</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:kerb:height%3D0' target='_blank'>0</a>`
|
||||
|
||||
|
||||
This document is autogenerated from [assets/layers/kerbs/kerbs.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/kerbs/kerbs.json)
|
|
@ -15,6 +15,7 @@ Shows the allowed speed for every road
|
|||
|
||||
|
||||
- This layer is shown at zoomlevel **16** and higher
|
||||
- This layer is needed as dependency for layer [speed_camera](#speed_camera)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ A layer showing the OpenStreetMap Communities
|
|||
|
||||
|
||||
- [osm_community_index](https://mapcomplete.osm.be/osm_community_index)
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ The question is What kind of parking space is this?
|
|||
|
||||
|
||||
|
||||
- This is a normal parking space corresponds with ``
|
||||
- This is a normal parking space. corresponds with ``
|
||||
- This option cannot be chosen as answer
|
||||
- This is a normal parking space. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:parking_space' target='_blank'>parking_space</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:parking_space%3Dnormal' target='_blank'>normal</a>`
|
||||
- This is a disabled parking space. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:parking_space' target='_blank'>parking_space</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:parking_space%3Ddisabled' target='_blank'>disabled</a>`
|
||||
|
|
|
@ -60,7 +60,14 @@ this quick overview is incomplete
|
|||
|
||||
attribute | type | values which are supported by this layer
|
||||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/post_office#values) [post_office](https://wiki.openstreetmap.org/wiki/Key:post_office) | Multiple choice | [post_partner](https://wiki.openstreetmap.org/wiki/Tag:post_office%3Dpost_partner) [](https://wiki.openstreetmap.org/wiki/Tag:post_office%3D)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/post_office:brand#values) [post_office:brand](https://wiki.openstreetmap.org/wiki/Key:post_office:brand) | [string](../SpecialInputElements.md#string) | [DHL](https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DDHL) [DPD](https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DDPD) [GLS](https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DGLS) [UPS](https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DUPS) [DHL Paketshop](https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DDHL Paketshop) [Hermes PaketShop](https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DHermes PaketShop) [PostNL](https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DPostNL) [bpost](https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3Dbpost)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/post_office:letter_from#values) [post_office:letter_from](https://wiki.openstreetmap.org/wiki/Key:post_office:letter_from) | [string](../SpecialInputElements.md#string) | [yes](https://wiki.openstreetmap.org/wiki/Tag:post_office:letter_from%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:post_office:letter_from%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/post_office:parcel_from#values) [post_office:parcel_from](https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_from) | [string](../SpecialInputElements.md#string) | [yes](https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_from%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_from%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/post_office:parcel_pickup#values) [post_office:parcel_pickup](https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_pickup) | [string](../SpecialInputElements.md#string) | [yes](https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_pickup%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_pickup%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/post_office:parcel_to#values) [post_office:parcel_to](https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_to) | [string](../SpecialInputElements.md#string) | [yes](https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_to%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_to%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/post_office:stamps#values) [post_office:stamps](https://wiki.openstreetmap.org/wiki/Key:post_office:stamps) | [string](../SpecialInputElements.md#string) | [yes](https://wiki.openstreetmap.org/wiki/Tag:post_office:stamps%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:post_office:stamps%3Dno)
|
||||
|
||||
|
||||
|
||||
|
@ -87,7 +94,7 @@ This tagrendering has no question and is thus read-only
|
|||
|
||||
|
||||
|
||||
### OH
|
||||
### opening_hours
|
||||
|
||||
|
||||
|
||||
|
@ -95,13 +102,154 @@ The question is What are the opening hours for this post office?
|
|||
|
||||
This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
|
||||
|
||||
This is rendered with Opening Hours: {opening_hours_table()}
|
||||
This is rendered with <h3>Opening hours</h3>{opening_hours_table(opening_hours)}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- 24/7 opened (including holidays) corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:opening_hours' target='_blank'>opening_hours</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7' target='_blank'>24/7</a>`
|
||||
### post_partner
|
||||
|
||||
|
||||
|
||||
The question is Is this a post partner?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This shop is a post partner corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office' target='_blank'>post_office</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office%3Dpost_partner' target='_blank'>post_partner</a>`
|
||||
- This shop is not a post partner corresponds with ``
|
||||
|
||||
|
||||
Only visible if `post_office=post_partner` is shown
|
||||
|
||||
|
||||
|
||||
### partner-brand
|
||||
|
||||
|
||||
|
||||
The question is For which brand does this location offer services?
|
||||
|
||||
This rendering asks information about the property [post_office:brand](https://wiki.openstreetmap.org/wiki/Key:post_office:brand)
|
||||
|
||||
This is rendered with This location offers services for {post_office:brand}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This location offers services for DHL corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:brand' target='_blank'>post_office:brand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DDHL' target='_blank'>DHL</a>`
|
||||
- This location offers services for DPD corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:brand' target='_blank'>post_office:brand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DDPD' target='_blank'>DPD</a>`
|
||||
- This location offers services for GLS corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:brand' target='_blank'>post_office:brand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DGLS' target='_blank'>GLS</a>`
|
||||
- This location offers services for UPS corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:brand' target='_blank'>post_office:brand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DUPS' target='_blank'>UPS</a>`
|
||||
- This location is a DHL Paketshop corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:brand' target='_blank'>post_office:brand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DDHL Paketshop' target='_blank'>DHL Paketshop</a>`
|
||||
- This location is a Hermes PaketShop corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:brand' target='_blank'>post_office:brand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DHermes PaketShop' target='_blank'>Hermes PaketShop</a>`
|
||||
- This location is a PostNL-point corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:brand' target='_blank'>post_office:brand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3DPostNL' target='_blank'>PostNL</a>`
|
||||
- This location offers services for bpost corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:brand' target='_blank'>post_office:brand</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:brand%3Dbpost' target='_blank'>bpost</a>`
|
||||
|
||||
|
||||
Only visible if `post_office=post_partner` is shown
|
||||
|
||||
|
||||
|
||||
### letter-from
|
||||
|
||||
|
||||
|
||||
The question is Can you post a letter here?
|
||||
|
||||
This rendering asks information about the property [post_office:letter_from](https://wiki.openstreetmap.org/wiki/Key:post_office:letter_from)
|
||||
|
||||
This is rendered with You can post letters with these companies: {post_office:letter_from}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- You can post letters here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:letter_from' target='_blank'>post_office:letter_from</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:letter_from%3Dyes' target='_blank'>yes</a>`
|
||||
- You can't post letters here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:letter_from' target='_blank'>post_office:letter_from</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:letter_from%3Dno' target='_blank'>no</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### parcel-from
|
||||
|
||||
|
||||
|
||||
The question is Can you send a parcel here?
|
||||
|
||||
This rendering asks information about the property [post_office:parcel_from](https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_from)
|
||||
|
||||
This is rendered with You can post parcels with these companies: {post_office:parcel_from}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- You can send parcels here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_from' target='_blank'>post_office:parcel_from</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_from%3Dyes' target='_blank'>yes</a>`
|
||||
- You can't send parcels here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_from' target='_blank'>post_office:parcel_from</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_from%3Dno' target='_blank'>no</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### parcel-pickup
|
||||
|
||||
|
||||
|
||||
The question is Can you pick up missed parcels here?
|
||||
|
||||
This rendering asks information about the property [post_office:parcel_pickup](https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_pickup)
|
||||
|
||||
This is rendered with You can pick up parcels from these companies: {post_office:parcel_pickup}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- You can pick up missed parcels here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_pickup' target='_blank'>post_office:parcel_pickup</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_pickup%3Dyes' target='_blank'>yes</a>`
|
||||
- You can't pick up missed parcels here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_pickup' target='_blank'>post_office:parcel_pickup</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_pickup%3Dno' target='_blank'>no</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### parcel-to
|
||||
|
||||
|
||||
|
||||
The question is Can you send parcels to here for pickup?
|
||||
|
||||
This rendering asks information about the property [post_office:parcel_to](https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_to)
|
||||
|
||||
This is rendered with You can send parcels to here for pickup with these companies: {post_office:parcel_to}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- You can send parcels to here for pickup corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_to' target='_blank'>post_office:parcel_to</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_to%3Dyes' target='_blank'>yes</a>`
|
||||
- You can't send parcels to here for pickup corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:parcel_to' target='_blank'>post_office:parcel_to</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:parcel_to%3Dno' target='_blank'>no</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### stamps
|
||||
|
||||
|
||||
|
||||
The question is Can you buy stamps here?
|
||||
|
||||
This rendering asks information about the property [post_office:stamps](https://wiki.openstreetmap.org/wiki/Key:post_office:stamps)
|
||||
|
||||
This is rendered with You can buy stamps from companies: {post_office:stamps}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- You can buy stamps here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:stamps' target='_blank'>post_office:stamps</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:stamps%3Dyes' target='_blank'>yes</a>`
|
||||
- You can't buy stamps here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:post_office:stamps' target='_blank'>post_office:stamps</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:post_office:stamps%3Dno' target='_blank'>no</a>`
|
||||
|
||||
|
||||
This document is autogenerated from [assets/layers/postoffices/postoffices.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/postoffices/postoffices.json)
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
93
Docs/Layers/speed_camera.md
Normal file
93
Docs/Layers/speed_camera.md
Normal file
|
@ -0,0 +1,93 @@
|
|||
|
||||
|
||||
speed_camera
|
||||
==============
|
||||
|
||||
|
||||
|
||||
<img src='https://mapcomplete.osm.be/square:white;./assets/layers/speed_camera/speed_camera.svg' height="100px">
|
||||
|
||||
Layer showing speed cameras
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This layer is shown at zoomlevel **12** and higher
|
||||
- This layer will automatically load [maxspeed](./maxspeed.md) into the layout as it depends on it: a preset snaps to this layer (presets[0])
|
||||
|
||||
|
||||
|
||||
|
||||
#### Themes using this layer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- [maxspeed](https://mapcomplete.osm.be/maxspeed)
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
|
||||
|
||||
|
||||
|
||||
Basic tags for this layer
|
||||
---------------------------
|
||||
|
||||
|
||||
|
||||
Elements must have the all of following tags to be shown on this layer:
|
||||
|
||||
|
||||
|
||||
- <a href='https://wiki.openstreetmap.org/wiki/Key:highway' target='_blank'>highway</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:highway%3Dspeed_camera' target='_blank'>speed_camera</a>
|
||||
|
||||
|
||||
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22highway%22%3D%22speed_camera%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
|
||||
|
||||
|
||||
|
||||
Supported attributes
|
||||
----------------------
|
||||
|
||||
|
||||
|
||||
Warning:
|
||||
|
||||
this quick overview is incomplete
|
||||
|
||||
|
||||
|
||||
attribute | type | values which are supported by this layer
|
||||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/maxspeed#values) [maxspeed](https://wiki.openstreetmap.org/wiki/Key:maxspeed) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
|
||||
|
||||
|
||||
|
||||
### maxspeed
|
||||
|
||||
|
||||
|
||||
The question is What is the maximum speed allowed at this speed camera?
|
||||
|
||||
This rendering asks information about the property [maxspeed](https://wiki.openstreetmap.org/wiki/Key:maxspeed)
|
||||
|
||||
This is rendered with The maximum speed allowed is {canonical(maxspeed)}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### ref
|
||||
|
||||
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
Only visible if `ref~.+` is shown
|
||||
|
||||
This document is autogenerated from [assets/layers/speed_camera/speed_camera.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/speed_camera/speed_camera.json)
|
95
Docs/Layers/speed_display.md
Normal file
95
Docs/Layers/speed_display.md
Normal file
|
@ -0,0 +1,95 @@
|
|||
|
||||
|
||||
speed_display
|
||||
===============
|
||||
|
||||
|
||||
|
||||
<img src='https://mapcomplete.osm.be/./assets/layers/speed_display/speed_display.svg' height="100px">
|
||||
|
||||
Layer showing speed displays that alert drivers of their speed.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This layer is shown at zoomlevel **12** and higher
|
||||
|
||||
|
||||
|
||||
|
||||
#### Themes using this layer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- [maxspeed](https://mapcomplete.osm.be/maxspeed)
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
|
||||
|
||||
|
||||
|
||||
Basic tags for this layer
|
||||
---------------------------
|
||||
|
||||
|
||||
|
||||
Elements must have the all of following tags to be shown on this layer:
|
||||
|
||||
|
||||
|
||||
- <a href='https://wiki.openstreetmap.org/wiki/Key:highway' target='_blank'>highway</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:highway%3Dspeed_display' target='_blank'>speed_display</a>
|
||||
|
||||
|
||||
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22highway%22%3D%22speed_display%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
|
||||
|
||||
|
||||
|
||||
Supported attributes
|
||||
----------------------
|
||||
|
||||
|
||||
|
||||
Warning:
|
||||
|
||||
this quick overview is incomplete
|
||||
|
||||
|
||||
|
||||
attribute | type | values which are supported by this layer
|
||||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/maxspeed#values) [maxspeed](https://wiki.openstreetmap.org/wiki/Key:maxspeed) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/inscription#values) [inscription](https://wiki.openstreetmap.org/wiki/Key:inscription) | [string](../SpecialInputElements.md#string) |
|
||||
|
||||
|
||||
|
||||
|
||||
### maxspeed
|
||||
|
||||
|
||||
|
||||
The question is What is the maximum speed allowed at this speed display?
|
||||
|
||||
This rendering asks information about the property [maxspeed](https://wiki.openstreetmap.org/wiki/Key:maxspeed)
|
||||
|
||||
This is rendered with The maximum speed allowed at this speed display is {canonical(maxspeed)}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### inscription
|
||||
|
||||
|
||||
|
||||
The question is What is the text on this speed display?
|
||||
|
||||
This rendering asks information about the property [inscription](https://wiki.openstreetmap.org/wiki/Key:inscription)
|
||||
|
||||
This is rendered with The text on this speed display is {inscription}
|
||||
|
||||
|
||||
|
||||
This document is autogenerated from [assets/layers/speed_display/speed_display.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/speed_display/speed_display.json)
|
|
@ -27,6 +27,7 @@ A sport pitch
|
|||
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
- [sport_pitches](https://mapcomplete.osm.be/sport_pitches)
|
||||
- [sports](https://mapcomplete.osm.be/sports)
|
||||
|
||||
|
||||
|
||||
|
|
174
Docs/Layers/sports_centre.md
Normal file
174
Docs/Layers/sports_centre.md
Normal file
|
@ -0,0 +1,174 @@
|
|||
|
||||
|
||||
sports_centre
|
||||
===============
|
||||
|
||||
|
||||
|
||||
<img src='https://mapcomplete.osm.be/circle:white;./assets/layers/sports_centre/sports_centre.svg' height="100px">
|
||||
|
||||
Indoor and outdoor sports centres can be found on this layer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This layer is shown at zoomlevel **12** and higher
|
||||
|
||||
|
||||
|
||||
|
||||
#### Themes using this layer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
- [sports](https://mapcomplete.osm.be/sports)
|
||||
|
||||
|
||||
|
||||
|
||||
Basic tags for this layer
|
||||
---------------------------
|
||||
|
||||
|
||||
|
||||
Elements must have the all of following tags to be shown on this layer:
|
||||
|
||||
|
||||
|
||||
- <a href='https://wiki.openstreetmap.org/wiki/Key:leisure' target='_blank'>leisure</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:leisure%3Dsports_centre' target='_blank'>sports_centre</a>
|
||||
|
||||
|
||||
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22leisure%22%3D%22sports_centre%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
|
||||
|
||||
|
||||
|
||||
Supported attributes
|
||||
----------------------
|
||||
|
||||
|
||||
|
||||
Warning:
|
||||
|
||||
this quick overview is incomplete
|
||||
|
||||
|
||||
|
||||
attribute | type | values which are supported by this layer
|
||||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/wheelchair#values) [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno)
|
||||
|
||||
|
||||
|
||||
|
||||
### images
|
||||
|
||||
|
||||
|
||||
This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata`
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### opening_hours
|
||||
|
||||
|
||||
|
||||
The question is What are the opening hours of {title()}?
|
||||
|
||||
This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
|
||||
|
||||
This is rendered with <h3>Opening hours</h3>{opening_hours_table(opening_hours)}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### phone
|
||||
|
||||
|
||||
|
||||
The question is What is the phone number of {title()}?
|
||||
|
||||
This rendering asks information about the property [phone](https://wiki.openstreetmap.org/wiki/Key:phone)
|
||||
|
||||
This is rendered with <a href='tel:{phone}'>{phone}</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- <a href='tel:{contact:phone}'>{contact:phone}</a> corresponds with `contact:phone~.+`
|
||||
- This option cannot be chosen as answer
|
||||
|
||||
|
||||
|
||||
|
||||
### website
|
||||
|
||||
|
||||
|
||||
The question is What is the website of {title()}?
|
||||
|
||||
This rendering asks information about the property [website](https://wiki.openstreetmap.org/wiki/Key:website)
|
||||
|
||||
This is rendered with <a href='{website}' target='_blank'>{website}</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- <a href='{contact:website}' target='_blank'>{contact:website}</a> corresponds with `contact:website~.+`
|
||||
- This option cannot be chosen as answer
|
||||
|
||||
|
||||
|
||||
|
||||
### email
|
||||
|
||||
|
||||
|
||||
The question is What is the email address of {title()}?
|
||||
|
||||
This rendering asks information about the property [email](https://wiki.openstreetmap.org/wiki/Key:email)
|
||||
|
||||
This is rendered with <a href='mailto:{email}' target='_blank'>{email}</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- <a href='mailto:{contact:email}' target='_blank'>{contact:email}</a> corresponds with `contact:email~.+`
|
||||
- This option cannot be chosen as answer
|
||||
|
||||
|
||||
|
||||
|
||||
### wheelchair-access
|
||||
|
||||
|
||||
|
||||
The question is Is this place accessible with a wheelchair?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This place is specially adapted for wheelchair users corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:wheelchair' target='_blank'>wheelchair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated' target='_blank'>designated</a>`
|
||||
- This place is easily reachable with a wheelchair corresponds 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>`
|
||||
- It is possible to reach this place in a wheelchair, but it is not easy corresponds 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>`
|
||||
- This place is not reachable with a wheelchair corresponds 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 document is autogenerated from [assets/layers/sports_centre/sports_centre.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/sports_centre/sports_centre.json)
|
124
Docs/Layers/stairs.md
Normal file
124
Docs/Layers/stairs.md
Normal file
|
@ -0,0 +1,124 @@
|
|||
|
||||
|
||||
stairs
|
||||
========
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Layer showing stairs and escalators
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This layer is shown at zoomlevel **17** and higher
|
||||
- Not rendered on the map by default. If you want to rendering this on the map, override `mapRenderings`
|
||||
|
||||
|
||||
|
||||
|
||||
#### Themes using this layer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- [blind_osm](https://mapcomplete.osm.be/blind_osm)
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
|
||||
|
||||
|
||||
|
||||
Basic tags for this layer
|
||||
---------------------------
|
||||
|
||||
|
||||
|
||||
Elements must have the all of following tags to be shown on this layer:
|
||||
|
||||
|
||||
|
||||
- <a href='https://wiki.openstreetmap.org/wiki/Key:highway' target='_blank'>highway</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:highway%3Dsteps' target='_blank'>steps</a>
|
||||
|
||||
|
||||
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22highway%22%3D%22steps%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
|
||||
|
||||
|
||||
|
||||
Supported attributes
|
||||
----------------------
|
||||
|
||||
|
||||
|
||||
Warning:
|
||||
|
||||
this quick overview is incomplete
|
||||
|
||||
|
||||
|
||||
attribute | type | values which are supported by this layer
|
||||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/handrail#values) [handrail](https://wiki.openstreetmap.org/wiki/Key:handrail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:handrail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:handrail%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/conveying#values) [conveying](https://wiki.openstreetmap.org/wiki/Key:conveying) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:conveying%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:conveying%3Dno)
|
||||
|
||||
|
||||
|
||||
|
||||
### handrail
|
||||
|
||||
|
||||
|
||||
The question is Does this stair have a handrail?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- These stairs have a handrail corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:handrail' target='_blank'>handrail</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:handrail%3Dyes' target='_blank'>yes</a>`
|
||||
- These stairs do <b>not</b> have a handrail corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:handrail' target='_blank'>handrail</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:handrail%3Dno' target='_blank'>no</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### ramp
|
||||
|
||||
|
||||
|
||||
The question is Is there a ramp at these stairs?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- There is a ramp for bicycles here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:ramp:bicycle' target='_blank'>ramp:bicycle</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:ramp:bicycle%3Dyes' target='_blank'>yes</a>`
|
||||
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:ramp:bicycle' target='_blank'>ramp:bicycle</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:ramp:bicycle%3Dno' target='_blank'>no</a>
|
||||
- There is a ramp for wheelchairs here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:ramp:wheelchair' target='_blank'>ramp:wheelchair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:ramp:wheelchair%3Dyes' target='_blank'>yes</a>`
|
||||
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:ramp:wheelchair' target='_blank'>ramp:wheelchair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:ramp:wheelchair%3Dno' target='_blank'>no</a>
|
||||
- There is ramp for wheelchairs here, but it is shown separately on the map corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:ramp' target='_blank'>ramp</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:ramp%3Dseparate' target='_blank'>separate</a>`
|
||||
- This option cannot be chosen as answer
|
||||
- There is a ramp for strollers here corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:ramp:stroller' target='_blank'>ramp:stroller</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:ramp:stroller%3Dyes' target='_blank'>yes</a>`
|
||||
- Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:ramp:stroller' target='_blank'>ramp:stroller</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:ramp:stroller%3Dno' target='_blank'>no</a>
|
||||
- There is no ramp at these stairs corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:ramp' target='_blank'>ramp</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:ramp%3Dno' target='_blank'>no</a>`
|
||||
- Unselecting this answer will add
|
||||
|
||||
|
||||
|
||||
|
||||
### conveying
|
||||
|
||||
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This is an escalator corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:conveying' target='_blank'>conveying</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:conveying%3Dyes' target='_blank'>yes</a>`
|
||||
- This is not an escalator corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:conveying' target='_blank'>conveying</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:conveying%3Dno' target='_blank'>no</a>`
|
||||
|
||||
|
||||
This document is autogenerated from [assets/layers/stairs/stairs.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/stairs/stairs.json)
|
|
@ -62,8 +62,6 @@ attribute | type | values which are supported by this layer
|
|||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/amenity#values) [amenity](https://wiki.openstreetmap.org/wiki/Key:amenity) | Multiple choice | [college](https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dcollege) [university](https://wiki.openstreetmap.org/wiki/Tag:amenity%3Duniversity)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/isced:2011:level#values) [isced:2011:level](https://wiki.openstreetmap.org/wiki/Key:isced:2011:level) | Multiple choice | [bachelor](https://wiki.openstreetmap.org/wiki/Tag:isced:2011:level%3Dbachelor) [master](https://wiki.openstreetmap.org/wiki/Tag:isced:2011:level%3Dmaster) [doctorate](https://wiki.openstreetmap.org/wiki/Tag:isced:2011:level%3Ddoctorate)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/capacity#values) [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity) | [pnat](../SpecialInputElements.md#pnat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/school:gender#values) [school:gender](https://wiki.openstreetmap.org/wiki/Key:school:gender) | Multiple choice | [mixed](https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dmixed) [separated](https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dseparated) [male](https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dmale) [female](https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dfemale)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |
|
||||
|
@ -106,38 +104,6 @@ Only visible if `amenity=university` is shown
|
|||
|
||||
|
||||
|
||||
### capacity
|
||||
|
||||
|
||||
|
||||
The question is How much students can at most enroll in this school?
|
||||
|
||||
This rendering asks information about the property [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity)
|
||||
|
||||
This is rendered with This school can enroll at most {capacity} students
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### gender
|
||||
|
||||
|
||||
|
||||
The question is Which genders can enroll at this school?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Both boys and girls can enroll here and have classes together corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:school:gender' target='_blank'>school:gender</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dmixed' target='_blank'>mixed</a>`
|
||||
- Both boys and girls can enroll here but they are separated (e.g. they have lessons in different classrooms or at different times) corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:school:gender' target='_blank'>school:gender</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dseparated' target='_blank'>separated</a>`
|
||||
- This is a boys only-school corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:school:gender' target='_blank'>school:gender</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dmale' target='_blank'>male</a>`
|
||||
- This is a girls-only school corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:school:gender' target='_blank'>school:gender</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:school:gender%3Dfemale' target='_blank'>female</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### website
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
|
||||
|
||||
<img src='https://mapcomplete.osm.be/./assets/themes/cyclestreets/F113.svg' height="100px">
|
||||
|
||||
|
||||
This street will become a cyclestreet soon
|
||||
|
||||
|
@ -39,10 +39,10 @@ Elements must have the all of following tags to be shown on this layer:
|
|||
|
||||
|
||||
|
||||
- <a href='https://wiki.openstreetmap.org/wiki/Key:proposed:cyclestreet' target='_blank'>proposed:cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:proposed:cyclestreet%3Dyes' target='_blank'>yes</a>
|
||||
- <a href='https://wiki.openstreetmap.org/wiki/Key:proposed:cyclestreet' target='_blank'>proposed:cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:proposed:cyclestreet%3Dyes' target='_blank'>yes</a>|<a href='https://wiki.openstreetmap.org/wiki/Key:proposed:bicycle_road' target='_blank'>proposed:bicycle_road</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:proposed:bicycle_road%3Dyes' target='_blank'>yes</a>
|
||||
|
||||
|
||||
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22proposed%3Acyclestreet%22%3D%22yes%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
|
||||
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22proposed%3Abicycle_road%22%3D%22yes%22%5D(%7B%7Bbbox%7D%7D)%3B%0A%20%20%20%20nwr%5B%22proposed%3Acyclestreet%22%3D%22yes%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
|
||||
|
||||
|
||||
|
||||
|
@ -59,7 +59,7 @@ this quick overview is incomplete
|
|||
|
||||
attribute | type | values which are supported by this layer
|
||||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/cyclestreet#values) [cyclestreet](https://wiki.openstreetmap.org/wiki/Key:cyclestreet) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes) [yes](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes) [](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3D) [](https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3D)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/traffic_sign#values) [traffic_sign](https://wiki.openstreetmap.org/wiki/Key:traffic_sign) | Multiple choice | [DE:244.1,1020-30](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1020-30) [DE:244.1,1022-12,1024-10](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12,1024-10) [DE:244.1,1022-12](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12) [DE:244.1,1024-10](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1024-10) [DE:244.1](https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/cyclestreet:start_date#values) [cyclestreet:start_date](https://wiki.openstreetmap.org/wiki/Key:cyclestreet:start_date) | [date](../SpecialInputElements.md#date) |
|
||||
|
||||
|
||||
|
@ -88,13 +88,38 @@ The question is Is the street <b>{name}</b> a cyclestreet?
|
|||
|
||||
|
||||
- This street is a cyclestreet (and has a speed limit of 30 km/h) corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:cyclestreet' target='_blank'>cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes' target='_blank'>yes</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:maxspeed' target='_blank'>maxspeed</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:maxspeed%3D30' target='_blank'>30</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:overtaking:motor_vehicle' target='_blank'>overtaking:motor_vehicle</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:overtaking:motor_vehicle%3Dno' target='_blank'>no</a>`
|
||||
- This street is a bicycle road corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:bicycle_road' target='_blank'>bicycle_road</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:bicycle_road%3Dyes' target='_blank'>yes</a>`
|
||||
- This option cannot be chosen as answer
|
||||
- This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later) corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:bicycle_road' target='_blank'>bicycle_road</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:bicycle_road%3Dyes' target='_blank'>yes</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:maxspeed' target='_blank'>maxspeed</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:maxspeed%3D30' target='_blank'>30</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:source:maxspeed' target='_blank'>source:maxspeed</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:source:maxspeed%3DDE:bicycle_road' target='_blank'>DE:bicycle_road</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:vehicle' target='_blank'>vehicle</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:vehicle%3Dno' target='_blank'>no</a>&<a href='https://wiki.openstreetmap.org/wiki/Key:bicycle' target='_blank'>bicycle</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:bicycle%3Ddesignated' target='_blank'>designated</a>`
|
||||
- This street is a cyclestreet corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:cyclestreet' target='_blank'>cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:cyclestreet%3Dyes' target='_blank'>yes</a>`
|
||||
- This street will become a cyclestreet soon corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:proposed:cyclestreet' target='_blank'>proposed:cyclestreet</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:proposed:cyclestreet%3Dyes' target='_blank'>yes</a>`
|
||||
- This street will become a bicycle road soon corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:proposed:bicycle_road' target='_blank'>proposed:bicycle_road</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:proposed:bicycle_road%3Dyes' target='_blank'>yes</a>`
|
||||
- This street is not a cyclestreet corresponds with ``
|
||||
|
||||
|
||||
|
||||
|
||||
### supplementary_sign
|
||||
|
||||
|
||||
|
||||
The question is What sign does this bicycle road have?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Residents allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1020-30' target='_blank'>DE:244.1,1020-30</a>`
|
||||
- Motor vehicles allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12,1024-10' target='_blank'>DE:244.1,1022-12,1024-10</a>`
|
||||
- Motorcycles allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1022-12' target='_blank'>DE:244.1,1022-12</a>`
|
||||
- Cars allowed corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1,1024-10' target='_blank'>DE:244.1,1024-10</a>`
|
||||
- There are no supplementary signs at this bicycle road. corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:traffic_sign' target='_blank'>traffic_sign</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:traffic_sign%3DDE:244.1' target='_blank'>DE:244.1</a>`
|
||||
|
||||
|
||||
Only visible if `bicycle_road=yes&_country=de` is shown
|
||||
|
||||
|
||||
|
||||
### future_cyclestreet
|
||||
|
||||
|
||||
|
|
|
@ -192,7 +192,7 @@ Only visible if `fee=yes` is shown
|
|||
|
||||
|
||||
|
||||
### Opening-hours
|
||||
### opening_hours_24_7
|
||||
|
||||
|
||||
|
||||
|
@ -200,13 +200,13 @@ The question is When are these toilets opened?
|
|||
|
||||
This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
|
||||
|
||||
This is rendered with {opening_hours_table()}
|
||||
This is rendered with <h3>Opening hours</h3>{opening_hours_table(opening_hours)}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Opened 24/7 corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:opening_hours' target='_blank'>opening_hours</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7' target='_blank'>24/7</a>`
|
||||
- 24/7 opened (including holidays) corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:opening_hours' target='_blank'>opening_hours</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7' target='_blank'>24/7</a>`
|
||||
|
||||
|
||||
|
||||
|
@ -240,6 +240,8 @@ This is rendered with The door to the wheelchair-accessible toilet is {canonica
|
|||
|
||||
|
||||
|
||||
Only visible if `wheelchair=yes|wheelchair=designated` is shown
|
||||
|
||||
|
||||
|
||||
### toilets-type
|
||||
|
|
277
Docs/Layers/toilet_at_amenity.md
Normal file
277
Docs/Layers/toilet_at_amenity.md
Normal file
|
@ -0,0 +1,277 @@
|
|||
|
||||
|
||||
toilet_at_amenity
|
||||
===================
|
||||
|
||||
|
||||
|
||||
<img src='https://mapcomplete.osm.be/./assets/layers/toilet/toilets.svg' height="100px">
|
||||
|
||||
A layer showing (public) toilets located at different places.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- This layer is shown at zoomlevel **12** and higher
|
||||
|
||||
|
||||
|
||||
|
||||
#### Themes using this layer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
- [toilets](https://mapcomplete.osm.be/toilets)
|
||||
|
||||
|
||||
|
||||
|
||||
Basic tags for this layer
|
||||
---------------------------
|
||||
|
||||
|
||||
|
||||
Elements must have the all of following tags to be shown on this layer:
|
||||
|
||||
|
||||
|
||||
- <a href='https://wiki.openstreetmap.org/wiki/Key:toilets' target='_blank'>toilets</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dyes' target='_blank'>yes</a>
|
||||
|
||||
|
||||
[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22toilets%22%3D%22yes%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
|
||||
|
||||
|
||||
|
||||
Supported attributes
|
||||
----------------------
|
||||
|
||||
|
||||
|
||||
Warning:
|
||||
|
||||
this quick overview is incomplete
|
||||
|
||||
|
||||
|
||||
attribute | type | values which are supported by this layer
|
||||
----------- | ------ | ------------------------------------------
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/level#values) [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/toilets:access#values) [toilets:access](https://wiki.openstreetmap.org/wiki/Key:toilets:access) | [string](../SpecialInputElements.md#string) | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dyes) [customers](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dcustomers) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dno) [key](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dkey)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/toilets:fee#values) [toilets:fee](https://wiki.openstreetmap.org/wiki/Key:toilets:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:fee%3Dno)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/toilets:charge#values) [toilets:charge](https://wiki.openstreetmap.org/wiki/Key:toilets:charge) | [string](../SpecialInputElements.md#string) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/toilets:wheelchair#values) [toilets:wheelchair](https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Dno) [designated](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Ddesignated)
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/toilets:door:width#values) [toilets:door:width](https://wiki.openstreetmap.org/wiki/Key:toilets:door:width) | [pfloat](../SpecialInputElements.md#pfloat) |
|
||||
[<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/toilets:description#values) [toilets:description](https://wiki.openstreetmap.org/wiki/Key:toilets:description) | [string](../SpecialInputElements.md#string) |
|
||||
|
||||
|
||||
|
||||
|
||||
### images
|
||||
|
||||
|
||||
|
||||
This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata`
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### level
|
||||
|
||||
|
||||
|
||||
The question is On what level is this feature located?
|
||||
|
||||
This rendering asks information about the property [level](https://wiki.openstreetmap.org/wiki/Key:level)
|
||||
|
||||
This is rendered with Located on the {level}th floor
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Located underground corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:location' target='_blank'>location</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:location%3Dunderground' target='_blank'>underground</a>`
|
||||
- This option cannot be chosen as answer
|
||||
- Located on the ground floor corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:level' target='_blank'>level</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:level%3D0' target='_blank'>0</a>`
|
||||
- Located on the ground floor corresponds with ``
|
||||
- This option cannot be chosen as answer
|
||||
- Located on the first floor corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:level' target='_blank'>level</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:level%3D1' target='_blank'>1</a>`
|
||||
- Located on the first basement level corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:level' target='_blank'>level</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:level%3D-1' target='_blank'>-1</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### toilet-access
|
||||
|
||||
|
||||
|
||||
The question is Are these toilets publicly accessible?
|
||||
|
||||
This rendering asks information about the property [toilets:access](https://wiki.openstreetmap.org/wiki/Key:toilets:access)
|
||||
|
||||
This is rendered with Access is {toilets:access}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Public access corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:toilets:access' target='_blank'>toilets:access</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dyes' target='_blank'>yes</a>`
|
||||
- Only access to customers of the amenity corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:toilets:access' target='_blank'>toilets:access</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dcustomers' target='_blank'>customers</a>`
|
||||
- Not accessible, even for customers of the amenity corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:toilets:access' target='_blank'>toilets:access</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dno' target='_blank'>no</a>`
|
||||
- Accessible, but one has to ask a key to enter corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:toilets:access' target='_blank'>toilets:access</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dkey' target='_blank'>key</a>`
|
||||
- Public access corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:toilets:access' target='_blank'>toilets:access</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dpublic' target='_blank'>public</a>`
|
||||
- This option cannot be chosen as answer
|
||||
|
||||
|
||||
|
||||
|
||||
### toilets-fee
|
||||
|
||||
|
||||
|
||||
The question is Are these toilets free to use?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- These are paid toilets corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:toilets:fee' target='_blank'>toilets:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets:fee%3Dyes' target='_blank'>yes</a>`
|
||||
- Free to use corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:toilets:fee' target='_blank'>toilets:fee</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets:fee%3Dno' target='_blank'>no</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### toilet-charge
|
||||
|
||||
|
||||
|
||||
The question is How much does one have to pay for these toilets?
|
||||
|
||||
This rendering asks information about the property [toilets:charge](https://wiki.openstreetmap.org/wiki/Key:toilets:charge)
|
||||
|
||||
This is rendered with The fee is {toilets:charge}
|
||||
|
||||
|
||||
|
||||
Only visible if `toilets:fee=yes` is shown
|
||||
|
||||
|
||||
|
||||
### opening_hours
|
||||
|
||||
|
||||
|
||||
The question is When is the amenity where these toilets are located open?
|
||||
|
||||
This rendering asks information about the property [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)
|
||||
|
||||
This is rendered with <h3>Opening hours</h3>{opening_hours_table(opening_hours)}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### toilets-wheelchair
|
||||
|
||||
|
||||
|
||||
The question is Is there a dedicated toilet for wheelchair users?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- There is a dedicated toilet for wheelchair users corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair' target='_blank'>toilets:wheelchair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Dyes' target='_blank'>yes</a>`
|
||||
- No wheelchair access corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair' target='_blank'>toilets:wheelchair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Dno' target='_blank'>no</a>`
|
||||
- There is only a dedicated toilet for wheelchair users corresponds with `<a href='https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair' target='_blank'>toilets:wheelchair</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Ddesignated' target='_blank'>designated</a>`
|
||||
|
||||
|
||||
|
||||
|
||||
### wheelchair-door-width
|
||||
|
||||
|
||||
|
||||
The question is What is the width of the door to the wheelchair accessible toilet?
|
||||
|
||||
This rendering asks information about the property [toilets:door:width](https://wiki.openstreetmap.org/wiki/Key:toilets:door:width)
|
||||
|
||||
This is rendered with The door to the wheelchair-accessible toilet is {canonical(toilets:door:width)} wide
|
||||
|
||||
|
||||
|
||||
Only visible if `toilets:wheelchair=yes|toilets:wheelchair=designated` is shown
|
||||
|
||||
|
||||
|
||||
### toilettoiletstype
|
||||
|
||||
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### toilettoiletschangingtable
|
||||
|
||||
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### toilettoiletchangingtablelocation
|
||||
|
||||
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### toilettoilethandwashing
|
||||
|
||||
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### toilettoilethaspaper
|
||||
|
||||
|
||||
|
||||
This tagrendering has no question and is thus read-only
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### description
|
||||
|
||||
|
||||
|
||||
The question is Is there still something relevant you couldn't give in the previous questions? Add it here.<br/><span style='font-size: small'>Don't repeat already stated facts</span>
|
||||
|
||||
This rendering asks information about the property [toilets:description](https://wiki.openstreetmap.org/wiki/Key:toilets:description)
|
||||
|
||||
This is rendered with {toilets:description}
|
||||
|
||||
|
||||
|
||||
This document is autogenerated from [assets/layers/toilet_at_amenity/toilet_at_amenity.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/toilet_at_amenity/toilet_at_amenity.json)
|
|
@ -25,6 +25,7 @@ Layer showing different types of transit stops.
|
|||
|
||||
|
||||
|
||||
- [blind_osm](https://mapcomplete.osm.be/blind_osm)
|
||||
- [personal](https://mapcomplete.osm.be/personal)
|
||||
- [transit](https://mapcomplete.osm.be/transit)
|
||||
|
||||
|
|
1100
Docs/TagInfo/mapcomplete_blind_osm.json
Normal file
1100
Docs/TagInfo/mapcomplete_blind_osm.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -143,78 +143,10 @@
|
|||
"key": "contact:email",
|
||||
"description": "Layer 'Climbing gyms' shows contact:email~.+ with a fixed text, namely '<a href='mailto:{contact:email}' target='_blank'>{contact:email}</a>' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "charge",
|
||||
"description": "Layer 'Climbing gyms' shows and asks freeform values for key 'charge' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "fee",
|
||||
"description": "Layer 'Climbing gyms' shows fee=no with a fixed text, namely 'Climbing here is free of charge' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "fee",
|
||||
"description": "Layer 'Climbing gyms' shows fee=yes with a fixed text, namely 'Paying a fee is required to climb here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "charge",
|
||||
"description": "Layer 'Climbing gyms' shows fee=yes with a fixed text, namely 'Paying a fee is required to climb here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map') Picking this answer will delete the key charge.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Climbing gyms' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "climbing:length",
|
||||
"description": "Layer 'Climbing gyms' shows and asks freeform values for key 'climbing:length' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "climbing:grade:french:min",
|
||||
"description": "Layer 'Climbing gyms' shows and asks freeform values for key 'climbing:grade:french:min' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "climbing:grade:french:max",
|
||||
"description": "Layer 'Climbing gyms' shows and asks freeform values for key 'climbing:grade:french:max' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "climbing:boulder",
|
||||
"description": "Layer 'Climbing gyms' shows climbing:boulder=yes with a fixed text, namely 'Bouldering is possible here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "climbing:boulder",
|
||||
"description": "Layer 'Climbing gyms' shows climbing:boulder=no with a fixed text, namely 'Bouldering is not possible here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "climbing:boulder",
|
||||
"description": "Layer 'Climbing gyms' shows climbing:boulder=limited with a fixed text, namely 'Bouldering is possible, allthough there are only a few routes' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "limited"
|
||||
},
|
||||
{
|
||||
"key": "climbing:boulder",
|
||||
"description": "Layer 'Climbing gyms' shows climbing:boulder~.+ with a fixed text, namely 'There are {climbing:boulder} boulder routes' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "climbing:sport",
|
||||
"description": "Layer 'Climbing gyms' shows climbing:sport=yes with a fixed text, namely 'Sport climbing is possible here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "climbing:sport",
|
||||
"description": "Layer 'Climbing gyms' shows climbing:sport=no with a fixed text, namely 'Sport climbing is not possible here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "climbing:sport",
|
||||
"description": "Layer 'Climbing gyms' shows climbing:sport~.+ with a fixed text, namely 'There are {climbing:sport} sport climbing routes' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "climbing:bolts:max",
|
||||
"description": "Layer 'Climbing gyms' shows and asks freeform values for key 'climbing:bolts:max' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "climbing:speed",
|
||||
"description": "Layer 'Climbing gyms' shows climbing:speed=yes with a fixed text, namely 'There is a speed climbing wall' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
|
@ -402,48 +334,6 @@
|
|||
"description": "Layer 'Climbing opportunities' shows rock=limestone with a fixed text, namely 'Limestone' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "limestone"
|
||||
},
|
||||
{
|
||||
"key": "url",
|
||||
"description": "Layer 'Climbing opportunities' shows and asks freeform values for key 'url' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "charge",
|
||||
"description": "Layer 'Climbing opportunities' shows and asks freeform values for key 'charge' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "fee",
|
||||
"description": "Layer 'Climbing opportunities' shows fee=no with a fixed text, namely 'Climbing here is free of charge' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "fee",
|
||||
"description": "Layer 'Climbing opportunities' shows fee=yes with a fixed text, namely 'Paying a fee is required to climb here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "charge",
|
||||
"description": "Layer 'Climbing opportunities' shows fee=yes with a fixed text, namely 'Paying a fee is required to climb here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map') Picking this answer will delete the key charge.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "climbing:boulder",
|
||||
"description": "Layer 'Climbing opportunities' shows climbing:boulder=yes with a fixed text, namely 'Bouldering is possible here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "climbing:boulder",
|
||||
"description": "Layer 'Climbing opportunities' shows climbing:boulder=no with a fixed text, namely 'Bouldering is not possible here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "climbing:boulder",
|
||||
"description": "Layer 'Climbing opportunities' shows climbing:boulder=limited with a fixed text, namely 'Bouldering is possible, allthough there are only a few routes' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
"value": "limited"
|
||||
},
|
||||
{
|
||||
"key": "climbing:boulder",
|
||||
"description": "Layer 'Climbing opportunities' shows climbing:boulder~.+ with a fixed text, namely 'There are {climbing:boulder} boulder routes' (in the MapComplete.osm.be theme 'Open Climbing Map')"
|
||||
},
|
||||
{
|
||||
"key": "access",
|
||||
"description": "Layer 'Climbing opportunities' shows access=yes with a fixed text, namely 'Publicly accessible to anyone' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Climbing Map')",
|
||||
|
|
|
@ -680,6 +680,22 @@
|
|||
"description": "The MapComplete theme Bicycle infrastructure has a layer Crossings showing features with this tag",
|
||||
"value": "crossing"
|
||||
},
|
||||
{
|
||||
"key": "image",
|
||||
"description": "The layer 'Crossings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "mapillary",
|
||||
"description": "The layer 'Crossings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikidata",
|
||||
"description": "The layer 'Crossings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikipedia",
|
||||
"description": "The layer 'Crossings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "crossing",
|
||||
"description": "Layer 'Crossings' shows crossing=uncontrolled with a fixed text, namely 'Crossing, without traffic lights' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
|
@ -755,6 +771,56 @@
|
|||
"description": "Layer 'Crossings' shows button_operated=no with a fixed text, namely 'This traffic light does not have a button to request green light' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:sound",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:sound=yes with a fixed text, namely 'This traffic light has sound signals to help crossing, both for finding the crossing and for crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:sound",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:sound=no with a fixed text, namely 'This traffic light does not have sound signals to help crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:sound",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:sound=locate with a fixed text, namely 'This traffic light has a sound signal to help locate the pole, but no signal to sign that it is safe to cross.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
"value": "locate"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:sound",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:sound=walk with a fixed text, namely 'This traffic light has a sound signal to sign that it is safe to cross, but no signal to help locate the pole.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
"value": "walk"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:vibration",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:vibration=yes with a fixed text, namely 'The button for this traffic light has a vibration signal to indicate that it is safe to cross.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:vibration",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:vibration=no with a fixed text, namely 'The button for this traffic light does not have a vibration signal to indicate that it is safe to cross.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:arrow",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:arrow=yes with a fixed text, namely 'This traffic light has an arrow pointing in the direction of crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:arrow",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:arrow=no with a fixed text, namely 'This traffic light does <b>not</b> have an arrow pointing in the direction of crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:minimap",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:minimap=yes with a fixed text, namely 'This traffic light has a tactile map showing the layout of the crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:minimap",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:minimap=no with a fixed text, namely 'This traffic light does <b>not</b> have a tactile map showing the layout of the crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "red_turn:right:bicycle",
|
||||
"description": "Layer 'Crossings' shows red_turn:right:bicycle=yes with a fixed text, namely 'A cyclist can turn right if the light is red' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||
|
|
|
@ -15,6 +15,11 @@
|
|||
"description": "The MapComplete theme Cyclestreets has a layer Cyclestreets showing features with this tag",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "The MapComplete theme Cyclestreets has a layer Cyclestreets showing features with this tag",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "image",
|
||||
"description": "The layer 'Cyclestreets allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
|
@ -51,6 +56,41 @@
|
|||
"description": "Layer 'Cyclestreets' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'Cyclestreets' shows bicycle_road=yes with a fixed text, namely 'This street is a bicycle road' (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'Cyclestreets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "proposed:bicycle_road",
|
||||
"description": "Layer 'Cyclestreets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "maxspeed",
|
||||
"description": "Layer 'Cyclestreets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "30"
|
||||
},
|
||||
{
|
||||
"key": "source:maxspeed",
|
||||
"description": "Layer 'Cyclestreets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:bicycle_road"
|
||||
},
|
||||
{
|
||||
"key": "vehicle",
|
||||
"description": "Layer 'Cyclestreets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "bicycle",
|
||||
"description": "Layer 'Cyclestreets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "designated"
|
||||
},
|
||||
{
|
||||
"key": "cyclestreet",
|
||||
"description": "Layer 'Cyclestreets' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
|
@ -71,6 +111,16 @@
|
|||
"description": "Layer 'Cyclestreets' shows proposed:cyclestreet=yes with a fixed text, namely 'This street will become a cyclestreet soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'Cyclestreets' shows proposed:bicycle_road=yes with a fixed text, namely 'This street will become a bicycle road soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "proposed:bicycle_road",
|
||||
"description": "Layer 'Cyclestreets' shows proposed:bicycle_road=yes with a fixed text, namely 'This street will become a bicycle road soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "cyclestreet",
|
||||
"description": "Layer 'Cyclestreets' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key cyclestreet.",
|
||||
|
@ -81,11 +131,46 @@
|
|||
"description": "Layer 'Cyclestreets' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'Cyclestreets' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "proposed:bicycle_road",
|
||||
"description": "Layer 'Cyclestreets' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "overtaking:motor_vehicle",
|
||||
"description": "Layer 'Cyclestreets' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key overtaking:motor_vehicle.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'Cyclestreets' shows traffic_sign=DE:244.1,1020-30 with a fixed text, namely 'Residents allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1020-30"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'Cyclestreets' shows traffic_sign=DE:244.1,1022-12,1024-10 with a fixed text, namely 'Motor vehicles allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1022-12,1024-10"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'Cyclestreets' shows traffic_sign=DE:244.1,1022-12 with a fixed text, namely 'Motorcycles allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1022-12"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'Cyclestreets' shows traffic_sign=DE:244.1,1024-10 with a fixed text, namely 'Cars allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1024-10"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'Cyclestreets' shows traffic_sign=DE:244.1 with a fixed text, namely 'There are no supplementary signs at this bicycle road.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1"
|
||||
},
|
||||
{
|
||||
"key": "cyclestreet:start_date",
|
||||
"description": "Layer 'Cyclestreets' shows and asks freeform values for key 'cyclestreet:start_date' (in the MapComplete.osm.be theme 'Cyclestreets')"
|
||||
|
@ -95,6 +180,11 @@
|
|||
"description": "The MapComplete theme Cyclestreets has a layer Future cyclestreet showing features with this tag",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "proposed:bicycle_road",
|
||||
"description": "The MapComplete theme Cyclestreets has a layer Future cyclestreet showing features with this tag",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "image",
|
||||
"description": "The layer 'Future cyclestreet allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
|
@ -131,6 +221,41 @@
|
|||
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'Future cyclestreet' shows bicycle_road=yes with a fixed text, namely 'This street is a bicycle road' (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'Future cyclestreet' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "proposed:bicycle_road",
|
||||
"description": "Layer 'Future cyclestreet' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "maxspeed",
|
||||
"description": "Layer 'Future cyclestreet' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "30"
|
||||
},
|
||||
{
|
||||
"key": "source:maxspeed",
|
||||
"description": "Layer 'Future cyclestreet' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:bicycle_road"
|
||||
},
|
||||
{
|
||||
"key": "vehicle",
|
||||
"description": "Layer 'Future cyclestreet' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "bicycle",
|
||||
"description": "Layer 'Future cyclestreet' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "designated"
|
||||
},
|
||||
{
|
||||
"key": "cyclestreet",
|
||||
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
|
@ -151,6 +276,16 @@
|
|||
"description": "Layer 'Future cyclestreet' shows proposed:cyclestreet=yes with a fixed text, namely 'This street will become a cyclestreet soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'Future cyclestreet' shows proposed:bicycle_road=yes with a fixed text, namely 'This street will become a bicycle road soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "proposed:bicycle_road",
|
||||
"description": "Layer 'Future cyclestreet' shows proposed:bicycle_road=yes with a fixed text, namely 'This street will become a bicycle road soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "cyclestreet",
|
||||
"description": "Layer 'Future cyclestreet' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key cyclestreet.",
|
||||
|
@ -161,11 +296,46 @@
|
|||
"description": "Layer 'Future cyclestreet' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'Future cyclestreet' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "proposed:bicycle_road",
|
||||
"description": "Layer 'Future cyclestreet' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "overtaking:motor_vehicle",
|
||||
"description": "Layer 'Future cyclestreet' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key overtaking:motor_vehicle.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'Future cyclestreet' shows traffic_sign=DE:244.1,1020-30 with a fixed text, namely 'Residents allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1020-30"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'Future cyclestreet' shows traffic_sign=DE:244.1,1022-12,1024-10 with a fixed text, namely 'Motor vehicles allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1022-12,1024-10"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'Future cyclestreet' shows traffic_sign=DE:244.1,1022-12 with a fixed text, namely 'Motorcycles allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1022-12"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'Future cyclestreet' shows traffic_sign=DE:244.1,1024-10 with a fixed text, namely 'Cars allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1024-10"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'Future cyclestreet' shows traffic_sign=DE:244.1 with a fixed text, namely 'There are no supplementary signs at this bicycle road.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1"
|
||||
},
|
||||
{
|
||||
"key": "cyclestreet:start_date",
|
||||
"description": "Layer 'Future cyclestreet' shows and asks freeform values for key 'cyclestreet:start_date' (in the MapComplete.osm.be theme 'Cyclestreets')"
|
||||
|
@ -221,6 +391,41 @@
|
|||
"description": "Layer 'All streets' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'All streets' shows bicycle_road=yes with a fixed text, namely 'This street is a bicycle road' (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'All streets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "proposed:bicycle_road",
|
||||
"description": "Layer 'All streets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "maxspeed",
|
||||
"description": "Layer 'All streets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "30"
|
||||
},
|
||||
{
|
||||
"key": "source:maxspeed",
|
||||
"description": "Layer 'All streets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:bicycle_road"
|
||||
},
|
||||
{
|
||||
"key": "vehicle",
|
||||
"description": "Layer 'All streets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "bicycle",
|
||||
"description": "Layer 'All streets' shows bicycle_road=yes&maxspeed=30&source:maxspeed=DE:bicycle_road&vehicle=no&bicycle=designated with a fixed text, namely 'This street is a bicycle road (has a speed limit of 30 km/h and vehicles are not allowed) (sign will be asked later)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "designated"
|
||||
},
|
||||
{
|
||||
"key": "cyclestreet",
|
||||
"description": "Layer 'All streets' shows cyclestreet=yes with a fixed text, namely 'This street is a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
|
@ -241,6 +446,16 @@
|
|||
"description": "Layer 'All streets' shows proposed:cyclestreet=yes with a fixed text, namely 'This street will become a cyclestreet soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'All streets' shows proposed:bicycle_road=yes with a fixed text, namely 'This street will become a bicycle road soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "proposed:bicycle_road",
|
||||
"description": "Layer 'All streets' shows proposed:bicycle_road=yes with a fixed text, namely 'This street will become a bicycle road soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "cyclestreet",
|
||||
"description": "Layer 'All streets' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key cyclestreet.",
|
||||
|
@ -251,11 +466,46 @@
|
|||
"description": "Layer 'All streets' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "bicycle_road",
|
||||
"description": "Layer 'All streets' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "proposed:bicycle_road",
|
||||
"description": "Layer 'All streets' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:bicycle_road.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "overtaking:motor_vehicle",
|
||||
"description": "Layer 'All streets' shows with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key overtaking:motor_vehicle.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'All streets' shows traffic_sign=DE:244.1,1020-30 with a fixed text, namely 'Residents allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1020-30"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'All streets' shows traffic_sign=DE:244.1,1022-12,1024-10 with a fixed text, namely 'Motor vehicles allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1022-12,1024-10"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'All streets' shows traffic_sign=DE:244.1,1022-12 with a fixed text, namely 'Motorcycles allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1022-12"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'All streets' shows traffic_sign=DE:244.1,1024-10 with a fixed text, namely 'Cars allowed' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1,1024-10"
|
||||
},
|
||||
{
|
||||
"key": "traffic_sign",
|
||||
"description": "Layer 'All streets' shows traffic_sign=DE:244.1 with a fixed text, namely 'There are no supplementary signs at this bicycle road.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||
"value": "DE:244.1"
|
||||
},
|
||||
{
|
||||
"key": "cyclestreet:start_date",
|
||||
"description": "Layer 'All streets' shows and asks freeform values for key 'cyclestreet:start_date' (in the MapComplete.osm.be theme 'Cyclestreets')"
|
||||
|
|
|
@ -452,78 +452,6 @@
|
|||
"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.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "rental",
|
||||
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'rental' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')"
|
||||
},
|
||||
{
|
||||
"key": "rental",
|
||||
"description": "Layer 'Bike repair/shop' shows rental=city_bike with a fixed text, namely 'Normal city bikes can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "city_bike"
|
||||
},
|
||||
{
|
||||
"key": "rental",
|
||||
"description": "Layer 'Bike repair/shop' shows rental=ebike with a fixed text, namely 'Electrical bikes can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "ebike"
|
||||
},
|
||||
{
|
||||
"key": "rental",
|
||||
"description": "Layer 'Bike repair/shop' shows rental=bmx with a fixed text, namely 'BMX bikes can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "bmx"
|
||||
},
|
||||
{
|
||||
"key": "rental",
|
||||
"description": "Layer 'Bike repair/shop' shows rental=mtb with a fixed text, namely 'Mountainbikes can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "mtb"
|
||||
},
|
||||
{
|
||||
"key": "rental",
|
||||
"description": "Layer 'Bike repair/shop' shows rental=kid_bike with a fixed text, namely 'Bikes for children can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "kid_bike"
|
||||
},
|
||||
{
|
||||
"key": "rental",
|
||||
"description": "Layer 'Bike repair/shop' shows rental=tandem with a fixed text, namely 'Tandem bicycles can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "tandem"
|
||||
},
|
||||
{
|
||||
"key": "rental",
|
||||
"description": "Layer 'Bike repair/shop' shows rental=racebike with a fixed text, namely 'Race bicycles can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "racebike"
|
||||
},
|
||||
{
|
||||
"key": "rental",
|
||||
"description": "Layer 'Bike repair/shop' shows rental=bike_helmet with a fixed text, namely 'Bike helmets can be rented here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "bike_helmet"
|
||||
},
|
||||
{
|
||||
"key": "capacity:city_bike",
|
||||
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:city_bike' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')"
|
||||
},
|
||||
{
|
||||
"key": "capacity:ebike",
|
||||
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:ebike' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')"
|
||||
},
|
||||
{
|
||||
"key": "capacity:kid_bike",
|
||||
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:kid_bike' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')"
|
||||
},
|
||||
{
|
||||
"key": "capacity:bmx",
|
||||
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:bmx' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')"
|
||||
},
|
||||
{
|
||||
"key": "capacity:mtb",
|
||||
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:mtb' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')"
|
||||
},
|
||||
{
|
||||
"key": "capacity:bicycle_pannier",
|
||||
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:bicycle_pannier' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')"
|
||||
},
|
||||
{
|
||||
"key": "capacity:tandem_bicycle",
|
||||
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:tandem_bicycle' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')"
|
||||
},
|
||||
{
|
||||
"key": "service:bicycle:second_hand",
|
||||
"description": "Layer 'Bike repair/shop' shows service:bicycle:second_hand=yes with a fixed text, namely 'This shop sells second-hand bikes' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
|
@ -584,25 +512,6 @@
|
|||
"description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning=no with a fixed text, namely 'This shop doesn't offer bicycle cleaning' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "service:bicycle:cleaning:charge",
|
||||
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')"
|
||||
},
|
||||
{
|
||||
"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.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "service:bicycle:cleaning:fee",
|
||||
"description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "service:bicycle:cleaning:charge",
|
||||
"description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists') Picking this answer will delete the key service:bicycle:cleaning:charge.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "description",
|
||||
"description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'description' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')"
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -81,94 +81,94 @@
|
|||
},
|
||||
{
|
||||
"key": "highway",
|
||||
"description": "The MapComplete theme Indoors has a layer elevator showing features with this tag",
|
||||
"description": "The MapComplete theme Indoors has a layer Elevator showing features with this tag",
|
||||
"value": "elevator"
|
||||
},
|
||||
{
|
||||
"key": "image",
|
||||
"description": "The layer 'elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
"description": "The layer 'Elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "mapillary",
|
||||
"description": "The layer 'elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
"description": "The layer 'Elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikidata",
|
||||
"description": "The layer 'elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
"description": "The layer 'Elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikipedia",
|
||||
"description": "The layer 'elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
"description": "The layer 'Elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'elevator' shows and asks freeform values for key 'level' (in the MapComplete.osm.be theme 'Indoors')"
|
||||
"description": "Layer 'Elevator' shows and asks freeform values for key 'level' (in the MapComplete.osm.be theme 'Indoors')"
|
||||
},
|
||||
{
|
||||
"key": "location",
|
||||
"description": "Layer 'elevator' shows location=underground with a fixed text, namely 'Located underground' (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"description": "Layer 'Elevator' shows location=underground with a fixed text, namely 'Located underground' (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"value": "underground"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'elevator' shows level=0 with a fixed text, namely 'Located on the ground floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"description": "Layer 'Elevator' shows level=0 with a fixed text, namely 'Located on the ground floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'elevator' shows with a fixed text, namely 'Located on the ground floor' (in the MapComplete.osm.be theme 'Indoors') Picking this answer will delete the key level.",
|
||||
"description": "Layer 'Elevator' shows with a fixed text, namely 'Located on the ground floor' (in the MapComplete.osm.be theme 'Indoors') Picking this answer will delete the key level.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'elevator' shows level=1 with a fixed text, namely 'Located on the first floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"description": "Layer 'Elevator' shows level=1 with a fixed text, namely 'Located on the first floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'elevator' shows level=-1 with a fixed text, namely 'Located on the first basement level' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"description": "Layer 'Elevator' shows level=-1 with a fixed text, namely 'Located on the first basement level' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"value": "-1"
|
||||
},
|
||||
{
|
||||
"key": "operational_status",
|
||||
"description": "Layer 'elevator' shows operational_status=broken with a fixed text, namely 'This elevator is broken' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"description": "Layer 'Elevator' shows operational_status=broken with a fixed text, namely 'This elevator is broken' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"value": "broken"
|
||||
},
|
||||
{
|
||||
"key": "operational_status",
|
||||
"description": "Layer 'elevator' shows operational_status=closed with a fixed text, namely 'This elevator is closed <span class='subtle'>e.g. because renovation works are going on</span>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"description": "Layer 'Elevator' shows operational_status=closed with a fixed text, namely 'This elevator is closed <span class='subtle'>e.g. because renovation works are going on</span>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"value": "closed"
|
||||
},
|
||||
{
|
||||
"key": "operational_status",
|
||||
"description": "Layer 'elevator' shows operational_status=ok with a fixed text, namely 'This elevator works' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"description": "Layer 'Elevator' shows operational_status=ok with a fixed text, namely 'This elevator works' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"value": "ok"
|
||||
},
|
||||
{
|
||||
"key": "operational_status",
|
||||
"description": "Layer 'elevator' shows with a fixed text, namely 'This elevator works' (in the MapComplete.osm.be theme 'Indoors') Picking this answer will delete the key operational_status.",
|
||||
"description": "Layer 'Elevator' shows with a fixed text, namely 'This elevator works' (in the MapComplete.osm.be theme 'Indoors') Picking this answer will delete the key operational_status.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "door:width",
|
||||
"description": "Layer 'elevator' shows and asks freeform values for key 'door:width' (in the MapComplete.osm.be theme 'Indoors')"
|
||||
"description": "Layer 'Elevator' shows and asks freeform values for key 'door:width' (in the MapComplete.osm.be theme 'Indoors')"
|
||||
},
|
||||
{
|
||||
"key": "elevator:width",
|
||||
"description": "Layer 'elevator' shows and asks freeform values for key 'elevator:width' (in the MapComplete.osm.be theme 'Indoors')"
|
||||
"description": "Layer 'Elevator' shows and asks freeform values for key 'elevator:width' (in the MapComplete.osm.be theme 'Indoors')"
|
||||
},
|
||||
{
|
||||
"key": "elevator:depth",
|
||||
"description": "Layer 'elevator' shows and asks freeform values for key 'elevator:depth' (in the MapComplete.osm.be theme 'Indoors')"
|
||||
"description": "Layer 'Elevator' shows and asks freeform values for key 'elevator:depth' (in the MapComplete.osm.be theme 'Indoors')"
|
||||
},
|
||||
{
|
||||
"key": "hearing_loop",
|
||||
"description": "Layer 'elevator' shows hearing_loop=yes with a fixed text, namely 'This place has an audio induction loop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"description": "Layer 'Elevator' shows hearing_loop=yes with a fixed text, namely 'This place has an audio induction loop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "hearing_loop",
|
||||
"description": "Layer 'elevator' shows hearing_loop=no with a fixed text, namely 'This place <b>does not</b> have an audio induction loop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"description": "Layer 'Elevator' shows hearing_loop=no with a fixed text, namely 'This place <b>does not</b> have an audio induction loop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Indoors')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
|
|
|
@ -568,6 +568,22 @@
|
|||
"description": "The MapComplete theme Kerbs and crossings has a layer Crossings showing features with this tag",
|
||||
"value": "crossing"
|
||||
},
|
||||
{
|
||||
"key": "image",
|
||||
"description": "The layer 'Crossings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "mapillary",
|
||||
"description": "The layer 'Crossings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikidata",
|
||||
"description": "The layer 'Crossings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikipedia",
|
||||
"description": "The layer 'Crossings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "crossing",
|
||||
"description": "Layer 'Crossings' shows crossing=uncontrolled with a fixed text, namely 'Crossing, without traffic lights' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
|
@ -643,6 +659,56 @@
|
|||
"description": "Layer 'Crossings' shows button_operated=no with a fixed text, namely 'This traffic light does not have a button to request green light' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:sound",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:sound=yes with a fixed text, namely 'This traffic light has sound signals to help crossing, both for finding the crossing and for crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:sound",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:sound=no with a fixed text, namely 'This traffic light does not have sound signals to help crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:sound",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:sound=locate with a fixed text, namely 'This traffic light has a sound signal to help locate the pole, but no signal to sign that it is safe to cross.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "locate"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:sound",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:sound=walk with a fixed text, namely 'This traffic light has a sound signal to sign that it is safe to cross, but no signal to help locate the pole.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "walk"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:vibration",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:vibration=yes with a fixed text, namely 'The button for this traffic light has a vibration signal to indicate that it is safe to cross.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:vibration",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:vibration=no with a fixed text, namely 'The button for this traffic light does not have a vibration signal to indicate that it is safe to cross.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:arrow",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:arrow=yes with a fixed text, namely 'This traffic light has an arrow pointing in the direction of crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:arrow",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:arrow=no with a fixed text, namely 'This traffic light does <b>not</b> have an arrow pointing in the direction of crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:minimap",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:minimap=yes with a fixed text, namely 'This traffic light has a tactile map showing the layout of the crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "traffic_signals:minimap",
|
||||
"description": "Layer 'Crossings' shows traffic_signals:minimap=no with a fixed text, namely 'This traffic light does <b>not</b> have a tactile map showing the layout of the crossing.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "red_turn:right:bicycle",
|
||||
"description": "Layer 'Crossings' shows red_turn:right:bicycle=yes with a fixed text, namely 'A cyclist can turn right if the light is red' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
|
@ -737,6 +803,11 @@
|
|||
{
|
||||
"key": "kerb:height",
|
||||
"description": "Layer 'Kerbs' shows and asks freeform values for key 'kerb:height' (in the MapComplete.osm.be theme 'Kerbs and crossings')"
|
||||
},
|
||||
{
|
||||
"key": "kerb:height",
|
||||
"description": "Layer 'Kerbs' shows kerb:height=0 with a fixed text, namely 'This kerb is flush and is lower than 1cm.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Kerbs and crossings')",
|
||||
"value": "0"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -93,6 +93,28 @@
|
|||
"key": "highway",
|
||||
"description": "Layer 'Maxspeed' shows highway=living_street with a fixed text, namely 'This is a living street, which has a maxspeed of 20km/h' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Maxspeed')",
|
||||
"value": "living_street"
|
||||
},
|
||||
{
|
||||
"key": "highway",
|
||||
"description": "The MapComplete theme Maxspeed has a layer Speed Camera showing features with this tag",
|
||||
"value": "speed_camera"
|
||||
},
|
||||
{
|
||||
"key": "maxspeed",
|
||||
"description": "Layer 'Speed Camera' shows and asks freeform values for key 'maxspeed' (in the MapComplete.osm.be theme 'Maxspeed')"
|
||||
},
|
||||
{
|
||||
"key": "highway",
|
||||
"description": "The MapComplete theme Maxspeed has a layer Speed Display showing features with this tag",
|
||||
"value": "speed_display"
|
||||
},
|
||||
{
|
||||
"key": "maxspeed",
|
||||
"description": "Layer 'Speed Display' shows and asks freeform values for key 'maxspeed' (in the MapComplete.osm.be theme 'Maxspeed')"
|
||||
},
|
||||
{
|
||||
"key": "inscription",
|
||||
"description": "Layer 'Speed Display' shows and asks freeform values for key 'inscription' (in the MapComplete.osm.be theme 'Maxspeed')"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -743,7 +743,7 @@
|
|||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Toilets' shows opening_hours=24/7 with a fixed text, namely 'Opened 24/7' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Into nature')",
|
||||
"description": "Layer 'Toilets' shows opening_hours=24/7 with a fixed text, namely '24/7 opened (including holidays)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Into nature')",
|
||||
"value": "24/7"
|
||||
},
|
||||
{
|
||||
|
|
|
@ -1007,6 +1007,11 @@
|
|||
"key": "kerb:height",
|
||||
"description": "Layer 'Kerbs' shows and asks freeform values for key 'kerb:height' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
},
|
||||
{
|
||||
"key": "kerb:height",
|
||||
"description": "Layer 'Kerbs' shows kerb:height=0 with a fixed text, namely 'This kerb is flush and is lower than 1cm.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"key": "amenity",
|
||||
"description": "The MapComplete theme OnWheels has a layer Parking showing features with this tag",
|
||||
|
@ -1154,810 +1159,6 @@
|
|||
"key": "name",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'name' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'shop' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=agrarian with a fixed text, namely 'Farm Supply Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "agrarian"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=alcohol with a fixed text, namely 'Liquor Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "alcohol"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=anime with a fixed text, namely 'Anime / Manga Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "anime"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=antiques with a fixed text, namely 'Antiques Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "antiques"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=appliance with a fixed text, namely 'Appliance Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "appliance"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=art with a fixed text, namely 'Art Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "art"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=baby_goods with a fixed text, namely 'Baby Goods Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "baby_goods"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bag with a fixed text, namely 'Bag/Luggage Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "bag"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bakery with a fixed text, namely 'Bakery' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "bakery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bathroom_furnishing with a fixed text, namely 'Bathroom Furnishing Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "bathroom_furnishing"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=beauty with a fixed text, namely 'Beauty Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "beauty"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bed with a fixed text, namely 'Bedding/Mattress Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "bed"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=beverages with a fixed text, namely 'Beverage Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "beverages"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bicycle with a fixed text, namely 'Bicycle Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "bicycle"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=boat with a fixed text, namely 'Boat Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "boat"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bookmaker with a fixed text, namely 'Bookmaker' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "bookmaker"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=books with a fixed text, namely 'Book Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "books"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=brewing_supplies with a fixed text, namely 'Brewing Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "brewing_supplies"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=butcher with a fixed text, namely 'Butcher' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "butcher"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=camera with a fixed text, namely 'Camera Equipment Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "camera"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=candles with a fixed text, namely 'Candle Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "candles"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=cannabis with a fixed text, namely 'Cannabis Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "cannabis"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=car with a fixed text, namely 'Car Dealership' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "car"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=car_parts with a fixed text, namely 'Car Parts Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "car_parts"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=car_repair with a fixed text, namely 'Car Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "car_repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=caravan with a fixed text, namely 'RV Dealership' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "caravan"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=carpet with a fixed text, namely 'Carpet Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "carpet"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=catalogue with a fixed text, namely 'Catalog Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "catalogue"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=charity with a fixed text, namely 'Charity Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "charity"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=cheese with a fixed text, namely 'Cheese Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "cheese"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=chemist with a fixed text, namely 'Drugstore' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "chemist"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=chocolate with a fixed text, namely 'Chocolate Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "chocolate"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=clothes with a fixed text, namely 'Clothing Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "clothes"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=coffee with a fixed text, namely 'Coffee Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "coffee"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=collector with a fixed text, namely 'Collectibles Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "collector"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=computer with a fixed text, namely 'Computer Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "computer"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=confectionery with a fixed text, namely 'Candy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "confectionery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=convenience with a fixed text, namely 'Convenience Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "convenience"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=copyshop with a fixed text, namely 'Copy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "copyshop"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=cosmetics with a fixed text, namely 'Cosmetics Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "cosmetics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=country_store with a fixed text, namely 'Country Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "country_store"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=craft with a fixed text, namely 'Arts & Crafts Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "craft"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=curtain with a fixed text, namely 'Curtain Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "curtain"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=dairy with a fixed text, namely 'Dairy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "dairy"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=deli with a fixed text, namely 'Deli' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "deli"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=department_store with a fixed text, namely 'Department Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "department_store"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=doityourself with a fixed text, namely 'DIY Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "doityourself"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=doors with a fixed text, namely 'Door Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "doors"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=dry_cleaning with a fixed text, namely 'Dry Cleaner' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "dry_cleaning"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=e-cigarette with a fixed text, namely 'E-Cigarette Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "e-cigarette"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=electrical with a fixed text, namely 'Electrical Equipment Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "electrical"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=electronics with a fixed text, namely 'Electronics Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "electronics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=erotic with a fixed text, namely 'Erotic Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "erotic"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=fabric with a fixed text, namely 'Fabric Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "fabric"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=farm with a fixed text, namely 'Produce Stand' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "farm"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=fashion_accessories with a fixed text, namely 'Fashion Accessories Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "fashion_accessories"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=fireplace with a fixed text, namely 'Fireplace Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "fireplace"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=fishing with a fixed text, namely 'Fishing Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "fishing"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=flooring with a fixed text, namely 'Flooring Supply Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "flooring"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=florist with a fixed text, namely 'Florist' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "florist"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=frame with a fixed text, namely 'Framing Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "frame"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=frozen_food with a fixed text, namely 'Frozen Food Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "frozen_food"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=fuel with a fixed text, namely 'Fuel Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "fuel"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=funeral_directors with a fixed text, namely 'Funeral Home' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "funeral_directors"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=furniture with a fixed text, namely 'Furniture Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "furniture"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=games with a fixed text, namely 'Tabletop Game Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "games"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=garden_centre with a fixed text, namely 'Garden Center' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "garden_centre"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=gas with a fixed text, namely 'Bottled Gas Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "gas"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=general with a fixed text, namely 'General Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "general"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=gift with a fixed text, namely 'Gift Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "gift"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=greengrocer with a fixed text, namely 'Greengrocer' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "greengrocer"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hairdresser with a fixed text, namely 'Hairdresser' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "hairdresser"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hairdresser_supply with a fixed text, namely 'Hairdresser Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "hairdresser_supply"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hardware with a fixed text, namely 'Hardware Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "hardware"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=health_food with a fixed text, namely 'Health Food Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "health_food"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hearing_aids with a fixed text, namely 'Hearing Aids Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "hearing_aids"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=herbalist with a fixed text, namely 'Herbalist' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "herbalist"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hifi with a fixed text, namely 'Hifi Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "hifi"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hobby with a fixed text, namely 'Hobby Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "hobby"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=household_linen with a fixed text, namely 'Household Linen Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "household_linen"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=houseware with a fixed text, namely 'Houseware Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "houseware"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hunting with a fixed text, namely 'Hunting Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "hunting"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=interior_decoration with a fixed text, namely 'Interior Decoration Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "interior_decoration"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=jewelry with a fixed text, namely 'Jewelry Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "jewelry"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=kiosk with a fixed text, namely 'Kiosk' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "kiosk"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=kitchen with a fixed text, namely 'Kitchen Design Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "kitchen"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=laundry with a fixed text, namely 'Laundry' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "laundry"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=leather with a fixed text, namely 'Leather Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "leather"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=lighting with a fixed text, namely 'Lighting Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "lighting"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=locksmith with a fixed text, namely 'Locksmith' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "locksmith"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=lottery with a fixed text, namely 'Lottery Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "lottery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=mall with a fixed text, namely 'Mall' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "mall"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=massage with a fixed text, namely 'Massage Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "massage"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=medical_supply with a fixed text, namely 'Medical Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "medical_supply"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=military_surplus with a fixed text, namely 'Military Surplus Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "military_surplus"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=mobile_phone with a fixed text, namely 'Mobile Phone Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "mobile_phone"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=model with a fixed text, namely 'Model Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "model"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=money_lender with a fixed text, namely 'Money Lender' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "money_lender"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=motorcycle with a fixed text, namely 'Motorcycle Dealership' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "motorcycle"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=motorcycle_repair with a fixed text, namely 'Motorcycle Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "motorcycle_repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=music with a fixed text, namely 'Music Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "music"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=musical_instrument with a fixed text, namely 'Musical Instrument Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "musical_instrument"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=newsagent with a fixed text, namely 'Newspaper/Magazine Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "newsagent"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=nutrition_supplements with a fixed text, namely 'Nutrition Supplements Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "nutrition_supplements"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=optician with a fixed text, namely 'Optician' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "optician"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=outdoor with a fixed text, namely 'Outdoors Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "outdoor"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=outpost with a fixed text, namely 'Online Retailer Outpost' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "outpost"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=paint with a fixed text, namely 'Paint Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "paint"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=party with a fixed text, namely 'Party Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "party"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pastry with a fixed text, namely 'Pastry Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "pastry"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pawnbroker with a fixed text, namely 'Pawn Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "pawnbroker"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=perfumery with a fixed text, namely 'Perfume Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "perfumery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pet with a fixed text, namely 'Pet Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "pet"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pet_grooming with a fixed text, namely 'Pet Grooming Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "pet_grooming"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=photo with a fixed text, namely 'Photography Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "photo"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pottery with a fixed text, namely 'Pottery Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "pottery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=printer_ink with a fixed text, namely 'Printer Ink Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "printer_ink"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=psychic with a fixed text, namely 'Psychic' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "psychic"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pyrotechnics with a fixed text, namely 'Fireworks Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "pyrotechnics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=radiotechnics with a fixed text, namely 'Radio/Electronic Component Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "radiotechnics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=religion with a fixed text, namely 'Religious Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "religion"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=rental with a fixed text, namely 'Rental Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "rental"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=repair with a fixed text, namely 'Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=scuba_diving with a fixed text, namely 'Scuba Diving Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "scuba_diving"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=seafood with a fixed text, namely 'Seafood Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "seafood"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=second_hand with a fixed text, namely 'Consignment/Thrift Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "second_hand"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=sewing with a fixed text, namely 'Sewing Supply Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "sewing"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=shoe_repair with a fixed text, namely 'Shoe Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "shoe_repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=shoes with a fixed text, namely 'Shoe Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "shoes"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=spices with a fixed text, namely 'Spice Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "spices"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=sports with a fixed text, namely 'Sporting Goods Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "sports"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=stationery with a fixed text, namely 'Stationery Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "stationery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=storage_rental with a fixed text, namely 'Storage Rental' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "storage_rental"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=supermarket with a fixed text, namely 'Supermarket' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "supermarket"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=swimming_pool with a fixed text, namely 'Pool Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "swimming_pool"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tailor with a fixed text, namely 'Tailor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "tailor"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tattoo with a fixed text, namely 'Tattoo Parlor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "tattoo"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tea with a fixed text, namely 'Tea Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "tea"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=telecommunication with a fixed text, namely 'Telecom Retail Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "telecommunication"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=ticket with a fixed text, namely 'Ticket Seller' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "ticket"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tiles with a fixed text, namely 'Tile Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "tiles"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tobacco with a fixed text, namely 'Tobacco Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "tobacco"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tool_hire with a fixed text, namely 'Tool Rental' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "tool_hire"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=toys with a fixed text, namely 'Toy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "toys"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=trade with a fixed text, namely 'Trade Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "trade"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=travel_agency with a fixed text, namely 'Travel Agency' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "travel_agency"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=trophy with a fixed text, namely 'Trophy Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "trophy"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tyres with a fixed text, namely 'Tire Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "tyres"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=vacuum_cleaner with a fixed text, namely 'Vacuum Cleaner Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "vacuum_cleaner"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=variety_store with a fixed text, namely 'Variety Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "variety_store"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=video with a fixed text, namely 'Video Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "video"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=video_games with a fixed text, namely 'Video Game Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "video_games"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=watches with a fixed text, namely 'Watches Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "watches"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=water with a fixed text, namely 'Drinking Water Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "water"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=water_sports with a fixed text, namely 'Watersport/Swim Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "water_sports"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=weapons with a fixed text, namely 'Weapon Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "weapons"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=wholesale with a fixed text, namely 'Wholesale Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "wholesale"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=wigs with a fixed text, namely 'Wig Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "wigs"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=window_blind with a fixed text, namely 'Window Blind Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "window_blind"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=wine with a fixed text, namely 'Wine Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "wine"
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
|
@ -2208,7 +1409,7 @@
|
|||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Toilets' shows opening_hours=24/7 with a fixed text, namely 'Opened 24/7' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"description": "Layer 'Toilets' shows opening_hours=24/7 with a fixed text, namely '24/7 opened (including holidays)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "24/7"
|
||||
},
|
||||
{
|
||||
|
@ -2562,94 +1763,94 @@
|
|||
},
|
||||
{
|
||||
"key": "highway",
|
||||
"description": "The MapComplete theme OnWheels has a layer elevator showing features with this tag",
|
||||
"description": "The MapComplete theme OnWheels has a layer Elevator showing features with this tag",
|
||||
"value": "elevator"
|
||||
},
|
||||
{
|
||||
"key": "image",
|
||||
"description": "The layer 'elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
"description": "The layer 'Elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "mapillary",
|
||||
"description": "The layer 'elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
"description": "The layer 'Elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikidata",
|
||||
"description": "The layer 'elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
"description": "The layer 'Elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikipedia",
|
||||
"description": "The layer 'elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
"description": "The layer 'Elevator allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'elevator' shows and asks freeform values for key 'level' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
"description": "Layer 'Elevator' shows and asks freeform values for key 'level' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
},
|
||||
{
|
||||
"key": "location",
|
||||
"description": "Layer 'elevator' shows location=underground with a fixed text, namely 'Located underground' (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"description": "Layer 'Elevator' shows location=underground with a fixed text, namely 'Located underground' (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "underground"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'elevator' shows level=0 with a fixed text, namely 'Located on the ground floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"description": "Layer 'Elevator' shows level=0 with a fixed text, namely 'Located on the ground floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'elevator' shows with a fixed text, namely 'Located on the ground floor' (in the MapComplete.osm.be theme 'OnWheels') Picking this answer will delete the key level.",
|
||||
"description": "Layer 'Elevator' shows with a fixed text, namely 'Located on the ground floor' (in the MapComplete.osm.be theme 'OnWheels') Picking this answer will delete the key level.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'elevator' shows level=1 with a fixed text, namely 'Located on the first floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"description": "Layer 'Elevator' shows level=1 with a fixed text, namely 'Located on the first floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'elevator' shows level=-1 with a fixed text, namely 'Located on the first basement level' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"description": "Layer 'Elevator' shows level=-1 with a fixed text, namely 'Located on the first basement level' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "-1"
|
||||
},
|
||||
{
|
||||
"key": "operational_status",
|
||||
"description": "Layer 'elevator' shows operational_status=broken with a fixed text, namely 'This elevator is broken' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"description": "Layer 'Elevator' shows operational_status=broken with a fixed text, namely 'This elevator is broken' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "broken"
|
||||
},
|
||||
{
|
||||
"key": "operational_status",
|
||||
"description": "Layer 'elevator' shows operational_status=closed with a fixed text, namely 'This elevator is closed <span class='subtle'>e.g. because renovation works are going on</span>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"description": "Layer 'Elevator' shows operational_status=closed with a fixed text, namely 'This elevator is closed <span class='subtle'>e.g. because renovation works are going on</span>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "closed"
|
||||
},
|
||||
{
|
||||
"key": "operational_status",
|
||||
"description": "Layer 'elevator' shows operational_status=ok with a fixed text, namely 'This elevator works' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"description": "Layer 'Elevator' shows operational_status=ok with a fixed text, namely 'This elevator works' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "ok"
|
||||
},
|
||||
{
|
||||
"key": "operational_status",
|
||||
"description": "Layer 'elevator' shows with a fixed text, namely 'This elevator works' (in the MapComplete.osm.be theme 'OnWheels') Picking this answer will delete the key operational_status.",
|
||||
"description": "Layer 'Elevator' shows with a fixed text, namely 'This elevator works' (in the MapComplete.osm.be theme 'OnWheels') Picking this answer will delete the key operational_status.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "door:width",
|
||||
"description": "Layer 'elevator' shows and asks freeform values for key 'door:width' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
"description": "Layer 'Elevator' shows and asks freeform values for key 'door:width' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
},
|
||||
{
|
||||
"key": "elevator:width",
|
||||
"description": "Layer 'elevator' shows and asks freeform values for key 'elevator:width' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
"description": "Layer 'Elevator' shows and asks freeform values for key 'elevator:width' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
},
|
||||
{
|
||||
"key": "elevator:depth",
|
||||
"description": "Layer 'elevator' shows and asks freeform values for key 'elevator:depth' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
"description": "Layer 'Elevator' shows and asks freeform values for key 'elevator:depth' (in the MapComplete.osm.be theme 'OnWheels')"
|
||||
},
|
||||
{
|
||||
"key": "hearing_loop",
|
||||
"description": "Layer 'elevator' shows hearing_loop=yes with a fixed text, namely 'This place has an audio induction loop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"description": "Layer 'Elevator' shows hearing_loop=yes with a fixed text, namely 'This place has an audio induction loop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "hearing_loop",
|
||||
"description": "Layer 'elevator' shows hearing_loop=no with a fixed text, namely 'This place <b>does not</b> have an audio induction loop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"description": "Layer 'Elevator' shows hearing_loop=no with a fixed text, namely 'This place <b>does not</b> have an audio induction loop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'OnWheels')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
|
|
|
@ -140,7 +140,7 @@
|
|||
},
|
||||
{
|
||||
"key": "parking_space",
|
||||
"description": "Layer 'Parking Spaces' shows with a fixed text, namely 'This is a normal parking space' (in the MapComplete.osm.be theme 'Parking') Picking this answer will delete the key parking_space.",
|
||||
"description": "Layer 'Parking Spaces' shows with a fixed text, namely 'This is a normal parking space.' (in the MapComplete.osm.be theme 'Parking') Picking this answer will delete the key parking_space.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -554,810 +554,6 @@
|
|||
"key": "name",
|
||||
"description": "Layer 'Dog-friendly shops' shows and asks freeform values for key 'name' (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows and asks freeform values for key 'shop' (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=agrarian with a fixed text, namely 'Farm Supply Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "agrarian"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=alcohol with a fixed text, namely 'Liquor Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "alcohol"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=anime with a fixed text, namely 'Anime / Manga Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "anime"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=antiques with a fixed text, namely 'Antiques Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "antiques"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=appliance with a fixed text, namely 'Appliance Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "appliance"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=art with a fixed text, namely 'Art Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "art"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=baby_goods with a fixed text, namely 'Baby Goods Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "baby_goods"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=bag with a fixed text, namely 'Bag/Luggage Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "bag"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=bakery with a fixed text, namely 'Bakery' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "bakery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=bathroom_furnishing with a fixed text, namely 'Bathroom Furnishing Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "bathroom_furnishing"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=beauty with a fixed text, namely 'Beauty Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "beauty"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=bed with a fixed text, namely 'Bedding/Mattress Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "bed"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=beverages with a fixed text, namely 'Beverage Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "beverages"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=bicycle with a fixed text, namely 'Bicycle Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "bicycle"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=boat with a fixed text, namely 'Boat Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "boat"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=bookmaker with a fixed text, namely 'Bookmaker' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "bookmaker"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=books with a fixed text, namely 'Book Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "books"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=brewing_supplies with a fixed text, namely 'Brewing Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "brewing_supplies"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=butcher with a fixed text, namely 'Butcher' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "butcher"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=camera with a fixed text, namely 'Camera Equipment Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "camera"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=candles with a fixed text, namely 'Candle Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "candles"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=cannabis with a fixed text, namely 'Cannabis Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "cannabis"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=car with a fixed text, namely 'Car Dealership' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "car"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=car_parts with a fixed text, namely 'Car Parts Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "car_parts"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=car_repair with a fixed text, namely 'Car Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "car_repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=caravan with a fixed text, namely 'RV Dealership' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "caravan"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=carpet with a fixed text, namely 'Carpet Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "carpet"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=catalogue with a fixed text, namely 'Catalog Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "catalogue"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=charity with a fixed text, namely 'Charity Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "charity"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=cheese with a fixed text, namely 'Cheese Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "cheese"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=chemist with a fixed text, namely 'Drugstore' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "chemist"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=chocolate with a fixed text, namely 'Chocolate Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "chocolate"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=clothes with a fixed text, namely 'Clothing Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "clothes"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=coffee with a fixed text, namely 'Coffee Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "coffee"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=collector with a fixed text, namely 'Collectibles Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "collector"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=computer with a fixed text, namely 'Computer Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "computer"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=confectionery with a fixed text, namely 'Candy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "confectionery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=convenience with a fixed text, namely 'Convenience Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "convenience"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=copyshop with a fixed text, namely 'Copy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "copyshop"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=cosmetics with a fixed text, namely 'Cosmetics Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "cosmetics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=country_store with a fixed text, namely 'Country Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "country_store"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=craft with a fixed text, namely 'Arts & Crafts Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "craft"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=curtain with a fixed text, namely 'Curtain Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "curtain"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=dairy with a fixed text, namely 'Dairy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "dairy"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=deli with a fixed text, namely 'Deli' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "deli"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=department_store with a fixed text, namely 'Department Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "department_store"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=doityourself with a fixed text, namely 'DIY Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "doityourself"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=doors with a fixed text, namely 'Door Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "doors"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=dry_cleaning with a fixed text, namely 'Dry Cleaner' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "dry_cleaning"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=e-cigarette with a fixed text, namely 'E-Cigarette Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "e-cigarette"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=electrical with a fixed text, namely 'Electrical Equipment Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "electrical"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=electronics with a fixed text, namely 'Electronics Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "electronics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=erotic with a fixed text, namely 'Erotic Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "erotic"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=fabric with a fixed text, namely 'Fabric Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "fabric"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=farm with a fixed text, namely 'Produce Stand' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "farm"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=fashion_accessories with a fixed text, namely 'Fashion Accessories Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "fashion_accessories"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=fireplace with a fixed text, namely 'Fireplace Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "fireplace"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=fishing with a fixed text, namely 'Fishing Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "fishing"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=flooring with a fixed text, namely 'Flooring Supply Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "flooring"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=florist with a fixed text, namely 'Florist' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "florist"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=frame with a fixed text, namely 'Framing Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "frame"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=frozen_food with a fixed text, namely 'Frozen Food Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "frozen_food"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=fuel with a fixed text, namely 'Fuel Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "fuel"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=funeral_directors with a fixed text, namely 'Funeral Home' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "funeral_directors"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=furniture with a fixed text, namely 'Furniture Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "furniture"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=games with a fixed text, namely 'Tabletop Game Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "games"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=garden_centre with a fixed text, namely 'Garden Center' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "garden_centre"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=gas with a fixed text, namely 'Bottled Gas Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "gas"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=general with a fixed text, namely 'General Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "general"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=gift with a fixed text, namely 'Gift Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "gift"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=greengrocer with a fixed text, namely 'Greengrocer' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "greengrocer"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=hairdresser with a fixed text, namely 'Hairdresser' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "hairdresser"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=hairdresser_supply with a fixed text, namely 'Hairdresser Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "hairdresser_supply"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=hardware with a fixed text, namely 'Hardware Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "hardware"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=health_food with a fixed text, namely 'Health Food Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "health_food"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=hearing_aids with a fixed text, namely 'Hearing Aids Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "hearing_aids"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=herbalist with a fixed text, namely 'Herbalist' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "herbalist"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=hifi with a fixed text, namely 'Hifi Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "hifi"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=hobby with a fixed text, namely 'Hobby Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "hobby"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=household_linen with a fixed text, namely 'Household Linen Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "household_linen"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=houseware with a fixed text, namely 'Houseware Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "houseware"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=hunting with a fixed text, namely 'Hunting Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "hunting"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=interior_decoration with a fixed text, namely 'Interior Decoration Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "interior_decoration"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=jewelry with a fixed text, namely 'Jewelry Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "jewelry"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=kiosk with a fixed text, namely 'Kiosk' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "kiosk"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=kitchen with a fixed text, namely 'Kitchen Design Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "kitchen"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=laundry with a fixed text, namely 'Laundry' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "laundry"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=leather with a fixed text, namely 'Leather Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "leather"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=lighting with a fixed text, namely 'Lighting Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "lighting"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=locksmith with a fixed text, namely 'Locksmith' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "locksmith"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=lottery with a fixed text, namely 'Lottery Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "lottery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=mall with a fixed text, namely 'Mall' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "mall"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=massage with a fixed text, namely 'Massage Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "massage"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=medical_supply with a fixed text, namely 'Medical Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "medical_supply"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=military_surplus with a fixed text, namely 'Military Surplus Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "military_surplus"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=mobile_phone with a fixed text, namely 'Mobile Phone Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "mobile_phone"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=model with a fixed text, namely 'Model Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "model"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=money_lender with a fixed text, namely 'Money Lender' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "money_lender"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=motorcycle with a fixed text, namely 'Motorcycle Dealership' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "motorcycle"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=motorcycle_repair with a fixed text, namely 'Motorcycle Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "motorcycle_repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=music with a fixed text, namely 'Music Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "music"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=musical_instrument with a fixed text, namely 'Musical Instrument Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "musical_instrument"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=newsagent with a fixed text, namely 'Newspaper/Magazine Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "newsagent"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=nutrition_supplements with a fixed text, namely 'Nutrition Supplements Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "nutrition_supplements"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=optician with a fixed text, namely 'Optician' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "optician"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=outdoor with a fixed text, namely 'Outdoors Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "outdoor"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=outpost with a fixed text, namely 'Online Retailer Outpost' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "outpost"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=paint with a fixed text, namely 'Paint Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "paint"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=party with a fixed text, namely 'Party Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "party"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=pastry with a fixed text, namely 'Pastry Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "pastry"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=pawnbroker with a fixed text, namely 'Pawn Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "pawnbroker"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=perfumery with a fixed text, namely 'Perfume Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "perfumery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=pet with a fixed text, namely 'Pet Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "pet"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=pet_grooming with a fixed text, namely 'Pet Grooming Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "pet_grooming"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=photo with a fixed text, namely 'Photography Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "photo"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=pottery with a fixed text, namely 'Pottery Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "pottery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=printer_ink with a fixed text, namely 'Printer Ink Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "printer_ink"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=psychic with a fixed text, namely 'Psychic' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "psychic"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=pyrotechnics with a fixed text, namely 'Fireworks Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "pyrotechnics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=radiotechnics with a fixed text, namely 'Radio/Electronic Component Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "radiotechnics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=religion with a fixed text, namely 'Religious Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "religion"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=rental with a fixed text, namely 'Rental Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "rental"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=repair with a fixed text, namely 'Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=scuba_diving with a fixed text, namely 'Scuba Diving Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "scuba_diving"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=seafood with a fixed text, namely 'Seafood Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "seafood"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=second_hand with a fixed text, namely 'Consignment/Thrift Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "second_hand"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=sewing with a fixed text, namely 'Sewing Supply Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "sewing"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=shoe_repair with a fixed text, namely 'Shoe Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "shoe_repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=shoes with a fixed text, namely 'Shoe Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "shoes"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=spices with a fixed text, namely 'Spice Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "spices"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=sports with a fixed text, namely 'Sporting Goods Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "sports"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=stationery with a fixed text, namely 'Stationery Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "stationery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=storage_rental with a fixed text, namely 'Storage Rental' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "storage_rental"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=supermarket with a fixed text, namely 'Supermarket' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "supermarket"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=swimming_pool with a fixed text, namely 'Pool Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "swimming_pool"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=tailor with a fixed text, namely 'Tailor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "tailor"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=tattoo with a fixed text, namely 'Tattoo Parlor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "tattoo"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=tea with a fixed text, namely 'Tea Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "tea"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=telecommunication with a fixed text, namely 'Telecom Retail Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "telecommunication"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=ticket with a fixed text, namely 'Ticket Seller' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "ticket"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=tiles with a fixed text, namely 'Tile Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "tiles"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=tobacco with a fixed text, namely 'Tobacco Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "tobacco"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=tool_hire with a fixed text, namely 'Tool Rental' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "tool_hire"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=toys with a fixed text, namely 'Toy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "toys"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=trade with a fixed text, namely 'Trade Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "trade"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=travel_agency with a fixed text, namely 'Travel Agency' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "travel_agency"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=trophy with a fixed text, namely 'Trophy Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "trophy"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=tyres with a fixed text, namely 'Tire Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "tyres"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=vacuum_cleaner with a fixed text, namely 'Vacuum Cleaner Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "vacuum_cleaner"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=variety_store with a fixed text, namely 'Variety Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "variety_store"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=video with a fixed text, namely 'Video Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "video"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=video_games with a fixed text, namely 'Video Game Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "video_games"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=watches with a fixed text, namely 'Watches Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "watches"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=water with a fixed text, namely 'Drinking Water Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "water"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=water_sports with a fixed text, namely 'Watersport/Swim Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "water_sports"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=weapons with a fixed text, namely 'Weapon Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "weapons"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=wholesale with a fixed text, namely 'Wholesale Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "wholesale"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=wigs with a fixed text, namely 'Wig Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "wigs"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=window_blind with a fixed text, namely 'Window Blind Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "window_blind"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Dog-friendly shops' shows shop=wine with a fixed text, namely 'Wine Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')",
|
||||
"value": "wine"
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Dog-friendly shops' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'Veterinarians, dog parks and other pet-amenities')"
|
||||
|
|
|
@ -62,9 +62,128 @@
|
|||
"description": "Layer 'Post offices' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'Postbox and Post Office Map')"
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Post offices' shows opening_hours=24/7 with a fixed text, namely '24/7 opened (including holidays)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "24/7"
|
||||
"key": "post_office",
|
||||
"description": "Layer 'Post offices' shows post_office=post_partner with a fixed text, namely 'This shop is a post partner' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "post_partner"
|
||||
},
|
||||
{
|
||||
"key": "post_office",
|
||||
"description": "Layer 'Post offices' shows with a fixed text, namely 'This shop is not a post partner' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map') Picking this answer will delete the key post_office.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "post_office:brand",
|
||||
"description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:brand' (in the MapComplete.osm.be theme 'Postbox and Post Office Map')"
|
||||
},
|
||||
{
|
||||
"key": "post_office:brand",
|
||||
"description": "Layer 'Post offices' shows post_office:brand=DHL with a fixed text, namely 'This location offers services for DHL' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "DHL"
|
||||
},
|
||||
{
|
||||
"key": "post_office:brand",
|
||||
"description": "Layer 'Post offices' shows post_office:brand=DPD with a fixed text, namely 'This location offers services for DPD' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "DPD"
|
||||
},
|
||||
{
|
||||
"key": "post_office:brand",
|
||||
"description": "Layer 'Post offices' shows post_office:brand=GLS with a fixed text, namely 'This location offers services for GLS' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "GLS"
|
||||
},
|
||||
{
|
||||
"key": "post_office:brand",
|
||||
"description": "Layer 'Post offices' shows post_office:brand=UPS with a fixed text, namely 'This location offers services for UPS' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "UPS"
|
||||
},
|
||||
{
|
||||
"key": "post_office:brand",
|
||||
"description": "Layer 'Post offices' shows post_office:brand=DHL Paketshop with a fixed text, namely 'This location is a DHL Paketshop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "DHL Paketshop"
|
||||
},
|
||||
{
|
||||
"key": "post_office:brand",
|
||||
"description": "Layer 'Post offices' shows post_office:brand=Hermes PaketShop with a fixed text, namely 'This location is a Hermes PaketShop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "Hermes PaketShop"
|
||||
},
|
||||
{
|
||||
"key": "post_office:brand",
|
||||
"description": "Layer 'Post offices' shows post_office:brand=PostNL with a fixed text, namely 'This location is a PostNL-point' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "PostNL"
|
||||
},
|
||||
{
|
||||
"key": "post_office:brand",
|
||||
"description": "Layer 'Post offices' shows post_office:brand=bpost with a fixed text, namely 'This location offers services for bpost' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "bpost"
|
||||
},
|
||||
{
|
||||
"key": "post_office:letter_from",
|
||||
"description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:letter_from' (in the MapComplete.osm.be theme 'Postbox and Post Office Map')"
|
||||
},
|
||||
{
|
||||
"key": "post_office:letter_from",
|
||||
"description": "Layer 'Post offices' shows post_office:letter_from=yes with a fixed text, namely 'You can post letters here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "post_office:letter_from",
|
||||
"description": "Layer 'Post offices' shows post_office:letter_from=no with a fixed text, namely 'You can't post letters here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "post_office:parcel_from",
|
||||
"description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:parcel_from' (in the MapComplete.osm.be theme 'Postbox and Post Office Map')"
|
||||
},
|
||||
{
|
||||
"key": "post_office:parcel_from",
|
||||
"description": "Layer 'Post offices' shows post_office:parcel_from=yes with a fixed text, namely 'You can send parcels here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "post_office:parcel_from",
|
||||
"description": "Layer 'Post offices' shows post_office:parcel_from=no with a fixed text, namely 'You can't send parcels here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "post_office:parcel_pickup",
|
||||
"description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:parcel_pickup' (in the MapComplete.osm.be theme 'Postbox and Post Office Map')"
|
||||
},
|
||||
{
|
||||
"key": "post_office:parcel_pickup",
|
||||
"description": "Layer 'Post offices' shows post_office:parcel_pickup=yes with a fixed text, namely 'You can pick up missed parcels here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "post_office:parcel_pickup",
|
||||
"description": "Layer 'Post offices' shows post_office:parcel_pickup=no with a fixed text, namely 'You can't pick up missed parcels here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "post_office:parcel_to",
|
||||
"description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:parcel_to' (in the MapComplete.osm.be theme 'Postbox and Post Office Map')"
|
||||
},
|
||||
{
|
||||
"key": "post_office:parcel_to",
|
||||
"description": "Layer 'Post offices' shows post_office:parcel_to=yes with a fixed text, namely 'You can send parcels to here for pickup' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "post_office:parcel_to",
|
||||
"description": "Layer 'Post offices' shows post_office:parcel_to=no with a fixed text, namely 'You can't send parcels to here for pickup' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "post_office:stamps",
|
||||
"description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:stamps' (in the MapComplete.osm.be theme 'Postbox and Post Office Map')"
|
||||
},
|
||||
{
|
||||
"key": "post_office:stamps",
|
||||
"description": "Layer 'Post offices' shows post_office:stamps=yes with a fixed text, namely 'You can buy stamps here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "post_office:stamps",
|
||||
"description": "Layer 'Post offices' shows post_office:stamps=no with a fixed text, namely 'You can't buy stamps here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Postbox and Post Office Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "amenity",
|
||||
|
|
|
@ -34,810 +34,6 @@
|
|||
"key": "name",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'name' (in the MapComplete.osm.be theme 'Open Shop Map')"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'shop' (in the MapComplete.osm.be theme 'Open Shop Map')"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=agrarian with a fixed text, namely 'Farm Supply Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "agrarian"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=alcohol with a fixed text, namely 'Liquor Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "alcohol"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=anime with a fixed text, namely 'Anime / Manga Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "anime"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=antiques with a fixed text, namely 'Antiques Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "antiques"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=appliance with a fixed text, namely 'Appliance Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "appliance"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=art with a fixed text, namely 'Art Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "art"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=baby_goods with a fixed text, namely 'Baby Goods Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "baby_goods"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bag with a fixed text, namely 'Bag/Luggage Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "bag"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bakery with a fixed text, namely 'Bakery' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "bakery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bathroom_furnishing with a fixed text, namely 'Bathroom Furnishing Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "bathroom_furnishing"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=beauty with a fixed text, namely 'Beauty Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "beauty"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bed with a fixed text, namely 'Bedding/Mattress Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "bed"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=beverages with a fixed text, namely 'Beverage Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "beverages"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bicycle with a fixed text, namely 'Bicycle Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "bicycle"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=boat with a fixed text, namely 'Boat Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "boat"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=bookmaker with a fixed text, namely 'Bookmaker' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "bookmaker"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=books with a fixed text, namely 'Book Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "books"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=brewing_supplies with a fixed text, namely 'Brewing Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "brewing_supplies"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=butcher with a fixed text, namely 'Butcher' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "butcher"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=camera with a fixed text, namely 'Camera Equipment Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "camera"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=candles with a fixed text, namely 'Candle Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "candles"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=cannabis with a fixed text, namely 'Cannabis Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "cannabis"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=car with a fixed text, namely 'Car Dealership' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "car"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=car_parts with a fixed text, namely 'Car Parts Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "car_parts"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=car_repair with a fixed text, namely 'Car Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "car_repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=caravan with a fixed text, namely 'RV Dealership' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "caravan"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=carpet with a fixed text, namely 'Carpet Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "carpet"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=catalogue with a fixed text, namely 'Catalog Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "catalogue"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=charity with a fixed text, namely 'Charity Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "charity"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=cheese with a fixed text, namely 'Cheese Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "cheese"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=chemist with a fixed text, namely 'Drugstore' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "chemist"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=chocolate with a fixed text, namely 'Chocolate Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "chocolate"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=clothes with a fixed text, namely 'Clothing Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "clothes"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=coffee with a fixed text, namely 'Coffee Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "coffee"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=collector with a fixed text, namely 'Collectibles Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "collector"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=computer with a fixed text, namely 'Computer Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "computer"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=confectionery with a fixed text, namely 'Candy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "confectionery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=convenience with a fixed text, namely 'Convenience Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "convenience"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=copyshop with a fixed text, namely 'Copy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "copyshop"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=cosmetics with a fixed text, namely 'Cosmetics Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "cosmetics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=country_store with a fixed text, namely 'Country Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "country_store"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=craft with a fixed text, namely 'Arts & Crafts Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "craft"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=curtain with a fixed text, namely 'Curtain Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "curtain"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=dairy with a fixed text, namely 'Dairy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "dairy"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=deli with a fixed text, namely 'Deli' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "deli"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=department_store with a fixed text, namely 'Department Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "department_store"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=doityourself with a fixed text, namely 'DIY Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "doityourself"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=doors with a fixed text, namely 'Door Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "doors"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=dry_cleaning with a fixed text, namely 'Dry Cleaner' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "dry_cleaning"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=e-cigarette with a fixed text, namely 'E-Cigarette Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "e-cigarette"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=electrical with a fixed text, namely 'Electrical Equipment Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "electrical"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=electronics with a fixed text, namely 'Electronics Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "electronics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=erotic with a fixed text, namely 'Erotic Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "erotic"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=fabric with a fixed text, namely 'Fabric Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "fabric"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=farm with a fixed text, namely 'Produce Stand' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "farm"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=fashion_accessories with a fixed text, namely 'Fashion Accessories Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "fashion_accessories"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=fireplace with a fixed text, namely 'Fireplace Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "fireplace"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=fishing with a fixed text, namely 'Fishing Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "fishing"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=flooring with a fixed text, namely 'Flooring Supply Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "flooring"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=florist with a fixed text, namely 'Florist' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "florist"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=frame with a fixed text, namely 'Framing Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "frame"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=frozen_food with a fixed text, namely 'Frozen Food Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "frozen_food"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=fuel with a fixed text, namely 'Fuel Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "fuel"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=funeral_directors with a fixed text, namely 'Funeral Home' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "funeral_directors"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=furniture with a fixed text, namely 'Furniture Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "furniture"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=games with a fixed text, namely 'Tabletop Game Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "games"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=garden_centre with a fixed text, namely 'Garden Center' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "garden_centre"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=gas with a fixed text, namely 'Bottled Gas Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "gas"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=general with a fixed text, namely 'General Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "general"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=gift with a fixed text, namely 'Gift Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "gift"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=greengrocer with a fixed text, namely 'Greengrocer' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "greengrocer"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hairdresser with a fixed text, namely 'Hairdresser' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "hairdresser"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hairdresser_supply with a fixed text, namely 'Hairdresser Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "hairdresser_supply"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hardware with a fixed text, namely 'Hardware Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "hardware"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=health_food with a fixed text, namely 'Health Food Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "health_food"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hearing_aids with a fixed text, namely 'Hearing Aids Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "hearing_aids"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=herbalist with a fixed text, namely 'Herbalist' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "herbalist"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hifi with a fixed text, namely 'Hifi Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "hifi"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hobby with a fixed text, namely 'Hobby Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "hobby"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=household_linen with a fixed text, namely 'Household Linen Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "household_linen"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=houseware with a fixed text, namely 'Houseware Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "houseware"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=hunting with a fixed text, namely 'Hunting Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "hunting"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=interior_decoration with a fixed text, namely 'Interior Decoration Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "interior_decoration"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=jewelry with a fixed text, namely 'Jewelry Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "jewelry"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=kiosk with a fixed text, namely 'Kiosk' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "kiosk"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=kitchen with a fixed text, namely 'Kitchen Design Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "kitchen"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=laundry with a fixed text, namely 'Laundry' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "laundry"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=leather with a fixed text, namely 'Leather Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "leather"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=lighting with a fixed text, namely 'Lighting Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "lighting"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=locksmith with a fixed text, namely 'Locksmith' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "locksmith"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=lottery with a fixed text, namely 'Lottery Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "lottery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=mall with a fixed text, namely 'Mall' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "mall"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=massage with a fixed text, namely 'Massage Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "massage"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=medical_supply with a fixed text, namely 'Medical Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "medical_supply"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=military_surplus with a fixed text, namely 'Military Surplus Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "military_surplus"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=mobile_phone with a fixed text, namely 'Mobile Phone Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "mobile_phone"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=model with a fixed text, namely 'Model Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "model"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=money_lender with a fixed text, namely 'Money Lender' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "money_lender"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=motorcycle with a fixed text, namely 'Motorcycle Dealership' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "motorcycle"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=motorcycle_repair with a fixed text, namely 'Motorcycle Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "motorcycle_repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=music with a fixed text, namely 'Music Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "music"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=musical_instrument with a fixed text, namely 'Musical Instrument Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "musical_instrument"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=newsagent with a fixed text, namely 'Newspaper/Magazine Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "newsagent"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=nutrition_supplements with a fixed text, namely 'Nutrition Supplements Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "nutrition_supplements"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=optician with a fixed text, namely 'Optician' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "optician"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=outdoor with a fixed text, namely 'Outdoors Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "outdoor"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=outpost with a fixed text, namely 'Online Retailer Outpost' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "outpost"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=paint with a fixed text, namely 'Paint Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "paint"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=party with a fixed text, namely 'Party Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "party"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pastry with a fixed text, namely 'Pastry Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "pastry"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pawnbroker with a fixed text, namely 'Pawn Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "pawnbroker"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=perfumery with a fixed text, namely 'Perfume Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "perfumery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pet with a fixed text, namely 'Pet Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "pet"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pet_grooming with a fixed text, namely 'Pet Grooming Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "pet_grooming"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=photo with a fixed text, namely 'Photography Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "photo"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pottery with a fixed text, namely 'Pottery Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "pottery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=printer_ink with a fixed text, namely 'Printer Ink Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "printer_ink"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=psychic with a fixed text, namely 'Psychic' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "psychic"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=pyrotechnics with a fixed text, namely 'Fireworks Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "pyrotechnics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=radiotechnics with a fixed text, namely 'Radio/Electronic Component Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "radiotechnics"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=religion with a fixed text, namely 'Religious Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "religion"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=rental with a fixed text, namely 'Rental Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "rental"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=repair with a fixed text, namely 'Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=scuba_diving with a fixed text, namely 'Scuba Diving Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "scuba_diving"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=seafood with a fixed text, namely 'Seafood Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "seafood"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=second_hand with a fixed text, namely 'Consignment/Thrift Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "second_hand"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=sewing with a fixed text, namely 'Sewing Supply Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "sewing"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=shoe_repair with a fixed text, namely 'Shoe Repair Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "shoe_repair"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=shoes with a fixed text, namely 'Shoe Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "shoes"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=spices with a fixed text, namely 'Spice Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "spices"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=sports with a fixed text, namely 'Sporting Goods Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "sports"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=stationery with a fixed text, namely 'Stationery Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "stationery"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=storage_rental with a fixed text, namely 'Storage Rental' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "storage_rental"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=supermarket with a fixed text, namely 'Supermarket' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "supermarket"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=swimming_pool with a fixed text, namely 'Pool Supply Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "swimming_pool"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tailor with a fixed text, namely 'Tailor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "tailor"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tattoo with a fixed text, namely 'Tattoo Parlor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "tattoo"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tea with a fixed text, namely 'Tea Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "tea"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=telecommunication with a fixed text, namely 'Telecom Retail Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "telecommunication"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=ticket with a fixed text, namely 'Ticket Seller' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "ticket"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tiles with a fixed text, namely 'Tile Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "tiles"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tobacco with a fixed text, namely 'Tobacco Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "tobacco"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tool_hire with a fixed text, namely 'Tool Rental' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "tool_hire"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=toys with a fixed text, namely 'Toy Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "toys"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=trade with a fixed text, namely 'Trade Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "trade"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=travel_agency with a fixed text, namely 'Travel Agency' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "travel_agency"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=trophy with a fixed text, namely 'Trophy Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "trophy"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=tyres with a fixed text, namely 'Tire Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "tyres"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=vacuum_cleaner with a fixed text, namely 'Vacuum Cleaner Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "vacuum_cleaner"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=variety_store with a fixed text, namely 'Variety Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "variety_store"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=video with a fixed text, namely 'Video Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "video"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=video_games with a fixed text, namely 'Video Game Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "video_games"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=watches with a fixed text, namely 'Watches Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "watches"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=water with a fixed text, namely 'Drinking Water Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "water"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=water_sports with a fixed text, namely 'Watersport/Swim Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "water_sports"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=weapons with a fixed text, namely 'Weapon Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "weapons"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=wholesale with a fixed text, namely 'Wholesale Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "wholesale"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=wigs with a fixed text, namely 'Wig Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "wigs"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=window_blind with a fixed text, namely 'Window Blind Store' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "window_blind"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "Layer 'Shop' shows shop=wine with a fixed text, namely 'Wine Shop' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Shop Map')",
|
||||
"value": "wine"
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'Open Shop Map')"
|
||||
|
|
654
Docs/TagInfo/mapcomplete_sports.json
Normal file
654
Docs/TagInfo/mapcomplete_sports.json
Normal file
|
@ -0,0 +1,654 @@
|
|||
{
|
||||
"data_format": 1,
|
||||
"project": {
|
||||
"name": "MapComplete Sports",
|
||||
"description": "Map showing sport facilities.",
|
||||
"project_url": "https://mapcomplete.osm.be/sports",
|
||||
"doc_url": "https://github.com/pietervdvn/MapComplete/tree/master/assets/themes/",
|
||||
"icon_url": "https://mapcomplete.osm.be/assets/themes/sports/sport.svg",
|
||||
"contact_name": "Pieter Vander Vennet",
|
||||
"contact_email": "pietervdvn@posteo.net"
|
||||
},
|
||||
"tags": [
|
||||
{
|
||||
"key": "leisure",
|
||||
"description": "The MapComplete theme Sports has a layer Sport pitches showing features with this tag",
|
||||
"value": "pitch"
|
||||
},
|
||||
{
|
||||
"key": "image",
|
||||
"description": "The layer 'Sport pitches allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "mapillary",
|
||||
"description": "The layer 'Sport pitches allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikidata",
|
||||
"description": "The layer 'Sport pitches allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikipedia",
|
||||
"description": "The layer 'Sport pitches allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "sport",
|
||||
"description": "Layer 'Sport pitches' shows and asks freeform values for key 'sport' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "sport",
|
||||
"description": "Layer 'Sport pitches' shows sport=basketball with a fixed text, namely 'Basketball is played here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "basketball"
|
||||
},
|
||||
{
|
||||
"key": "sport",
|
||||
"description": "Layer 'Sport pitches' shows sport=soccer with a fixed text, namely 'Soccer is played here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "soccer"
|
||||
},
|
||||
{
|
||||
"key": "sport",
|
||||
"description": "Layer 'Sport pitches' shows sport=table_tennis with a fixed text, namely 'This is a pingpong table' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "table_tennis"
|
||||
},
|
||||
{
|
||||
"key": "sport",
|
||||
"description": "Layer 'Sport pitches' shows sport=tennis with a fixed text, namely 'Tennis is played here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "tennis"
|
||||
},
|
||||
{
|
||||
"key": "sport",
|
||||
"description": "Layer 'Sport pitches' shows sport=korfball with a fixed text, namely 'Korfball is played here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "korfball"
|
||||
},
|
||||
{
|
||||
"key": "sport",
|
||||
"description": "Layer 'Sport pitches' shows sport=basket with a fixed text, namely 'Basketball is played here' (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "basket"
|
||||
},
|
||||
{
|
||||
"key": "surface",
|
||||
"description": "Layer 'Sport pitches' shows and asks freeform values for key 'surface' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "surface",
|
||||
"description": "Layer 'Sport pitches' shows surface=grass with a fixed text, namely 'The surface is <b>grass</b>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "grass"
|
||||
},
|
||||
{
|
||||
"key": "surface",
|
||||
"description": "Layer 'Sport pitches' shows surface=sand with a fixed text, namely 'The surface is <b>sand</b>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "sand"
|
||||
},
|
||||
{
|
||||
"key": "surface",
|
||||
"description": "Layer 'Sport pitches' shows surface=paving_stones with a fixed text, namely 'The surface is <b>paving stones</b>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "paving_stones"
|
||||
},
|
||||
{
|
||||
"key": "surface",
|
||||
"description": "Layer 'Sport pitches' shows surface=asphalt with a fixed text, namely 'The surface is <b>asphalt</b>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "asphalt"
|
||||
},
|
||||
{
|
||||
"key": "surface",
|
||||
"description": "Layer 'Sport pitches' shows surface=concrete with a fixed text, namely 'The surface is <b>concrete</b>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "concrete"
|
||||
},
|
||||
{
|
||||
"key": "access",
|
||||
"description": "Layer 'Sport pitches' shows access=yes with a fixed text, namely 'Public access' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "access",
|
||||
"description": "Layer 'Sport pitches' shows access=limited with a fixed text, namely 'Limited access (e.g. only with an appointment, during certain hours, …)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "limited"
|
||||
},
|
||||
{
|
||||
"key": "access",
|
||||
"description": "Layer 'Sport pitches' shows access=members with a fixed text, namely 'Only accessible for members of the club' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "members"
|
||||
},
|
||||
{
|
||||
"key": "access",
|
||||
"description": "Layer 'Sport pitches' shows access=private with a fixed text, namely 'Private - not accessible to the public' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "private"
|
||||
},
|
||||
{
|
||||
"key": "access",
|
||||
"description": "Layer 'Sport pitches' shows access=public with a fixed text, namely 'Public access' (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "public"
|
||||
},
|
||||
{
|
||||
"key": "reservation",
|
||||
"description": "Layer 'Sport pitches' shows reservation=required with a fixed text, namely 'Making an appointment is obligatory to use this sport pitch' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "required"
|
||||
},
|
||||
{
|
||||
"key": "reservation",
|
||||
"description": "Layer 'Sport pitches' shows reservation=recommended with a fixed text, namely 'Making an appointment is recommended when using this sport pitch' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "recommended"
|
||||
},
|
||||
{
|
||||
"key": "reservation",
|
||||
"description": "Layer 'Sport pitches' shows reservation=yes with a fixed text, namely 'Making an appointment is possible, but not necessary to use this sport pitch' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "reservation",
|
||||
"description": "Layer 'Sport pitches' shows reservation=no with a fixed text, namely 'Making an appointment is not possible' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "phone",
|
||||
"description": "Layer 'Sport pitches' shows and asks freeform values for key 'phone' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "email",
|
||||
"description": "Layer 'Sport pitches' shows and asks freeform values for key 'email' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Sport pitches' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Sport pitches' shows with a fixed text, namely 'Always accessible' (in the MapComplete.osm.be theme 'Sports') Picking this answer will delete the key opening_hours.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Sport pitches' shows opening_hours=24/7 with a fixed text, namely 'Always accessible' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "24/7"
|
||||
},
|
||||
{
|
||||
"key": "leisure",
|
||||
"description": "The MapComplete theme Sports has a layer Fitness Centres showing features with this tag",
|
||||
"value": "fitness_centre"
|
||||
},
|
||||
{
|
||||
"key": "name",
|
||||
"description": "Layer 'Fitness Centres' shows and asks freeform values for key 'name' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "noname",
|
||||
"description": "Layer 'Fitness Centres' shows noname=yes with a fixed text, namely 'This fitness centre has no name' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "image",
|
||||
"description": "The layer 'Fitness Centres allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "mapillary",
|
||||
"description": "The layer 'Fitness Centres allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikidata",
|
||||
"description": "The layer 'Fitness Centres allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikipedia",
|
||||
"description": "The layer 'Fitness Centres allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "phone",
|
||||
"description": "Layer 'Fitness Centres' shows and asks freeform values for key 'phone' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "contact:phone",
|
||||
"description": "Layer 'Fitness Centres' shows contact:phone~.+ with a fixed text, namely '<a href='tel:{contact:phone}'>{contact:phone}</a>' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "email",
|
||||
"description": "Layer 'Fitness Centres' shows and asks freeform values for key 'email' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "contact:email",
|
||||
"description": "Layer 'Fitness Centres' shows contact:email~.+ with a fixed text, namely '<a href='mailto:{contact:email}' target='_blank'>{contact:email}</a>' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "website",
|
||||
"description": "Layer 'Fitness Centres' shows and asks freeform values for key 'website' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "contact:website",
|
||||
"description": "Layer 'Fitness Centres' shows contact:website~.+ with a fixed text, namely '<a href='{contact:website}' target='_blank'>{contact:website}</a>' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Fitness Centres' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "wheelchair",
|
||||
"description": "Layer 'Fitness Centres' shows wheelchair=designated with a fixed text, namely 'This place is specially adapted for wheelchair users' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "designated"
|
||||
},
|
||||
{
|
||||
"key": "wheelchair",
|
||||
"description": "Layer 'Fitness Centres' shows wheelchair=yes with a fixed text, namely 'This place is easily reachable with a wheelchair' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "wheelchair",
|
||||
"description": "Layer 'Fitness Centres' shows wheelchair=limited with a fixed text, namely 'It is possible to reach this place in a wheelchair, but it is not easy' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "limited"
|
||||
},
|
||||
{
|
||||
"key": "wheelchair",
|
||||
"description": "Layer 'Fitness 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.osm.be theme 'Sports')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Fitness Centres' shows and asks freeform values for key 'level' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "location",
|
||||
"description": "Layer 'Fitness Centres' shows location=underground with a fixed text, namely 'Located underground' (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "underground"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Fitness Centres' shows level=0 with a fixed text, namely 'Located on the ground floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Fitness Centres' shows with a fixed text, namely 'Located on the ground floor' (in the MapComplete.osm.be theme 'Sports') Picking this answer will delete the key level.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Fitness Centres' shows level=1 with a fixed text, namely 'Located on the first floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Fitness Centres' shows level=-1 with a fixed text, namely 'Located on the first basement level' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "-1"
|
||||
},
|
||||
{
|
||||
"key": "leisure",
|
||||
"description": "The MapComplete theme Sports has a layer Fitness Stations showing features with this tag",
|
||||
"value": "fitness_station"
|
||||
},
|
||||
{
|
||||
"key": "name",
|
||||
"description": "Layer 'Fitness Stations' shows and asks freeform values for key 'name' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "noname",
|
||||
"description": "Layer 'Fitness Stations' shows noname=yes with a fixed text, namely 'This fitness station doesn't have a name' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=horizontal_bar with a fixed text, namely 'This fitness station has a horizontal bar, high enough for pull-ups.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "horizontal_bar"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=sign with a fixed text, namely 'This fitness station has a sign with instructions for a specific exercise.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "sign"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=sit-up with a fixed text, namely 'This fitness station has a facility for sit-ups.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "sit-up"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=push-up with a fixed text, namely 'This fitness station has a facility for push-ups. Usually consists of one or more low horizontal bars.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "push-up"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=stretch_bars with a fixed text, namely 'This fitness station has bars for stretching.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "stretch_bars"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=hyperextension with a fixed text, namely 'This fitness station has a station for making hyperextensions.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "hyperextension"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=rings with a fixed text, namely 'This fitness station has rings for gymnastic exercises.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "rings"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=horizontal_ladder with a fixed text, namely 'This fitness station has a horizontal ladder, also known as monkey bars.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "horizontal_ladder"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=wall_bars with a fixed text, namely 'This fitness station has wall bars to climb on.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "wall_bars"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=slalom with a fixed text, namely 'This fitness station has posts for performing slalom exercises.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "slalom"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=stepping_stones with a fixed text, namely 'This fitness station has stepping stones.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "stepping_stones"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=leapfrog with a fixed text, namely 'This fitness station has cones for performing leapfrog jumps.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "leapfrog"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=beam_jump with a fixed text, namely 'This fitness station has beams to jump over.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "beam_jump"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=hurdling with a fixed text, namely 'This fitness station has hurdles to cross.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "hurdling"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=wall with a fixed text, namely 'This fitness station has a wall to climb on.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "wall"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=balance_beam with a fixed text, namely 'This fitness station has a balance beam.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "balance_beam"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=log_lifting with a fixed text, namely 'This fitness station has a log with a handle on the end to lift.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "log_lifting"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=captains_chair with a fixed text, namely 'This fitness station has a chair with only elbow supports and a rear (without seat), for performing leg raises.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "captains_chair"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=box with a fixed text, namely 'This fitness station has a box that can be used for jumping.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "box"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=battling_ropes with a fixed text, namely 'This fitness station has battling ropes.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "battling_ropes"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=excercise_bike with a fixed text, namely 'This fitness station has a stationary bicycle.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "excercise_bike"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=elliptical_trainer with a fixed text, namely 'This fitness station has a cross-trainer.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "elliptical_trainer"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=air_walker with a fixed text, namely 'This fitness station has an air walker.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "air_walker"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=rower with a fixed text, namely 'This fitness station has a rower.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "rower"
|
||||
},
|
||||
{
|
||||
"key": "fitness_station",
|
||||
"description": "Layer 'Fitness Stations' shows fitness_station=slackline with a fixed text, namely 'This fitness station has a slackline.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "slackline"
|
||||
},
|
||||
{
|
||||
"key": "operator",
|
||||
"description": "Layer 'Fitness Stations' shows and asks freeform values for key 'operator' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Fitness Stations' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "leisure",
|
||||
"description": "The MapComplete theme Sports has a layer Sports centres showing features with this tag",
|
||||
"value": "sports_centre"
|
||||
},
|
||||
{
|
||||
"key": "image",
|
||||
"description": "The layer 'Sports centres allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "mapillary",
|
||||
"description": "The layer 'Sports centres allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikidata",
|
||||
"description": "The layer 'Sports centres allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikipedia",
|
||||
"description": "The layer 'Sports centres allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Sports centres' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "phone",
|
||||
"description": "Layer 'Sports centres' shows and asks freeform values for key 'phone' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "contact:phone",
|
||||
"description": "Layer 'Sports centres' shows contact:phone~.+ with a fixed text, namely '<a href='tel:{contact:phone}'>{contact:phone}</a>' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "website",
|
||||
"description": "Layer 'Sports centres' shows and asks freeform values for key 'website' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "contact:website",
|
||||
"description": "Layer 'Sports centres' shows contact:website~.+ with a fixed text, namely '<a href='{contact:website}' target='_blank'>{contact:website}</a>' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "email",
|
||||
"description": "Layer 'Sports centres' shows and asks freeform values for key 'email' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "contact:email",
|
||||
"description": "Layer 'Sports centres' shows contact:email~.+ with a fixed text, namely '<a href='mailto:{contact:email}' target='_blank'>{contact:email}</a>' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "wheelchair",
|
||||
"description": "Layer 'Sports centres' shows wheelchair=designated with a fixed text, namely 'This place is specially adapted for wheelchair users' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "designated"
|
||||
},
|
||||
{
|
||||
"key": "wheelchair",
|
||||
"description": "Layer 'Sports centres' shows wheelchair=yes with a fixed text, namely 'This place is easily reachable with a wheelchair' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "wheelchair",
|
||||
"description": "Layer 'Sports centres' shows wheelchair=limited with a fixed text, namely 'It is possible to reach this place in a wheelchair, but it is not easy' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "limited"
|
||||
},
|
||||
{
|
||||
"key": "wheelchair",
|
||||
"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.osm.be theme 'Sports')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "shop",
|
||||
"description": "The MapComplete theme Sports has a layer Shop showing features with this tag",
|
||||
"value": "sports"
|
||||
},
|
||||
{
|
||||
"key": "image",
|
||||
"description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "mapillary",
|
||||
"description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikidata",
|
||||
"description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikipedia",
|
||||
"description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "name",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'name' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "website",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'website' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "contact:website",
|
||||
"description": "Layer 'Shop' shows contact:website~.+ with a fixed text, namely '<a href='{contact:website}' target='_blank'>{contact:website}</a>' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "email",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'email' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "contact:email",
|
||||
"description": "Layer 'Shop' shows contact:email~.+ with a fixed text, namely '<a href='mailto:{contact:email}' target='_blank'>{contact:email}</a>' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "phone",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'phone' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "contact:phone",
|
||||
"description": "Layer 'Shop' shows contact:phone~.+ with a fixed text, namely '<a href='tel:{contact:phone}'>{contact:phone}</a>' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "payment:cash",
|
||||
"description": "Layer 'Shop' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "payment:cards",
|
||||
"description": "Layer 'Shop' shows payment:cards=yes with a fixed text, namely 'Payment cards are accepted here' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'level' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "location",
|
||||
"description": "Layer 'Shop' shows location=underground with a fixed text, namely 'Located underground' (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "underground"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Shop' shows level=0 with a fixed text, namely 'Located on the ground floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Shop' shows with a fixed text, namely 'Located on the ground floor' (in the MapComplete.osm.be theme 'Sports') Picking this answer will delete the key level.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Shop' shows level=1 with a fixed text, namely 'Located on the first floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Shop' shows level=-1 with a fixed text, namely 'Located on the first basement level' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "-1"
|
||||
},
|
||||
{
|
||||
"key": "service:print:A4",
|
||||
"description": "Layer 'Shop' shows service:print:A4=yes with a fixed text, namely 'This shop can print on papers of size A4' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "service:print:A3",
|
||||
"description": "Layer 'Shop' shows service:print:A3=yes with a fixed text, namely 'This shop can print on papers of size A3' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "service:print:A2",
|
||||
"description": "Layer 'Shop' shows service:print:A2=yes with a fixed text, namely 'This shop can print on papers of size A2' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "service:print:A1",
|
||||
"description": "Layer 'Shop' shows service:print:A1=yes with a fixed text, namely 'This shop can print on papers of size A1' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "service:print:A0",
|
||||
"description": "Layer 'Shop' shows service:print:A0=yes with a fixed text, namely 'This shop can print on papers of size A0' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "internet_access",
|
||||
"description": "Layer 'Shop' shows internet_access=wlan with a fixed text, namely 'This place offers wireless internet access' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "wlan"
|
||||
},
|
||||
{
|
||||
"key": "internet_access",
|
||||
"description": "Layer 'Shop' shows internet_access=no with a fixed text, namely 'This place <b>does not</b> offer internet access' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "internet_access",
|
||||
"description": "Layer 'Shop' shows internet_access=yes with a fixed text, namely 'This place offers internet access' (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "internet_access",
|
||||
"description": "Layer 'Shop' shows internet_access=terminal with a fixed text, namely 'This place offers internet access via a terminal or computer' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "terminal"
|
||||
},
|
||||
{
|
||||
"key": "internet_access",
|
||||
"description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "wired"
|
||||
},
|
||||
{
|
||||
"key": "internet_access:fee",
|
||||
"description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "internet_access:fee",
|
||||
"description": "Layer 'Shop' shows internet_access:fee=no with a fixed text, namely 'Internet access is free at this place' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "internet_access:fee",
|
||||
"description": "Layer 'Shop' shows internet_access:fee=customers with a fixed text, namely 'Internet access is free at this place, for customers only' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "customers"
|
||||
},
|
||||
{
|
||||
"key": "internet_access:ssid",
|
||||
"description": "Layer 'Shop' shows and asks freeform values for key 'internet_access:ssid' (in the MapComplete.osm.be theme 'Sports')"
|
||||
},
|
||||
{
|
||||
"key": "internet_access:ssid",
|
||||
"description": "Layer 'Shop' shows internet_access:ssid=Telekom with a fixed text, namely 'Telekom' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Sports')",
|
||||
"value": "Telekom"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -119,7 +119,7 @@
|
|||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Toilets' shows opening_hours=24/7 with a fixed text, namely 'Opened 24/7' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"description": "Layer 'Toilets' shows opening_hours=24/7 with a fixed text, namely '24/7 opened (including holidays)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "24/7"
|
||||
},
|
||||
{
|
||||
|
@ -218,6 +218,126 @@
|
|||
{
|
||||
"key": "description",
|
||||
"description": "Layer 'Toilets' shows and asks freeform values for key 'description' (in the MapComplete.osm.be theme 'Open Toilet Map')"
|
||||
},
|
||||
{
|
||||
"key": "toilets",
|
||||
"description": "The MapComplete theme Open Toilet Map has a layer Toilets at other amenities showing features with this tag",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "image",
|
||||
"description": "The layer 'Toilets at other amenities allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "mapillary",
|
||||
"description": "The layer 'Toilets at other amenities allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikidata",
|
||||
"description": "The layer 'Toilets at other amenities allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "wikipedia",
|
||||
"description": "The layer 'Toilets at other amenities allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Toilets at other amenities' shows and asks freeform values for key 'level' (in the MapComplete.osm.be theme 'Open Toilet Map')"
|
||||
},
|
||||
{
|
||||
"key": "location",
|
||||
"description": "Layer 'Toilets at other amenities' shows location=underground with a fixed text, namely 'Located underground' (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "underground"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Toilets at other amenities' shows level=0 with a fixed text, namely 'Located on the ground floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Toilets at other amenities' shows with a fixed text, namely 'Located on the ground floor' (in the MapComplete.osm.be theme 'Open Toilet Map') Picking this answer will delete the key level.",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Toilets at other amenities' shows level=1 with a fixed text, namely 'Located on the first floor' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"key": "level",
|
||||
"description": "Layer 'Toilets at other amenities' shows level=-1 with a fixed text, namely 'Located on the first basement level' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "-1"
|
||||
},
|
||||
{
|
||||
"key": "toilets:access",
|
||||
"description": "Layer 'Toilets at other amenities' shows and asks freeform values for key 'toilets:access' (in the MapComplete.osm.be theme 'Open Toilet Map')"
|
||||
},
|
||||
{
|
||||
"key": "toilets:access",
|
||||
"description": "Layer 'Toilets at other amenities' shows toilets:access=yes with a fixed text, namely 'Public access' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "toilets:access",
|
||||
"description": "Layer 'Toilets at other amenities' shows toilets:access=customers with a fixed text, namely 'Only access to customers of the amenity' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "customers"
|
||||
},
|
||||
{
|
||||
"key": "toilets:access",
|
||||
"description": "Layer 'Toilets at other amenities' shows toilets:access=no with a fixed text, namely 'Not accessible, even for customers of the amenity' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "toilets:access",
|
||||
"description": "Layer 'Toilets at other amenities' shows toilets:access=key with a fixed text, namely 'Accessible, but one has to ask a key to enter' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "key"
|
||||
},
|
||||
{
|
||||
"key": "toilets:access",
|
||||
"description": "Layer 'Toilets at other amenities' shows toilets:access=public with a fixed text, namely 'Public access' (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "public"
|
||||
},
|
||||
{
|
||||
"key": "toilets:fee",
|
||||
"description": "Layer 'Toilets at other amenities' shows toilets:fee=yes with a fixed text, namely 'These are paid toilets' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "toilets:fee",
|
||||
"description": "Layer 'Toilets at other amenities' shows toilets:fee=no with a fixed text, namely 'Free to use' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "toilets:charge",
|
||||
"description": "Layer 'Toilets at other amenities' shows and asks freeform values for key 'toilets:charge' (in the MapComplete.osm.be theme 'Open Toilet Map')"
|
||||
},
|
||||
{
|
||||
"key": "opening_hours",
|
||||
"description": "Layer 'Toilets at other amenities' shows and asks freeform values for key 'opening_hours' (in the MapComplete.osm.be theme 'Open Toilet Map')"
|
||||
},
|
||||
{
|
||||
"key": "toilets:wheelchair",
|
||||
"description": "Layer 'Toilets at other amenities' shows toilets:wheelchair=yes with a fixed text, namely 'There is a dedicated toilet for wheelchair users' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "yes"
|
||||
},
|
||||
{
|
||||
"key": "toilets:wheelchair",
|
||||
"description": "Layer 'Toilets at other amenities' shows toilets:wheelchair=no with a fixed text, namely 'No wheelchair access' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "no"
|
||||
},
|
||||
{
|
||||
"key": "toilets:wheelchair",
|
||||
"description": "Layer 'Toilets at other amenities' shows toilets:wheelchair=designated with a fixed text, namely 'There is only a dedicated toilet for wheelchair users' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Toilet Map')",
|
||||
"value": "designated"
|
||||
},
|
||||
{
|
||||
"key": "toilets:door:width",
|
||||
"description": "Layer 'Toilets at other amenities' shows and asks freeform values for key 'toilets:door:width' (in the MapComplete.osm.be theme 'Open Toilet Map')"
|
||||
},
|
||||
{
|
||||
"key": "toilets:description",
|
||||
"description": "Layer 'Toilets at other amenities' shows and asks freeform values for key 'toilets:description' (in the MapComplete.osm.be theme 'Open Toilet Map')"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -18,7 +18,11 @@ import * as licenses from "../assets/generated/license_info.json"
|
|||
import TagRenderingConfig from "../Models/ThemeConfig/TagRenderingConfig"
|
||||
import { FixImages } from "../Models/ThemeConfig/Conversion/FixImages"
|
||||
import Svg from "../Svg"
|
||||
import {DoesImageExist, PrevalidateTheme, ValidateThemeAndLayers} from "../Models/ThemeConfig/Conversion/Validation";
|
||||
import {
|
||||
DoesImageExist,
|
||||
PrevalidateTheme,
|
||||
ValidateThemeAndLayers,
|
||||
} from "../Models/ThemeConfig/Conversion/Validation"
|
||||
|
||||
export default class DetermineLayout {
|
||||
private static readonly _knownImages = new Set(Array.from(licenses).map((l) => l.path))
|
||||
|
@ -188,7 +192,7 @@ export default class DetermineLayout {
|
|||
}
|
||||
{
|
||||
let { errors } = new ValidateThemeAndLayers(
|
||||
new DoesImageExist(new Set<string>(), _ => true),
|
||||
new DoesImageExist(new Set<string>(), (_) => true),
|
||||
"",
|
||||
false,
|
||||
SharedTagRenderings.SharedTagRendering
|
||||
|
|
|
@ -2,7 +2,7 @@ import FeatureSource, {FeatureSourceForLayer, Tiled} from "../FeatureSource"
|
|||
import { ImmutableStore, Store } from "../../UIEventSource"
|
||||
import FilteredLayer from "../../../Models/FilteredLayer"
|
||||
import { BBox } from "../../BBox"
|
||||
import {Feature} from "geojson";
|
||||
import { Feature } from "geojson"
|
||||
|
||||
/**
|
||||
* A simple, read only feature store.
|
||||
|
|
|
@ -8,12 +8,13 @@ import {
|
|||
booleanWithin,
|
||||
Coord,
|
||||
Feature,
|
||||
Geometry, Lines,
|
||||
Geometry,
|
||||
Lines,
|
||||
MultiPolygon,
|
||||
Polygon,
|
||||
Properties,
|
||||
} from "@turf/turf"
|
||||
import {GeoJSON, LineString, Point} from "geojson";
|
||||
import { GeoJSON, LineString, Point } from "geojson"
|
||||
|
||||
export class GeoOperations {
|
||||
private static readonly _earthRadius = 6378137
|
||||
|
|
|
@ -19,7 +19,11 @@ export default class CreateNewNodeAction extends OsmCreateAction {
|
|||
private readonly _lon: number
|
||||
private readonly _snapOnto: OsmWay
|
||||
private readonly _reusePointDistance: number
|
||||
private readonly meta: { changeType: "create" | "import"; theme: string; specialMotivation?: string }
|
||||
private readonly meta: {
|
||||
changeType: "create" | "import"
|
||||
theme: string
|
||||
specialMotivation?: string
|
||||
}
|
||||
private readonly _reusePreviouslyCreatedPoint: boolean
|
||||
|
||||
constructor(
|
||||
|
|
|
@ -6,7 +6,7 @@ import ChangeTagAction from "./ChangeTagAction"
|
|||
import { TagsFilter } from "../../Tags/TagsFilter"
|
||||
import { And } from "../../Tags/And"
|
||||
import { Tag } from "../../Tags/Tag"
|
||||
import {OsmId} from "../../../Models/OsmFeature";
|
||||
import { OsmId } from "../../../Models/OsmFeature"
|
||||
import { Utils } from "../../../Utils"
|
||||
|
||||
export default class DeleteAction extends OsmChangeAction {
|
||||
|
@ -19,7 +19,6 @@ export default class DeleteAction extends OsmChangeAction {
|
|||
private readonly _id: OsmId
|
||||
private readonly _hardDelete: boolean
|
||||
|
||||
|
||||
constructor(
|
||||
id: OsmId,
|
||||
softDeletionTags: TagsFilter | undefined,
|
||||
|
@ -42,8 +41,9 @@ export default class DeleteAction extends OsmChangeAction {
|
|||
new Tag(
|
||||
"fixme",
|
||||
`A mapcomplete user marked this feature to be deleted (${meta.specialMotivation})`
|
||||
),
|
||||
])
|
||||
)
|
||||
]))
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
@ -63,8 +63,11 @@ export default class DeleteAction extends OsmChangeAction {
|
|||
* const descr = await da.CreateChangeDescriptions(new Changes(), obj)
|
||||
* descr[0] // => {doDelete: true, meta: {theme: "test", specialMotivation: "Testcase", changeType: "deletion"}, type: "node",id: 1 }
|
||||
*/
|
||||
public async CreateChangeDescriptions(changes: Changes, object?: OsmObject): Promise<ChangeDescription[]> {
|
||||
const osmObject = object ?? await OsmObject.DownloadObjectAsync(this._id)
|
||||
public async CreateChangeDescriptions(
|
||||
changes: Changes,
|
||||
object?: OsmObject
|
||||
): Promise<ChangeDescription[]> {
|
||||
const osmObject = object ?? (await OsmObject.DownloadObjectAsync(this._id))
|
||||
|
||||
if (this._hardDelete) {
|
||||
return [
|
||||
|
|
|
@ -13,7 +13,7 @@ import { Utils } from "../../../Utils"
|
|||
import { OsmConnection } from "../OsmConnection"
|
||||
import { Feature } from "@turf/turf"
|
||||
import FeaturePipeline from "../../FeatureSource/FeaturePipeline"
|
||||
import {Geometry, LineString, Point, Polygon} from "geojson";
|
||||
import { Geometry, LineString, Point, Polygon } from "geojson"
|
||||
|
||||
export default class ReplaceGeometryAction extends OsmChangeAction {
|
||||
/**
|
||||
|
|
|
@ -4,7 +4,7 @@ import {Store, UIEventSource} from "../UIEventSource"
|
|||
import { BBox } from "../BBox"
|
||||
import * as OsmToGeoJson from "osmtogeojson"
|
||||
import { NodeId, OsmFeature, OsmId, OsmTags, RelationId, WayId } from "../../Models/OsmFeature"
|
||||
import {Feature, LineString, Polygon} from "geojson";
|
||||
import { Feature, LineString, Polygon } from "geojson"
|
||||
|
||||
export abstract class OsmObject {
|
||||
private static defaultBackend = "https://www.openstreetmap.org/"
|
||||
|
@ -41,9 +41,9 @@ export abstract class OsmObject {
|
|||
this.backendURL = url
|
||||
}
|
||||
|
||||
public static DownloadObject(id: NodeId, forceRefresh?: boolean): Store<OsmNode> ;
|
||||
public static DownloadObject(id: RelationId, forceRefresh?: boolean): Store<OsmRelation> ;
|
||||
public static DownloadObject(id: WayId, forceRefresh?: boolean): Store<OsmWay> ;
|
||||
public static DownloadObject(id: NodeId, forceRefresh?: boolean): Store<OsmNode>
|
||||
public static DownloadObject(id: RelationId, forceRefresh?: boolean): Store<OsmRelation>
|
||||
public static DownloadObject(id: WayId, forceRefresh?: boolean): Store<OsmWay>
|
||||
public static DownloadObject(id: string, forceRefresh: boolean = false): Store<OsmObject> {
|
||||
let src: UIEventSource<OsmObject>
|
||||
if (OsmObject.objectCache.has(id)) {
|
||||
|
@ -73,12 +73,30 @@ export abstract class OsmObject {
|
|||
return rawData.elements[0].tags
|
||||
}
|
||||
|
||||
static async DownloadObjectAsync(id: NodeId, maxCacheAgeInSecs?: number): Promise<OsmNode | undefined>
|
||||
static async DownloadObjectAsync(id: WayId, maxCacheAgeInSecs?: number): Promise<OsmWay | undefined>
|
||||
static async DownloadObjectAsync(id: RelationId, maxCacheAgeInSecs?: number): Promise<OsmRelation | undefined>
|
||||
static async DownloadObjectAsync(id: OsmId, maxCacheAgeInSecs?: number): Promise<OsmObject | undefined>
|
||||
static async DownloadObjectAsync(id: string, maxCacheAgeInSecs?: number): Promise<OsmObject | undefined>
|
||||
static async DownloadObjectAsync(id: string, maxCacheAgeInSecs?: number): Promise<OsmObject | undefined> {
|
||||
static async DownloadObjectAsync(
|
||||
id: NodeId,
|
||||
maxCacheAgeInSecs?: number
|
||||
): Promise<OsmNode | undefined>
|
||||
static async DownloadObjectAsync(
|
||||
id: WayId,
|
||||
maxCacheAgeInSecs?: number
|
||||
): Promise<OsmWay | undefined>
|
||||
static async DownloadObjectAsync(
|
||||
id: RelationId,
|
||||
maxCacheAgeInSecs?: number
|
||||
): Promise<OsmRelation | undefined>
|
||||
static async DownloadObjectAsync(
|
||||
id: OsmId,
|
||||
maxCacheAgeInSecs?: number
|
||||
): Promise<OsmObject | undefined>
|
||||
static async DownloadObjectAsync(
|
||||
id: string,
|
||||
maxCacheAgeInSecs?: number
|
||||
): Promise<OsmObject | undefined>
|
||||
static async DownloadObjectAsync(
|
||||
id: string,
|
||||
maxCacheAgeInSecs?: number
|
||||
): Promise<OsmObject | undefined> {
|
||||
const splitted = id.split("/")
|
||||
const type = splitted[0]
|
||||
const idN = Number(splitted[1])
|
||||
|
@ -264,8 +282,10 @@ export abstract class OsmObject {
|
|||
return false
|
||||
}
|
||||
|
||||
private static constructPolygonFeatures(): Map<string,
|
||||
{ values: Set<string>; blacklist: boolean }> {
|
||||
private static constructPolygonFeatures(): Map<
|
||||
string,
|
||||
{ values: Set<string>; blacklist: boolean }
|
||||
> {
|
||||
const result = new Map<string, { values: Set<string>; blacklist: boolean }>()
|
||||
for (const polygonFeature of polygon_features["default"] ?? polygon_features) {
|
||||
const key = polygonFeature.key
|
||||
|
|
|
@ -9,7 +9,7 @@ import LayerConfig from "../Models/ThemeConfig/LayerConfig"
|
|||
import { CountryCoder } from "latlon2country"
|
||||
import Constants from "../Models/Constants"
|
||||
import { TagUtils } from "./Tags/TagUtils"
|
||||
import {Feature, LineString} from "geojson";
|
||||
import { Feature, LineString } from "geojson"
|
||||
|
||||
export class SimpleMetaTagger {
|
||||
public readonly keys: string[]
|
||||
|
@ -426,21 +426,24 @@ export default class SimpleMetaTaggers {
|
|||
{
|
||||
keys: ["_direction:centerpoint"],
|
||||
isLazy: true,
|
||||
doc: "_direction:centerpoint is the direction of the linestring (in degrees) if one were standing at the projected centerpoint."
|
||||
doc: "_direction:centerpoint is the direction of the linestring (in degrees) if one were standing at the projected centerpoint.",
|
||||
},
|
||||
(feature: Feature) => {
|
||||
if (feature.geometry.type !== "LineString") {
|
||||
return false
|
||||
}
|
||||
|
||||
const ls = <Feature<LineString>> feature;
|
||||
const ls = <Feature<LineString>>feature
|
||||
|
||||
Object.defineProperty(feature.properties, "_direction:centerpoint", {
|
||||
enumerable: false,
|
||||
configurable: true,
|
||||
get: () => {
|
||||
const centroid = GeoOperations.centerpoint(feature)
|
||||
const projected = GeoOperations.nearestPoint(ls, <[number,number]> centroid.geometry.coordinates)
|
||||
const projected = GeoOperations.nearestPoint(
|
||||
ls,
|
||||
<[number, number]>centroid.geometry.coordinates
|
||||
)
|
||||
const nextPoint = ls.geometry.coordinates[projected.properties.index + 1]
|
||||
const bearing = GeoOperations.bearing(projected.geometry.coordinates, nextPoint)
|
||||
delete feature.properties["_direction:centerpoint"]
|
||||
|
|
|
@ -557,7 +557,7 @@ export class TagUtils {
|
|||
|
||||
if (tag.indexOf("~~") >= 0) {
|
||||
const split = Utils.SplitFirst(tag, "~~")
|
||||
let keyRegex: RegExp;
|
||||
let keyRegex: RegExp
|
||||
if (split[0] === "*") {
|
||||
keyRegex = new RegExp(".+", "i")
|
||||
} else {
|
||||
|
@ -569,10 +569,7 @@ export class TagUtils {
|
|||
} else {
|
||||
valueRegex = new RegExp("^(" + split[1] + ")$", "s")
|
||||
}
|
||||
return new RegexTag(
|
||||
keyRegex,
|
||||
valueRegex
|
||||
)
|
||||
return new RegexTag(keyRegex, valueRegex)
|
||||
}
|
||||
const withRegex = TagUtils.parseRegexOperator(tag)
|
||||
if (withRegex != null) {
|
||||
|
@ -627,7 +624,7 @@ export class TagUtils {
|
|||
)
|
||||
}
|
||||
if (split[1] === "") {
|
||||
return new RegexTag(split[0], /.+/si)
|
||||
return new RegexTag(split[0], /.+/is)
|
||||
}
|
||||
return new RegexTag(split[0], split[1], true)
|
||||
}
|
||||
|
|
|
@ -683,12 +683,18 @@ export class UIEventSource<T> extends Store<T> {
|
|||
* Given a function 'f', will construct a new UIEventSource where the contents will always be "f(this.data)'
|
||||
*/
|
||||
public mapD<J>(f: (t: T) => J, extraSources: Store<any>[] = []): Store<J | undefined> {
|
||||
return new MappedStore(this, t => {
|
||||
return new MappedStore(
|
||||
this,
|
||||
(t) => {
|
||||
if (t === undefined) {
|
||||
return undefined
|
||||
}
|
||||
return f(t)
|
||||
}, extraSources, this._callbacks, this.data === undefined ? undefined : f(this.data))
|
||||
},
|
||||
extraSources,
|
||||
this._callbacks,
|
||||
this.data === undefined ? undefined : f(this.data)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,4 +1,14 @@
|
|||
import {Concat, Conversion, DesugaringContext, DesugaringStep, Each, FirstOf, Fuse, On, SetDefault,} from "./Conversion"
|
||||
import {
|
||||
Concat,
|
||||
Conversion,
|
||||
DesugaringContext,
|
||||
DesugaringStep,
|
||||
Each,
|
||||
FirstOf,
|
||||
Fuse,
|
||||
On,
|
||||
SetDefault,
|
||||
} from "./Conversion"
|
||||
import { LayerConfigJson } from "../Json/LayerConfigJson"
|
||||
import { TagRenderingConfigJson } from "../Json/TagRenderingConfigJson"
|
||||
import { Utils } from "../../../Utils"
|
||||
|
@ -8,27 +18,32 @@ import Translations from "../../../UI/i18n/Translations"
|
|||
import { Translation } from "../../../UI/i18n/Translation"
|
||||
import * as tagrenderingconfigmeta from "../../../assets/tagrenderingconfigmeta.json"
|
||||
import { AddContextToTranslations } from "./AddContextToTranslations"
|
||||
import FilterConfigJson from "../Json/FilterConfigJson";
|
||||
import FilterConfigJson from "../Json/FilterConfigJson"
|
||||
import * as predifined_filters from "../../../assets/layers/filters/filters.json"
|
||||
|
||||
class ExpandFilter extends DesugaringStep<LayerConfigJson> {
|
||||
|
||||
|
||||
private static load_filters(): Map<string, FilterConfigJson> {
|
||||
let filters = new Map<string, FilterConfigJson>();
|
||||
for (const filter of (<FilterConfigJson[]>predifined_filters.filter)) {
|
||||
let filters = new Map<string, FilterConfigJson>()
|
||||
for (const filter of <FilterConfigJson[]>predifined_filters.filter) {
|
||||
filters.set(filter.id, filter)
|
||||
}
|
||||
return filters;
|
||||
return filters
|
||||
}
|
||||
|
||||
private static readonly predefinedFilters = ExpandFilter.load_filters();
|
||||
private static readonly predefinedFilters = ExpandFilter.load_filters()
|
||||
|
||||
constructor() {
|
||||
super("Expands filters: replaces a shorthand by the value found in 'filters.json'", ["filter"], "ExpandFilter");
|
||||
super(
|
||||
"Expands filters: replaces a shorthand by the value found in 'filters.json'",
|
||||
["filter"],
|
||||
"ExpandFilter"
|
||||
)
|
||||
}
|
||||
|
||||
convert(json: LayerConfigJson, context: string): { result: LayerConfigJson; errors?: string[]; warnings?: string[]; information?: string[] } {
|
||||
convert(
|
||||
json: LayerConfigJson,
|
||||
context: string
|
||||
): { result: LayerConfigJson; errors?: string[]; warnings?: string[]; information?: string[] } {
|
||||
if (json.filter === undefined || json.filter === null) {
|
||||
return { result: json } // Nothing to change here
|
||||
}
|
||||
|
@ -39,7 +54,7 @@ class ExpandFilter extends DesugaringStep<LayerConfigJson>{
|
|||
|
||||
const newFilters: FilterConfigJson[] = []
|
||||
const errors: string[] = []
|
||||
for (const filter of (<(FilterConfigJson|string)[]> json.filter)) {
|
||||
for (const filter of <(FilterConfigJson | string)[]>json.filter) {
|
||||
if (typeof filter !== "string") {
|
||||
newFilters.push(filter)
|
||||
continue
|
||||
|
@ -47,18 +62,29 @@ class ExpandFilter extends DesugaringStep<LayerConfigJson>{
|
|||
// Search for the filter:
|
||||
const found = ExpandFilter.predefinedFilters.get(filter)
|
||||
if (found === undefined) {
|
||||
const suggestions = Utils.sortedByLevenshteinDistance(filter, Array.from(ExpandFilter.predefinedFilters.keys()), t => t)
|
||||
const err = context+".filter: while searching for predifined filter "+filter+": this filter is not found. Perhaps you meant one of: "+suggestions
|
||||
const suggestions = Utils.sortedByLevenshteinDistance(
|
||||
filter,
|
||||
Array.from(ExpandFilter.predefinedFilters.keys()),
|
||||
(t) => t
|
||||
)
|
||||
const err =
|
||||
context +
|
||||
".filter: while searching for predifined filter " +
|
||||
filter +
|
||||
": this filter is not found. Perhaps you meant one of: " +
|
||||
suggestions
|
||||
errors.push(err)
|
||||
}
|
||||
newFilters.push(found)
|
||||
}
|
||||
return {result: {
|
||||
...json, filter: newFilters
|
||||
}, errors};
|
||||
return {
|
||||
result: {
|
||||
...json,
|
||||
filter: newFilters,
|
||||
},
|
||||
errors,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
class ExpandTagRendering extends Conversion<
|
||||
|
|
|
@ -14,8 +14,8 @@ import {And} from "../../../Logic/Tags/And"
|
|||
import Translations from "../../../UI/i18n/Translations"
|
||||
import Svg from "../../../Svg"
|
||||
import { QuestionableTagRenderingConfigJson } from "../Json/QuestionableTagRenderingConfigJson"
|
||||
import FilterConfigJson from "../Json/FilterConfigJson";
|
||||
import DeleteConfig from "../DeleteConfig";
|
||||
import FilterConfigJson from "../Json/FilterConfigJson"
|
||||
import DeleteConfig from "../DeleteConfig"
|
||||
|
||||
class ValidateLanguageCompleteness extends DesugaringStep<any> {
|
||||
private readonly _languages: string[]
|
||||
|
@ -227,7 +227,6 @@ class ValidateTheme extends DesugaringStep<LayoutConfigJson> {
|
|||
|
||||
try {
|
||||
if (this._isBuiltin) {
|
||||
|
||||
if (theme.id !== theme.id.toLowerCase()) {
|
||||
errors.push("Theme ids should be in lowercase, but it is " + theme.id)
|
||||
}
|
||||
|
@ -870,27 +869,40 @@ export class ValidateLayer extends DesugaringStep<LayerConfigJson> {
|
|||
}
|
||||
}
|
||||
|
||||
export class DetectDuplicateFilters extends DesugaringStep<{ layers: LayerConfigJson[], themes: LayoutConfigJson[]}> {
|
||||
|
||||
export class DetectDuplicateFilters extends DesugaringStep<{
|
||||
layers: LayerConfigJson[]
|
||||
themes: LayoutConfigJson[]
|
||||
}> {
|
||||
constructor() {
|
||||
super("Tries to detect layers where a shared filter can be used (or where similar filters occur)", [], "DetectDuplicateFilters");
|
||||
super(
|
||||
"Tries to detect layers where a shared filter can be used (or where similar filters occur)",
|
||||
[],
|
||||
"DetectDuplicateFilters"
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Add all filter options into 'perOsmTag'
|
||||
*/
|
||||
private addLayerFilters(layer: LayerConfigJson, perOsmTag: Map<string, {
|
||||
private addLayerFilters(
|
||||
layer: LayerConfigJson,
|
||||
layout: LayoutConfigJson | undefined,
|
||||
perOsmTag: Map<
|
||||
string,
|
||||
{
|
||||
layer: LayerConfigJson
|
||||
layout: LayoutConfigJson | undefined
|
||||
filter: FilterConfigJson
|
||||
}[]>, layout?: LayoutConfigJson | undefined): void {
|
||||
}[]
|
||||
>,
|
||||
layout?: LayoutConfigJson | undefined
|
||||
): void {
|
||||
if (layer.filter === undefined || layer.filter === null) {
|
||||
return;
|
||||
return
|
||||
}
|
||||
if (layer.filter["sameAs"] !== undefined) {
|
||||
return;
|
||||
return
|
||||
}
|
||||
for (const filter of (<(string | FilterConfigJson) []>layer.filter)) {
|
||||
for (const filter of <(string | FilterConfigJson)[]>layer.filter) {
|
||||
if (typeof filter === "string") {
|
||||
continue
|
||||
}
|
||||
|
@ -908,26 +920,36 @@ export class DetectDuplicateFilters extends DesugaringStep<{ layers: LayerConfig
|
|||
perOsmTag.set(key, [])
|
||||
}
|
||||
perOsmTag.get(key).push({
|
||||
layer, filter, layout
|
||||
layer,
|
||||
filter,
|
||||
layout,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
convert(json: { layers: LayerConfigJson[]; themes: LayoutConfigJson[] }, context: string): { result: { layers: LayerConfigJson[]; themes: LayoutConfigJson[] }; errors?: string[]; warnings?: string[]; information?: string[] } {
|
||||
|
||||
convert(
|
||||
json: { layers: LayerConfigJson[]; themes: LayoutConfigJson[] },
|
||||
context: string
|
||||
): {
|
||||
result: { layers: LayerConfigJson[]; themes: LayoutConfigJson[] }
|
||||
errors?: string[]
|
||||
warnings?: string[]
|
||||
information?: string[]
|
||||
} {
|
||||
const errors: string[] = []
|
||||
const warnings: string[] = []
|
||||
const information: string[] = []
|
||||
|
||||
const { layers, themes } = json
|
||||
const perOsmTag = new Map<string, {
|
||||
layer: LayerConfigJson,
|
||||
layout: LayoutConfigJson | undefined,
|
||||
const perOsmTag = new Map<
|
||||
string,
|
||||
{
|
||||
layer: LayerConfigJson
|
||||
layout: LayoutConfigJson | undefined
|
||||
filter: FilterConfigJson
|
||||
}[]>()
|
||||
}[]
|
||||
>()
|
||||
|
||||
for (const layer of layers) {
|
||||
this.addLayerFilters(layer, perOsmTag)
|
||||
|
@ -948,12 +970,11 @@ export class DetectDuplicateFilters extends DesugaringStep<{ layers: LayerConfig
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// At this point, we have gathered all filters per tag - time to find duplicates
|
||||
perOsmTag.forEach((value, key) => {
|
||||
if (value.length <= 1) {
|
||||
// Seen this key just once, it is unique
|
||||
return;
|
||||
return
|
||||
}
|
||||
let msg = "Possible duplicate filter: " + key
|
||||
for (const { filter, layer, layout } of value) {
|
||||
|
@ -970,8 +991,7 @@ export class DetectDuplicateFilters extends DesugaringStep<{ layers: LayerConfig
|
|||
result: json,
|
||||
errors,
|
||||
warnings,
|
||||
information
|
||||
};
|
||||
information,
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -267,7 +267,10 @@ export default class TagRenderingConfig {
|
|||
if (this.freeform.key === "wikidata" && txt.indexOf("{wikipedia()") >= 0) {
|
||||
continue
|
||||
}
|
||||
if (this.freeform.type === "wikidata" && txt.indexOf(`{wikidata_label(${this.freeform.key})`) >= 0) {
|
||||
if (
|
||||
this.freeform.type === "wikidata" &&
|
||||
txt.indexOf(`{wikidata_label(${this.freeform.key})`) >= 0
|
||||
) {
|
||||
continue
|
||||
}
|
||||
throw `${context}: The rendering for language ${ln} does not contain the freeform key {${this.freeform.key}}. This is a bug, as this rendering should show exactly this freeform key!\nThe rendering is ${txt} `
|
||||
|
|
|
@ -7,7 +7,6 @@ import Svg from "../../Svg"
|
|||
* The little 'translate'-icon next to every icon + some static helper functions
|
||||
*/
|
||||
export default class LinkToWeblate extends VariableUiElement {
|
||||
|
||||
constructor(context: string, availableTranslations: object) {
|
||||
super(
|
||||
Locale.language.map(
|
||||
|
|
|
@ -3,7 +3,7 @@ import Loc from "../../Models/Loc"
|
|||
import BaseLayer from "../../Models/BaseLayer"
|
||||
import { UIEventSource } from "../../Logic/UIEventSource"
|
||||
import { BBox } from "../../Logic/BBox"
|
||||
import {deprecate} from "util";
|
||||
import { deprecate } from "util"
|
||||
|
||||
export interface MinimapOptions {
|
||||
background?: UIEventSource<BaseLayer>
|
||||
|
|
|
@ -114,15 +114,15 @@ export default class MinimapImplementation extends BaseUIElement implements Mini
|
|||
* @param format: image: give a base64 encoded png image;
|
||||
* @constructor
|
||||
*/
|
||||
public async TakeScreenshot(): Promise<string> ;
|
||||
public async TakeScreenshot(format: "image"): Promise<string> ;
|
||||
public async TakeScreenshot(format: "blob"): Promise<Blob> ;
|
||||
public async TakeScreenshot(format: "image" | "blob"): Promise<string | Blob> ;
|
||||
public async TakeScreenshot(): Promise<string>
|
||||
public async TakeScreenshot(format: "image"): Promise<string>
|
||||
public async TakeScreenshot(format: "blob"): Promise<Blob>
|
||||
public async TakeScreenshot(format: "image" | "blob"): Promise<string | Blob>
|
||||
public async TakeScreenshot(format: "image" | "blob" = "image"): Promise<string | Blob> {
|
||||
console.log("Taking a screenshot...")
|
||||
const screenshotter = new SimpleMapScreenshoter()
|
||||
screenshotter.addTo(this.leafletMap.data)
|
||||
const result = <any> await screenshotter.takeScreen((<any> format) ?? "image")
|
||||
const result = <any>await screenshotter.takeScreen(<any>format ?? "image")
|
||||
if (format === "image" && typeof result === "string") {
|
||||
return result
|
||||
}
|
||||
|
|
|
@ -148,7 +148,13 @@ export default abstract class BaseUIElement {
|
|||
} catch (e) {
|
||||
const domExc = e as DOMException
|
||||
if (domExc) {
|
||||
console.error("An exception occured", domExc.code, domExc.message, domExc.name, domExc)
|
||||
console.error(
|
||||
"An exception occured",
|
||||
domExc.code,
|
||||
domExc.message,
|
||||
domExc.name,
|
||||
domExc
|
||||
)
|
||||
}
|
||||
console.error(e)
|
||||
}
|
||||
|
|
|
@ -1,62 +1,73 @@
|
|||
import Combine from "../Base/Combine";
|
||||
import {FlowPanelFactory, FlowStep} from "../ImportFlow/FlowStep";
|
||||
import {ImmutableStore, Store, UIEventSource} from "../../Logic/UIEventSource";
|
||||
import {InputElement} from "../Input/InputElement";
|
||||
import {SvgToPdf, SvgToPdfOptions} from "../../Utils/svgToPdf";
|
||||
import {FixedInputElement} from "../Input/FixedInputElement";
|
||||
import {FixedUiElement} from "../Base/FixedUiElement";
|
||||
import FileSelectorButton from "../Input/FileSelectorButton";
|
||||
import InputElementMap from "../Input/InputElementMap";
|
||||
import {RadioButton} from "../Input/RadioButton";
|
||||
import {Utils} from "../../Utils";
|
||||
import {VariableUiElement} from "../Base/VariableUIElement";
|
||||
import Loading from "../Base/Loading";
|
||||
import BaseUIElement from "../BaseUIElement";
|
||||
import Img from "../Base/Img";
|
||||
import Title from "../Base/Title";
|
||||
import {CheckBox} from "../Input/Checkboxes";
|
||||
import Minimap from "../Base/Minimap";
|
||||
import SearchAndGo from "./SearchAndGo";
|
||||
import Toggle from "../Input/Toggle";
|
||||
import List from "../Base/List";
|
||||
import LeftIndex from "../Base/LeftIndex";
|
||||
import Constants from "../../Models/Constants";
|
||||
import Toggleable from "../Base/Toggleable";
|
||||
import Lazy from "../Base/Lazy";
|
||||
import LinkToWeblate from "../Base/LinkToWeblate";
|
||||
import Link from "../Base/Link";
|
||||
import {SearchablePillsSelector} from "../Input/SearchableMappingsSelector";
|
||||
import Combine from "../Base/Combine"
|
||||
import { FlowPanelFactory, FlowStep } from "../ImportFlow/FlowStep"
|
||||
import { ImmutableStore, Store, UIEventSource } from "../../Logic/UIEventSource"
|
||||
import { InputElement } from "../Input/InputElement"
|
||||
import { SvgToPdf, SvgToPdfOptions } from "../../Utils/svgToPdf"
|
||||
import { FixedInputElement } from "../Input/FixedInputElement"
|
||||
import { FixedUiElement } from "../Base/FixedUiElement"
|
||||
import FileSelectorButton from "../Input/FileSelectorButton"
|
||||
import InputElementMap from "../Input/InputElementMap"
|
||||
import { RadioButton } from "../Input/RadioButton"
|
||||
import { Utils } from "../../Utils"
|
||||
import { VariableUiElement } from "../Base/VariableUIElement"
|
||||
import Loading from "../Base/Loading"
|
||||
import BaseUIElement from "../BaseUIElement"
|
||||
import Img from "../Base/Img"
|
||||
import Title from "../Base/Title"
|
||||
import { CheckBox } from "../Input/Checkboxes"
|
||||
import Minimap from "../Base/Minimap"
|
||||
import SearchAndGo from "./SearchAndGo"
|
||||
import Toggle from "../Input/Toggle"
|
||||
import List from "../Base/List"
|
||||
import LeftIndex from "../Base/LeftIndex"
|
||||
import Constants from "../../Models/Constants"
|
||||
import Toggleable from "../Base/Toggleable"
|
||||
import Lazy from "../Base/Lazy"
|
||||
import LinkToWeblate from "../Base/LinkToWeblate"
|
||||
import Link from "../Base/Link"
|
||||
import { SearchablePillsSelector } from "../Input/SearchableMappingsSelector"
|
||||
import * as languages from "../../assets/language_translations.json"
|
||||
import {Translation} from "../i18n/Translation";
|
||||
import { Translation } from "../i18n/Translation"
|
||||
|
||||
class SelectTemplate extends Combine implements FlowStep<{ title: string, pages: string[] }> {
|
||||
readonly IsValid: Store<boolean>;
|
||||
readonly Value: Store<{ title: string, pages: string[] }>;
|
||||
class SelectTemplate extends Combine implements FlowStep<{ title: string; pages: string[] }> {
|
||||
readonly IsValid: Store<boolean>
|
||||
readonly Value: Store<{ title: string; pages: string[] }>
|
||||
|
||||
constructor() {
|
||||
const elements: InputElement<{ templateName: string, pages: string[] }>[] = []
|
||||
const elements: InputElement<{ templateName: string; pages: string[] }>[] = []
|
||||
for (const templateName in SvgToPdf.templates) {
|
||||
const template = SvgToPdf.templates[templateName]
|
||||
elements.push(new FixedInputElement(
|
||||
new Combine([new FixedUiElement(templateName).SetClass("font-bold pr-2"),
|
||||
template.description
|
||||
])
|
||||
, new UIEventSource({templateName, pages: template.pages})))
|
||||
elements.push(
|
||||
new FixedInputElement(
|
||||
new Combine([
|
||||
new FixedUiElement(templateName).SetClass("font-bold pr-2"),
|
||||
template.description,
|
||||
]),
|
||||
new UIEventSource({ templateName, pages: template.pages })
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
const file = new FileSelectorButton(new FixedUiElement("Select an svg image which acts as template"), {
|
||||
const file = new FileSelectorButton(
|
||||
new FixedUiElement("Select an svg image which acts as template"),
|
||||
{
|
||||
acceptType: "image/svg+xml",
|
||||
allowMultiple: true
|
||||
})
|
||||
const fileMapped = new InputElementMap<FileList, { templateName: string, pages: string[], fromFile: true }>(file, (x0, x1) => x0 === x1,
|
||||
allowMultiple: true,
|
||||
}
|
||||
)
|
||||
const fileMapped = new InputElementMap<
|
||||
FileList,
|
||||
{ templateName: string; pages: string[]; fromFile: true }
|
||||
>(
|
||||
file,
|
||||
(x0, x1) => x0 === x1,
|
||||
(filelist) => {
|
||||
if (filelist === undefined) {
|
||||
return undefined;
|
||||
return undefined
|
||||
}
|
||||
const pages = []
|
||||
let templateName: string = undefined;
|
||||
let templateName: string = undefined
|
||||
for (const file of Array.from(filelist)) {
|
||||
|
||||
if (templateName == undefined) {
|
||||
templateName = file.name.substring(file.name.lastIndexOf("/") + 1)
|
||||
templateName = templateName.substring(0, templateName.lastIndexOf("."))
|
||||
|
@ -67,40 +78,46 @@ class SelectTemplate extends Combine implements FlowStep<{ title: string, pages:
|
|||
return {
|
||||
templateName,
|
||||
pages,
|
||||
fromFile: true
|
||||
fromFile: true,
|
||||
}
|
||||
|
||||
},
|
||||
_ => undefined
|
||||
(_) => undefined
|
||||
)
|
||||
elements.push(fileMapped)
|
||||
const radio = new RadioButton(elements, { selectFirstAsDefault: true })
|
||||
|
||||
const loaded: Store<{ success: { title: string, pages: string[] } } | { error: any }> = radio.GetValue().bind(template => {
|
||||
const loaded: Store<{ success: { title: string; pages: string[] } } | { error: any }> =
|
||||
radio.GetValue().bind((template) => {
|
||||
if (template === undefined) {
|
||||
return undefined
|
||||
}
|
||||
if (template["fromFile"]) {
|
||||
return UIEventSource.FromPromiseWithErr(Promise.all(template.pages).then(pages => ({
|
||||
return UIEventSource.FromPromiseWithErr(
|
||||
Promise.all(template.pages).then((pages) => ({
|
||||
title: template.templateName,
|
||||
pages
|
||||
})))
|
||||
}
|
||||
const urls = template.pages.map(p => SelectTemplate.ToUrl(p))
|
||||
const dloadAll: Promise<{ title: string, pages: string[] }> = Promise.all(urls.map(url => Utils.download(url))).then(pages => ({
|
||||
pages,
|
||||
title: template.templateName
|
||||
}))
|
||||
)
|
||||
}
|
||||
const urls = template.pages.map((p) => SelectTemplate.ToUrl(p))
|
||||
const dloadAll: Promise<{ title: string; pages: string[] }> = Promise.all(
|
||||
urls.map((url) => Utils.download(url))
|
||||
).then((pages) => ({
|
||||
pages,
|
||||
title: template.templateName,
|
||||
}))
|
||||
|
||||
return UIEventSource.FromPromiseWithErr(dloadAll)
|
||||
})
|
||||
const preview = new VariableUiElement(
|
||||
loaded.map(pages => {
|
||||
loaded.map((pages) => {
|
||||
if (pages === undefined) {
|
||||
return new Loading()
|
||||
}
|
||||
if (pages["error"] !== undefined) {
|
||||
return new FixedUiElement("Loading preview failed: " + pages["err"]).SetClass("alert")
|
||||
return new FixedUiElement("Loading preview failed: " + pages["err"]).SetClass(
|
||||
"alert"
|
||||
)
|
||||
}
|
||||
const svgs = pages["success"].pages
|
||||
if (svgs.length === 0) {
|
||||
|
@ -108,22 +125,16 @@ class SelectTemplate extends Combine implements FlowStep<{ title: string, pages:
|
|||
}
|
||||
const els: BaseUIElement[] = []
|
||||
for (const pageSrc of svgs) {
|
||||
const el = new Img(pageSrc, true)
|
||||
.SetClass("w-96 m-2 border-black border-2")
|
||||
const el = new Img(pageSrc, true).SetClass("w-96 m-2 border-black border-2")
|
||||
els.push(el)
|
||||
}
|
||||
return new Combine(els).SetClass("flex border border-subtle rounded-xl");
|
||||
return new Combine(els).SetClass("flex border border-subtle rounded-xl")
|
||||
})
|
||||
)
|
||||
|
||||
super([
|
||||
new Title("Select template"),
|
||||
radio,
|
||||
new Title("Preview"),
|
||||
preview
|
||||
]);
|
||||
this.Value = loaded.map(l => l === undefined ? undefined : l["success"])
|
||||
this.IsValid = this.Value.map(v => v !== undefined)
|
||||
super([new Title("Select template"), radio, new Title("Preview"), preview])
|
||||
this.Value = loaded.map((l) => (l === undefined ? undefined : l["success"]))
|
||||
this.IsValid = this.Value.map((v) => v !== undefined)
|
||||
}
|
||||
|
||||
public static ToUrl(spec: string) {
|
||||
|
@ -134,63 +145,78 @@ class SelectTemplate extends Combine implements FlowStep<{ title: string, pages:
|
|||
path = path.substring(0, path.lastIndexOf("/"))
|
||||
return window.location.protocol + "//" + window.location.host + path + "/" + spec
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class SelectPdfOptions extends Combine implements FlowStep<{ title: string, pages: string[], options: SvgToPdfOptions }> {
|
||||
readonly IsValid: Store<boolean>;
|
||||
readonly Value: Store<{ title: string, pages: string[], options: SvgToPdfOptions }>;
|
||||
class SelectPdfOptions
|
||||
extends Combine
|
||||
implements FlowStep<{ title: string; pages: string[]; options: SvgToPdfOptions }>
|
||||
{
|
||||
readonly IsValid: Store<boolean>
|
||||
readonly Value: Store<{ title: string; pages: string[]; options: SvgToPdfOptions }>
|
||||
|
||||
constructor(title: string, pages: string[], getFreeDiv: () => string) {
|
||||
const dummy = new CheckBox("Don't add data to the map (to quickly preview the PDF)", false)
|
||||
const overrideMapLocation = new CheckBox("Override map location: use a selected location instead of the location set in the template", false)
|
||||
const overrideMapLocation = new CheckBox(
|
||||
"Override map location: use a selected location instead of the location set in the template",
|
||||
false
|
||||
)
|
||||
const locationInput = Minimap.createMiniMap().SetClass("block w-full")
|
||||
const searchField = new SearchAndGo({ leafletMap: locationInput.leafletMap })
|
||||
const selectLocation =
|
||||
new Combine([
|
||||
new Toggle(new Combine([new Title("Select override location"), searchField]).SetClass("flex"), undefined, overrideMapLocation.GetValue()),
|
||||
new Toggle(locationInput.SetStyle("height: 20rem"), undefined, overrideMapLocation.GetValue()).SetStyle("height: 20rem")
|
||||
]).SetClass("block").SetStyle("height: 25rem")
|
||||
super([new Title("Select options"),
|
||||
dummy,
|
||||
overrideMapLocation,
|
||||
selectLocation
|
||||
]);
|
||||
this.Value = dummy.GetValue().map((disableMaps) => {
|
||||
const selectLocation = new Combine([
|
||||
new Toggle(
|
||||
new Combine([new Title("Select override location"), searchField]).SetClass("flex"),
|
||||
undefined,
|
||||
overrideMapLocation.GetValue()
|
||||
),
|
||||
new Toggle(
|
||||
locationInput.SetStyle("height: 20rem"),
|
||||
undefined,
|
||||
overrideMapLocation.GetValue()
|
||||
).SetStyle("height: 20rem"),
|
||||
])
|
||||
.SetClass("block")
|
||||
.SetStyle("height: 25rem")
|
||||
super([new Title("Select options"), dummy, overrideMapLocation, selectLocation])
|
||||
this.Value = dummy.GetValue().map(
|
||||
(disableMaps) => {
|
||||
return {
|
||||
pages,
|
||||
title,
|
||||
options: <SvgToPdfOptions>{
|
||||
disableMaps,
|
||||
getFreeDiv,
|
||||
overrideLocation: overrideMapLocation.GetValue().data ? locationInput.location.data : undefined
|
||||
overrideLocation: overrideMapLocation.GetValue().data
|
||||
? locationInput.location.data
|
||||
: undefined,
|
||||
},
|
||||
}
|
||||
}
|
||||
}, [overrideMapLocation.GetValue(), locationInput.location])
|
||||
},
|
||||
[overrideMapLocation.GetValue(), locationInput.location]
|
||||
)
|
||||
this.IsValid = new ImmutableStore(true)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class PreparePdf extends Combine implements FlowStep<{ svgToPdf: SvgToPdf, languages: string[] }> {
|
||||
readonly IsValid: Store<boolean>;
|
||||
readonly Value: Store<{ svgToPdf: SvgToPdf, languages: string[] }>;
|
||||
class PreparePdf extends Combine implements FlowStep<{ svgToPdf: SvgToPdf; languages: string[] }> {
|
||||
readonly IsValid: Store<boolean>
|
||||
readonly Value: Store<{ svgToPdf: SvgToPdf; languages: string[] }>
|
||||
|
||||
constructor(title: string, pages: string[], options: SvgToPdfOptions) {
|
||||
const svgToPdf = new SvgToPdf(title, pages, options)
|
||||
const languageOptions = [
|
||||
new FixedInputElement("Nederlands", "nl"),
|
||||
new FixedInputElement("English", "en")
|
||||
new FixedInputElement("English", "en"),
|
||||
]
|
||||
const langs: string[] = Array.from(Object.keys(languages["default"] ?? languages))
|
||||
console.log("Available languages are:", langs)
|
||||
const languageSelector = new SearchablePillsSelector(
|
||||
langs.map(l => ({
|
||||
langs.map((l) => ({
|
||||
show: new Translation(languages[l]),
|
||||
value: l,
|
||||
mainTerm: languages[l]
|
||||
})), {
|
||||
mode: "select-many"
|
||||
mainTerm: languages[l],
|
||||
})),
|
||||
{
|
||||
mode: "select-many",
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -202,10 +228,11 @@ class PreparePdf extends Combine implements FlowStep<{ svgToPdf: SvgToPdf, langu
|
|||
new Toggle(
|
||||
new Loading("Preparing maps..."),
|
||||
undefined,
|
||||
isPrepared.map(p => p === undefined)
|
||||
)
|
||||
]);
|
||||
this.Value = isPrepared.map(isPrepped => {
|
||||
isPrepared.map((p) => p === undefined)
|
||||
),
|
||||
])
|
||||
this.Value = isPrepared.map(
|
||||
(isPrepped) => {
|
||||
if (isPrepped === undefined) {
|
||||
return undefined
|
||||
}
|
||||
|
@ -218,28 +245,36 @@ class PreparePdf extends Combine implements FlowStep<{ svgToPdf: SvgToPdf, langu
|
|||
}
|
||||
return { svgToPdf, languages: langs }
|
||||
}
|
||||
return undefined;
|
||||
}, [languageSelector.GetValue()])
|
||||
this.IsValid = this.Value.map(v => v !== undefined)
|
||||
return undefined
|
||||
},
|
||||
[languageSelector.GetValue()]
|
||||
)
|
||||
this.IsValid = this.Value.map((v) => v !== undefined)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class InspectStrings extends Toggle implements FlowStep<{ svgToPdf: SvgToPdf, languages: string[] }> {
|
||||
readonly IsValid: Store<boolean>;
|
||||
readonly Value: Store<{ svgToPdf: SvgToPdf; languages: string[] }>;
|
||||
class InspectStrings
|
||||
extends Toggle
|
||||
implements FlowStep<{ svgToPdf: SvgToPdf; languages: string[] }>
|
||||
{
|
||||
readonly IsValid: Store<boolean>
|
||||
readonly Value: Store<{ svgToPdf: SvgToPdf; languages: string[] }>
|
||||
|
||||
constructor(svgToPdf: SvgToPdf, languages: string[]) {
|
||||
const didLoadLanguages = UIEventSource.FromPromiseWithErr(
|
||||
svgToPdf.PrepareLanguages(languages)
|
||||
).map((l) => l !== undefined && l["success"] !== undefined)
|
||||
|
||||
const didLoadLanguages = UIEventSource.FromPromiseWithErr(svgToPdf.PrepareLanguages(languages)).map(l => l !== undefined && l["success"] !== undefined)
|
||||
|
||||
super(new Combine([
|
||||
super(
|
||||
new Combine([
|
||||
new Title("Inspect translation strings"),
|
||||
...languages.map(l => new Lazy(() => InspectStrings.createOverviewPanel(svgToPdf, l)))
|
||||
...languages.map(
|
||||
(l) => new Lazy(() => InspectStrings.createOverviewPanel(svgToPdf, l))
|
||||
),
|
||||
]),
|
||||
new Loading(),
|
||||
didLoadLanguages
|
||||
);
|
||||
)
|
||||
this.Value = new ImmutableStore({ svgToPdf, languages })
|
||||
this.IsValid = didLoadLanguages
|
||||
}
|
||||
|
@ -259,65 +294,83 @@ class InspectStrings extends Toggle implements FlowStep<{ svgToPdf: SvgToPdf, la
|
|||
if (translated) {
|
||||
foundTranslations++
|
||||
}
|
||||
const linkToWeblate = new Link(spec, LinkToWeblate.hrefToWeblate(language, spec), true).SetClass("font-bold link-underline")
|
||||
elements.push(new Combine([
|
||||
const linkToWeblate = new Link(
|
||||
spec,
|
||||
LinkToWeblate.hrefToWeblate(language, spec),
|
||||
true
|
||||
).SetClass("font-bold link-underline")
|
||||
elements.push(
|
||||
new Combine([
|
||||
linkToWeblate,
|
||||
" ",
|
||||
translated ?? new FixedUiElement("No translation found!").SetClass("alert")
|
||||
|
||||
]))
|
||||
translated ?? new FixedUiElement("No translation found!").SetClass("alert"),
|
||||
])
|
||||
)
|
||||
}
|
||||
|
||||
return new Toggleable(
|
||||
new Title("Translations for " + language),
|
||||
new Combine([
|
||||
`${foundTranslations}/${allKeys.length} of translations are found (${Math.floor(100 * foundTranslations / allKeys.length)}%)`,
|
||||
`${foundTranslations}/${allKeys.length} of translations are found (${Math.floor(
|
||||
(100 * foundTranslations) / allKeys.length
|
||||
)}%)`,
|
||||
"The following keys are used:",
|
||||
new List(elements)
|
||||
new List(elements),
|
||||
]),
|
||||
{closeOnClick: false, height: "15rem"})
|
||||
{ closeOnClick: false, height: "15rem" }
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class SavePdf extends Combine {
|
||||
|
||||
constructor(svgToPdf: SvgToPdf, languages: string[]) {
|
||||
|
||||
super([
|
||||
new Title("Generating your pdfs..."),
|
||||
new List(languages.map(lng => new Toggle(
|
||||
new List(
|
||||
languages.map(
|
||||
(lng) =>
|
||||
new Toggle(
|
||||
lng + " is done!",
|
||||
new Loading("Creating pdf for " + lng),
|
||||
UIEventSource.FromPromiseWithErr(svgToPdf.ConvertSvg(lng).then(() => true))
|
||||
.map(x => x !== undefined && x["success"] === true)
|
||||
)))
|
||||
]);
|
||||
UIEventSource.FromPromiseWithErr(
|
||||
svgToPdf.ConvertSvg(lng).then(() => true)
|
||||
).map((x) => x !== undefined && x["success"] === true)
|
||||
)
|
||||
)
|
||||
),
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
export class PdfExportGui extends LeftIndex {
|
||||
|
||||
|
||||
constructor(freeDivId: string) {
|
||||
|
||||
let i = 0
|
||||
const createDiv = (): string => {
|
||||
const div = document.createElement("div")
|
||||
div.id = "freediv-" + (i++)
|
||||
div.id = "freediv-" + i++
|
||||
document.getElementById(freeDivId).append(div)
|
||||
return div.id
|
||||
}
|
||||
|
||||
Constants.defaultOverpassUrls.splice(0, 1)
|
||||
const { flow, furthestStep, titles } = FlowPanelFactory.start(
|
||||
new Title("Select template"), new SelectTemplate()
|
||||
).then(new Title("Select options"), ({title, pages}) => new SelectPdfOptions(title, pages, createDiv))
|
||||
.then("Generate maps...", ({title, pages, options}) => new PreparePdf(title, pages, options))
|
||||
.then("Inspect translations", (({svgToPdf, languages}) => new InspectStrings(svgToPdf, languages)))
|
||||
new Title("Select template"),
|
||||
new SelectTemplate()
|
||||
)
|
||||
.then(
|
||||
new Title("Select options"),
|
||||
({ title, pages }) => new SelectPdfOptions(title, pages, createDiv)
|
||||
)
|
||||
.then(
|
||||
"Generate maps...",
|
||||
({ title, pages, options }) => new PreparePdf(title, pages, options)
|
||||
)
|
||||
.then(
|
||||
"Inspect translations",
|
||||
({ svgToPdf, languages }) => new InspectStrings(svgToPdf, languages)
|
||||
)
|
||||
.finish("Generating...", ({ svgToPdf, languages }) => new SavePdf(svgToPdf, languages))
|
||||
|
||||
|
||||
const toc = new List(
|
||||
titles.map(
|
||||
(title, i) =>
|
||||
|
@ -338,9 +391,7 @@ export class PdfExportGui extends LeftIndex {
|
|||
true
|
||||
)
|
||||
|
||||
const leftContents: BaseUIElement[] = [
|
||||
toc
|
||||
].map((el) => el?.SetClass("pl-4"))
|
||||
const leftContents: BaseUIElement[] = [toc].map((el) => el?.SetClass("pl-4"))
|
||||
|
||||
super(leftContents, flow)
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ import BaseLayer from "../../Models/BaseLayer"
|
|||
import Loading from "../Base/Loading"
|
||||
import Hash from "../../Logic/Web/Hash"
|
||||
import { GlobalFilter } from "../../Logic/State/MapState"
|
||||
import {WayId} from "../../Models/OsmFeature";
|
||||
import { WayId } from "../../Models/OsmFeature"
|
||||
|
||||
/*
|
||||
* The SimpleAddUI is a single panel, which can have multiple states:
|
||||
|
|
|
@ -70,7 +70,7 @@ export default class ExportPDF {
|
|||
console.error(e)
|
||||
self.cleanup()
|
||||
}
|
||||
}, 500)
|
||||
}, 500),
|
||||
})
|
||||
|
||||
minimap.SetStyle(
|
||||
|
|
|
@ -3,10 +3,10 @@ import { UIEventSource } from "../../Logic/UIEventSource"
|
|||
import { Utils } from "../../Utils"
|
||||
import BaseUIElement from "../BaseUIElement"
|
||||
import InputElementMap from "./InputElementMap"
|
||||
import Translations from "../i18n/Translations";
|
||||
import Translations from "../i18n/Translations"
|
||||
|
||||
export class CheckBox extends InputElementMap<number[], boolean> {
|
||||
constructor(el: (BaseUIElement | string), defaultValue?: boolean) {
|
||||
constructor(el: BaseUIElement | string, defaultValue?: boolean) {
|
||||
super(
|
||||
new CheckBoxes([Translations.W(el)]),
|
||||
(x0, x1) => x0 === x1,
|
||||
|
|
|
@ -15,24 +15,26 @@ import ShowDataLayer from "../ShowDataLayer/ShowDataLayer"
|
|||
import BaseUIElement from "../BaseUIElement"
|
||||
import Toggle from "./Toggle"
|
||||
import * as matchpoint from "../../assets/layers/matchpoint/matchpoint.json"
|
||||
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig";
|
||||
import FilteredLayer from "../../Models/FilteredLayer";
|
||||
import {ElementStorage} from "../../Logic/ElementStorage";
|
||||
import AvailableBaseLayers from "../../Logic/Actors/AvailableBaseLayers";
|
||||
import {RelationId, WayId} from "../../Models/OsmFeature";
|
||||
import {Feature, LineString, Polygon} from "geojson";
|
||||
import {OsmObject, OsmWay} from "../../Logic/Osm/OsmObject";
|
||||
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig"
|
||||
import FilteredLayer from "../../Models/FilteredLayer"
|
||||
import { ElementStorage } from "../../Logic/ElementStorage"
|
||||
import AvailableBaseLayers from "../../Logic/Actors/AvailableBaseLayers"
|
||||
import { RelationId, WayId } from "../../Models/OsmFeature"
|
||||
import { Feature, LineString, Polygon } from "geojson"
|
||||
import { OsmObject, OsmWay } from "../../Logic/Osm/OsmObject"
|
||||
|
||||
export default class LocationInput
|
||||
extends BaseUIElement
|
||||
implements ReadonlyInputElement<Loc>, MinimapObj {
|
||||
implements ReadonlyInputElement<Loc>, MinimapObj
|
||||
{
|
||||
private static readonly matchLayer = new LayerConfig(
|
||||
matchpoint,
|
||||
"LocationInput.matchpoint",
|
||||
true
|
||||
)
|
||||
|
||||
public readonly snappedOnto: UIEventSource<Feature & { properties : { id : WayId} }> = new UIEventSource(undefined)
|
||||
public readonly snappedOnto: UIEventSource<Feature & { properties: { id: WayId } }> =
|
||||
new UIEventSource(undefined)
|
||||
public readonly _matching_layer: LayerConfig
|
||||
public readonly leafletMap: UIEventSource<any>
|
||||
public readonly bounds
|
||||
|
@ -43,7 +45,9 @@ export default class LocationInput
|
|||
* The features to which the input should be snapped
|
||||
* @private
|
||||
*/
|
||||
private readonly _snapTo: Store< (Feature<LineString | Polygon> & {properties: {id : WayId}})[]>
|
||||
private readonly _snapTo: Store<
|
||||
(Feature<LineString | Polygon> & { properties: { id: WayId } })[]
|
||||
>
|
||||
/**
|
||||
* The features to which the input should be snapped without cleanup of relations and memberships
|
||||
* Used for rendering
|
||||
|
@ -59,10 +63,10 @@ export default class LocationInput
|
|||
private readonly clickLocation: UIEventSource<Loc>
|
||||
private readonly _minZoom: number
|
||||
private readonly _state: {
|
||||
readonly filteredLayers: Store<FilteredLayer[]>;
|
||||
readonly backgroundLayer: UIEventSource<BaseLayer>;
|
||||
readonly layoutToUse: LayoutConfig;
|
||||
readonly selectedElement: UIEventSource<any>;
|
||||
readonly filteredLayers: Store<FilteredLayer[]>
|
||||
readonly backgroundLayer: UIEventSource<BaseLayer>
|
||||
readonly layoutToUse: LayoutConfig
|
||||
readonly selectedElement: UIEventSource<any>
|
||||
readonly allElements: ElementStorage
|
||||
}
|
||||
|
||||
|
@ -74,8 +78,12 @@ export default class LocationInput
|
|||
*
|
||||
* @private
|
||||
*/
|
||||
private static async prepareSnapOnto(features: Feature[]): Promise<(Feature<LineString | Polygon> & {properties : {id: WayId}})[]> {
|
||||
const linesAndPolygon : Feature<LineString | Polygon>[] = <any> features.filter(f => f.geometry.type !== "Point")
|
||||
private static async prepareSnapOnto(
|
||||
features: Feature[]
|
||||
): Promise<(Feature<LineString | Polygon> & { properties: { id: WayId } })[]> {
|
||||
const linesAndPolygon: Feature<LineString | Polygon>[] = <any>(
|
||||
features.filter((f) => f.geometry.type !== "Point")
|
||||
)
|
||||
// Clean the features: multipolygons are split into their it's members
|
||||
const linestrings: (Feature<LineString | Polygon> & { properties: { id: WayId } })[] = []
|
||||
for (const feature of linesAndPolygon) {
|
||||
|
@ -87,14 +95,18 @@ export default class LocationInput
|
|||
|
||||
// We have a multipolygon, thus: a relation
|
||||
// Download the members
|
||||
const relation = await OsmObject.DownloadObjectAsync(<RelationId> feature.properties.id, 60 * 60)
|
||||
const members: OsmWay[] = await Promise.all(relation.members
|
||||
.filter(m => m.type === "way")
|
||||
.map(m => OsmObject.DownloadObjectAsync(<WayId> ("way/"+m.ref), 60 * 60)))
|
||||
linestrings.push(...members.map(m => m.asGeoJson()))
|
||||
const relation = await OsmObject.DownloadObjectAsync(
|
||||
<RelationId>feature.properties.id,
|
||||
60 * 60
|
||||
)
|
||||
const members: OsmWay[] = await Promise.all(
|
||||
relation.members
|
||||
.filter((m) => m.type === "way")
|
||||
.map((m) => OsmObject.DownloadObjectAsync(<WayId>("way/" + m.ref), 60 * 60))
|
||||
)
|
||||
linestrings.push(...members.map((m) => m.asGeoJson()))
|
||||
}
|
||||
return linestrings
|
||||
|
||||
}
|
||||
|
||||
constructor(options?: {
|
||||
|
@ -107,19 +119,31 @@ export default class LocationInput
|
|||
centerLocation?: UIEventSource<Loc>
|
||||
bounds?: UIEventSource<BBox>
|
||||
state?: {
|
||||
readonly filteredLayers: Store<FilteredLayer[]>;
|
||||
readonly backgroundLayer: UIEventSource<BaseLayer>;
|
||||
readonly layoutToUse: LayoutConfig;
|
||||
readonly selectedElement: UIEventSource<any>;
|
||||
readonly filteredLayers: Store<FilteredLayer[]>
|
||||
readonly backgroundLayer: UIEventSource<BaseLayer>
|
||||
readonly layoutToUse: LayoutConfig
|
||||
readonly selectedElement: UIEventSource<any>
|
||||
readonly allElements: ElementStorage
|
||||
}
|
||||
}) {
|
||||
super()
|
||||
this._snapToRaw = options?.snapTo?.map(feats => feats.filter(f => f.feature.geometry.type !== "Point"))
|
||||
this._snapTo = options?.snapTo?.bind((features) => UIEventSource.FromPromise(LocationInput.prepareSnapOnto(features.map(f => f.feature))))?.map(f => f ?? [])
|
||||
this._snapToRaw = options?.snapTo?.map((feats) =>
|
||||
feats.filter((f) => f.feature.geometry.type !== "Point")
|
||||
)
|
||||
this._snapTo = options?.snapTo
|
||||
?.bind((features) =>
|
||||
UIEventSource.FromPromise(
|
||||
LocationInput.prepareSnapOnto(features.map((f) => f.feature))
|
||||
)
|
||||
)
|
||||
?.map((f) => f ?? [])
|
||||
this._maxSnapDistance = options?.maxSnapDistance
|
||||
this._centerLocation = options?.centerLocation ?? new UIEventSource<Loc>({
|
||||
lat: 0, lon: 0, zoom: 0
|
||||
this._centerLocation =
|
||||
options?.centerLocation ??
|
||||
new UIEventSource<Loc>({
|
||||
lat: 0,
|
||||
lon: 0,
|
||||
zoom: 0,
|
||||
})
|
||||
this._snappedPointTags = options?.snappedPointTags
|
||||
this._bounds = options?.bounds
|
||||
|
@ -152,11 +176,11 @@ export default class LocationInput
|
|||
return undefined
|
||||
}
|
||||
|
||||
|
||||
// We reproject the location onto every 'snap-to-feature' and select the closest
|
||||
|
||||
let min = undefined
|
||||
let matchedWay: Feature<LineString | Polygon> & {properties : {id : WayId}} = undefined
|
||||
let matchedWay: Feature<LineString | Polygon> & { properties: { id: WayId } } =
|
||||
undefined
|
||||
for (const feature of self._snapTo.data ?? []) {
|
||||
try {
|
||||
const nearestPointOnLine = GeoOperations.nearestPoint(feature, [
|
||||
|
@ -199,8 +223,6 @@ export default class LocationInput
|
|||
if (matchedWay.properties.id.startsWith("relation/")) {
|
||||
// We matched a relation instead of a way
|
||||
console.log("Snapping onto a relation. The relation is", matchedWay)
|
||||
|
||||
|
||||
}
|
||||
self.snappedOnto.setData(<any>matchedWay)
|
||||
return min
|
||||
|
@ -217,7 +239,10 @@ export default class LocationInput
|
|||
}
|
||||
})
|
||||
}
|
||||
this.mapBackground = options?.mapBackground ?? this._state?.backgroundLayer ?? new UIEventSource<BaseLayer>(AvailableBaseLayers.osmCarto)
|
||||
this.mapBackground =
|
||||
options?.mapBackground ??
|
||||
this._state?.backgroundLayer ??
|
||||
new UIEventSource<BaseLayer>(AvailableBaseLayers.osmCarto)
|
||||
this.SetClass("block h-full")
|
||||
|
||||
this.clickLocation = new UIEventSource<Loc>(undefined)
|
||||
|
@ -335,9 +360,9 @@ export default class LocationInput
|
|||
}
|
||||
}
|
||||
|
||||
TakeScreenshot(format: "image"): Promise<string>;
|
||||
TakeScreenshot(format: "blob"): Promise<Blob>;
|
||||
TakeScreenshot(format: "image" | "blob"): Promise<string | Blob>;
|
||||
TakeScreenshot(format: "image"): Promise<string>
|
||||
TakeScreenshot(format: "blob"): Promise<Blob>
|
||||
TakeScreenshot(format: "image" | "blob"): Promise<string | Blob>
|
||||
TakeScreenshot(format: "image" | "blob"): Promise<string | Blob> {
|
||||
return this.map.TakeScreenshot(format)
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ import Title from "../Base/Title"
|
|||
import { GlobalFilter } from "../../Logic/State/MapState"
|
||||
import { VariableUiElement } from "../Base/VariableUIElement"
|
||||
import { Tag } from "../../Logic/Tags/Tag"
|
||||
import {WayId} from "../../Models/OsmFeature";
|
||||
import { WayId } from "../../Models/OsmFeature"
|
||||
|
||||
export default class ConfirmLocationOfPoint extends Combine {
|
||||
constructor(
|
||||
|
@ -76,7 +76,7 @@ export default class ConfirmLocationOfPoint extends Combine {
|
|||
snappedPointTags: tags,
|
||||
maxSnapDistance: preset.preciseInput.maxSnapDistance,
|
||||
bounds: mapBounds,
|
||||
state: <any> state
|
||||
state: <any>state,
|
||||
})
|
||||
preciseInput.installBounds(preset.boundsFactor ?? 0.25, true)
|
||||
preciseInput
|
||||
|
|
|
@ -22,7 +22,7 @@ import Title from "../Base/Title"
|
|||
import { SubstitutedTranslation } from "../SubstitutedTranslation"
|
||||
import FeaturePipelineState from "../../Logic/State/FeaturePipelineState"
|
||||
import TagRenderingQuestion from "./TagRenderingQuestion"
|
||||
import {OsmId} from "../../Models/OsmFeature";
|
||||
import { OsmId } from "../../Models/OsmFeature"
|
||||
|
||||
export default class DeleteWizard extends Toggle {
|
||||
/**
|
||||
|
|
|
@ -248,8 +248,7 @@ export default class FeatureInfoBox extends ScrollableFullScreen {
|
|||
)
|
||||
|
||||
editElements.push(
|
||||
Toggle.If(state.featureSwitchIsDebugging,
|
||||
() => {
|
||||
Toggle.If(state.featureSwitchIsDebugging, () => {
|
||||
const config_all_tags: TagRenderingConfig = new TagRenderingConfig(
|
||||
{ render: "{all_tags()}" },
|
||||
""
|
||||
|
@ -269,8 +268,7 @@ export default class FeatureInfoBox extends ScrollableFullScreen {
|
|||
new TagRenderingAnswer(tags, config_id, state),
|
||||
"This is layer " + layerConfig.id,
|
||||
])
|
||||
}
|
||||
)
|
||||
})
|
||||
)
|
||||
|
||||
return new Combine(editElements).SetClass("flex flex-col")
|
||||
|
|
|
@ -145,7 +145,7 @@ export default class MoveWizard extends Toggle {
|
|||
minZoom: reason.minZoom,
|
||||
centerLocation: loc,
|
||||
mapBackground: new UIEventSource<BaseLayer>(preferredBackground), // We detach the layer
|
||||
state: <any> state
|
||||
state: <any>state,
|
||||
})
|
||||
|
||||
if (reason.lockBounds) {
|
||||
|
|
|
@ -304,7 +304,7 @@ export default class TagRenderingQuestion extends Combine {
|
|||
const patchedMapping = <Mapping>{
|
||||
...mapping,
|
||||
iconClass: mapping.iconClass ?? `small-height`,
|
||||
icon: mapping.icon ?? (addIcons ? "./assets/svg/none.svg" : undefined)
|
||||
icon: mapping.icon ?? (addIcons ? "./assets/svg/none.svg" : undefined),
|
||||
}
|
||||
const fancy = TagRenderingQuestion.GenerateMappingContent(
|
||||
patchedMapping,
|
||||
|
|
|
@ -10,12 +10,15 @@ import * as clusterstyle from "../../assets/layers/cluster_style/cluster_style.j
|
|||
export default class ShowTileInfo {
|
||||
public static readonly styling = new LayerConfig(clusterstyle, "ShowTileInfo", true)
|
||||
|
||||
constructor(options: {
|
||||
constructor(
|
||||
options: {
|
||||
source: FeatureSource & Tiled
|
||||
leafletMap: UIEventSource<any>
|
||||
layer?: LayerConfig
|
||||
doShowLayer?: UIEventSource<boolean>
|
||||
}, state) {
|
||||
},
|
||||
state
|
||||
) {
|
||||
const source = options.source
|
||||
const metaFeature: Store<{ feature; freshness: Date }[]> = source.features.map(
|
||||
(features) => {
|
||||
|
@ -55,7 +58,7 @@ export default class ShowTileInfo {
|
|||
features: new StaticFeatureSource(metaFeature),
|
||||
leafletMap: options.leafletMap,
|
||||
doShowLayer: options.doShowLayer,
|
||||
state
|
||||
state,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,12 +13,11 @@ import MapState from "../Logic/State/MapState"
|
|||
import BaseUIElement from "./BaseUIElement"
|
||||
import Title from "./Base/Title"
|
||||
import { FixedUiElement } from "./Base/FixedUiElement"
|
||||
import List from "./Base/List";
|
||||
import List from "./Base/List"
|
||||
|
||||
class StatisticsForOverviewFile extends Combine {
|
||||
|
||||
constructor(homeUrl: string, paths: string[]) {
|
||||
paths = paths.filter(p => !p.endsWith("file-overview.json"))
|
||||
paths = paths.filter((p) => !p.endsWith("file-overview.json"))
|
||||
const layer = AllKnownLayouts.allKnownLayouts.get("mapcomplete-changes").layers[0]
|
||||
const filteredLayer = MapState.InitializeFilteredLayers(
|
||||
{ id: "statistics-view", layers: [layer] },
|
||||
|
@ -55,7 +54,6 @@ class StatisticsForOverviewFile extends Combine {
|
|||
)
|
||||
)
|
||||
|
||||
|
||||
super([
|
||||
filterPanel,
|
||||
new VariableUiElement(
|
||||
|
@ -117,9 +115,10 @@ class StatisticsForOverviewFile extends Combine {
|
|||
"import",
|
||||
"conflation",
|
||||
"link-image",
|
||||
"soft-delete"]
|
||||
"soft-delete",
|
||||
]
|
||||
|
||||
const allThemes = Utils.Dedup(overview._meta.map(f => f.properties.theme))
|
||||
const allThemes = Utils.Dedup(overview._meta.map((f) => f.properties.theme))
|
||||
|
||||
const excludedThemes = new Set<string>()
|
||||
if (allThemes.length > 1) {
|
||||
|
@ -127,17 +126,21 @@ class StatisticsForOverviewFile extends Combine {
|
|||
excludedThemes.add("etymology")
|
||||
}
|
||||
const summedValues = valuesToSum
|
||||
.map(key => [key, overview.sum(key, excludedThemes)])
|
||||
.filter(kv => kv[1] != 0)
|
||||
.map(kv => kv.join(": "))
|
||||
.map((key) => [key, overview.sum(key, excludedThemes)])
|
||||
.filter((kv) => kv[1] != 0)
|
||||
.map((kv) => kv.join(": "))
|
||||
const elements: BaseUIElement[] = [
|
||||
new Title(allThemes .length === 1 ? "General statistics for "+allThemes[0] :"General statistics (excluding etymology- and GRB-theme changes)"),
|
||||
new Title(
|
||||
allThemes.length === 1
|
||||
? "General statistics for " + allThemes[0]
|
||||
: "General statistics (excluding etymology- and GRB-theme changes)"
|
||||
),
|
||||
new Combine([
|
||||
overview._meta.length + " changesets match the filters",
|
||||
new List(summedValues)
|
||||
new List(summedValues),
|
||||
]).SetClass("flex flex-col border rounded-xl"),
|
||||
|
||||
new Title("Breakdown")
|
||||
new Title("Breakdown"),
|
||||
]
|
||||
for (const tr of trs) {
|
||||
let total = undefined
|
||||
|
@ -280,8 +283,7 @@ class ChangesetsOverview {
|
|||
}
|
||||
try {
|
||||
cs.properties.host = new URL(cs.properties.host).host
|
||||
} catch (e) {
|
||||
}
|
||||
} catch (e) {}
|
||||
return cs
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,10 @@ export default class Translations {
|
|||
* translation.textFor("nl") // => "Nederlands"
|
||||
*
|
||||
*/
|
||||
static T(t: string | undefined | null | Translation | TypedTranslation<object>, context = undefined): TypedTranslation<object> {
|
||||
static T(
|
||||
t: string | undefined | null | Translation | TypedTranslation<object>,
|
||||
context = undefined
|
||||
): TypedTranslation<object> {
|
||||
if (t === undefined || t === null) {
|
||||
return undefined
|
||||
}
|
||||
|
|
|
@ -1,25 +1,28 @@
|
|||
import FeaturePipelineState from "../Logic/State/FeaturePipelineState";
|
||||
import MinimapImplementation from "../UI/Base/MinimapImplementation";
|
||||
import {UIEventSource} from "../Logic/UIEventSource";
|
||||
import Loc from "../Models/Loc";
|
||||
import ShowDataLayer from "../UI/ShowDataLayer/ShowDataLayer";
|
||||
import {BBox} from "../Logic/BBox";
|
||||
import Minimap from "../UI/Base/Minimap";
|
||||
import AvailableBaseLayers from "../Logic/Actors/AvailableBaseLayers";
|
||||
import {Utils} from "../Utils";
|
||||
import FeaturePipelineState from "../Logic/State/FeaturePipelineState"
|
||||
import MinimapImplementation from "../UI/Base/MinimapImplementation"
|
||||
import { UIEventSource } from "../Logic/UIEventSource"
|
||||
import Loc from "../Models/Loc"
|
||||
import ShowDataLayer from "../UI/ShowDataLayer/ShowDataLayer"
|
||||
import { BBox } from "../Logic/BBox"
|
||||
import Minimap from "../UI/Base/Minimap"
|
||||
import AvailableBaseLayers from "../Logic/Actors/AvailableBaseLayers"
|
||||
import { Utils } from "../Utils"
|
||||
|
||||
export interface PngMapCreatorOptions {
|
||||
readonly divId: string; readonly width: number; readonly height: number; readonly scaling?: 1 | number,
|
||||
readonly divId: string
|
||||
readonly width: number
|
||||
readonly height: number
|
||||
readonly scaling?: 1 | number
|
||||
readonly dummyMode?: boolean
|
||||
}
|
||||
|
||||
export class PngMapCreator {
|
||||
private readonly _state: FeaturePipelineState | undefined;
|
||||
private readonly _options: PngMapCreatorOptions;
|
||||
private readonly _state: FeaturePipelineState | undefined
|
||||
private readonly _options: PngMapCreatorOptions
|
||||
|
||||
constructor(state: FeaturePipelineState | undefined, options: PngMapCreatorOptions) {
|
||||
this._state = state;
|
||||
this._options = {...options, scaling: options.scaling ?? 1};
|
||||
this._state = state
|
||||
this._options = { ...options, scaling: options.scaling ?? 1 }
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -27,10 +30,13 @@ export class PngMapCreator {
|
|||
* @private
|
||||
*/
|
||||
private async createAndLoadMinimap(): Promise<MinimapImplementation> {
|
||||
const state = this._state;
|
||||
const state = this._state
|
||||
const options = this._options
|
||||
const baselayer = AvailableBaseLayers.layerOverview.find(bl => bl.id === state.layoutToUse.defaultBackgroundId) ?? AvailableBaseLayers.osmCarto
|
||||
return new Promise(resolve => {
|
||||
const baselayer =
|
||||
AvailableBaseLayers.layerOverview.find(
|
||||
(bl) => bl.id === state.layoutToUse.defaultBackgroundId
|
||||
) ?? AvailableBaseLayers.osmCarto
|
||||
return new Promise((resolve) => {
|
||||
const minimap = Minimap.createMiniMap({
|
||||
location: new UIEventSource<Loc>(state.locationControl.data), // We remove the link between the old and the new UI-event source as moving the map while the export is running fucks up the screenshot
|
||||
background: new UIEventSource(baselayer),
|
||||
|
@ -38,24 +44,24 @@ export class PngMapCreator {
|
|||
onFullyLoaded: (_) =>
|
||||
window.setTimeout(() => {
|
||||
resolve(<MinimapImplementation>minimap)
|
||||
}, 250)
|
||||
}, 250),
|
||||
})
|
||||
const style = `width: ${options.width * options.scaling}mm; height: ${options.height * options.scaling}mm;`
|
||||
const style = `width: ${options.width * options.scaling}mm; height: ${
|
||||
options.height * options.scaling
|
||||
}mm;`
|
||||
minimap.SetStyle(style)
|
||||
minimap.AttachTo(options.divId)
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a base64-encoded PNG image
|
||||
* @constructor
|
||||
*/
|
||||
public async CreatePng(format: "image" ): Promise<string > ;
|
||||
public async CreatePng(format: "blob"): Promise<Blob> ;
|
||||
public async CreatePng(format: "image" | "blob"): Promise<string | Blob>;
|
||||
public async CreatePng(format: "image"): Promise<string>
|
||||
public async CreatePng(format: "blob"): Promise<Blob>
|
||||
public async CreatePng(format: "image" | "blob"): Promise<string | Blob>
|
||||
public async CreatePng(format: "image" | "blob"): Promise<string | Blob> {
|
||||
|
||||
// Lets first init the minimap and wait for all background tiles to load
|
||||
const minimap = await this.createAndLoadMinimap()
|
||||
const state = this._state
|
||||
|
@ -67,7 +73,9 @@ export class PngMapCreator {
|
|||
if (dummyMode) {
|
||||
console.warn("Dummy mode is active - not loading map layers")
|
||||
} else {
|
||||
const bounds = BBox.fromLeafletBounds(leaflet.getBounds().pad(0.1).pad(-state.layoutToUse.widenFactor))
|
||||
const bounds = BBox.fromLeafletBounds(
|
||||
leaflet.getBounds().pad(0.1).pad(-state.layoutToUse.widenFactor)
|
||||
)
|
||||
state.currentBounds.setData(bounds)
|
||||
if (!state.featurePipeline.sufficientlyZoomed.data) {
|
||||
console.warn("Not sufficiently zoomed!")
|
||||
|
@ -77,7 +85,9 @@ export class PngMapCreator {
|
|||
// A query is running!
|
||||
// Let's wait for it to complete
|
||||
console.log("Waiting for the query to complete")
|
||||
await state.featurePipeline.runningQuery.AsPromise(isRunning => !isRunning)
|
||||
await state.featurePipeline.runningQuery.AsPromise(
|
||||
(isRunning) => !isRunning
|
||||
)
|
||||
console.log("Query has completeted!")
|
||||
}
|
||||
|
||||
|
@ -96,12 +106,19 @@ export class PngMapCreator {
|
|||
})
|
||||
await Utils.waitFor(2000)
|
||||
}
|
||||
minimap.TakeScreenshot(format).then(async result => {
|
||||
minimap
|
||||
.TakeScreenshot(format)
|
||||
.then(async (result) => {
|
||||
const divId = this._options.divId
|
||||
await Utils.waitFor(250)
|
||||
document.getElementById(divId).removeChild(/*Will fetch the cached htmlelement:*/minimap.ConstructElement())
|
||||
return resolve(result);
|
||||
}).catch(failreason => {
|
||||
document
|
||||
.getElementById(divId)
|
||||
.removeChild(
|
||||
/*Will fetch the cached htmlelement:*/ minimap.ConstructElement()
|
||||
)
|
||||
return resolve(result)
|
||||
})
|
||||
.catch((failreason) => {
|
||||
console.error("Could no make a screenshot due to ", failreason)
|
||||
reject(failreason)
|
||||
})
|
||||
|
|
|
@ -1,43 +1,48 @@
|
|||
import jsPDF, {Matrix} from "jspdf";
|
||||
import {Translation, TypedTranslation} from "../UI/i18n/Translation";
|
||||
import FeaturePipelineState from "../Logic/State/FeaturePipelineState";
|
||||
import {PngMapCreator} from "./pngMapCreator";
|
||||
import {AllKnownLayouts} from "../Customizations/AllKnownLayouts";
|
||||
import {Store} from "../Logic/UIEventSource";
|
||||
import jsPDF, { Matrix } from "jspdf"
|
||||
import { Translation, TypedTranslation } from "../UI/i18n/Translation"
|
||||
import FeaturePipelineState from "../Logic/State/FeaturePipelineState"
|
||||
import { PngMapCreator } from "./pngMapCreator"
|
||||
import { AllKnownLayouts } from "../Customizations/AllKnownLayouts"
|
||||
import { Store } from "../Logic/UIEventSource"
|
||||
import "../assets/templates/Ubuntu-M-normal.js"
|
||||
import "../assets/templates/Ubuntu-L-normal.js"
|
||||
import "../assets/templates/UbuntuMono-B-bold.js"
|
||||
import {makeAbsolute, parseSVG} from 'svg-path-parser';
|
||||
import Translations from "../UI/i18n/Translations";
|
||||
import {Utils} from "../Utils";
|
||||
import Constants from "../Models/Constants";
|
||||
import Hash from "../Logic/Web/Hash";
|
||||
import { makeAbsolute, parseSVG } from "svg-path-parser"
|
||||
import Translations from "../UI/i18n/Translations"
|
||||
import { Utils } from "../Utils"
|
||||
import Constants from "../Models/Constants"
|
||||
import Hash from "../Logic/Web/Hash"
|
||||
|
||||
class SvgToPdfInternals {
|
||||
private readonly doc: jsPDF;
|
||||
private readonly doc: jsPDF
|
||||
private static readonly dummyDoc: jsPDF = new jsPDF()
|
||||
private readonly matrices: Matrix[] = []
|
||||
private readonly matricesInverted: Matrix[] = []
|
||||
|
||||
private currentMatrix: Matrix;
|
||||
private currentMatrixInverted: Matrix;
|
||||
private currentMatrix: Matrix
|
||||
private currentMatrixInverted: Matrix
|
||||
|
||||
private readonly _images: Record<string, HTMLImageElement>;
|
||||
private readonly _rects: Record<string, SVGRectElement>;
|
||||
private readonly extractTranslation: (string) => string;
|
||||
private readonly _images: Record<string, HTMLImageElement>
|
||||
private readonly _rects: Record<string, SVGRectElement>
|
||||
private readonly extractTranslation: (string) => string
|
||||
|
||||
constructor(advancedApi: jsPDF, images: Record<string, HTMLImageElement>, rects: Record<string, SVGRectElement>, extractTranslation: (string) => string) {
|
||||
this.doc = advancedApi;
|
||||
this._images = images;
|
||||
this._rects = rects;
|
||||
this.extractTranslation = s => extractTranslation(s)?.replace(/ /g, " ");
|
||||
this.currentMatrix = this.doc.unitMatrix;
|
||||
this.currentMatrixInverted = this.doc.unitMatrix;
|
||||
constructor(
|
||||
advancedApi: jsPDF,
|
||||
images: Record<string, HTMLImageElement>,
|
||||
rects: Record<string, SVGRectElement>,
|
||||
extractTranslation: (string) => string
|
||||
) {
|
||||
this.doc = advancedApi
|
||||
this._images = images
|
||||
this._rects = rects
|
||||
this.extractTranslation = (s) => extractTranslation(s)?.replace(/ /g, " ")
|
||||
this.currentMatrix = this.doc.unitMatrix
|
||||
this.currentMatrixInverted = this.doc.unitMatrix
|
||||
}
|
||||
|
||||
applyMatrices(): void {
|
||||
let multiplied = this.doc.unitMatrix;
|
||||
let multipliedInv = this.doc.unitMatrix;
|
||||
let multiplied = this.doc.unitMatrix
|
||||
let multipliedInv = this.doc.unitMatrix
|
||||
for (const matrix of this.matrices) {
|
||||
multiplied = this.doc.matrixMult(multiplied, matrix)
|
||||
}
|
||||
|
@ -51,21 +56,19 @@ class SvgToPdfInternals {
|
|||
addMatrix(m: Matrix) {
|
||||
this.matrices.push(m)
|
||||
this.matricesInverted.push(m.inversed())
|
||||
this.doc.setCurrentTransformationMatrix(m);
|
||||
this.doc.setCurrentTransformationMatrix(m)
|
||||
this.applyMatrices()
|
||||
|
||||
}
|
||||
|
||||
public static extractMatrix(element: Element): Matrix {
|
||||
|
||||
const t = element.getAttribute("transform")
|
||||
if (t === null) {
|
||||
return null;
|
||||
return null
|
||||
}
|
||||
const scaleMatch = t.match(/scale\(([-0-9.]+)\)/)
|
||||
if (scaleMatch !== null) {
|
||||
const s = Number(scaleMatch[1])
|
||||
return SvgToPdfInternals.dummyDoc.Matrix(1 / s, 0, 0, 1 / s, 0, 0);
|
||||
return SvgToPdfInternals.dummyDoc.Matrix(1 / s, 0, 0, 1 / s, 0, 0)
|
||||
}
|
||||
|
||||
const translateMatch = t.match(/translate\(([-0-9.]+), ?([-0-9.]*)\)/)
|
||||
|
@ -73,11 +76,12 @@ class SvgToPdfInternals {
|
|||
const dx = Number(translateMatch[1])
|
||||
const dy = Number(translateMatch[2])
|
||||
console.log("Translating", dx, dy)
|
||||
return SvgToPdfInternals.dummyDoc.Matrix(1, 0, 0, 1, dx, dy);
|
||||
return SvgToPdfInternals.dummyDoc.Matrix(1, 0, 0, 1, dx, dy)
|
||||
}
|
||||
|
||||
|
||||
const transformMatch = t.match(/matrix\(([-0-9.]*),([-0-9.]*),([-0-9.]*),([-0-9.]*),([-0-9.]*),([-0-9.]*)\)/)
|
||||
const transformMatch = t.match(
|
||||
/matrix\(([-0-9.]*),([-0-9.]*),([-0-9.]*),([-0-9.]*),([-0-9.]*),([-0-9.]*)\)/
|
||||
)
|
||||
if (transformMatch !== null) {
|
||||
const vals = [1, 0, 0, 1, 0, 0]
|
||||
const invVals = [1, 0, 0, 1, 0, 0]
|
||||
|
@ -90,20 +94,26 @@ class SvgToPdfInternals {
|
|||
vals[i] = ti
|
||||
}
|
||||
}
|
||||
return SvgToPdfInternals.dummyDoc.Matrix(vals[0], vals[1], vals[2], vals[3], vals[4], vals[5]);
|
||||
return SvgToPdfInternals.dummyDoc.Matrix(
|
||||
vals[0],
|
||||
vals[1],
|
||||
vals[2],
|
||||
vals[3],
|
||||
vals[4],
|
||||
vals[5]
|
||||
)
|
||||
}
|
||||
|
||||
return null;
|
||||
return null
|
||||
}
|
||||
|
||||
public setTransform(element: Element): boolean {
|
||||
|
||||
const m = SvgToPdfInternals.extractMatrix(element)
|
||||
if (m === null) {
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
this.addMatrix(m)
|
||||
return true;
|
||||
return true
|
||||
}
|
||||
|
||||
public undoTransform(): void {
|
||||
|
@ -111,7 +121,6 @@ class SvgToPdfInternals {
|
|||
const i = this.matricesInverted.pop()
|
||||
this.doc.setCurrentTransformationMatrix(i)
|
||||
this.applyMatrices()
|
||||
|
||||
}
|
||||
|
||||
public static parseCss(styleContent: string, separator: string = ";"): Record<string, string> {
|
||||
|
@ -121,12 +130,12 @@ class SvgToPdfInternals {
|
|||
const r: Record<string, string> = {}
|
||||
|
||||
for (const rule of styleContent.split(separator)) {
|
||||
const [k, v] = rule.split(":").map(x => x.trim())
|
||||
const [k, v] = rule.split(":").map((x) => x.trim())
|
||||
r[k] = v
|
||||
}
|
||||
|
||||
return r
|
||||
};
|
||||
}
|
||||
|
||||
private drawRect(element: SVGRectElement) {
|
||||
const x = Number(element.getAttribute("x"))
|
||||
|
@ -156,19 +165,20 @@ class SvgToPdfInternals {
|
|||
if (css["fill-opacity"] !== "0" && css["fill"] !== "none") {
|
||||
this.doc.setFillColor(css["fill"] ?? "black")
|
||||
this.doc.circle(x, y, r, "F")
|
||||
|
||||
}
|
||||
if (css["stroke"] && css["stroke"] !== "none") {
|
||||
this.doc.setLineWidth(Number(css["stroke-width"] ?? 1))
|
||||
this.doc.setDrawColor(css["stroke"] ?? "black")
|
||||
this.doc.circle(x, y, r, "S")
|
||||
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
private static attr(element: Element, name: string, recurseup: boolean = true): string | undefined {
|
||||
private static attr(
|
||||
element: Element,
|
||||
name: string,
|
||||
recurseup: boolean = true
|
||||
): string | undefined {
|
||||
if (element === null || element === undefined) {
|
||||
return undefined
|
||||
}
|
||||
|
@ -188,22 +198,20 @@ class SvgToPdfInternals {
|
|||
* @private
|
||||
*/
|
||||
private static css(element: Element): Record<string, string> {
|
||||
|
||||
if (element.parentElement == undefined || element.parentElement == element) {
|
||||
return SvgToPdfInternals.parseCss(element.getAttribute("style"))
|
||||
}
|
||||
|
||||
const css = SvgToPdfInternals.css(element.parentElement);
|
||||
const css = SvgToPdfInternals.css(element.parentElement)
|
||||
const style = element.getAttribute("style")
|
||||
if (style === undefined || style == null) {
|
||||
return css
|
||||
}
|
||||
for (const rule of style.split(";")) {
|
||||
const [k, v] = rule.split(":").map(x => x.trim())
|
||||
const [k, v] = rule.split(":").map((x) => x.trim())
|
||||
css[k] = v
|
||||
}
|
||||
return css
|
||||
|
||||
}
|
||||
|
||||
static attrNumber(element: Element, name: string, recurseup: boolean = true): number {
|
||||
|
@ -233,15 +241,14 @@ class SvgToPdfInternals {
|
|||
}
|
||||
}
|
||||
|
||||
let fontFamily = css["font-family"] ?? "Ubuntu";
|
||||
let fontFamily = css["font-family"] ?? "Ubuntu"
|
||||
if (fontFamily === "sans-serif") {
|
||||
fontFamily = "Ubuntu"
|
||||
}
|
||||
|
||||
let fontWeight = css["font-weight"] ?? "normal";
|
||||
let fontWeight = css["font-weight"] ?? "normal"
|
||||
this.doc.setFont(fontFamily, fontWeight)
|
||||
|
||||
|
||||
const fontColor = css["fill"]
|
||||
if (fontColor) {
|
||||
this.doc.setTextColor(fontColor)
|
||||
|
@ -279,13 +286,13 @@ class SvgToPdfInternals {
|
|||
if (list) {
|
||||
const key = list[1]
|
||||
console.log("Generating a list with key" + key)
|
||||
let r = this.extractTranslation("$" + key + "0");
|
||||
let r = this.extractTranslation("$" + key + "0")
|
||||
let i = 0
|
||||
result += "\n"
|
||||
while (r !== undefined && i < 100) {
|
||||
result += "• " + r + "\n"
|
||||
i++
|
||||
r = this.extractTranslation("$" + key + i);
|
||||
r = this.extractTranslation("$" + key + i)
|
||||
}
|
||||
result += "\n"
|
||||
addSpace = false
|
||||
|
@ -298,10 +305,15 @@ class SvgToPdfInternals {
|
|||
addSpace = true
|
||||
}
|
||||
}
|
||||
this.doc.text(result, x, y, {
|
||||
this.doc.text(
|
||||
result,
|
||||
x,
|
||||
y,
|
||||
{
|
||||
maxWidth,
|
||||
}, this.currentMatrix)
|
||||
|
||||
},
|
||||
this.currentMatrix
|
||||
)
|
||||
}
|
||||
|
||||
private drawSvgViaCanvas(element: Element): void {
|
||||
|
@ -310,14 +322,13 @@ class SvgToPdfInternals {
|
|||
const width = SvgToPdfInternals.attrNumber(element, "width")
|
||||
const height = SvgToPdfInternals.attrNumber(element, "height")
|
||||
const base64src = SvgToPdfInternals.attr(element, "xlink:href")
|
||||
const svgXml = atob(base64src.substring(base64src.indexOf(";base64,") + ";base64,".length));
|
||||
const parser = new DOMParser();
|
||||
const xmlDoc = parser.parseFromString(svgXml, "text/xml");
|
||||
const svgRoot = xmlDoc.getElementsByTagName("svg")[0];
|
||||
const svgXml = atob(base64src.substring(base64src.indexOf(";base64,") + ";base64,".length))
|
||||
const parser = new DOMParser()
|
||||
const xmlDoc = parser.parseFromString(svgXml, "text/xml")
|
||||
const svgRoot = xmlDoc.getElementsByTagName("svg")[0]
|
||||
const svgWidth = SvgToPdfInternals.attrNumber(svgRoot, "width")
|
||||
const svgHeight = SvgToPdfInternals.attrNumber(svgRoot, "height")
|
||||
|
||||
|
||||
let img = this._images[base64src]
|
||||
// This is an svg image, we use the canvas to convert it to a png
|
||||
const canvas = document.createElement("canvas")
|
||||
|
@ -325,22 +336,29 @@ class SvgToPdfInternals {
|
|||
|
||||
canvas.width = svgWidth
|
||||
canvas.height = svgHeight
|
||||
img.style.width = `${(svgWidth)}px`
|
||||
img.style.height = `${(svgHeight)}px`
|
||||
img.style.width = `${svgWidth}px`
|
||||
img.style.height = `${svgHeight}px`
|
||||
|
||||
ctx.drawImage(img, 0, 0, svgWidth, svgHeight)
|
||||
const base64img = canvas.toDataURL("image/png")
|
||||
|
||||
this.addMatrix(this.doc.Matrix(width / svgWidth, 0, 0, height / svgHeight, 0, 0))
|
||||
const p = this.currentMatrixInverted.applyToPoint({ x, y })
|
||||
this.doc.addImage(base64img, "png", p.x * svgWidth / width, p.y * svgHeight / height, svgWidth, svgHeight)
|
||||
this.doc.addImage(
|
||||
base64img,
|
||||
"png",
|
||||
(p.x * svgWidth) / width,
|
||||
(p.y * svgHeight) / height,
|
||||
svgWidth,
|
||||
svgHeight
|
||||
)
|
||||
this.undoTransform()
|
||||
}
|
||||
|
||||
private drawImage(element: Element): void {
|
||||
const href = SvgToPdfInternals.attr(element, "xlink:href")
|
||||
if (href.endsWith('svg') || href.startsWith("data:image/svg")) {
|
||||
this.drawSvgViaCanvas(element);
|
||||
if (href.endsWith("svg") || href.startsWith("data:image/svg")) {
|
||||
this.drawSvgViaCanvas(element)
|
||||
} else {
|
||||
const x = SvgToPdfInternals.attrNumber(element, "x")
|
||||
const y = SvgToPdfInternals.attrNumber(element, "y")
|
||||
|
@ -354,7 +372,7 @@ class SvgToPdfInternals {
|
|||
|
||||
private drawPath(element: SVGPathElement): void {
|
||||
const path = element.getAttribute("d")
|
||||
const parsed: { code: string, x: number, y: number, x2?, y2?, x1?, y1? }[] = parseSVG(path)
|
||||
const parsed: { code: string; x: number; y: number; x2?; y2?; x1?; y1? }[] = parseSVG(path)
|
||||
makeAbsolute(parsed)
|
||||
|
||||
for (const c of parsed) {
|
||||
|
@ -413,7 +431,6 @@ class SvgToPdfInternals {
|
|||
public handleElement(element: SVGSVGElement | Element): void {
|
||||
const isTransformed = this.setTransform(element)
|
||||
try {
|
||||
|
||||
if (element.tagName === "tspan") {
|
||||
if (element.childElementCount == 0) {
|
||||
this.drawTspan(element)
|
||||
|
@ -433,7 +450,6 @@ class SvgToPdfInternals {
|
|||
}
|
||||
|
||||
if (element.tagName === "g" || element.tagName === "text") {
|
||||
|
||||
for (let child of Array.from(element.children)) {
|
||||
this.handleElement(child)
|
||||
}
|
||||
|
@ -446,7 +462,6 @@ class SvgToPdfInternals {
|
|||
if (element.tagName === "circle") {
|
||||
this.drawCircle(<any>element)
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
console.error("Could not handle element", element, "due to", e)
|
||||
}
|
||||
|
@ -461,7 +476,7 @@ class SvgToPdfInternals {
|
|||
* @param mapSpec
|
||||
* @constructor
|
||||
*/
|
||||
static GetActualXY(mapSpec: SVGTSpanElement): { x: number, y: number } {
|
||||
static GetActualXY(mapSpec: SVGTSpanElement): { x: number; y: number } {
|
||||
let runningM = SvgToPdfInternals.dummyDoc.unitMatrix
|
||||
|
||||
let e: Element = mapSpec
|
||||
|
@ -480,30 +495,27 @@ class SvgToPdfInternals {
|
|||
}
|
||||
|
||||
export interface SvgToPdfOptions {
|
||||
getFreeDiv: () => string,
|
||||
getFreeDiv: () => string
|
||||
disableMaps?: false | true
|
||||
textSubstitutions?: Record<string, string>,
|
||||
beforePage?: (i: number) => void,
|
||||
overrideLocation?: { lat: number, lon: number }
|
||||
textSubstitutions?: Record<string, string>
|
||||
beforePage?: (i: number) => void
|
||||
overrideLocation?: { lat: number; lon: number }
|
||||
}
|
||||
|
||||
|
||||
export class SvgToPdfPage {
|
||||
|
||||
private images: Record<string, HTMLImageElement> = {}
|
||||
private rects: Record<string, SVGRectElement> = {}
|
||||
public readonly _svgRoot: SVGSVGElement;
|
||||
public readonly _svgRoot: SVGSVGElement
|
||||
public readonly currentState: Store<string>
|
||||
private readonly importedTranslations: Record<string, string> = {}
|
||||
private readonly layerTranslations: Record<string, Record<string, any>> = {}
|
||||
private readonly options: SvgToPdfOptions
|
||||
|
||||
constructor(page: string, options?: SvgToPdfOptions) {
|
||||
this.options = options ?? (<SvgToPdfOptions>{})
|
||||
const parser = new DOMParser();
|
||||
const xmlDoc = parser.parseFromString(page, "image/svg+xml");
|
||||
this._svgRoot = xmlDoc.getElementsByTagName("svg")[0];
|
||||
|
||||
this.options = options ?? <SvgToPdfOptions>{}
|
||||
const parser = new DOMParser()
|
||||
const xmlDoc = parser.parseFromString(page, "image/svg+xml")
|
||||
this._svgRoot = xmlDoc.getElementsByTagName("svg")[0]
|
||||
}
|
||||
|
||||
private loadImage(element: Element): Promise<void> {
|
||||
|
@ -511,11 +523,13 @@ export class SvgToPdfPage {
|
|||
let img = document.createElement("img")
|
||||
|
||||
if (xlink.startsWith("data:image/svg+xml;")) {
|
||||
const base64src = xlink;
|
||||
let svgXml = atob(base64src.substring(base64src.indexOf(";base64,") + ";base64,".length));
|
||||
const parser = new DOMParser();
|
||||
const xmlDoc = parser.parseFromString(svgXml, "text/xml");
|
||||
const svgRoot = xmlDoc.getElementsByTagName("svg")[0];
|
||||
const base64src = xlink
|
||||
let svgXml = atob(
|
||||
base64src.substring(base64src.indexOf(";base64,") + ";base64,".length)
|
||||
)
|
||||
const parser = new DOMParser()
|
||||
const xmlDoc = parser.parseFromString(svgXml, "text/xml")
|
||||
const svgRoot = xmlDoc.getElementsByTagName("svg")[0]
|
||||
const svgWidthStr = svgRoot.getAttribute("width")
|
||||
const svgHeightStr = svgRoot.getAttribute("height")
|
||||
const svgWidth = parseFloat(svgWidthStr)
|
||||
|
@ -533,20 +547,20 @@ export class SvgToPdfPage {
|
|||
|
||||
this.images[xlink] = img
|
||||
return new Promise((resolve) => {
|
||||
img.onload = _ => {
|
||||
img.onload = (_) => {
|
||||
resolve()
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
public extractTranslations(): Set<string> {
|
||||
const textContents: string[] = Array.from(this._svgRoot.getElementsByTagName("tspan"))
|
||||
.map(t => t.textContent)
|
||||
const textContents: string[] = Array.from(this._svgRoot.getElementsByTagName("tspan")).map(
|
||||
(t) => t.textContent
|
||||
)
|
||||
const translations = new Set<string>()
|
||||
console.log("Extracting translations, contents are", textContents)
|
||||
for (const tc of textContents) {
|
||||
const parts = tc.split(" ").filter(p => p.startsWith("$") && p.indexOf("(") < 0)
|
||||
const parts = tc.split(" ").filter((p) => p.startsWith("$") && p.indexOf("(") < 0)
|
||||
for (let part of parts) {
|
||||
part = part.substring(1) // Drop the $
|
||||
let path = part.split(".")
|
||||
|
@ -562,9 +576,12 @@ export class SvgToPdfPage {
|
|||
return translations
|
||||
}
|
||||
|
||||
public async prepareElement(element: SVGSVGElement | Element, mapTextSpecs: SVGTSpanElement[]): Promise<void> {
|
||||
public async prepareElement(
|
||||
element: SVGSVGElement | Element,
|
||||
mapTextSpecs: SVGTSpanElement[]
|
||||
): Promise<void> {
|
||||
if (element.tagName === "rect") {
|
||||
this.rects[element.id] = <SVGRectElement>element;
|
||||
this.rects[element.id] = <SVGRectElement>element
|
||||
}
|
||||
|
||||
if (element.tagName === "image") {
|
||||
|
@ -572,17 +589,26 @@ export class SvgToPdfPage {
|
|||
}
|
||||
|
||||
if (element.tagName === "tspan" && element.childElementCount == 0) {
|
||||
const specialValues = element.textContent.split(" ").filter(t => t.startsWith("$"))
|
||||
const specialValues = element.textContent.split(" ").filter((t) => t.startsWith("$"))
|
||||
for (let specialValue of specialValues) {
|
||||
const importMatch = element.textContent.match(/\$import ([a-zA-Z-_0-9.? ]+) as ([a-zA-Z0-9]+)/)
|
||||
const importMatch = element.textContent.match(
|
||||
/\$import ([a-zA-Z-_0-9.? ]+) as ([a-zA-Z0-9]+)/
|
||||
)
|
||||
if (importMatch !== null) {
|
||||
const [, pathRaw, as] = importMatch
|
||||
this.importedTranslations[as] = pathRaw
|
||||
}
|
||||
const setPropertyMatch = element.textContent.match(/\$set\(([a-zA-Z-_0-9.?:]+),(.+)\)/)
|
||||
const setPropertyMatch = element.textContent.match(
|
||||
/\$set\(([a-zA-Z-_0-9.?:]+),(.+)\)/
|
||||
)
|
||||
if (setPropertyMatch) {
|
||||
this.options.textSubstitutions[setPropertyMatch[1].trim()] = setPropertyMatch[2].trim()
|
||||
console.log("Setting a property:", setPropertyMatch, this.options.textSubstitutions)
|
||||
this.options.textSubstitutions[setPropertyMatch[1].trim()] =
|
||||
setPropertyMatch[2].trim()
|
||||
console.log(
|
||||
"Setting a property:",
|
||||
setPropertyMatch,
|
||||
this.options.textSubstitutions
|
||||
)
|
||||
}
|
||||
if (element.textContent.startsWith("$map(")) {
|
||||
mapTextSpecs.push(<any>element)
|
||||
|
@ -590,18 +616,21 @@ export class SvgToPdfPage {
|
|||
}
|
||||
}
|
||||
|
||||
if (element.tagName === "g" || element.tagName === "text" || element.tagName === "tspan" || element.tagName === "defs") {
|
||||
|
||||
if (
|
||||
element.tagName === "g" ||
|
||||
element.tagName === "text" ||
|
||||
element.tagName === "tspan" ||
|
||||
element.tagName === "defs"
|
||||
) {
|
||||
for (let child of Array.from(element.children)) {
|
||||
await this.prepareElement(child, mapTextSpecs)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private _isPrepared = false;
|
||||
private _isPrepared = false
|
||||
|
||||
private async prepareMap(mapSpec: SVGTSpanElement,): Promise<void> {
|
||||
private async prepareMap(mapSpec: SVGTSpanElement): Promise<void> {
|
||||
// Upper left point of the tspan
|
||||
const { x, y } = SvgToPdfInternals.GetActualXY(mapSpec)
|
||||
|
||||
|
@ -618,7 +647,7 @@ export class SvgToPdfPage {
|
|||
const params = SvgToPdfInternals.parseCss(match[1], ",")
|
||||
|
||||
let smallestRect: SVGRectElement = undefined
|
||||
let smallestSurface: number = undefined;
|
||||
let smallestSurface: number = undefined
|
||||
// We iterate over all the rectangles and pick the smallest (by surface area) that contains the upper left point of the tspan
|
||||
for (const id in this.rects) {
|
||||
const rect = this.rects[id]
|
||||
|
@ -635,14 +664,17 @@ export class SvgToPdfPage {
|
|||
smallestSurface = surface
|
||||
smallestRect = rect
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (smallestRect === undefined) {
|
||||
throw "No rectangle found around " + spec + ". Draw a rectangle around it, the map will be projected on that one"
|
||||
throw (
|
||||
"No rectangle found around " +
|
||||
spec +
|
||||
". Draw a rectangle around it, the map will be projected on that one"
|
||||
)
|
||||
}
|
||||
|
||||
const svgImage = document.createElement('image')
|
||||
const svgImage = document.createElement("image")
|
||||
svgImage.setAttribute("x", smallestRect.getAttribute("x"))
|
||||
svgImage.setAttribute("y", smallestRect.getAttribute("y"))
|
||||
const width = SvgToPdfInternals.attrNumber(smallestRect, "width")
|
||||
|
@ -653,7 +685,9 @@ export class SvgToPdfPage {
|
|||
let layout = AllKnownLayouts.allKnownLayouts.get(params["theme"])
|
||||
if (layout === undefined) {
|
||||
console.error("Could not show map with parameters", params)
|
||||
throw "Theme not found:" + params["theme"] + ". Use theme: to define which theme to use. "
|
||||
throw (
|
||||
"Theme not found:" + params["theme"] + ". Use theme: to define which theme to use. "
|
||||
)
|
||||
}
|
||||
layout.widenFactor = 0
|
||||
layout.overpassTimeout = 600
|
||||
|
@ -662,7 +696,7 @@ export class SvgToPdfPage {
|
|||
if (paramsKey.startsWith("layer-")) {
|
||||
const layerName = paramsKey.substring("layer-".length)
|
||||
const key = params[paramsKey].toLowerCase().trim()
|
||||
const layer = layout.layers.find(l => l.id === layerName)
|
||||
const layer = layout.layers.find((l) => l.id === layerName)
|
||||
if (layer === undefined) {
|
||||
throw "No layer found for " + paramsKey
|
||||
}
|
||||
|
@ -672,7 +706,7 @@ export class SvgToPdfPage {
|
|||
}
|
||||
}
|
||||
}
|
||||
const zoom = Number(params["zoom"] ?? params["z"] ?? 14);
|
||||
const zoom = Number(params["zoom"] ?? params["z"] ?? 14)
|
||||
|
||||
Hash.hash.setData(undefined)
|
||||
// QueryParameters.ClearAll()
|
||||
|
@ -681,7 +715,7 @@ export class SvgToPdfPage {
|
|||
state.locationControl.setData({
|
||||
zoom,
|
||||
lat: this.options?.overrideLocation?.lat ?? Number(params["lat"] ?? 51.05016),
|
||||
lon: this.options?.overrideLocation?.lon ?? Number(params["lon"] ?? 3.717842)
|
||||
lon: this.options?.overrideLocation?.lon ?? Number(params["lon"] ?? 3.717842),
|
||||
})
|
||||
|
||||
console.log("Params are", params, params["layers"] === "none")
|
||||
|
@ -689,7 +723,9 @@ export class SvgToPdfPage {
|
|||
const fl = state.filteredLayers.data
|
||||
for (const filteredLayer of fl) {
|
||||
if (params["layer-" + filteredLayer.layerDef.id] !== undefined) {
|
||||
filteredLayer.isDisplayed.setData(params["layer-" + filteredLayer.layerDef.id].trim().toLowerCase() !== "false")
|
||||
filteredLayer.isDisplayed.setData(
|
||||
params["layer-" + filteredLayer.layerDef.id].trim().toLowerCase() !== "false"
|
||||
)
|
||||
} else if (params["layers"] === "none") {
|
||||
filteredLayer.isDisplayed.setData(false)
|
||||
} else if (filteredLayer.layerDef.id.startsWith("note_import")) {
|
||||
|
@ -701,16 +737,23 @@ export class SvgToPdfPage {
|
|||
if (paramsKey.startsWith("layer-")) {
|
||||
const layerName = paramsKey.substring("layer-".length)
|
||||
const key = params[paramsKey].toLowerCase().trim()
|
||||
const isDisplayed = key === "true" || key === "force";
|
||||
const layer = state.filteredLayers.data.find(l => l.layerDef.id === layerName)
|
||||
console.log("Setting ", layer?.layerDef?.id, " to visibility", isDisplayed, "(minzoom:", layer?.layerDef?.minzoomVisible, layer?.layerDef?.minzoom, ")")
|
||||
layer.isDisplayed.setData(
|
||||
isDisplayed
|
||||
const isDisplayed = key === "true" || key === "force"
|
||||
const layer = state.filteredLayers.data.find((l) => l.layerDef.id === layerName)
|
||||
console.log(
|
||||
"Setting ",
|
||||
layer?.layerDef?.id,
|
||||
" to visibility",
|
||||
isDisplayed,
|
||||
"(minzoom:",
|
||||
layer?.layerDef?.minzoomVisible,
|
||||
layer?.layerDef?.minzoom,
|
||||
")"
|
||||
)
|
||||
layer.isDisplayed.setData(isDisplayed)
|
||||
if (key === "force") {
|
||||
layer.layerDef.minzoom = 0
|
||||
layer.layerDef.minzoomVisible = 0
|
||||
layer.isDisplayed.addCallback(isDisplayed => {
|
||||
layer.isDisplayed.addCallback((isDisplayed) => {
|
||||
if (!isDisplayed) {
|
||||
console.warn("Forcing layer " + paramsKey + " as true")
|
||||
layer.isDisplayed.setData(true)
|
||||
|
@ -720,44 +763,53 @@ export class SvgToPdfPage {
|
|||
}
|
||||
}
|
||||
|
||||
const pngCreator = new PngMapCreator(
|
||||
state,
|
||||
{
|
||||
const pngCreator = new PngMapCreator(state, {
|
||||
width,
|
||||
height,
|
||||
scaling: Number(params["scaling"] ?? 1.5),
|
||||
divId: this.options.getFreeDiv(),
|
||||
dummyMode: this.options.disableMaps
|
||||
}
|
||||
)
|
||||
dummyMode: this.options.disableMaps,
|
||||
})
|
||||
const png = await pngCreator.CreatePng("image")
|
||||
|
||||
svgImage.setAttribute('xlink:href', png)
|
||||
svgImage.setAttribute("xlink:href", png)
|
||||
smallestRect.parentElement.insertBefore(svgImage, smallestRect)
|
||||
await this.prepareElement(svgImage, [])
|
||||
|
||||
|
||||
const smallestRectCss = SvgToPdfInternals.parseCss(smallestRect.getAttribute("style"))
|
||||
smallestRectCss["fill-opacity"] = "0"
|
||||
smallestRect.setAttribute("style", Object.keys(smallestRectCss).map(k => k + ":" + smallestRectCss[k]).join(";"))
|
||||
|
||||
smallestRect.setAttribute(
|
||||
"style",
|
||||
Object.keys(smallestRectCss)
|
||||
.map((k) => k + ":" + smallestRectCss[k])
|
||||
.join(";")
|
||||
)
|
||||
|
||||
textElement.parentElement.removeChild(textElement)
|
||||
}
|
||||
|
||||
public async PrepareLanguage(language: string) {
|
||||
// Always fetch the remote data - it's cached anyway
|
||||
this.layerTranslations[language] = await Utils.downloadJsonCached("https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/langs/layers/" + language + ".json", 24 * 60 * 60 * 1000)
|
||||
const shared_questions = await Utils.downloadJsonCached("https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/langs/shared-questions/" + language + ".json", 24 * 60 * 60 * 1000)
|
||||
this.layerTranslations[language] = await Utils.downloadJsonCached(
|
||||
"https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/langs/layers/" +
|
||||
language +
|
||||
".json",
|
||||
24 * 60 * 60 * 1000
|
||||
)
|
||||
const shared_questions = await Utils.downloadJsonCached(
|
||||
"https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/langs/shared-questions/" +
|
||||
language +
|
||||
".json",
|
||||
24 * 60 * 60 * 1000
|
||||
)
|
||||
this.layerTranslations[language]["shared-questions"] = shared_questions["shared_questions"]
|
||||
}
|
||||
|
||||
public async Prepare() {
|
||||
|
||||
if (this._isPrepared) {
|
||||
return
|
||||
}
|
||||
this._isPrepared = true;
|
||||
this._isPrepared = true
|
||||
const mapSpecs: SVGTSpanElement[] = []
|
||||
for (let child of Array.from(this._svgRoot.children)) {
|
||||
await this.prepareElement(<any>child, mapSpecs)
|
||||
|
@ -766,8 +818,6 @@ export class SvgToPdfPage {
|
|||
for (const mapSpec of mapSpecs) {
|
||||
await this.prepareMap(mapSpec)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public drawPage(advancedApi: jsPDF, i: number, language): void {
|
||||
|
@ -779,16 +829,21 @@ export class SvgToPdfPage {
|
|||
this.options.beforePage(i)
|
||||
}
|
||||
const self = this
|
||||
const internal = new SvgToPdfInternals(advancedApi, this.images, this.rects, key => self.extractTranslation(key, language));
|
||||
const internal = new SvgToPdfInternals(advancedApi, this.images, this.rects, (key) =>
|
||||
self.extractTranslation(key, language)
|
||||
)
|
||||
for (let child of Array.from(this._svgRoot.children)) {
|
||||
internal.handleElement(<any>child)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extractTranslation(text: string, language: string, strict: boolean = false) {
|
||||
if (text === "$version") {
|
||||
return new Date().toISOString().substring(0, "2022-01-02THH:MM".length) + " - v" + Constants.vNumber
|
||||
return (
|
||||
new Date().toISOString().substring(0, "2022-01-02THH:MM".length) +
|
||||
" - v" +
|
||||
Constants.vNumber
|
||||
)
|
||||
}
|
||||
const pathPart = text.match(/\$(([_a-zA-Z0-9? ]+\.)+[_a-zA-Z0-9? ]+)(.*)/)
|
||||
if (pathPart === null) {
|
||||
|
@ -833,40 +888,47 @@ export class SvgToPdfPage {
|
|||
console.error("Could not get textFor from ", t, "for path", text)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class SvgToPdf {
|
||||
|
||||
public static readonly templates: Record<string, { pages: string[], description: string | Translation }> = {
|
||||
public static readonly templates: Record<
|
||||
string,
|
||||
{ pages: string[]; description: string | Translation }
|
||||
> = {
|
||||
flyer_a4: {
|
||||
pages: ["/assets/templates/MapComplete-flyer.svg", "/assets/templates/MapComplete-flyer.back.svg"],
|
||||
description: Translations.t.flyer.description
|
||||
pages: [
|
||||
"/assets/templates/MapComplete-flyer.svg",
|
||||
"/assets/templates/MapComplete-flyer.back.svg",
|
||||
],
|
||||
description: Translations.t.flyer.description,
|
||||
},
|
||||
poster_a3: {
|
||||
pages: ["/assets/templates/MapComplete-poster-a3.svg"],
|
||||
description: "A basic A3 poster (similar to the flyer)"
|
||||
description: "A basic A3 poster (similar to the flyer)",
|
||||
},
|
||||
poster_a2: {
|
||||
pages: ["/assets/templates/MapComplete-poster-a2.svg"],
|
||||
description: "A basic A2 poster (similar to the flyer); scaled up from the A3 poster"
|
||||
description: "A basic A2 poster (similar to the flyer); scaled up from the A3 poster",
|
||||
},
|
||||
}
|
||||
}
|
||||
private readonly _title: string;
|
||||
private readonly _title: string
|
||||
|
||||
private readonly _pages: SvgToPdfPage[]
|
||||
|
||||
constructor(title: string, pages: string[], options?: SvgToPdfOptions) {
|
||||
this._title = title;
|
||||
this._title = title
|
||||
options = options ?? <SvgToPdfOptions>{}
|
||||
options.textSubstitutions = options.textSubstitutions ?? {}
|
||||
const mapCount = "" + Array.from(AllKnownLayouts.allKnownLayouts.values()).filter(th => !th.hideFromOverview).length;
|
||||
const mapCount =
|
||||
"" +
|
||||
Array.from(AllKnownLayouts.allKnownLayouts.values()).filter(
|
||||
(th) => !th.hideFromOverview
|
||||
).length
|
||||
options.textSubstitutions["mapCount"] = mapCount
|
||||
|
||||
this._pages = pages.map(page => new SvgToPdfPage(page, options))
|
||||
this._pages = pages.map((page) => new SvgToPdfPage(page, options))
|
||||
}
|
||||
|
||||
|
||||
public async ConvertSvg(language: string): Promise<void> {
|
||||
const firstPage = this._pages[0]._svgRoot
|
||||
const width = SvgToPdfInternals.attrNumber(firstPage, "width")
|
||||
|
@ -880,7 +942,7 @@ export class SvgToPdf {
|
|||
}
|
||||
|
||||
const doc = new jsPDF(mode, undefined, [width, height])
|
||||
doc.advancedAPI(advancedApi => {
|
||||
doc.advancedAPI((advancedApi) => {
|
||||
for (let i = 0; i < this._pages.length; i++) {
|
||||
if (i > 0) {
|
||||
const page = this._pages[i]._svgRoot
|
||||
|
@ -888,24 +950,31 @@ export class SvgToPdf {
|
|||
const height = SvgToPdfInternals.attrNumber(page, "height")
|
||||
|
||||
advancedApi.addPage([width, height])
|
||||
const mediabox: { bottomLeftX: number, bottomLeftY: number, topRightX: number, topRightY: number } = advancedApi.getCurrentPageInfo().pageContext.mediaBox
|
||||
const mediabox: {
|
||||
bottomLeftX: number
|
||||
bottomLeftY: number
|
||||
topRightX: number
|
||||
topRightY: number
|
||||
} = advancedApi.getCurrentPageInfo().pageContext.mediaBox
|
||||
const targetWidth = 297
|
||||
const targetHeight = 210
|
||||
const sx = mediabox.topRightX / targetWidth
|
||||
const sy = mediabox.topRightY / targetHeight
|
||||
advancedApi.setCurrentTransformationMatrix(advancedApi.Matrix(sx, 0, 0, -sy, 0, mediabox.topRightY))
|
||||
advancedApi.setCurrentTransformationMatrix(
|
||||
advancedApi.Matrix(sx, 0, 0, -sy, 0, mediabox.topRightY)
|
||||
)
|
||||
}
|
||||
this._pages[i].drawPage(advancedApi, i, language)
|
||||
}
|
||||
})
|
||||
await doc.save(this._title + "." + language + ".pdf");
|
||||
await doc.save(this._title + "." + language + ".pdf")
|
||||
}
|
||||
|
||||
public translationKeys(): Set<string> {
|
||||
const allTranslations = this._pages[0].extractTranslations()
|
||||
for (let i = 1; i < this._pages.length; i++) {
|
||||
const translations = this._pages[i].extractTranslations()
|
||||
translations.forEach(t => allTranslations.add(t))
|
||||
translations.forEach((t) => allTranslations.add(t))
|
||||
}
|
||||
allTranslations.delete("import")
|
||||
allTranslations.delete("version")
|
||||
|
@ -927,7 +996,9 @@ export class SvgToPdf {
|
|||
for (const page of this._pages) {
|
||||
// Load all languages at once.
|
||||
// We don't parallelize the pages, as they'll probably reload the same languages anyway (and they are cached)
|
||||
await Promise.all(languages.map(async language => await page.PrepareLanguage(language)))
|
||||
await Promise.all(
|
||||
languages.map(async (language) => await page.PrepareLanguage(language))
|
||||
)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import MinimapImplementation from "./UI/Base/MinimapImplementation";
|
||||
import MinimapImplementation from "./UI/Base/MinimapImplementation"
|
||||
|
||||
import { Utils } from "./Utils"
|
||||
import AllThemesGui from "./UI/AllThemesGui"
|
||||
import { QueryParameters } from "./Logic/Web/QueryParameters"
|
||||
import StatisticsGUI from "./UI/StatisticsGUI"
|
||||
import { FixedUiElement } from "./UI/Base/FixedUiElement"
|
||||
import {PdfExportGui} from "./UI/BigComponents/PdfExportGui";
|
||||
import { PdfExportGui } from "./UI/BigComponents/PdfExportGui"
|
||||
|
||||
const layout = QueryParameters.GetQueryParameter("layout", undefined).data ?? ""
|
||||
const customLayout = QueryParameters.GetQueryParameter("userlayout", undefined).data ?? ""
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 1,004 KiB After Width: | Height: | Size: 1,003 KiB |
|
@ -29,10 +29,10 @@
|
|||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.5378574"
|
||||
inkscape:cx="611.68629"
|
||||
inkscape:cy="588.44593"
|
||||
inkscape:current-layer="layer6"
|
||||
inkscape:zoom="0.50706283"
|
||||
inkscape:cx="901.26898"
|
||||
inkscape:cy="411.19165"
|
||||
inkscape:current-layer="svg8"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="995"
|
||||
inkscape:window-x="0"
|
||||
|
@ -68,9 +68,13 @@
|
|||
orientation="1,0"
|
||||
id="guide8724" />
|
||||
<sodipodi:guide
|
||||
position="-10.409528,340.20558"
|
||||
position="-44.831442,320.04602"
|
||||
orientation="0,-1"
|
||||
id="guide9421" />
|
||||
<sodipodi:guide
|
||||
position="400.13196,78.02807"
|
||||
orientation="0,-1"
|
||||
id="guide1342" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs2">
|
||||
|
@ -2075,7 +2079,7 @@
|
|||
style="display:inline">
|
||||
<g
|
||||
id="g1383"
|
||||
transform="matrix(1.360707,0,0,1.360707,45.569024,-58.983598)">
|
||||
transform="matrix(1.360707,0,0,1.360707,45.672847,-44.915596)">
|
||||
<circle
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#aaaaaa;stroke-width:0.0873813;stroke-linecap:round;stroke-linejoin:bevel;stop-color:#000000"
|
||||
id="path2317"
|
||||
|
@ -2520,6 +2524,9 @@
|
|||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g1512"
|
||||
transform="translate(0,-6.0271117)">
|
||||
<g
|
||||
id="g839"
|
||||
transform="matrix(1.4782289,0,0,1.4782289,713.41215,399.14907)">
|
||||
|
@ -2917,21 +2924,22 @@
|
|||
id="path1982" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text7464"
|
||||
style="white-space:pre;shape-inside:url(#rect7466);fill:#000000"
|
||||
transform="matrix(1.0367869,0,0,1.0367869,-116.43303,-84.366224)"><tspan
|
||||
transform="matrix(1.0367869,0,0,1.0367869,-116.43303,-78.344741)"><tspan
|
||||
x="566.99609"
|
||||
y="257.90817"
|
||||
id="tspan10027"><tspan
|
||||
id="tspan1873"><tspan
|
||||
style="font-weight:bold;font-size:93.3333px;-inkscape-font-specification:'sans-serif, Bold'"
|
||||
id="tspan10025">MapComplete</tspan></tspan></text>
|
||||
id="tspan1871">MapComplete</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text16582"
|
||||
style="white-space:pre;shape-inside:url(#rect16584);fill:#000000"
|
||||
transform="matrix(1.0367869,0,0,1.0367869,-142.96208,37.044569)"
|
||||
transform="matrix(1.0367869,0,0,1.0367869,-142.96208,30.862319)"
|
||||
x="341.71875"
|
||||
y="0"
|
||||
inkscape:export-filename="/home/pietervdvn/git/MapComplete/assets/text16582.png"
|
||||
|
@ -2939,15 +2947,15 @@
|
|||
inkscape:export-ydpi="96"><tspan
|
||||
x="580.88522"
|
||||
y="232.22157"
|
||||
id="tspan10031"><tspan
|
||||
id="tspan1877"><tspan
|
||||
style="font-weight:bold;font-size:64.3012px;-inkscape-font-specification:'sans-serif, Bold';text-align:center;text-anchor:middle"
|
||||
id="tspan10029">Edit OpenStreetMap
|
||||
id="tspan1875">Edit OpenStreetMap
|
||||
</tspan></tspan><tspan
|
||||
x="831.71642"
|
||||
y="312.59807"
|
||||
id="tspan10035"><tspan
|
||||
id="tspan1881"><tspan
|
||||
style="font-weight:bold;font-size:64.3012px;-inkscape-font-specification:'sans-serif, Bold';text-align:center;text-anchor:middle"
|
||||
id="tspan10033"> easily</tspan></tspan></text>
|
||||
id="tspan1879"> easily</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text25150"
|
||||
|
|
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 3.1 MiB |
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"contributors": [
|
||||
{
|
||||
"commits": 4464,
|
||||
"commits": 4594,
|
||||
"contributor": "Pieter Vander Vennet"
|
||||
},
|
||||
{
|
||||
"commits": 184,
|
||||
"commits": 244,
|
||||
"contributor": "Robin van der Linde"
|
||||
},
|
||||
{
|
||||
|
@ -41,7 +41,7 @@
|
|||
"contributor": "Ward"
|
||||
},
|
||||
{
|
||||
"commits": 22,
|
||||
"commits": 23,
|
||||
"contributor": "riQQ"
|
||||
},
|
||||
{
|
||||
|
@ -74,11 +74,11 @@
|
|||
},
|
||||
{
|
||||
"commits": 15,
|
||||
"contributor": "ToastHawaii"
|
||||
"contributor": "Brice Maron"
|
||||
},
|
||||
{
|
||||
"commits": 14,
|
||||
"contributor": "Brice Maron"
|
||||
"commits": 15,
|
||||
"contributor": "ToastHawaii"
|
||||
},
|
||||
{
|
||||
"commits": 13,
|
||||
|
@ -100,6 +100,10 @@
|
|||
"commits": 10,
|
||||
"contributor": "LiamSimons"
|
||||
},
|
||||
{
|
||||
"commits": 9,
|
||||
"contributor": "wjtje"
|
||||
},
|
||||
{
|
||||
"commits": 9,
|
||||
"contributor": "RobJN"
|
||||
|
@ -120,6 +124,10 @@
|
|||
"commits": 7,
|
||||
"contributor": "Binnette"
|
||||
},
|
||||
{
|
||||
"commits": 6,
|
||||
"contributor": "David Haberthür"
|
||||
},
|
||||
{
|
||||
"commits": 6,
|
||||
"contributor": "Thibault Molleman"
|
||||
|
@ -133,8 +141,8 @@
|
|||
"contributor": "pelderson"
|
||||
},
|
||||
{
|
||||
"commits": 5,
|
||||
"contributor": "David Haberthür"
|
||||
"commits": 4,
|
||||
"contributor": "Nadhem"
|
||||
},
|
||||
{
|
||||
"commits": 4,
|
||||
|
@ -160,6 +168,10 @@
|
|||
"commits": 3,
|
||||
"contributor": "Léo Villeveygoux"
|
||||
},
|
||||
{
|
||||
"commits": 2,
|
||||
"contributor": "Jiří Podhorecký"
|
||||
},
|
||||
{
|
||||
"commits": 2,
|
||||
"contributor": "pdassori"
|
||||
|
@ -200,6 +212,14 @@
|
|||
"commits": 2,
|
||||
"contributor": "Stanislas Gueniffey"
|
||||
},
|
||||
{
|
||||
"commits": 1,
|
||||
"contributor": "bgo-eiu"
|
||||
},
|
||||
{
|
||||
"commits": 1,
|
||||
"contributor": "Wouter van der Wal"
|
||||
},
|
||||
{
|
||||
"commits": 1,
|
||||
"contributor": "eMerzh"
|
||||
|
@ -244,10 +264,6 @@
|
|||
"commits": 1,
|
||||
"contributor": "Štefan Baebler"
|
||||
},
|
||||
{
|
||||
"commits": 1,
|
||||
"contributor": "Jiří Podhorecký"
|
||||
},
|
||||
{
|
||||
"commits": 1,
|
||||
"contributor": "Mark Rogerson"
|
||||
|
|
|
@ -412,7 +412,8 @@
|
|||
"if": "artwork_type=woodcarving",
|
||||
"then": {
|
||||
"nl": "Houtsculptuur",
|
||||
"en": "Woodcarving"
|
||||
"en": "Woodcarving",
|
||||
"de": "Holzschnitzerei"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
@ -421,10 +422,14 @@
|
|||
{
|
||||
"id": "artwork-artist-wikidata",
|
||||
"render": {
|
||||
"en": "This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}<br/>{wikipedia(artist:wikidata)}"
|
||||
"en": "This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}<br/>{wikipedia(artist:wikidata)}",
|
||||
"de": "Dieses Kunstwerk wurde geschaffen von {wikidata_label(artist:wikidata):font-weight:bold}<br/>{wikipedia(artist:wikidata)}",
|
||||
"nl": "Dit kunstwerk is gemaakt door {wikidata_label(artist:wikidata):font-weight:bold}<br/>{wikipedia(artist:wikidata)}"
|
||||
},
|
||||
"question": {
|
||||
"en": "Who made this artwork?"
|
||||
"en": "Who made this artwork?",
|
||||
"de": "Wer hat dieses Kunstwerk geschaffen?",
|
||||
"nl": "Wie heeft dit kunstwerk gemaakt?"
|
||||
},
|
||||
"freeform": {
|
||||
"key": "artist:wikidata",
|
||||
|
@ -526,14 +531,18 @@
|
|||
"id": "artwork_subject",
|
||||
"condition": "subject:wikidata~*",
|
||||
"question": {
|
||||
"en": "What does this artwork depict?"
|
||||
"en": "What does this artwork depict?",
|
||||
"de": "Was zeigt dieses Kunstwerk?",
|
||||
"nl": "Wat beeldt dit kunstwerk af?"
|
||||
},
|
||||
"freeform": {
|
||||
"key": "subject:wikidata",
|
||||
"type": "wikidata"
|
||||
},
|
||||
"render": {
|
||||
"en": "This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}"
|
||||
"en": "This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}",
|
||||
"de": "Das Kunstwerk zeigt {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}",
|
||||
"nl": "Dit kunstwerk beeldt {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)} af"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
"en": "Does <b>not</b> have a backrest",
|
||||
"de": "Die Sitzbank hat <b>keine</b> Rückenlehne",
|
||||
"fr": "Dossier : Non",
|
||||
"nl": "Heeft geen rugleuning",
|
||||
"nl": "Heeft <b>geen</b> rugleuning",
|
||||
"es": "Respaldo: no",
|
||||
"hu": "Háttámla nincs",
|
||||
"id": "Sandaran: Tidak",
|
||||
|
|
|
@ -3166,12 +3166,12 @@
|
|||
"group": "technical",
|
||||
"question": {
|
||||
"en": "What voltage do the plugs with <div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> offer?",
|
||||
"nl": "Welke spanning levert de stekker van type <div style='display: inline-block'><b><b>Tesla Supercharger (destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div>",
|
||||
"nl": "Welke spanning levert de stekker van type <div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div>",
|
||||
"de": "Welche Spannung bieten die <div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div>?"
|
||||
},
|
||||
"render": {
|
||||
"en": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> outputs {socket:tesla_destination:voltage} volt",
|
||||
"nl": "<div style='display: inline-block'><b><b>Tesla Supercharger (destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> heeft een spanning van {socket:tesla_destination:voltage} volt",
|
||||
"nl": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> heeft een spanning van {socket:tesla_destination:voltage} volt",
|
||||
"de": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> liefert {socket:tesla_destination:voltage} Volt"
|
||||
},
|
||||
"freeform": {
|
||||
|
@ -3183,7 +3183,7 @@
|
|||
"if": "socket:tesla_destination:voltage=480 V",
|
||||
"then": {
|
||||
"en": "<b>Tesla Supercharger (Destination)</b> outputs 480 volt",
|
||||
"nl": "<b>Tesla Supercharger (destination)</b> heeft een spanning van 480 volt",
|
||||
"nl": "<b>Tesla Supercharger (Destination)</b> heeft een spanning van 480 volt",
|
||||
"de": "<b>Tesla Supercharger (Destination)</b> liefert 480 Volt"
|
||||
},
|
||||
"icon": {
|
||||
|
@ -3204,13 +3204,13 @@
|
|||
"group": "technical",
|
||||
"question": {
|
||||
"en": "What current do the plugs with <div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> offer?",
|
||||
"nl": "Welke stroom levert de stekker van type <div style='display: inline-block'><b><b>Tesla Supercharger (destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div>?",
|
||||
"nl": "Welke stroom levert de stekker van type <div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div>?",
|
||||
"da": "Hvilken strømstyrke har stikkene med <div style='display: inline-block'><b><b> Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> med Tesla Supercharger (Destination) ?",
|
||||
"de": "Welche Stromstärke liefern die Anschlüsse mit <div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div>?"
|
||||
},
|
||||
"render": {
|
||||
"en": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> outputs at most {socket:tesla_destination:current}A",
|
||||
"nl": "<div style='display: inline-block'><b><b>Tesla Supercharger (destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> levert een stroom van maximaal {socket:tesla_destination:current}A",
|
||||
"nl": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> levert een stroom van maximaal {socket:tesla_destination:current}A",
|
||||
"da": "<div style='display: inline-block'><b><b>Tesla Supercharger (destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> udgange højst {socket:tesla_destination:current}A",
|
||||
"de": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/></div> liefert maximal {socket:tesla_destination:current} A"
|
||||
},
|
||||
|
@ -3285,7 +3285,7 @@
|
|||
"if": "socket:tesla_destination:output=150 kW",
|
||||
"then": {
|
||||
"en": "<b>Tesla Supercharger (Destination)</b> outputs at most 150 kw A",
|
||||
"nl": "<b>Tesla Supercharger (destination)</b> levert een vermogen van maximaal 150 kw A",
|
||||
"nl": "<b>Tesla Supercharger (Destination)</b> levert een vermogen van maximaal 150 kw A",
|
||||
"de": "<b>Tesla Supercharger (Destination)</b> liefert maximal 150 kw A"
|
||||
},
|
||||
"icon": {
|
||||
|
@ -3335,7 +3335,7 @@
|
|||
"if": "socket:tesla_destination:voltage=230 V",
|
||||
"then": {
|
||||
"en": "<b>Tesla Supercharger (Destination)</b> (A Type 2 with cable branded as Tesla) outputs 230 volt",
|
||||
"nl": "<b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo) heeft een spanning van 230 volt",
|
||||
"nl": "<b>Tesla Supercharger (Destination</b> (Een Type 2 met kabel en Tesla-logo) heeft een spanning van 230 volt",
|
||||
"de": "<b>Tesla Supercharger (Destination)</b> (Typ 2 mit Kabel von Tesla) liefert 230 Volt"
|
||||
},
|
||||
"icon": {
|
||||
|
@ -3347,7 +3347,7 @@
|
|||
"if": "socket:tesla_destination:voltage=400 V",
|
||||
"then": {
|
||||
"en": "<b>Tesla Supercharger (Destination)</b> (A Type 2 with cable branded as Tesla) outputs 400 volt",
|
||||
"nl": "<b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo) heeft een spanning van 400 volt",
|
||||
"nl": "<b>Tesla Supercharger (Destination</b> (Een Type 2 met kabel en Tesla-logo) heeft een spanning van 400 volt",
|
||||
"de": "<b>Tesla Supercharger (Destination)</b> (Typ 2 mit Kabel von Tesla) liefert 400 Volt"
|
||||
},
|
||||
"icon": {
|
||||
|
@ -3368,13 +3368,13 @@
|
|||
"group": "technical",
|
||||
"question": {
|
||||
"en": "What current do the plugs with <div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b> (A Type 2 with cable branded as Tesla)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> offer?",
|
||||
"nl": "Welke stroom levert de stekker van type <div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>?",
|
||||
"nl": "Welke stroom levert de stekker van type <div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>?",
|
||||
"da": "Hvilken strømstyrke har stikkene med <div style='display: inline-block'><b><b> Tesla Supercharger (Destination)</b> (A Type 2 med kabel med Tesla-mærket)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> ?",
|
||||
"de": "Welche Stromstärke liefern die Stecker mit <div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b> (Typ 2 mit Kabel von Tesla)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>?"
|
||||
},
|
||||
"render": {
|
||||
"en": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b> (A Type 2 with cable branded as Tesla)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> outputs at most {socket:tesla_destination:current}A",
|
||||
"nl": "<div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> levert een stroom van maximaal {socket:tesla_destination:current}A",
|
||||
"nl": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> levert een stroom van maximaal {socket:tesla_destination:current}A",
|
||||
"de": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b> (Typ 2 mit Kabel von Tesla)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> liefert maximal {socket:tesla_destination:current} A"
|
||||
},
|
||||
"freeform": {
|
||||
|
@ -3386,7 +3386,7 @@
|
|||
"if": "socket:tesla_destination:current=16 A",
|
||||
"then": {
|
||||
"en": "<b>Tesla Supercharger (Destination)</b> (A Type 2 with cable branded as tesla) outputs at most 16 A",
|
||||
"nl": "<b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo) levert een stroom van maximaal 16 A",
|
||||
"nl": "<b>Tesla supercharger (Destination</b> (Een Type 2 met kabel en Tesla-logo) levert een stroom van maximaal 16 A",
|
||||
"da": "<b>Tesla Supercharger (Destination)</b> (A Type 2 med kabel mærket som tesla) yder højst 16 A",
|
||||
"de": "<b>Tesla Supercharger (Destination)</b> (Typ 2 mit Kabel) liefert maximal 16 A"
|
||||
},
|
||||
|
@ -3399,7 +3399,7 @@
|
|||
"if": "socket:tesla_destination:current=32 A",
|
||||
"then": {
|
||||
"en": "<b>Tesla Supercharger (Destination)</b> (A Type 2 with cable branded as Tesla) outputs at most 32 A",
|
||||
"nl": "<b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo) levert een stroom van maximaal 32 A",
|
||||
"nl": "<b>Tesla Supercharger (Destination</b> (Een Type 2 met kabel en Tesla-logo) levert een stroom van maximaal 32 A",
|
||||
"da": "<b>Tesla Supercharger (Destination)</b> (A Type 2 med kabel af Tesla-mærket) yder højst 32 A",
|
||||
"de": "<b>Tesla Supercharger (Destination)</b> (Typ 2 mit Kabel von Tesla) liefert maximal 32 A"
|
||||
},
|
||||
|
@ -3426,7 +3426,7 @@
|
|||
},
|
||||
"render": {
|
||||
"en": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b> (A Type 2 with cable branded as Tesla)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> outputs at most {socket:tesla_destination:output}",
|
||||
"nl": "<div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> levert een vermogen van maximaal {socket:tesla_destination:output}",
|
||||
"nl": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> levert een vermogen van maximaal {socket:tesla_destination:output}",
|
||||
"de": "<div style='display: inline-block'><b><b>Tesla Supercharger (Destination)</b> (Typ 2 mit Kabel von Tesla)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> liefert maximal {socket:tesla_destination:output}"
|
||||
},
|
||||
"freeform": {
|
||||
|
@ -3857,7 +3857,7 @@
|
|||
]
|
||||
},
|
||||
"then": {
|
||||
"nl": "Betalend te gebruiken, maar gratis voor klanten van het bijhorende hotel/café/ziekenhuis/...",
|
||||
"nl": "Betalend te gebruiken, maar gratis voor klanten van het bijhorende hotel/café/ziekenhuis/…",
|
||||
"en": "Paid use, but free for customers of the hotel/pub/hospital/… who operates the charging station",
|
||||
"da": "Betalt brug, men gratis for kunder på det hotel/pub/hospital/... der driver ladestationen",
|
||||
"de": "Die Nutzung ist kostenpflichtig, aber für Kunden des Betreibers der Einrichtung, wie Hotel, Krankenhaus, … kostenlos",
|
||||
|
|
|
@ -42,7 +42,8 @@
|
|||
"en": "Climbing crag <b>{name}</b>",
|
||||
"fr": "Mur d’escalade <b>{name}</b>",
|
||||
"it": "Muro da arrampicata <b>{name}</b>",
|
||||
"de": "Klettergarten <b>{name}</b>"
|
||||
"de": "Klettergarten <b>{name}</b>",
|
||||
"nl": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -201,7 +201,7 @@
|
|||
"ca": "No accessible al públic en general (ex. només accesible a treballadors, propietaris, ...)",
|
||||
"es": "No accesible al público en general (ex. sólo accesible a trabajadores, propietarios, ...)",
|
||||
"fr": "Non accessible au public (par exemple réservé au personnel, au propriétaire…)",
|
||||
"nl": "Niet toegankelijk voor het publiek (bv. enkel voor personeel, de eigenaar, ...)",
|
||||
"nl": "Niet toegankelijk voor het publiek (bv. enkel voor personeel, de eigenaar, …)",
|
||||
"de": "Der Defibrillator ist nicht öffentlich zugänglich (z.B. nur für Personal, Eigentümer, …)",
|
||||
"it": "Non accessibile al pubblico (ad esempio riservato al personale, ai proprietari, etc.)",
|
||||
"sl": "Ni dostopen splošni javnosti (npr. samo za osebje, za lastnike, ...)"
|
||||
|
@ -353,8 +353,8 @@
|
|||
},
|
||||
{
|
||||
"render": {
|
||||
"nl": "<i>Meer informatie over de locatie (lokale taal):</i><br/>{defibrillator:location}",
|
||||
"en": "<i>Extra information about the location (in the local languagel):</i><br/>{defibrillator:location}",
|
||||
"nl": "<i>Meer informatie over de locatie (in de lokale taal):</i><br/>{defibrillator:location}",
|
||||
"en": "<i>Extra information about the location (in the local language):</i><br/>{defibrillator:location}",
|
||||
"fr": "<i>Informations supplémentaires à propos de l'emplacement (dans la langue locale) :</i><br/>{defibrillator:location}",
|
||||
"it": "<i>Informazioni supplementari circa la posizione (in lingua locale):</i><br/>{defibrillator:location}",
|
||||
"de": "<i>Zusätzliche Informationen über den Standort (in der Landessprache):</i><br/>{defibrillator:location}",
|
||||
|
|
|
@ -65,7 +65,9 @@
|
|||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Has at least one image"
|
||||
"en": "Has at least one image",
|
||||
"de": "Hat mindestens ein Bild",
|
||||
"nl": "Heeft minstens één afbeelding"
|
||||
},
|
||||
"osmTags": {
|
||||
"or": [
|
||||
|
@ -80,7 +82,9 @@
|
|||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Probably does not have an image"
|
||||
"en": "Probably does not have an image",
|
||||
"de": "Hat wahrscheinlich kein Bild",
|
||||
"nl": "Heeft waarschijnlijk geen afbeelding"
|
||||
},
|
||||
"osmTags": {
|
||||
"and": [
|
||||
|
|
|
@ -142,7 +142,8 @@
|
|||
"title": {
|
||||
"render": {
|
||||
"en": "MapRoulette Item: {parentName}",
|
||||
"de": "MapRoulette-Element: {parentName}"
|
||||
"de": "MapRoulette-Element: {parentName}",
|
||||
"nl": "MapRoulette Item: {parentName}"
|
||||
}
|
||||
},
|
||||
"titleIcons": [
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
"name": null,
|
||||
"description": {
|
||||
"en": "Layer showing tasks of a MapRoulette challenge",
|
||||
"de": "Ebene mit Aufgaben einer MapRoulette-Kampagne"
|
||||
"de": "Ebene mit Aufgaben einer MapRoulette-Kampagne",
|
||||
"nl": "Laag met taken van een MapRoulette uitdaging"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": "mr_taskId~*",
|
||||
|
@ -13,7 +14,8 @@
|
|||
"title": {
|
||||
"render": {
|
||||
"en": "Item in MapRoulette",
|
||||
"de": "Aufgabe in MapRoulette"
|
||||
"de": "Aufgabe in MapRoulette",
|
||||
"nl": "Item uit MapRoulette"
|
||||
}
|
||||
},
|
||||
"titleIcons": [
|
||||
|
@ -81,56 +83,64 @@
|
|||
"if": "mr_taskStatus=Created",
|
||||
"then": {
|
||||
"en": "Task is created",
|
||||
"de": "Aufgabe wurde erstellt"
|
||||
"de": "Aufgabe wurde erstellt",
|
||||
"nl": "Taak is aangemaakt"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Fixed",
|
||||
"then": {
|
||||
"en": "Task is fixed",
|
||||
"de": "Aufgabe wurde erledigt"
|
||||
"de": "Aufgabe wurde erledigt",
|
||||
"nl": "Taak is opgelost"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=False positive",
|
||||
"then": {
|
||||
"en": "Task is a false positive",
|
||||
"de": "Aufgabe ist ein falsches Positiv"
|
||||
"de": "Aufgabe ist ein falsches Positiv",
|
||||
"nl": "Taak is vals positief"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Skipped",
|
||||
"then": {
|
||||
"en": "Task is skipped",
|
||||
"de": "Aufgabe wurde übersprungen"
|
||||
"de": "Aufgabe wurde übersprungen",
|
||||
"nl": "Taak is overgeslagen"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Deleted",
|
||||
"then": {
|
||||
"en": "Task is deleted",
|
||||
"de": "Aufgabe wurde gelöscht"
|
||||
"de": "Aufgabe wurde gelöscht",
|
||||
"nl": "Taak is verwijderd"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Already fixed",
|
||||
"then": {
|
||||
"en": "Task is already fixed",
|
||||
"de": "Aufgabe wurde bereits erledigt"
|
||||
"de": "Aufgabe wurde bereits erledigt",
|
||||
"nl": "Taak is al opgelost"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Too hard",
|
||||
"then": {
|
||||
"en": "Task is marked as too hard",
|
||||
"de": "Aufgabe wurde als zu schwer markiert"
|
||||
"de": "Aufgabe wurde als zu schwer markiert",
|
||||
"nl": "Taak is gemarkeerd als te lastig"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Disabled",
|
||||
"then": {
|
||||
"en": "Task is disabled",
|
||||
"de": "Aufgabe wurde deaktiviert"
|
||||
"de": "Aufgabe wurde deaktiviert",
|
||||
"nl": "Taak is uitgeschakeld"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -2,11 +2,13 @@
|
|||
"id": "parcel_lockers",
|
||||
"name": {
|
||||
"en": "Parcel Lockers",
|
||||
"de": "Paketschließfächer"
|
||||
"de": "Paketschließfächer",
|
||||
"nl": "Pakketautomaten"
|
||||
},
|
||||
"description": {
|
||||
"en": "Layer showing parcel lockers for collecting and sending parcels.",
|
||||
"de": "Ebene mit Paketschließfächern zum Abholen und Versenden von Paketen."
|
||||
"de": "Ebene mit Paketschließfächern zum Abholen und Versenden von Paketen.",
|
||||
"nl": "Laag met pakketautomaten voor het ophalen en verzenden van paketten."
|
||||
},
|
||||
"minzoom": 12,
|
||||
"source": {
|
||||
|
@ -40,14 +42,16 @@
|
|||
"title": {
|
||||
"render": {
|
||||
"en": "Parcel Locker",
|
||||
"de": "Paketschließfach"
|
||||
"de": "Paketschließfach",
|
||||
"nl": "Pakketautomaat"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "brand~*",
|
||||
"then": {
|
||||
"en": "{brand} parcel locker",
|
||||
"de": "{brand} Paketschließfach"
|
||||
"de": "{brand} Paketschließfach",
|
||||
"nl": "{brand} pakketautomaat"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -58,14 +62,16 @@
|
|||
"id": "brand",
|
||||
"question": {
|
||||
"en": "What is the brand of the parcel locker?",
|
||||
"de": "Welche Marke hat das Paketschließfach?"
|
||||
"de": "Welche Marke hat das Paketschließfach?",
|
||||
"nl": "Wat is het merk van deze pakketautomaat?"
|
||||
},
|
||||
"freeform": {
|
||||
"key": "brand",
|
||||
"type": "string",
|
||||
"placeholder": {
|
||||
"en": "Brand",
|
||||
"de": "Marke"
|
||||
"de": "Marke",
|
||||
"nl": "Merk"
|
||||
}
|
||||
},
|
||||
"mappings": [
|
||||
|
@ -73,7 +79,8 @@
|
|||
"if": "brand=Amazon Locker",
|
||||
"then": {
|
||||
"en": "This is an Amazon Locker",
|
||||
"de": "Dies ist ein Amazon Locker"
|
||||
"de": "Dies ist ein Amazon Locker",
|
||||
"nl": "Dit is een Amazon Locker"
|
||||
},
|
||||
"addExtraTags": [
|
||||
"brand:wikidata=Q16974764",
|
||||
|
@ -85,7 +92,8 @@
|
|||
"if": "brand=DHL Packstation",
|
||||
"then": {
|
||||
"en": "This is a DHL Packstation",
|
||||
"de": "Dies ist eine DHL-Packstation"
|
||||
"de": "Dies ist eine DHL-Packstation",
|
||||
"nl": "Dit is een DHL Packstation"
|
||||
},
|
||||
"addExtraTags": [
|
||||
"brand:wikidata=Q1766703",
|
||||
|
@ -98,7 +106,8 @@
|
|||
"if": "brand=Pickup Station",
|
||||
"then": {
|
||||
"en": "This is a DPD Pickup Station",
|
||||
"de": "Dies ist eine DPD Pickup Station"
|
||||
"de": "Dies ist eine DPD Pickup Station",
|
||||
"nl": "Dit is een DPD Pickup Station"
|
||||
},
|
||||
"addExtraTags": [
|
||||
"operator=DPD"
|
||||
|
@ -120,26 +129,30 @@
|
|||
],
|
||||
"render": {
|
||||
"en": "This is a {brand} parcel locker",
|
||||
"de": "Dies ist ein Paketschließfach von {brand}"
|
||||
"de": "Dies ist ein Paketschließfach von {brand}",
|
||||
"nl": "Dit is een {brand} pakketautomaat"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "operator",
|
||||
"question": {
|
||||
"en": "What is the operator of the parcel locker?",
|
||||
"de": "Was ist der Betreiber des Paketschließfachs?"
|
||||
"de": "Was ist der Betreiber des Paketschließfachs?",
|
||||
"nl": "Wat is de beheerder van deze pakketautomaat?"
|
||||
},
|
||||
"freeform": {
|
||||
"key": "operator",
|
||||
"type": "string",
|
||||
"placeholder": {
|
||||
"en": "Operator",
|
||||
"de": "Betreiber"
|
||||
"de": "Betreiber",
|
||||
"nl": "Beheerder"
|
||||
}
|
||||
},
|
||||
"render": {
|
||||
"en": "This parcel locker is operated by {operator}",
|
||||
"de": "Dieses Paketschließfach wird von {operator} betrieben"
|
||||
"de": "Dieses Paketschließfach wird von {operator} betrieben",
|
||||
"nl": "Deze pakketautomaat wordt beheerd door {operator}"
|
||||
}
|
||||
},
|
||||
"opening_hours",
|
||||
|
@ -147,40 +160,46 @@
|
|||
"id": "ref",
|
||||
"question": {
|
||||
"en": "What is the reference number/identifier of this parcel locker?",
|
||||
"de": "Wie lautet die Referenznummer/Kennung dieses Paketschließfachs?"
|
||||
"de": "Wie lautet die Referenznummer/Kennung dieses Paketschließfachs?",
|
||||
"nl": "Wat is het referentienummer/identificator van deze pakketautomaat?"
|
||||
},
|
||||
"freeform": {
|
||||
"key": "ref",
|
||||
"type": "string",
|
||||
"placeholder": {
|
||||
"en": "Reference",
|
||||
"de": "Referenz"
|
||||
"de": "Referenz",
|
||||
"nl": "Referentie"
|
||||
}
|
||||
},
|
||||
"render": {
|
||||
"en": "This parcel locker has the reference {ref}",
|
||||
"de": "Dieses Paketschließfach hat die Kennnummer {ref}"
|
||||
"de": "Dieses Paketschließfach hat die Kennnummer {ref}",
|
||||
"nl": "Deze pakketautomaat heeft de referentie {ref}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "mail-in",
|
||||
"question": {
|
||||
"en": "Can you send packages from this parcel locker?",
|
||||
"de": "Können Sie von diesem Paketschließfach aus Pakete versenden?"
|
||||
"de": "Können Sie von diesem Paketschließfach aus Pakete versenden?",
|
||||
"nl": "Kan je pakketten versturen vanuit deze pakketautomaat?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "parcel_mail_in=yes",
|
||||
"then": {
|
||||
"en": "You can send packages from this parcel locker",
|
||||
"de": "Sie können Pakete von diesem Paketschließfach aus versenden"
|
||||
"de": "Sie können Pakete von diesem Paketschließfach aus versenden",
|
||||
"nl": "Je kan pakketten versturen vanuit deze pakketautomaat"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parcel_mail_in=no",
|
||||
"then": {
|
||||
"en": "You <b>can't</b> send packages from this parcel locker",
|
||||
"de": "Sie können <b>keine</b> Pakete von diesem Paketschließfach aus versenden"
|
||||
"de": "Sie können <b>keine</b> Pakete von diesem Paketschließfach aus versenden",
|
||||
"nl": "Je kan <b>geen</b> pakketten versturen vanuit deze pakketautomaat"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
@ -190,21 +209,24 @@
|
|||
"id": "pickup",
|
||||
"question": {
|
||||
"en": "Can you pick up packages from this parcel locker?",
|
||||
"de": "Können Sie Pakete aus diesem Paketschließfach abholen?"
|
||||
"de": "Können Sie Pakete aus diesem Paketschließfach abholen?",
|
||||
"nl": "Kan je pakketten ophalen bij deze pakketautomaat?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "parcel_pickup=yes",
|
||||
"then": {
|
||||
"en": "You can pick up packages from this parcel locker",
|
||||
"de": "Sie können Pakete von diesem Paketschließfach abholen"
|
||||
"de": "Sie können Pakete von diesem Paketschließfach abholen",
|
||||
"nl": "Je kan pakketten ophalen bij deze pakketautomaat"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parcel_pickup=no",
|
||||
"then": {
|
||||
"en": "You <b>can't</b> pick up packages from this parcel locker",
|
||||
"de": "Sie können <b>keine</b> Pakete von diesem Paketschließfach abholen"
|
||||
"de": "Sie können <b>keine</b> Pakete von diesem Paketschließfach abholen",
|
||||
"nl": "Je kan <b>geen</b> pakketten ophalen bij deze pakketautomaat"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
|
|
@ -2,11 +2,13 @@
|
|||
"id": "parking_spaces",
|
||||
"name": {
|
||||
"en": "Parking Spaces",
|
||||
"de": "Stellplätze"
|
||||
"de": "Stellplätze",
|
||||
"nl": "Parkeerplekken"
|
||||
},
|
||||
"description": {
|
||||
"en": "Layer showing individual parking spaces.",
|
||||
"de": "Ebene mit den einzelnen PKW Stellplätzen."
|
||||
"de": "Ebene mit den einzelnen PKW Stellplätzen.",
|
||||
"nl": "Laag met individuele parkeerplekken."
|
||||
},
|
||||
"minzoom": 19,
|
||||
"source": {
|
||||
|
@ -17,14 +19,16 @@
|
|||
"id": "type",
|
||||
"question": {
|
||||
"en": "What kind of parking space is this?",
|
||||
"de": "Welche Art von Stellplatz ist dies?"
|
||||
"de": "Welche Art von Stellplatz ist dies?",
|
||||
"nl": "Wat voor parkeerplek is dit?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "parking_space=",
|
||||
"then": {
|
||||
"en": "This is a normal parking space",
|
||||
"de": "Dies ist ein normaler Stellplatz"
|
||||
"en": "This is a normal parking space.",
|
||||
"de": "Dies ist ein normaler Stellplatz.",
|
||||
"nl": "Dit is een normale parkeerplek."
|
||||
},
|
||||
"hideInAnswer": true
|
||||
},
|
||||
|
@ -32,98 +36,112 @@
|
|||
"if": "parking_space=normal",
|
||||
"then": {
|
||||
"en": "This is a normal parking space.",
|
||||
"de": "Dies ist ein normaler Stellplatz."
|
||||
"de": "Dies ist ein normaler Stellplatz.",
|
||||
"nl": "Dit is een normale parkeerplek."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=disabled",
|
||||
"then": {
|
||||
"en": "This is a disabled parking space.",
|
||||
"de": "Dies ist ein Behindertenstellplatz."
|
||||
"de": "Dies ist ein Behindertenstellplatz.",
|
||||
"nl": "Dit is een gehandicaptenparkeerplaats."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=private",
|
||||
"then": {
|
||||
"en": "This is a private parking space.",
|
||||
"de": "Dies ist ein privater Stellplatz."
|
||||
"de": "Dies ist ein privater Stellplatz.",
|
||||
"nl": "Dit is een privéparkeerplek."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=charging",
|
||||
"then": {
|
||||
"en": "This is parking space reserved for charging vehicles.",
|
||||
"de": "Dies ist ein Stellplatz, der für das Laden von Fahrzeugen reserviert ist."
|
||||
"de": "Dies ist ein Stellplatz, der für das Laden von Fahrzeugen reserviert ist.",
|
||||
"nl": "Deze parkeerplek is gereserveerd voor het opladen van voertuigen."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=delivery",
|
||||
"then": {
|
||||
"en": "This is parking space reserved for deliveries.",
|
||||
"de": "Dies ist ein Stellplatz, der für Lieferfahrzeuge reserviert ist."
|
||||
"de": "Dies ist ein Stellplatz, der für Lieferfahrzeuge reserviert ist.",
|
||||
"nl": "Deze parkeerplek is gereserveerd voor leveringen."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=hgv",
|
||||
"then": {
|
||||
"en": "This is parking space reserved for heavy goods vehicles.",
|
||||
"de": "Dies ist ein Stellplatz, der für Lastkraftwagen reserviert ist."
|
||||
"de": "Dies ist ein Stellplatz, der für Lastkraftwagen reserviert ist.",
|
||||
"nl": "Deze parkeerplek is gereserveerd voor vrachtwagens."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=caravan",
|
||||
"then": {
|
||||
"en": "This is parking space reserved for caravans or RVs.",
|
||||
"de": "Dieser Stellplatz ist für Wohnwagen oder Wohnmobile reserviert."
|
||||
"de": "Dieser Stellplatz ist für Wohnwagen oder Wohnmobile reserviert.",
|
||||
"nl": "Deze parkeerplek is gereserveerd voor caravans of campers."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=bus",
|
||||
"then": {
|
||||
"en": "This is parking space reserved for buses.",
|
||||
"de": "Dies ist ein Stellplatz, der für Busse reserviert ist."
|
||||
"de": "Dies ist ein Stellplatz, der für Busse reserviert ist.",
|
||||
"nl": "Deze parkeerplek is gereserveerd voor bussen."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=motorcycle",
|
||||
"then": {
|
||||
"en": "This is parking space reserved for motorcycles.",
|
||||
"de": "Dies ist ein Stellplatz, der für Motorräder reserviert ist."
|
||||
"de": "Dies ist ein Stellplatz, der für Motorräder reserviert ist.",
|
||||
"nl": "Deze parkeerplek is gereserveerd voor motoren."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=parent",
|
||||
"then": {
|
||||
"en": "This is a parking space reserved for parents with children.",
|
||||
"de": "Dies ist ein Stellplatz, der für Eltern mit Kindern reserviert ist."
|
||||
"de": "Dies ist ein Stellplatz, der für Eltern mit Kindern reserviert ist.",
|
||||
"nl": "Deze parkeerplek is gereserveerd voor ouders met kinderen."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=staff",
|
||||
"then": {
|
||||
"en": "This is a parking space reserved for staff.",
|
||||
"de": "Dies ist ein Stellplatz, der für das Personal reserviert ist."
|
||||
"de": "Dies ist ein Stellplatz, der für das Personal reserviert ist.",
|
||||
"nl": "Deze parkeerplek is gereserveerd voor personeel."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=taxi",
|
||||
"then": {
|
||||
"en": "This is a parking space reserved for taxis.",
|
||||
"de": "Dies ist ein Stellplatz, der für Taxis reserviert ist."
|
||||
"de": "Dies ist ein Stellplatz, der für Taxis reserviert ist.",
|
||||
"nl": "Deze parkeerplek is gereserveerd voor taxis."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=trailer",
|
||||
"then": {
|
||||
"en": "This is a parking space reserved for vehicles towing a trailer.",
|
||||
"de": "Dies ist ein Stellplatz, der für Fahrzeuge mit Anhänger reserviert ist."
|
||||
"de": "Dies ist ein Stellplatz, der für Fahrzeuge mit Anhänger reserviert ist.",
|
||||
"nl": "Deze parkeerplek is gereserveerd voor voertuigen met een aanhanger."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "parking_space=car_sharing",
|
||||
"then": {
|
||||
"en": "This is a parking space reserved for car sharing.",
|
||||
"de": "Dies ist ein Stellplatz, der für Carsharing reserviert ist."
|
||||
"de": "Dies ist ein Stellplatz, der für Carsharing reserviert ist.",
|
||||
"nl": "Deze parkeerplek is gereserveerd voor autodelen."
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -132,14 +150,16 @@
|
|||
"id": "capacity",
|
||||
"render": {
|
||||
"en": "This parking spaces has {capacity} spaces.",
|
||||
"de": "Dieser Parkplatz hat {capacity} Stellplätze."
|
||||
"de": "Dieser Parkplatz hat {capacity} Stellplätze.",
|
||||
"nl": "Deze parkeerplek heeft {capacity} plaatsen."
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "capacity=1",
|
||||
"then": {
|
||||
"en": "This parking space has 1 space.",
|
||||
"de": "Dieser Parkplatz hat 1 Stellplatz."
|
||||
"de": "Dieser Parkplatz hat 1 Stellplatz.",
|
||||
"nl": "Deze parkeerplek heeft 1 plaats."
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -148,7 +168,8 @@
|
|||
"title": {
|
||||
"render": {
|
||||
"en": "Parking Space",
|
||||
"de": "Stellplatz"
|
||||
"de": "Stellplatz",
|
||||
"nl": "Parkeerplek"
|
||||
}
|
||||
},
|
||||
"mapRendering": [
|
||||
|
|
|
@ -15,21 +15,24 @@
|
|||
"title": {
|
||||
"render": {
|
||||
"en": "Crossing",
|
||||
"de": "Überweg"
|
||||
"de": "Überweg",
|
||||
"nl": "Oversteekplaats"
|
||||
}
|
||||
},
|
||||
"presets": [
|
||||
{
|
||||
"title": {
|
||||
"en": "a crossing",
|
||||
"de": "einen Überweg"
|
||||
"de": "einen Überweg",
|
||||
"nl": "een oversteekplaats"
|
||||
},
|
||||
"tags": [
|
||||
"highway=crossing"
|
||||
],
|
||||
"description": {
|
||||
"en": "Pedestrian crossing",
|
||||
"de": "Fußgängerüberweg"
|
||||
"de": "Fußgängerüberweg",
|
||||
"nl": "Voetgangersoversteekplaats"
|
||||
},
|
||||
"preciseInput": {
|
||||
"preferredBackground": [
|
||||
|
|
|
@ -78,7 +78,8 @@
|
|||
"human": {
|
||||
"en": "meter",
|
||||
"fr": "mètre",
|
||||
"de": "Meter"
|
||||
"de": "Meter",
|
||||
"nl": "meter"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -90,7 +91,8 @@
|
|||
"human": {
|
||||
"en": "centimeter",
|
||||
"fr": "centimètre",
|
||||
"de": "Zentimeter"
|
||||
"de": "Zentimeter",
|
||||
"nl": "centimeter"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
"id": "shelter",
|
||||
"name": {
|
||||
"en": "Shelter",
|
||||
"de": "Unterstände"
|
||||
"de": "Unterstände",
|
||||
"nl": "Schuilplaats"
|
||||
},
|
||||
"description": {
|
||||
"en": "Layer showing shelter structures",
|
||||
|
@ -19,7 +20,8 @@
|
|||
"title": {
|
||||
"render": {
|
||||
"en": "Shelter",
|
||||
"de": "Unterstand"
|
||||
"de": "Unterstand",
|
||||
"nl": "Schuilplaats"
|
||||
}
|
||||
},
|
||||
"mapRendering": [
|
||||
|
@ -39,7 +41,8 @@
|
|||
"if": "shelter_type=public_transport",
|
||||
"then": {
|
||||
"en": "This is a shelter at a public transport stop.",
|
||||
"de": "Das ist ein Unterstand an einer Haltestelle für öffentliche Verkehrsmittel."
|
||||
"de": "Das ist ein Unterstand an einer Haltestelle für öffentliche Verkehrsmittel.",
|
||||
"nl": "Dit is een schuilplaats bij een halte voor openbaar vervoer."
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -84,7 +87,8 @@
|
|||
],
|
||||
"question": {
|
||||
"en": "What kind of shelter is this?",
|
||||
"de": "Um welche Art von Unterstand handelt es sich?"
|
||||
"de": "Um welche Art von Unterstand handelt es sich?",
|
||||
"nl": "Wat voor schuilplaats is dit?"
|
||||
},
|
||||
"render": {
|
||||
"en": "Shelter type: {shelter_type}",
|
||||
|
|
|
@ -30,7 +30,8 @@
|
|||
"then": {
|
||||
"en": "Stop {name}",
|
||||
"de": "Haltestelle {name}",
|
||||
"da": "Stop {name}"
|
||||
"da": "Stop {name}",
|
||||
"nl": "Halte {name}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -139,7 +140,8 @@
|
|||
"then": {
|
||||
"en": "This stop has a bench",
|
||||
"de": "Die Haltestelle hat eine Bank",
|
||||
"da": "Dette stop har en bænk"
|
||||
"da": "Dette stop har en bænk",
|
||||
"nl": "Deze halte heeft een zitbank"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -147,14 +149,16 @@
|
|||
"then": {
|
||||
"en": "This stop does not have a bench",
|
||||
"de": "Die Haltestelle hat keine Bank",
|
||||
"da": "Dette stoppested har ingen bænk"
|
||||
"da": "Dette stoppested har ingen bænk",
|
||||
"nl": "Deze halte heeft geen zitbank"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "bench=separate",
|
||||
"then": {
|
||||
"en": "This stop has a bench, that's separately mapped",
|
||||
"de": "Die Haltestelle hat eine Bank, die separat kartiert ist"
|
||||
"de": "Die Haltestelle hat eine Bank, die separat kartiert ist",
|
||||
"nl": "Deze halte heeft een zitbank, die los aangegeven is op de kaart"
|
||||
},
|
||||
"hideInAnswer": true
|
||||
}
|
||||
|
@ -162,7 +166,8 @@
|
|||
"question": {
|
||||
"en": "Does this stop have a bench?",
|
||||
"de": "Gibt es an der Haltestelle eine Sitzbank?",
|
||||
"da": "Har dette stop en bænk?"
|
||||
"da": "Har dette stop en bænk?",
|
||||
"nl": "Heeft deze halte een zitbank?"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -173,7 +178,8 @@
|
|||
"then": {
|
||||
"en": "This stop has a bin",
|
||||
"de": "Die Haltestelle hat einen Mülleimer",
|
||||
"da": "Dette stop har en skraldespand"
|
||||
"da": "Dette stop har en skraldespand",
|
||||
"nl": "Deze halte heeft een vuilnisbak"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -181,14 +187,16 @@
|
|||
"then": {
|
||||
"en": "This stop does not have a bin",
|
||||
"de": "Die Haltestelle hat keinen Mülleimer",
|
||||
"da": "Dette stoppested har ikke en skraldespand"
|
||||
"da": "Dette stoppested har ikke en skraldespand",
|
||||
"nl": "Deze halte heeft geen vuilnisbak"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "bin=separate",
|
||||
"then": {
|
||||
"en": "This stop has a bin, that's separately mapped",
|
||||
"de": "Die Haltestelle hat einen Mülleimer, der separat kartiert ist"
|
||||
"de": "Die Haltestelle hat einen Mülleimer, der separat kartiert ist",
|
||||
"nl": "Deze heeft een vuilnisbak, die los op de kaart staat"
|
||||
},
|
||||
"hideInAnswer": true
|
||||
}
|
||||
|
@ -196,7 +204,8 @@
|
|||
"question": {
|
||||
"en": "Does this stop have a bin?",
|
||||
"de": "Hat die Haltestelle einen Mülleimer?",
|
||||
"da": "Har dette stop en skraldespand?"
|
||||
"da": "Har dette stop en skraldespand?",
|
||||
"nl": "Heeft deze halte een vuilnisbak?"
|
||||
}
|
||||
},
|
||||
"wheelchair-access",
|
||||
|
@ -318,7 +327,10 @@
|
|||
"options": [
|
||||
{
|
||||
"osmTags": {
|
||||
"or": ["shelter=yes", "shelter=separate"]
|
||||
"or": [
|
||||
"shelter=yes",
|
||||
"shelter=separate"
|
||||
]
|
||||
},
|
||||
"question": {
|
||||
"en": "With a shelter"
|
||||
|
@ -331,7 +343,10 @@
|
|||
"options": [
|
||||
{
|
||||
"osmTags": {
|
||||
"or": ["bench=yes", "bench=separate"]
|
||||
"or": [
|
||||
"bench=yes",
|
||||
"bench=separate"
|
||||
]
|
||||
},
|
||||
"question": {
|
||||
"en": "With a bench"
|
||||
|
@ -344,7 +359,10 @@
|
|||
"options": [
|
||||
{
|
||||
"osmTags": {
|
||||
"or": ["bin=yes", "bin=separate"]
|
||||
"or": [
|
||||
"bin=yes",
|
||||
"bin=separate"
|
||||
]
|
||||
},
|
||||
"question": {
|
||||
"en": "With a bin"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue