diff --git a/UI/Popup/TagRenderingQuestion.ts b/UI/Popup/TagRenderingQuestion.ts index df7a2ec17..d83740da4 100644 --- a/UI/Popup/TagRenderingQuestion.ts +++ b/UI/Popup/TagRenderingQuestion.ts @@ -303,8 +303,8 @@ export default class TagRenderingQuestion extends Combine { const tr = mapping.then.Subs(tagsSource.data) const patchedMapping = { ...mapping, - iconClass: `small-height`, - icon: mapping.icon ?? (addIcons ? "./assets/svg/none.svg" : undefined), + iconClass: mapping.iconClass ?? `small-height`, + icon: mapping.icon ?? (addIcons ? "./assets/svg/none.svg" : undefined) } const fancy = TagRenderingQuestion.GenerateMappingContent( patchedMapping, diff --git a/assets/layers/defibrillator/defibrillator.json b/assets/layers/defibrillator/defibrillator.json index 158a732b6..c2b25deca 100644 --- a/assets/layers/defibrillator/defibrillator.json +++ b/assets/layers/defibrillator/defibrillator.json @@ -12,6 +12,13 @@ "sl": "Defibrilatorji", "da": "Hjertestartere" }, + "description": { + "en": "A layer showing defibrillators which can be used in case of emergency. This contains public defibrillators, but also defibrillators which might need staff to fetch the actual device", + "nl": "Een laag die defibrillatoren toont die je kan gebruiken bij noodgevallen. Dit omvat zowel publiek beschikbare toestellen als defibrillatoren waarvoor het toestel enkel door personeel aangeboden kan worden", + "sl": "Sloj prikazuje defibrilatorje, ki jih je možno uporabiti v primeru sile. Sloj poleg javno dostopnih defibrilatorjev vsebuje tudi tiste, ki za dostop morda potrebujejo pomoč osebja", + "de": "Eine Ebene mit Defibrillatoren, die in Notfällen eingesetzt werden können. Diese Ebene enthält öffentliche Defibrillatoren, aber auch Defibrillatoren, bei denen möglicherweise Personal benötigt wird, um das Gerät zu holen", + "es": "Una capa que muestra desfibriladores que se pueden utilizar en caso de emergencia. Contiene desfibriladores públicos, pero también desfibriladores para los que se puede necesitar que el personal vaya a buscar el dispositivo" + }, "source": { "osmTags": "emergency=defibrillator" }, @@ -667,11 +674,8 @@ "color": "#0000ff" } ], - "description": { - "en": "A layer showing defibrillators which can be used in case of emergency. This contains public defibrillators, but also defibrillators which might need staff to fetch the actual device", - "nl": "Een laag die defibrillatoren toont die je kan gebruiken bij noodgevallen. Dit omvat zowel publiek beschikbare toestellen als defibrillatoren waarvoor het toestel enkel door personeel aangeboden kan worden", - "sl": "Sloj prikazuje defibrilatorje, ki jih je možno uporabiti v primeru sile. Sloj poleg javno dostopnih defibrilatorjev vsebuje tudi tiste, ki za dostop morda potrebujejo pomoč osebja", - "de": "Eine Ebene mit Defibrillatoren, die in Notfällen eingesetzt werden können. Diese Ebene enthält öffentliche Defibrillatoren, aber auch Defibrillatoren, bei denen möglicherweise Personal benötigt wird, um das Gerät zu holen", - "es": "Una capa que muestra desfibriladores que se pueden utilizar en caso de emergencia. Contiene desfibriladores públicos, pero también desfibriladores para los que se puede necesitar que el personal vaya a buscar el dispositivo" - } -} \ No newline at end of file + "filter": [ + "has_image", + "open_now" + ] + } diff --git a/assets/layers/filters/filters.json b/assets/layers/filters/filters.json index 6d0e9c8e8..7d08d9a11 100644 --- a/assets/layers/filters/filters.json +++ b/assets/layers/filters/filters.json @@ -73,7 +73,8 @@ "image:0~*", "image:1~*", "image:2~*", - "image:3~*" + "image:3~*", + "mapillary~*" ] } }, @@ -87,7 +88,8 @@ "image:0=", "image:1=", "image:2=", - "image:3=" + "image:3=", + "mapillary=" ] } } diff --git a/assets/layers/fitness_centre/fitness_centre.json b/assets/layers/fitness_centre/fitness_centre.json new file mode 100644 index 000000000..7e9739127 --- /dev/null +++ b/assets/layers/fitness_centre/fitness_centre.json @@ -0,0 +1,89 @@ +{ + "id": "fitness_centre", + "name": { + "en": "Fitness Centres" + }, + "description": { + "en": "Layer showing fitness centres" + }, + "source": { + "osmTags": "leisure=fitness_centre" + }, + "minzoom": 12, + "title": { + "render": { + "en": "Fitness Centre" + }, + "mappings": [ + { + "if": "name~*", + "then": "{name}" + } + ] + }, + "tagRenderings": [ + { + "id": "name", + "question": { + "en": "What is the name of this fitness centre?" + }, + "freeform": { + "key": "name", + "placeholder": { + "en": "Name of fitness centre" + }, + "type": "string" + }, + "mappings": [ + { + "if": "noname=yes", + "then": { + "en": "This fitness centre has no name" + } + } + ], + "render": { + "en": "This fitness centre is called {name}" + } + }, + "images", + "phone", + "email", + "website", + "opening_hours", + "wheelchair-access", + "level", + "reviews" + ], + "presets": [ + { + "tags": [ + "leisure=fitness_centre" + ], + "title": { + "en": "a fitness centre" + }, + "icon": "./assets/layers/fitness_centre/gym.svg" + } + ], + "mapRendering": [ + { + "location": [ + "point", + "centroid" + ], + "icon": "circle:white;./assets/layers/fitness_centre/gym.svg", + "iconSize": "40,40,center", + "label": "
{name}
", + "iconBadges": [ + { + "if": "opening_hours~*", + "then": "isOpen" + } + ] + } + ], + "filter": [ + "open_now" + ] +} diff --git a/assets/layers/fitness_centre/gym.svg b/assets/layers/fitness_centre/gym.svg new file mode 100644 index 000000000..dd2749e32 --- /dev/null +++ b/assets/layers/fitness_centre/gym.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/assets/layers/fitness_centre/license_info.json b/assets/layers/fitness_centre/license_info.json new file mode 100644 index 000000000..1499cb600 --- /dev/null +++ b/assets/layers/fitness_centre/license_info.json @@ -0,0 +1,13 @@ +[ + { + "path": "gym.svg", + "license": "CC-BY", + "authors": [ + "Bernd Lakenbrink", + "Noun Project" + ], + "sources": [ + "https://thenounproject.com/icon/gym-3583088/" + ] + } +] \ No newline at end of file diff --git a/assets/layers/fitness_station/07-12-2016,_Fitness_trail,_Parque_da_Alfarrobeira,_Albufeira_2.jpg b/assets/layers/fitness_station/07-12-2016,_Fitness_trail,_Parque_da_Alfarrobeira,_Albufeira_2.jpg new file mode 100644 index 000000000..2559c174d Binary files /dev/null and b/assets/layers/fitness_station/07-12-2016,_Fitness_trail,_Parque_da_Alfarrobeira,_Albufeira_2.jpg differ diff --git a/assets/layers/fitness_station/Annecy_-_rower.jpg b/assets/layers/fitness_station/Annecy_-_rower.jpg new file mode 100644 index 000000000..48708cf1a Binary files /dev/null and b/assets/layers/fitness_station/Annecy_-_rower.jpg differ diff --git a/assets/layers/fitness_station/Ansan_Park_beind_the_city_hall_022.jpg b/assets/layers/fitness_station/Ansan_Park_beind_the_city_hall_022.jpg new file mode 100644 index 000000000..e2156173f Binary files /dev/null and b/assets/layers/fitness_station/Ansan_Park_beind_the_city_hall_022.jpg differ diff --git a/assets/layers/fitness_station/Battling_ropes.jpg b/assets/layers/fitness_station/Battling_ropes.jpg new file mode 100644 index 000000000..15f275305 Binary files /dev/null and b/assets/layers/fitness_station/Battling_ropes.jpg differ diff --git a/assets/layers/fitness_station/Captains_chair.jpg b/assets/layers/fitness_station/Captains_chair.jpg new file mode 100644 index 000000000..b1b5e36af Binary files /dev/null and b/assets/layers/fitness_station/Captains_chair.jpg differ diff --git a/assets/layers/fitness_station/Exercise9159.jpg b/assets/layers/fitness_station/Exercise9159.jpg new file mode 100644 index 000000000..5d2ae38b4 Binary files /dev/null and b/assets/layers/fitness_station/Exercise9159.jpg differ diff --git a/assets/layers/fitness_station/Exercise9170.jpg b/assets/layers/fitness_station/Exercise9170.jpg new file mode 100644 index 000000000..145691e3b Binary files /dev/null and b/assets/layers/fitness_station/Exercise9170.jpg differ diff --git a/assets/layers/fitness_station/Exercise_Box.jpg b/assets/layers/fitness_station/Exercise_Box.jpg new file mode 100644 index 000000000..a81c932a2 Binary files /dev/null and b/assets/layers/fitness_station/Exercise_Box.jpg differ diff --git a/assets/layers/fitness_station/Fitness_station_beam_jump.jpg b/assets/layers/fitness_station/Fitness_station_beam_jump.jpg new file mode 100644 index 000000000..321332676 Binary files /dev/null and b/assets/layers/fitness_station/Fitness_station_beam_jump.jpg differ diff --git a/assets/layers/fitness_station/Fitness_station_hurdling.jpg b/assets/layers/fitness_station/Fitness_station_hurdling.jpg new file mode 100644 index 000000000..8bb1a7875 Binary files /dev/null and b/assets/layers/fitness_station/Fitness_station_hurdling.jpg differ diff --git a/assets/layers/fitness_station/Fitness_station_leapfrog.jpg b/assets/layers/fitness_station/Fitness_station_leapfrog.jpg new file mode 100644 index 000000000..4887d0a65 Binary files /dev/null and b/assets/layers/fitness_station/Fitness_station_leapfrog.jpg differ diff --git a/assets/layers/fitness_station/Fitness_station_slalom.jpg b/assets/layers/fitness_station/Fitness_station_slalom.jpg new file mode 100644 index 000000000..b9cbedfcc Binary files /dev/null and b/assets/layers/fitness_station/Fitness_station_slalom.jpg differ diff --git a/assets/layers/fitness_station/Fitness_station_stepping_stone.jpg b/assets/layers/fitness_station/Fitness_station_stepping_stone.jpg new file mode 100644 index 000000000..f927c8375 Binary files /dev/null and b/assets/layers/fitness_station/Fitness_station_stepping_stone.jpg differ diff --git a/assets/layers/fitness_station/Fitness_station_stretch_bars.jpg b/assets/layers/fitness_station/Fitness_station_stretch_bars.jpg new file mode 100644 index 000000000..aba42f14d Binary files /dev/null and b/assets/layers/fitness_station/Fitness_station_stretch_bars.jpg differ diff --git a/assets/layers/fitness_station/Fitness_station_wall.jpg b/assets/layers/fitness_station/Fitness_station_wall.jpg new file mode 100644 index 000000000..b56e2c920 Binary files /dev/null and b/assets/layers/fitness_station/Fitness_station_wall.jpg differ diff --git a/assets/layers/fitness_station/Horizontal_ladder.jpg b/assets/layers/fitness_station/Horizontal_ladder.jpg new file mode 100644 index 000000000..f1a8b28ef Binary files /dev/null and b/assets/layers/fitness_station/Horizontal_ladder.jpg differ diff --git a/assets/layers/fitness_station/Inclined_sit-up_and_hyperextension_bench.jpg b/assets/layers/fitness_station/Inclined_sit-up_and_hyperextension_bench.jpg new file mode 100644 index 000000000..06e7a4991 Binary files /dev/null and b/assets/layers/fitness_station/Inclined_sit-up_and_hyperextension_bench.jpg differ diff --git a/assets/layers/fitness_station/Inclined_sit-up_bench.jpg b/assets/layers/fitness_station/Inclined_sit-up_bench.jpg new file mode 100644 index 000000000..47f7e6309 Binary files /dev/null and b/assets/layers/fitness_station/Inclined_sit-up_bench.jpg differ diff --git a/assets/layers/fitness_station/Log_lifting_exercise.jpg b/assets/layers/fitness_station/Log_lifting_exercise.jpg new file mode 100644 index 000000000..240da200f Binary files /dev/null and b/assets/layers/fitness_station/Log_lifting_exercise.jpg differ diff --git a/assets/layers/fitness_station/Outdoor_fitness_station_sign.jpg b/assets/layers/fitness_station/Outdoor_fitness_station_sign.jpg new file mode 100644 index 000000000..fb8842cbe Binary files /dev/null and b/assets/layers/fitness_station/Outdoor_fitness_station_sign.jpg differ diff --git a/assets/layers/fitness_station/Outdoor_stationary_bicycle.jpg b/assets/layers/fitness_station/Outdoor_stationary_bicycle.jpg new file mode 100644 index 000000000..b3143857f Binary files /dev/null and b/assets/layers/fitness_station/Outdoor_stationary_bicycle.jpg differ diff --git a/assets/layers/fitness_station/Push-up_bars.jpg b/assets/layers/fitness_station/Push-up_bars.jpg new file mode 100644 index 000000000..977cdb137 Binary files /dev/null and b/assets/layers/fitness_station/Push-up_bars.jpg differ diff --git a/assets/layers/fitness_station/RIAN_archive_493268_Sports_at_a_kindergarten.jpg b/assets/layers/fitness_station/RIAN_archive_493268_Sports_at_a_kindergarten.jpg new file mode 100644 index 000000000..93b27f420 Binary files /dev/null and b/assets/layers/fitness_station/RIAN_archive_493268_Sports_at_a_kindergarten.jpg differ diff --git a/assets/layers/fitness_station/Slacklineanlage_im_Dietenbachpark.jpg b/assets/layers/fitness_station/Slacklineanlage_im_Dietenbachpark.jpg new file mode 100644 index 000000000..d2c46d16e Binary files /dev/null and b/assets/layers/fitness_station/Slacklineanlage_im_Dietenbachpark.jpg differ diff --git a/assets/layers/fitness_station/Trimm-Dich-Pfad_Grünwalder_Forst_Klimmzüge.jpg b/assets/layers/fitness_station/Trimm-Dich-Pfad_Grünwalder_Forst_Klimmzüge.jpg new file mode 100644 index 000000000..47e83c880 Binary files /dev/null and b/assets/layers/fitness_station/Trimm-Dich-Pfad_Grünwalder_Forst_Klimmzüge.jpg differ diff --git a/assets/layers/fitness_station/fitness.svg b/assets/layers/fitness_station/fitness.svg new file mode 100644 index 000000000..d9c519e77 --- /dev/null +++ b/assets/layers/fitness_station/fitness.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/layers/fitness_station/fitness_station.json b/assets/layers/fitness_station/fitness_station.json new file mode 100644 index 000000000..3ec9023ab --- /dev/null +++ b/assets/layers/fitness_station/fitness_station.json @@ -0,0 +1,364 @@ +{ + "id": "fitness_station", + "name": { + "en": "Fitness Stations" + }, + "description": { + "en": "Find a fitness station near you, and add missing ones." + }, + "source": { + "osmTags": "leisure=fitness_station" + }, + "minzoom": 12, + "title": { + "render": { + "en": "Fitness Station" + }, + "mappings": [ + { + "if": "name~*", + "then": { + "en": "Fitness Station {name}" + } + } + ] + }, + "tagRenderings": [ + { + "id": "name", + "question": { + "en": "What is the name of this fitness station?" + }, + "freeform": { + "key": "name", + "placeholder": { + "en": "Name of the fitness station" + }, + "type": "string" + }, + "mappings": [ + { + "if": "noname=yes", + "then": { + "en": "This fitness station doesn't have a name" + } + } + ], + "render": { + "en": "This fitness station is called {name}" + } + }, + { + "id": "type", + "question": { + "en": "What kind of equipment does this fitness station have?" + }, + "mappings": [ + { + "if": "fitness_station=horizontal_bar", + "then": { + "en": "This fitness station has a horizontal bar, high enough for pull-ups." + }, + "icon": { + "path": "./assets/layers/fitness_station/Trimm-Dich-Pfad_Grünwalder_Forst_Klimmzüge.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=sign", + "then": { + "en": "This fitness station has a sign with instructions for a specific exercise." + }, + "icon": { + "path": "./assets/layers/fitness_station/Outdoor_fitness_station_sign.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=sit-up", + "then": { + "en": "This fitness station has a facility for sit-ups." + }, + "icon": { + "path": "./assets/layers/fitness_station/Inclined_sit-up_bench.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=push-up", + "then": { + "en": "This fitness station has a facility for push-ups. Usually consists of one or more low horizontal bars." + }, + "icon": { + "path": "./assets/layers/fitness_station/Push-up_bars.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=stretch_bars", + "then": { + "en": "This fitness station has bars for stretching." + }, + "icon": { + "path": "./assets/layers/fitness_station/Fitness_station_stretch_bars.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=hyperextension", + "then": { + "en": "This fitness station has a station for making hyperextensions." + }, + "icon": { + "path": "./assets/layers/fitness_station/Inclined_sit-up_and_hyperextension_bench.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=rings", + "then": { + "en": "This fitness station has rings for gymnastic exercises." + }, + "icon": { + "path": "./assets/layers/fitness_station/Exercise9159.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=horizontal_ladder", + "then": { + "en": "This fitness station has a horizontal ladder, also known as monkey bars." + }, + "icon": { + "path": "./assets/layers/fitness_station/Horizontal_ladder.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=wall_bars", + "then": { + "en": "This fitness station has wall bars to climb on." + }, + "icon": { + "path": "./assets/layers/fitness_station/RIAN_archive_493268_Sports_at_a_kindergarten.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=slalom", + "then": { + "en": "This fitness station has posts for performing slalom exercises." + }, + "icon": { + "path": "./assets/layers/fitness_station/Fitness_station_slalom.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=stepping_stones", + "then": { + "en": "This fitness station has stepping stones." + }, + "icon": { + "path": "./assets/layers/fitness_station/Fitness_station_stepping_stone.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=leapfrog", + "then": { + "en": "This fitness station has cones for performing leapfrog jumps." + }, + "icon": { + "path": "./assets/layers/fitness_station/Fitness_station_leapfrog.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=beam_jump", + "then": { + "en": "This fitness station has beams to jump over." + }, + "icon": { + "path": "./assets/layers/fitness_station/Fitness_station_beam_jump.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=hurdling", + "then": { + "en": "This fitness station has hurdles to cross." + }, + "icon": { + "path": "./assets/layers/fitness_station/Fitness_station_hurdling.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=wall", + "then": { + "en": "This fitness station has a wall to climb on." + }, + "icon": { + "path": "./assets/layers/fitness_station/Fitness_station_wall.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=balance_beam", + "then": { + "en": "This fitness station has a balance beam." + }, + "icon": { + "path": "./assets/layers/fitness_station/Exercise9170.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=log_lifting", + "then": { + "en": "This fitness station has a log with a handle on the end to lift." + }, + "icon": { + "path": "./assets/layers/fitness_station/Log_lifting_exercise.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=captains_chair", + "then": { + "en": "This fitness station has a chair with only elbow supports and a rear (without seat), for performing leg raises." + }, + "icon": { + "path": "./assets/layers/fitness_station/Captains_chair.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=box", + "then": { + "en": "This fitness station has a box that can be used for jumping." + }, + "icon": { + "path": "./assets/layers/fitness_station/Exercise_Box.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=battling_ropes", + "then": { + "en": "This fitness station has battling ropes." + }, + "icon": { + "path": "./assets/layers/fitness_station/Battling_ropes.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=excercise_bike", + "then": { + "en": "This fitness station has a stationary bicycle." + }, + "icon": { + "path": "./assets/layers/fitness_station/Outdoor_stationary_bicycle.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=elliptical_trainer", + "then": { + "en": "This fitness station has a cross-trainer." + }, + "icon": { + "path": "./assets/layers/fitness_station/07-12-2016,_Fitness_trail,_Parque_da_Alfarrobeira,_Albufeira_2.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=air_walker", + "then": { + "en": "This fitness station has an air walker." + }, + "icon": { + "path": "./assets/layers/fitness_station/Ansan_Park_beind_the_city_hall_022.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=rower", + "then": { + "en": "This fitness station has a rower." + }, + "icon": { + "path": "./assets/layers/fitness_station/Annecy_-_rower.jpg", + "class": "large" + } + }, + { + "if": "fitness_station=slackline", + "then": { + "en": "This fitness station has a slackline." + }, + "icon": { + "path": "./assets/layers/fitness_station/Slacklineanlage_im_Dietenbachpark.jpg", + "class": "large" + } + } + ], + "multiAnswer": true + }, + { + "id": "operator", + "question": { + "en": "Who maintains this fitness station?" + }, + "freeform": { + "key": "operator", + "placeholder": { + "en": "Operator of the fitness station" + }, + "type": "string" + }, + "render": { + "en": "The fitness station is maintained by {operator}." + } + }, + "opening_hours" + ], + "presets": [ + { + "tags": [ + "leisure=fitness_station", + "sport=fitness" + ], + "title": { + "en": "a fitness station" + }, + "icon": "./assets/layers/fitness_station/fitness.svg" + } + ], + "mapRendering": [ + { + "location": [ + "point", + "centroid" + ], + "icon": "circle:white;./assets/layers/fitness_station/fitness.svg", + "iconSize": "40,40,center", + "iconBadges": [ + { + "if": { + "and": [ + "opening_hours!=24/7", + "opening_hours~*" + ] + }, + "then": "isOpen" + } + ] + } + ], + "filter": [ + "open_now" + ] +} diff --git a/assets/layers/fitness_station/license_info.json b/assets/layers/fitness_station/license_info.json new file mode 100644 index 000000000..35d43e95e --- /dev/null +++ b/assets/layers/fitness_station/license_info.json @@ -0,0 +1,264 @@ +[ + { + "path": "07-12-2016,_Fitness_trail,_Parque_da_Alfarrobeira,_Albufeira_2.jpg", + "license": "CC-BY-SA", + "authors": [ + "Kolforn" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:07-12-2016,_Fitness_trail,_Parque_da_Alfarrobeira,_Albufeira_(2).JPG" + ] + }, + { + "path": "Annecy_-_rower.jpg", + "license": "CC-BY-SA", + "authors": [ + "Tiia Monto" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Annecy_-_rower.jpg" + ] + }, + { + "path": "Ansan_Park_beind_the_city_hall_022.jpg", + "license": "CC-BY-SA", + "authors": [ + "Piotrus" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Ansan_Park_(beind_the_city_hall)_022.JPG" + ] + }, + { + "path": "Battling_ropes.jpg", + "license": "CC-BY-SA", + "authors": [ + "Tpikonen" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Battling_ropes.jpg" + ] + }, + { + "path": "Captains_chair.jpg", + "license": "CC-BY-SA", + "authors": [ + "Tpikonen" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Captains_chair.jpg" + ] + }, + { + "path": "Exercise9159.jpg", + "license": "CC-BY-SA", + "authors": [ + "יעקב" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Exercise9159.jpg" + ] + }, + { + "path": "Exercise9170.jpg", + "license": "CC-BY-SA", + "authors": [ + "יעקב" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Exercise9170.JPG" + ] + }, + { + "path": "Exercise_Box.jpg", + "license": "CC-BY-SA", + "authors": [ + "Tpikonen" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Exercise_Box.jpg" + ] + }, + { + "path": "Fitness_station_beam_jump.jpg", + "license": "CC-BY-SA", + "authors": [ + "Axelos" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Fitness_station_beam_jump.jpg" + ] + }, + { + "path": "Fitness_station_hurdling.jpg", + "license": "CC-BY-SA", + "authors": [ + "Axelos" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Fitness_station_hurdling.jpg" + ] + }, + { + "path": "Fitness_station_leapfrog.jpg", + "license": "CC-BY-SA", + "authors": [ + "Axelos" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Fitness_station_leapfrog.jpg" + ] + }, + { + "path": "Fitness_station_slalom.jpg", + "license": "CC-BY-SA", + "authors": [ + "Axelos" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Fitness_station_slalom.jpg" + ] + }, + { + "path": "Fitness_station_stepping_stone.jpg", + "license": "CC-BY-SA", + "authors": [ + "Axelos" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Fitness_station_stepping_stone.jpg" + ] + }, + { + "path": "Fitness_station_stretch_bars.jpg", + "license": "CC-BY-SA", + "authors": [ + "Axelos" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Fitness_station_stretch_bars.jpg" + ] + }, + { + "path": "Fitness_station_wall.jpg", + "license": "CC-BY-SA", + "authors": [ + "Axelos", + "Al-Hun" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Fitness_station_wall.jpg" + ] + }, + { + "path": "Horizontal_ladder.jpg", + "license": "CC-BY-SA", + "authors": [ + "Tpikonen" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Horizontal_ladder.jpg" + ] + }, + { + "path": "Inclined_sit-up_and_hyperextension_bench.jpg", + "license": "CC-BY-SA", + "authors": [ + "Tpikonen" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Inclined_sit-up_and_hyperextension_bench.jpg" + ] + }, + { + "path": "Inclined_sit-up_bench.jpg", + "license": "CC-BY-SA", + "authors": [ + "Tpikonen" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Inclined_sit-up_bench.jpg" + ] + }, + { + "path": "Log_lifting_exercise.jpg", + "license": "CC-BY-SA", + "authors": [ + "Tpikonen" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Log_lifting_exercise.jpg" + ] + }, + { + "path": "Outdoor_fitness_station_sign.jpg", + "license": "CC-BY-SA", + "authors": [ + "kaitu" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Outdoor_fitness_station_sign.jpg", + "https://www.mapillary.com/app/?pKey=iWBo8pm9COksv8Qc8E7cfw&lat=45.87432166666667&lng=9.487998999999999&focus=photo&z=17&x=0.4903320875161608&y=0.48257487392238285&zoom=0" + ] + }, + { + "path": "Outdoor_stationary_bicycle.jpg", + "license": "CC-BY-SA", + "authors": [ + "Tpikonen" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Outdoor_stationary_bicycle.jpg" + ] + }, + { + "path": "Push-up_bars.jpg", + "license": "CC-BY-SA", + "authors": [ + "Tpikonen" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Push-up_bars.jpg" + ] + }, + { + "path": "RIAN_archive_493268_Sports_at_a_kindergarten.jpg", + "license": "CC-BY-SA", + "authors": [ + "Igor Utkin" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:RIAN_archive_493268_Sports_at_a_kindergarten.jpg" + ] + }, + { + "path": "Slacklineanlage_im_Dietenbachpark.jpg", + "license": "CC-BY-SA", + "authors": [ + "Andreas Schwarzkopf" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Slacklineanlage_im_Dietenbachpark.jpg" + ] + }, + { + "path": "Trimm-Dich-Pfad_Grünwalder_Forst_Klimmzüge.jpg", + "license": "CC-BY-SA", + "authors": [ + "Zeitlupe" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Trimm-Dich-Pfad_Grünwalder_Forst_Klimmzüge.jpg" + ] + }, + { + "path": "fitness.svg", + "license": "CC0", + "authors": [ + "Kocio" + ], + "sources": [ + "https://github.com/gravitystorm/openstreetmap-carto/blob/master/symbols/leisure/fitness.svg" + ] + } +] \ No newline at end of file diff --git a/assets/layers/parcel_lockers/parcel_lockers.json b/assets/layers/parcel_lockers/parcel_lockers.json index 994abfba5..9ef7743c6 100644 --- a/assets/layers/parcel_lockers/parcel_lockers.json +++ b/assets/layers/parcel_lockers/parcel_lockers.json @@ -234,4 +234,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/assets/layers/postoffices/postoffices.json b/assets/layers/postoffices/postoffices.json index 45a62b692..d0ab48be9 100644 --- a/assets/layers/postoffices/postoffices.json +++ b/assets/layers/postoffices/postoffices.json @@ -35,7 +35,34 @@ "es": "Oficina de Correo", "fr": "Bureau de poste", "nb_NO": "Postkontor" - } + }, + "mappings": [ + { + "if": { + "and": [ + "post_office=post_partner", + "name=" + ] + }, + "then": { + "en": "Post partner at a shop", + "de": "Postfiliale im Einzelhandel", + "nl": "Postpartner in een winkel" + } + }, + { + "if": { + "and": [ + "post_office=post_partner", + "name~*" + ] + }, + "then": { + "en": "Post partner at {name}", + "de": "Postfiliale im {name}" + } + } + ] }, "description": { "en": "A layer showing post offices.", @@ -98,6 +125,240 @@ } ], "id": "OH" + }, + { + "id": "post_partner", + "question": { + "en": "Is this a post partner?" + }, + "condition": "post_office=post_partner", + "mappings": [ + { + "if": "post_office=post_partner", + "then": { + "en": "This shop is a post partner" + } + }, + { + "if": "post_office=", + "then": { + "en": "This shop is not a post partner" + }, + "addExtraTags": [ + "was:post_office=post_partner" + ] + } + ] + }, + { + "id": "partner-brand", + "render": { + "en": "This location offers services for {post_office:brand}" + }, + "question": { + "en": "For which brand does this location offer services?" + }, + "condition": "post_office=post_partner", + "freeform": { + "key": "post_office:brand", + "type": "string" + }, + "multiAnswer": true, + "mappings": [ + { + "if": "post_office:brand=DHL", + "then": { + "en": "This location offers services for DHL" + }, + "hideInAnswer": "_country=de" + }, + { + "if": "post_office:brand=DPD", + "then": { + "en": "This location offers services for DPD" + } + }, + { + "if": "post_office:brand=GLS", + "then": { + "en": "This location offers services for GLS" + } + }, + { + "if": "post_office:brand=UPS", + "then": { + "en": "This location offers services for UPS" + } + }, + { + "if": "post_office:brand=DHL Paketshop", + "then": { + "en": "This location is a DHL Paketshop" + }, + "hideInAnswer": "_country!=de" + }, + { + "if": "post_office:brand=Hermes PaketShop", + "then": { + "en": "This location is a Hermes PaketShop" + }, + "hideInAnswer": "_country!=de" + }, + { + "if": "post_office:brand=PostNL", + "then": { + "en": "This location is a PostNL-point" + }, + "hideInAnswer": { + "and": [ + "_country!=nl", + "_country!=be" + ] + } + }, + { + "if": "post_office:brand=bpost", + "then": { + "en": "This location offers services for bpost" + }, + "hideInAnswer": "_country!=be" + } + ] + }, + { + "id": "letter-from", + "render": { + "en": "You can post letters with these companies: {post_office:letter_from}" + }, + "question": { + "en": "Can you post a letter here?" + }, + "freeform": { + "key": "post_office:letter_from", + "type": "string" + }, + "mappings": [ + { + "if": "post_office:letter_from=yes", + "then": { + "en": "You can post letters here" + } + }, + { + "if": "post_office:letter_from=no", + "then": { + "en": "You can't post letters here" + } + } + ] + }, + { + "id": "parcel-from", + "render": { + "en": "You can post parcels with these companies: {post_office:parcel_from}" + }, + "question": { + "en": "Can you send a parcel here?" + }, + "freeform": { + "key": "post_office:parcel_from", + "type": "string" + }, + "mappings": [ + { + "if": "post_office:parcel_from=yes", + "then": { + "en": "You can send parcels here" + } + }, + { + "if": "post_office:parcel_from=no", + "then": { + "en": "You can't send parcels here" + } + } + ] + }, + { + "id": "parcel-pickup", + "render": { + "en": "You can pick up parcels from these companies: {post_office:parcel_pickup}" + }, + "question": { + "en": "Can you pick up missed parcels here?" + }, + "freeform": { + "key": "post_office:parcel_pickup", + "type": "string" + }, + "mappings": [ + { + "if": "post_office:parcel_pickup=yes", + "then": { + "en": "You can pick up missed parcels here" + } + }, + { + "if": "post_office:parcel_pickup=no", + "then": { + "en": "You can't pick up missed parcels here" + } + } + ] + }, + { + "id": "parcel-to", + "render": { + "en": "You can send parcels to here for pickup with these companies: {post_office:parcel_to}" + }, + "question": { + "en": "Can you send parcels to here for pickup?" + }, + "freeform": { + "key": "post_office:parcel_to", + "type": "string" + }, + "mappings": [ + { + "if": "post_office:parcel_to=yes", + "then": { + "en": "You can send parcels to here for pickup" + } + }, + { + "if": "post_office:parcel_to=no", + "then": { + "en": "You can't send parcels to here for pickup" + } + } + ] + }, + { + "id": "stamps", + "render": { + "en": "You can buy stamps from companies: {post_office:stamps}" + }, + "question": { + "en": "Can you buy stamps here?" + }, + "freeform": { + "key": "post_office:stamps", + "type": "string" + }, + "mappings": [ + { + "if": "post_office:stamps=yes", + "then": { + "en": "You can buy stamps here" + } + }, + { + "if": "post_office:stamps=no", + "then": { + "en": "You can't buy stamps here" + } + } + ] } ], "presets": [ @@ -132,6 +393,10 @@ { "if": "opening_hours~*", "then": "isOpen" + }, + { + "if": "shop~*", + "then": "./assets/themes/shops/shop.svg" } ], "iconSize": "40,40,center", @@ -145,4 +410,4 @@ "width": "1" } ] -} \ No newline at end of file +} diff --git a/assets/layers/sport_pitch/sport_pitch.json b/assets/layers/sport_pitch/sport_pitch.json index b1cfeb67c..d5ec6eeeb 100644 --- a/assets/layers/sport_pitch/sport_pitch.json +++ b/assets/layers/sport_pitch/sport_pitch.json @@ -580,5 +580,8 @@ "width": "1", "fill": "false" } + ], + "filter": [ + "open_now" ] -} \ No newline at end of file +} diff --git a/assets/layers/sports_centre/license_info.json b/assets/layers/sports_centre/license_info.json new file mode 100644 index 000000000..0cbc965a6 --- /dev/null +++ b/assets/layers/sports_centre/license_info.json @@ -0,0 +1,13 @@ +[ + { + "path": "sports_centre.svg", + "license": "CC-BY", + "authors": [ + "Hello world", + "The Noun Project" + ], + "sources": [ + "https://thenounproject.com/icon/rogers-centre-464379/" + ] + } +] \ No newline at end of file diff --git a/assets/layers/sports_centre/sports_centre.json b/assets/layers/sports_centre/sports_centre.json new file mode 100644 index 000000000..2971a4db5 --- /dev/null +++ b/assets/layers/sports_centre/sports_centre.json @@ -0,0 +1,67 @@ +{ + "id": "sports_centre", + "name": { + "en": "Sports centres" + }, + "description": { + "en": "Indoor and outdoor sports centres can be found on this layer" + }, + "minzoom": 12, + "source": { + "osmTags": "leisure=sports_centre" + }, + "title": { + "render": { + "en": "Sports centre" + }, + "mappings": [ + { + "if": "name~*", + "then": "{name}" + } + ] + }, + "tagRenderings": [ + "images", + "opening_hours", + "phone", + "website", + "email", + "wheelchair-access" + ], + "presets": [ + { + "title": { + "en": "a sports centre" + }, + "tags": [ + "leisure=sports_centre" + ] + } + ], + "mapRendering": [ + { + "icon": "circle:white;./assets/layers/sports_centre/sports_centre.svg", + "iconBadges": [ + { + "if": "opening_hours~*", + "then": "isOpen" + } + ], + "location": [ + "point", + "centroid" + ] + }, + { + "color": "darkgreen", + "fill": "no" + } + ], + "allowMove": { + "enableImproveAccuracy": true + }, + "filter": [ + "open_now" + ] +} diff --git a/assets/layers/sports_centre/sports_centre.svg b/assets/layers/sports_centre/sports_centre.svg new file mode 100644 index 000000000..2f59933a9 --- /dev/null +++ b/assets/layers/sports_centre/sports_centre.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json index c661ab2b9..161d3232d 100644 --- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json +++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json @@ -350,6 +350,10 @@ "if": "theme=sport_pitches", "then": "./assets/layers/sport_pitch/table_tennis.svg" }, + { + "if": "theme=sports", + "then": "./assets/themes/sports/sport.svg" + }, { "if": "theme=street_lighting", "then": "./assets/layers/street_lamps/street_lamp.svg" diff --git a/assets/themes/postboxes/postboxes.json b/assets/themes/postboxes/postboxes.json index 5a17a4bcc..ad4371e59 100644 --- a/assets/themes/postboxes/postboxes.json +++ b/assets/themes/postboxes/postboxes.json @@ -50,4 +50,4 @@ "postoffices", "parcel_lockers" ] -} \ No newline at end of file +} diff --git a/assets/themes/sports/license_info.json b/assets/themes/sports/license_info.json new file mode 100644 index 000000000..933127962 --- /dev/null +++ b/assets/themes/sports/license_info.json @@ -0,0 +1,13 @@ +[ + { + "path": "sport.svg", + "license": "CC-BY", + "authors": [ + "Tobias Zwick", + "modified from EmojiOne 2: U+26BD" + ], + "sources": [ + "https://github.com/streetcomplete/StreetComplete/blob/master/res/graphics/quest/sport.svg" + ] + } +] \ No newline at end of file diff --git a/assets/themes/sports/sport.svg b/assets/themes/sports/sport.svg new file mode 100644 index 000000000..426e7c645 --- /dev/null +++ b/assets/themes/sports/sport.svg @@ -0,0 +1,81 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/assets/themes/sports/sports.json b/assets/themes/sports/sports.json new file mode 100644 index 000000000..f17d93c39 --- /dev/null +++ b/assets/themes/sports/sports.json @@ -0,0 +1,58 @@ +{ + "id": "sports", + "title": { + "en": "Sports", + "nl": "Sport" + }, + "shortDescription": { + "en": "Map showing sport facilities.", + "nl": "Kaart met sportfaciliteiten." + }, + "description": { + "en": "All about sports, find sport pitches, fitness centres and more.", + "nl": "Alles over sport: vind sportvelden, fitnesscentra en meer." + }, + "icon": "./assets/themes/sports/sport.svg", + "startLat": 0, + "startLon": 0, + "startZoom": 1, + "layers": [ + "sport_pitch", + "fitness_centre", + "fitness_station", + "sports_centre", + { + "builtin": "shops", + "override": { + "source": { + "osmTags": { + "and": [ + "shop=sports" + ] + } + }, + "presets": [ + { + "tags": [ + "shop=sports" + ], + "title": { + "en": "a sports shop", + "nl": "een sportwinkel" + }, + "description": { + "en": "Add a new shop selling sports goods.", + "nl": "Voeg een nieuwe winkel toe die sportartikelen verkoopt." + } + } + ], + "minzoom": 12, + "mapRendering": [ + { + "icon": "./assets/layers/id_presets/maki-shop.svg" + } + ] + } + } + ] +} diff --git a/langs/layers/de.json b/langs/layers/de.json index 9d643f8e7..a04238f77 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -5493,6 +5493,14 @@ } }, "title": { + "mappings": { + "0": { + "then": "Postfiliale im Einzelhandel" + }, + "1": { + "then": "Postfiliale im {name}" + } + }, "render": "Poststelle" } }, @@ -7367,4 +7375,4 @@ } } } -} \ No newline at end of file +} diff --git a/langs/layers/en.json b/langs/layers/en.json index 7fbf7ce82..a30d9c82e 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -5511,9 +5511,118 @@ }, "question": "What are the opening hours for this post office?", "render": "Opening Hours: {opening_hours_table()}" + }, + "letter-from": { + "mappings": { + "0": { + "then": "You can post letters here" + }, + "1": { + "then": "You can't post letters here" + } + }, + "question": "Can you post a letter here?", + "render": "You can post letters with these companies: {post_office:letter_from}" + }, + "parcel-from": { + "mappings": { + "0": { + "then": "You can send parcels here" + }, + "1": { + "then": "You can't send parcels here" + } + }, + "question": "Can you send a parcel here?", + "render": "You can post parcels with these companies: {post_office:parcel_from}" + }, + "parcel-pickup": { + "mappings": { + "0": { + "then": "You can pick up missed parcels here" + }, + "1": { + "then": "You can't pick up missed parcels here" + } + }, + "question": "Can you pick up missed parcels here?", + "render": "You can pick up parcels from these companies: {post_office:parcel_pickup}" + }, + "parcel-to": { + "mappings": { + "0": { + "then": "You can send parcels to here for pickup" + }, + "1": { + "then": "You can't send parcels to here for pickup" + } + }, + "question": "Can you send parcels to here for pickup?", + "render": "You can send parcels to here for pickup with these companies: {post_office:parcel_to}" + }, + "partner-brand": { + "mappings": { + "0": { + "then": "This location offers services for DHL" + }, + "1": { + "then": "This location offers services for DPD" + }, + "2": { + "then": "This location offers services for GLS" + }, + "3": { + "then": "This location offers services for UPS" + }, + "4": { + "then": "This location is a DHL Paketshop" + }, + "5": { + "then": "This location is a Hermes PaketShop" + }, + "6": { + "then": "This location is a PostNL-point" + }, + "7": { + "then": "This location offers services for bpost" + } + }, + "question": "For which brand does this location offer services?", + "render": "This location offers services for {post_office:brand}" + }, + "post_partner": { + "mappings": { + "0": { + "then": "This shop is a post partner" + }, + "1": { + "then": "This shop is not a post partner" + } + }, + "question": "Is this a post partner?" + }, + "stamps": { + "mappings": { + "0": { + "then": "You can buy stamps here" + }, + "1": { + "then": "You can't buy stamps here" + } + }, + "question": "Can you buy stamps here?", + "render": "You can buy stamps from companies: {post_office:stamps}" } }, "title": { + "mappings": { + "0": { + "then": "Post partner at a shop" + }, + "1": { + "then": "Post partner at {name}" + } + }, "render": "Post Office" } }, @@ -7388,4 +7497,4 @@ } } } -} \ No newline at end of file +} diff --git a/langs/layers/hu.json b/langs/layers/hu.json index 3ff0a01ca..13f898b77 100644 --- a/langs/layers/hu.json +++ b/langs/layers/hu.json @@ -812,4 +812,4 @@ } } } -} \ No newline at end of file +} diff --git a/langs/layers/nl.json b/langs/layers/nl.json index 9cca436fd..590d8cdce 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -5357,6 +5357,11 @@ } }, "title": { + "mappings": { + "0": { + "then": "Postpartner in een winkel" + } + }, "render": "Postkantoor" } }, @@ -7117,4 +7122,4 @@ } } } -} \ No newline at end of file +} diff --git a/langs/layers/zh_Hant.json b/langs/layers/zh_Hant.json index 366b5f6d9..7d88b7e72 100644 --- a/langs/layers/zh_Hant.json +++ b/langs/layers/zh_Hant.json @@ -667,4 +667,4 @@ } } } -} \ No newline at end of file +} diff --git a/langs/themes/en.json b/langs/themes/en.json index 6a122cb9f..957b4f755 100644 --- a/langs/themes/en.json +++ b/langs/themes/en.json @@ -7,6 +7,56 @@ "description": "An open map of statues, busts, graffitis and other artwork all over the world", "title": "Open Artwork Map" }, + "bag": { + "description": "This theme helps with importing data from BAG", + "layers": { + "0": { + "tagRenderings": { + "Reference": { + "mappings": { + "0": { + "then": "This building has no reference in the BAG" + } + }, + "render": "The reference in BAG is {ref:bag}" + } + } + }, + "2": { + "description": "Buildings from BAG register", + "tagRenderings": { + "Build year": { + "mappings": { + "0": { + "then": "The building was started in {_bag_obj:start_date}" + } + }, + "render": "This building was built in {_bag_obj:start_date}" + }, + "Building type": { + "mappings": { + "0": { + "then": "The building type will be a {_bag_obj:construction}" + } + }, + "render": "The building type is a {_bag_obj:building}" + }, + "Import button": { + "mappings": { + "0": { + "then": "Didn't calculate the correct values yet. Refresh this page" + } + } + }, + "Reference": { + "render": "The reference in BAG is {_bag_obj:ref:bag}" + } + } + } + }, + "shortDescription": "BAG import helper tool", + "title": "BAG import helper" + }, "benches": { "description": "This map shows all benches that are recorded in OpenStreetMap: Individual benches, and benches belonging to public transport stops or shelters. With an OpenStreetMap account, you can map new benches or edit details of existing benches.", "shortDescription": "A map of benches", @@ -885,6 +935,11 @@ "description": "A map for showing and editing wind turbines.", "title": "OpenWindPowerMap" }, + "osm_community_index": { + "description": "A list of resources for users of OpenStreetMap. 'Resources' can be links to forums, meetups, Slack groups, IRC channels, mailing lists, and so on. Anything that mappers, especially beginners, might find interesting or helpful.", + "shortDescription": "An index of community resources for OpenStreetMap.", + "title": "OSM Community Index" + }, "parkings": { "description": "This map shows different parking spots", "shortDescription": "This map shows different parking spots",