diff --git a/Models/ThemeConfig/LayerConfig.ts b/Models/ThemeConfig/LayerConfig.ts index 172a614c8d..09ff272d8e 100644 --- a/Models/ThemeConfig/LayerConfig.ts +++ b/Models/ThemeConfig/LayerConfig.ts @@ -215,6 +215,7 @@ export default class LayerConfig extends WithContextLoader { this.minzoomVisible = json.minzoomVisible ?? this.minzoom this.shownByDefault = json.shownByDefault ?? true this.forceLoad = json.forceLoad ?? false + if (json.presets === null) json.presets = undefined if (json.presets !== undefined && json.presets?.map === undefined) { throw "Presets should be a list of items (at " + context + ")" } diff --git a/assets/layers/atm/atm.json b/assets/layers/atm/atm.json new file mode 100644 index 0000000000..67d4491525 --- /dev/null +++ b/assets/layers/atm/atm.json @@ -0,0 +1,86 @@ +{ + "id": "atm", + "name": { + "en": "ATMs" + }, + "description": { + "en": "ATMS to withdraw money" + }, + "title": { + "render": { + "en": "ATM" + }, + "mappings": [ + { + "if": "brand~*", + "then": { + "en": "{brand} ATM" + } + } + ] + }, + "source": { + "osmTags": "amenity=atm" + }, + "minzoom": 13, + "presets": [ + { + "tags": [ + "amenity=atm" + ], + "title": { + "en": "an ATM" + } + } + ], + "tagRenderings": [ + { + "id": "name", + "render": { + "en": "The name of this ATM is {name}" + } + }, + { + "id": "brand", + "question": { + "en": "What brand is this ATM?" + }, + "freeform": { + "key": "brand", + "type": "string", + "placeholder": { + "en": "Brand name" + } + }, + "render": { + "en": "The brand of this ATM is {brand}" + } + }, + { + "id": "operator", + "question": { + "en": "What company operates this ATM?" + }, + "freeform": { + "key": "operator", + "type": "string", + "placeholder": { + "en": "Operator" + } + }, + "render": { + "en": "The ATM is operated by {operator}" + } + }, + "opening_hours" + ], + "mapRendering": [ + { + "icon": "circle:white;./assets/layers/atm/atm.svg", + "location": [ + "point", + "centroid" + ] + } + ] +} \ No newline at end of file diff --git a/assets/layers/atm/atm.svg b/assets/layers/atm/atm.svg new file mode 100644 index 0000000000..dd010da8bf --- /dev/null +++ b/assets/layers/atm/atm.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/assets/layers/atm/license_info.json b/assets/layers/atm/license_info.json new file mode 100644 index 0000000000..91ffee8e6f --- /dev/null +++ b/assets/layers/atm/license_info.json @@ -0,0 +1,13 @@ +[ + { + "path": "atm.svg", + "license": "CC0", + "authors": [ + "Michael Glanznig", + "Andy Allan" + ], + "sources": [ + "https://github.com/gravitystorm/openstreetmap-carto/blob/master/symbols/amenity/atm.svg" + ] + } +] \ No newline at end of file diff --git a/assets/layers/bike_parking/bike_parking.json b/assets/layers/bike_parking/bike_parking.json index 4e18a23106..29be69568e 100644 --- a/assets/layers/bike_parking/bike_parking.json +++ b/assets/layers/bike_parking/bike_parking.json @@ -670,7 +670,7 @@ }, "allowMove": { "enableRelocation": false, - "enableImproveAccuraccy": true + "enableImproveAccuracy": true }, "mapRendering": [ { diff --git a/assets/layers/car_rental/car_rental.json b/assets/layers/car_rental/car_rental.json new file mode 100644 index 0000000000..18da669108 --- /dev/null +++ b/assets/layers/car_rental/car_rental.json @@ -0,0 +1,97 @@ +{ + "id": "car_rental", + "name": { + "en": "Car Rental", + "nl": "Autoverhuur" + }, + "source": { + "osmTags": "amenity=car_rental" + }, + "minzoom": 12, + "title": { + "render": { + "en": "Car Rental", + "nl": "Autoverhuur" + }, + "mappings": [ + { + "if": "name~*", + "then": "{name}" + } + ] + }, + "description": { + "en": "Places where you can rent a car", + "nl": "Plaatsen waar je een auto kunt huren" + }, + "tagRenderings": [ + "images", + { + "id": "name", + "freeform": { + "key": "name", + "type": "string", + "placeholder": { + "en": "Name of the car rental", + "nl": "Naam van de autoverhuur" + } + }, + "question": { + "en": "What is the name of this car rental?", + "nl": "Wat is de naam van deze autoverhuur?" + }, + "mappings": [ + { + "if": "noname=yes", + "then": { + "en": "This car rental has no name", + "nl": "Deze autoverhuur heeft geen naam" + } + } + ], + "render": { + "en": "This car rental is called {name}", + "nl": "Deze autoverhuur heet {name}" + } + }, + "website", + "email", + "phone", + "opening_hours" + ], + "presets": [ + { + "tags": [ + "amenity=car_rental" + ], + "title": { + "en": "a car rental", + "nl": "een autoverhuur" + }, + "description": { + "en": "A place where you can rent a car", + "nl": "Een plaats waar je een auto kunt huren" + } + } + ], + "mapRendering": [ + { + "icon": "circle:white;./assets/layers/car_rental/car_rental.svg", + "location": [ + "point", + "centroid" + ], + "label": "
{name}
" + }, + { + "color": "darkblue", + "width": 2 + } + ], + "allowMove": { + "enableImproveAccuracy": true + }, + "filter": [ + "open_now" + ] +} \ No newline at end of file diff --git a/assets/layers/car_rental/car_rental.svg b/assets/layers/car_rental/car_rental.svg new file mode 100644 index 0000000000..19a148724e --- /dev/null +++ b/assets/layers/car_rental/car_rental.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/layers/car_rental/license_info.json b/assets/layers/car_rental/license_info.json new file mode 100644 index 0000000000..31c8cda5ec --- /dev/null +++ b/assets/layers/car_rental/license_info.json @@ -0,0 +1,12 @@ +[ + { + "path": "car_rental.svg", + "license": "CC0", + "authors": [ + "American Institute of Graphic Arts" + ], + "sources": [ + "https://thenounproject.com/icon/car-rental-71/" + ] + } +] \ No newline at end of file diff --git a/assets/layers/railway_platforms/railway_platforms.json b/assets/layers/railway_platforms/railway_platforms.json new file mode 100644 index 0000000000..e0d6fad204 --- /dev/null +++ b/assets/layers/railway_platforms/railway_platforms.json @@ -0,0 +1,69 @@ +{ + "id": "railway_platforms", + "name": { + "en": "Railway Platforms" + }, + "description": { + "en": "Find every platform in the station, and the train routes that use them." + }, + "title": { + "render": { + "en": "Platform" + }, + "mappings": [ + { + "if": "ref~*", + "then": { + "en": "Platform {ref}" + } + } + ] + }, + "source": { + "osmTags": { + "or": [ + "railway=platform" + ] + } + }, + "minzoom": 18, + "tagRenderings": [ + { + "id": "ref", + "question": { + "en": "What is the number for this platform?" + }, + "freeform": { + "key": "ref", + "type": "string", + "placeholder": { + "en": "Platform number" + } + }, + "render": { + "en": "Platform {ref}" + } + }, + "level" + ], + "mapRendering": [ + { + "color": "gray" + }, + { + "icon": "./assets/themes/stations/rail-light.svg", + "location": [ + "point", + "centroid" + ], + "label": { + "mappings": [ + { + "if": "ref~*", + "then": "
{ref}
" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/assets/layers/stairs/stairs.json b/assets/layers/stairs/stairs.json index 097f9bd2e4..7f9fbc1fba 100644 --- a/assets/layers/stairs/stairs.json +++ b/assets/layers/stairs/stairs.json @@ -32,6 +32,19 @@ }, "tagRenderings": [ "images", + { + "builtin": "multilevels", + "override": { + "question": { + "en": "Between which levels are these stairs?", + "nl": "Tussen welke verdiepingen loopt deze trap?" + }, + "render": { + "en": "These stairs are between the levels {level}", + "nl": "Deze trap loopt tussen de verdiepingen {level}" + } + } + }, { "id": "handrail", "question": { @@ -195,7 +208,7 @@ { "color": "gray", "width": 10, - "dashArray": "2 2" + "dashArray": "6 12" } ] } \ No newline at end of file diff --git a/assets/layers/ticket_machine/ticket_machine.json b/assets/layers/ticket_machine/ticket_machine.json new file mode 100644 index 0000000000..673bd06257 --- /dev/null +++ b/assets/layers/ticket_machine/ticket_machine.json @@ -0,0 +1,79 @@ +{ + "id": "ticket_machine", + "name": { + "en": "Ticket Machines" + }, + "description": { + "en": "Find ticket machines for public transport tickets" + }, + "source": { + "osmTags": { + "and": [ + "amenity=vending_machine", + "vending=public_transport_tickets" + ] + } + }, + "minzoom": 19, + "title": { + "render": { + "en": "Ticket Machine" + } + }, + "tagRenderings": [ + "images", + "level", + { + "id": "operator", + "question": { + "en": "Who is the operator of this ticket machine?" + }, + "render": { + "en": "This ticket machine is operated by {operator}" + }, + "freeform": { + "key": "operator", + "type": "string", + "placeholder": { + "en": "Name of the operator" + } + }, + "mappings": [ + { + "if": "operator=Nederlandse Spoorwegen", + "then": { + "en": "Dutch Railways (NS)", + "nl": "Nederlandse Spoorwegen (NS)" + }, + "addExtraTags": [ + "operator:wikidata=Q23076" + ], + "hideInAnswer": "_country!=nl" + } + ] + }, + "payment-options-split", + "denominations-coins" + ], + "presets": [ + { + "tags": [ + "amenity=vending_machine", + "vending=public_transport_tickets" + ], + "title": { + "en": "a ticket machine" + } + } + ], + "mapRendering": [ + { + "icon": "square:lightblue;./assets/themes/stations/public_transport_tickets.svg", + "iconSize": "20,20,center", + "location": [ + "point", + "centroid" + ] + } + ] +} \ No newline at end of file diff --git a/assets/layers/ticket_validator/ticket_validator.json b/assets/layers/ticket_validator/ticket_validator.json new file mode 100644 index 0000000000..3c6312db03 --- /dev/null +++ b/assets/layers/ticket_validator/ticket_validator.json @@ -0,0 +1,96 @@ +{ + "id": "ticket_validator", + "name": { + "en": "Ticket Validators" + }, + "description": { + "en": "Find ticket validators to validate public transport tickets" + }, + "source": { + "osmTags": "amenity=ticket_validator" + }, + "minzoom": 19, + "title": { + "render": { + "en": "Ticket Validator" + } + }, + "tagRenderings": [ + "images", + "level", + { + "id": "barrier", + "condition": "barrier~*", + "render": { + "en": "This ticket validator is part of a barrier of type {barrier}" + }, + "mappings": [ + { + "if": "barrier=gate", + "then": { + "en": "This ticket validator is part of a gate" + } + } + ] + }, + { + "id": "validator-operator", + "question": { + "en": "Who is the operator of this ticket validator?" + }, + "render": { + "en": "This ticket validator is operated by {operator}" + }, + "freeform": { + "key": "operator", + "type": "string", + "placeholder": { + "en": "Name of the operator" + } + } + }, + { + "builtin": "payment-options", + "override": { + "mappings+": [ + { + "if": "payment:OV-Chipkaart=yes", + "ifnot": "payment:OV-Chipkaart=no", + "then": { + "en": "This ticket validator accepts OV-Chipkaart" + }, + "hideInAnswer": "_country!=nl" + }, + { + "if": "payment:ov-chipkaart=yes", + "ifnot": "payment:ov-chipkaart=no", + "then": { + "en": "This ticket validator accepts OV-Chipkaart" + }, + "hideInAnswer": true + } + ] + } + } + ], + "presets": [ + { + "tags": [ + "amenity=ticket_validator" + ], + "title": { + "en": "a ticket validator" + } + } + ], + "mapRendering": [ + { + "icon": "square:green;./assets/themes/stations/public_transport_tickets.svg", + "iconSize": "20,20,center", + "location": [ + "point", + "centroid" + ] + } + ] +} \ No newline at end of file diff --git a/assets/tagRenderings/10cent.svg b/assets/tagRenderings/10cent.svg new file mode 100644 index 0000000000..539395abd0 --- /dev/null +++ b/assets/tagRenderings/10cent.svg @@ -0,0 +1,59 @@ + + + + simple 10 euro cent + + + + + + image/svg+xml + + simple 10 euro cent + + 2018-10-11 + + + Frank Tremmel + + + + + cent + money + teaching + school + education + simple + counting + + + simple money for worksheets + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/tagRenderings/1cent.svg b/assets/tagRenderings/1cent.svg new file mode 100644 index 0000000000..cbbe3f0cc9 --- /dev/null +++ b/assets/tagRenderings/1cent.svg @@ -0,0 +1,57 @@ + + + + simple 1 euro cent + + + + + + image/svg+xml + + simple 1 euro cent + + 2018-10-11 + + + Frank Tremmel + + + + + cent + money + teaching + school + education + simple + counting + + + simple money for worksheets + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/tagRenderings/1euro.svg b/assets/tagRenderings/1euro.svg new file mode 100644 index 0000000000..565cb8f184 --- /dev/null +++ b/assets/tagRenderings/1euro.svg @@ -0,0 +1,46 @@ + + + + simple 1 euro + + + + + + image/svg+xml + + simple 1 euro + + 2018-10-11 + + + Frank Tremmel + + + + + cent + money + teaching + school + education + simple + counting + + + simple money for worksheets + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/tagRenderings/20cent.svg b/assets/tagRenderings/20cent.svg new file mode 100644 index 0000000000..6b92dfbd57 --- /dev/null +++ b/assets/tagRenderings/20cent.svg @@ -0,0 +1,59 @@ + + + + simple 20 euro cent + + + + + + image/svg+xml + + simple 20 euro cent + + 2018-10-11 + + + Frank Tremmel + + + + + cent + money + teaching + school + education + simple + counting + + + simple money for worksheets + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/tagRenderings/2cent.svg b/assets/tagRenderings/2cent.svg new file mode 100644 index 0000000000..f1cea0ccf7 --- /dev/null +++ b/assets/tagRenderings/2cent.svg @@ -0,0 +1,55 @@ + + + + simple 2 euro cent + + + + + + image/svg+xml + + simple 2 euro cent + + 2018-10-11 + + + Frank Tremmel + + + + + cent + money + teaching + school + education + simple + counting + + + simple money for worksheets + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/tagRenderings/2euro.svg b/assets/tagRenderings/2euro.svg new file mode 100644 index 0000000000..a9ed9de643 --- /dev/null +++ b/assets/tagRenderings/2euro.svg @@ -0,0 +1,46 @@ + + + + simple 2 euro + + + + + + image/svg+xml + + simple 2 euro + + 2018-10-11 + + + Frank Tremmel + + + + + cent + money + teaching + school + education + simple + counting + + + simple money for worksheets + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/tagRenderings/50cent.svg b/assets/tagRenderings/50cent.svg new file mode 100644 index 0000000000..e31630c2a0 --- /dev/null +++ b/assets/tagRenderings/50cent.svg @@ -0,0 +1,59 @@ + + + + simple 50 euro cent + + + + + + image/svg+xml + + simple 50 euro cent + + 2018-10-11 + + + Frank Tremmel + + + + + cent + money + teaching + school + education + simple + counting + + + simple money for worksheets + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/tagRenderings/5cent.svg b/assets/tagRenderings/5cent.svg new file mode 100644 index 0000000000..28894a0294 --- /dev/null +++ b/assets/tagRenderings/5cent.svg @@ -0,0 +1,55 @@ + + + + simple 5 euro cent + + + + + + image/svg+xml + + simple 5 euro cent + + 2018-10-11 + + + Frank Tremmel + + + + + cent + money + teaching + school + education + simple + counting + + + simple money for worksheets + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/tagRenderings/coins.svg b/assets/tagRenderings/coins.svg new file mode 100644 index 0000000000..4fe4c15a7f --- /dev/null +++ b/assets/tagRenderings/coins.svg @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + \ No newline at end of file diff --git a/assets/tagRenderings/license_info.json b/assets/tagRenderings/license_info.json index 1f92135a1c..01abeaa689 100644 --- a/assets/tagRenderings/license_info.json +++ b/assets/tagRenderings/license_info.json @@ -1,4 +1,92 @@ [ + { + "path": "10cent.svg", + "license": "CC0", + "authors": [ + "OpenClipart", + "frankes" + ], + "sources": [ + "https://openclipart.org/detail/311337/worksheet-10-cent-coloured" + ] + }, + { + "path": "1cent.svg", + "license": "CC0", + "authors": [ + "OpenClipart", + "frankes" + ], + "sources": [ + "https://openclipart.org/detail/311334/worksheet-1-cent-coloured" + ] + }, + { + "path": "1euro.svg", + "license": "CC0", + "authors": [ + "OpenClipart", + "frankes" + ], + "sources": [ + "https://openclipart.org/detail/311340/worksheet-1-euro-coloured" + ] + }, + { + "path": "20cent.svg", + "license": "CC0", + "authors": [ + "OpenClipart", + "frankes" + ], + "sources": [ + "https://openclipart.org/detail/311338/worksheet-20-cent-coloured" + ] + }, + { + "path": "2cent.svg", + "license": "CC0", + "authors": [ + "OpenClipart", + "frankes" + ], + "sources": [ + "https://openclipart.org/detail/311335/worksheet-2-cent-coloured" + ] + }, + { + "path": "2euro.svg", + "license": "CC0", + "authors": [ + "OpenClipart", + "frankes" + ], + "sources": [ + "https://openclipart.org/detail/311341/worksheet-2-euro-coloured" + ] + }, + { + "path": "50cent.svg", + "license": "CC0", + "authors": [ + "OpenClipart", + "frankes" + ], + "sources": [ + "https://openclipart.org/detail/311339/worksheet-50-cent-coloured" + ] + }, + { + "path": "5cent.svg", + "license": "CC0", + "authors": [ + "OpenClipart", + "frankes" + ], + "sources": [ + "https://openclipart.org/detail/311336/worksheet-5-cent-coloured" + ] + }, { "path": "audio_induction_loop.svg", "license": "CC-BY 4.0", @@ -29,6 +117,16 @@ "https://www.onlinewebfonts.com/icon/464494" ] }, + { + "path": "coins.svg", + "license": "CC-BY 3.0", + "authors": [ + "Online Web Fonts" + ], + "sources": [ + "https://www.onlinewebfonts.com/icon/464488" + ] + }, { "path": "nfc_card.svg", "license": "CC0", @@ -50,6 +148,16 @@ "https://www.aiga.org/content.cfm/symbol-signs" ] }, + { + "path": "notes.svg", + "license": "CC-BY 3.0", + "authors": [ + "Online Web Fonts" + ], + "sources": [ + "https://www.onlinewebfonts.com/icon/464507" + ] + }, { "path": "payment_card.svg", "license": "CC0", diff --git a/assets/tagRenderings/notes.svg b/assets/tagRenderings/notes.svg new file mode 100644 index 0000000000..79d25a4338 --- /dev/null +++ b/assets/tagRenderings/notes.svg @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + \ No newline at end of file diff --git a/assets/tagRenderings/questions.json b/assets/tagRenderings/questions.json index 7addf9700c..0ffb0350a0 100644 --- a/assets/tagRenderings/questions.json +++ b/assets/tagRenderings/questions.json @@ -897,6 +897,55 @@ } ] }, + "payment-options-split": { + "builtin": "payment-options", + "override": { + "mappings": [ + { + "hideInAnswer": true, + "ifnot": "payment:cash=" + }, + { + "hideInAnswer": true, + "ifnot": "payment:cards=" + } + ], + "mappings+": [ + { + "if": "payment:coins=yes", + "ifnot": "payment:coins=no", + "icon": "./assets/tagRenderings/coins.svg", + "then": { + "en": "Coins are accepted here" + } + }, + { + "if": "payment:notes=yes", + "ifnot": "payment:notes=no", + "icon": "./assets/tagRenderings/notes.svg", + "then": { + "en": "Bank notes are accepted here" + } + }, + { + "if": "payment:debit_cards=yes", + "ifnot": "payment_debit_cards=no", + "icon": "./assets/tagRenderings/payment_card.svg", + "then": { + "en": "Debit cards are accepted here" + } + }, + { + "if": "payment:credit_cards=yes", + "ifnot": "payment:credit_cards=no", + "icon": "./assets/tagRenderings/payment_card.svg", + "then": { + "en": "Credit cards are accepted here" + } + } + ] + } + }, "payment-options-advanced": { "builtin": "payment-options", "override": { @@ -951,6 +1000,104 @@ ] } }, + "denominations-coins": { + "condition": { + "and": [ + { + "or": [ + "payment:coins=yes", + "payment:cash=yes" + ] + }, + { + "or": [ + "_country=at", + "_country=be", + "_country=cy", + "_country=de", + "_country=ee", + "_country=es", + "_country=fi", + "_country=fr", + "_country=gr", + "_country=hr", + "_country=ie", + "_country=it", + "_country=lt", + "_country=lu", + "_country=lv", + "_country=mt", + "_country=nl", + "_country=pt", + "_country=si", + "_country=sk" + ] + } + ] + }, + "question": { + "en": "Whith what coins can you pay here?" + }, + "multiAnswer": true, + "mappings": [ + { + "if": "payment:coins:denominations=0.01 EUR", + "icon": "./assets/tagRenderings/1cent.svg", + "then": { + "en": "1 cent coins are accepted" + } + }, + { + "if": "payment:coins:denominations=0.02 EUR", + "icon": "./assets/tagRenderings/2cent.svg", + "then": { + "en": "2 cent coins are accepted" + } + }, + { + "if": "payment:coins:denominations=0.05 EUR", + "icon": "./assets/tagRenderings/5cent.svg", + "then": { + "en": "5 cent coins are accepted" + } + }, + { + "if": "payment:coins:denominations=0.10 EUR", + "icon": "./assets/tagRenderings/10cent.svg", + "then": { + "en": "10 cent coins are accepted" + } + }, + { + "if": "payment:coins:denominations=0.20 EUR", + "icon": "./assets/tagRenderings/20cent.svg", + "then": { + "en": "20 cent coins are accepted" + } + }, + { + "if": "payment:coins:denominations=0.50 EUR", + "icon": "./assets/tagRenderings/50cent.svg", + "then": { + "en": "50 cent coins are accepted" + } + }, + { + "if": "payment:coins:denominations=1 EUR", + "icon": "./assets/tagRenderings/1euro.svg", + "then": { + "en": "1 euro coins are accepted" + } + }, + { + "if": "payment:coins:denominations=2 EUR", + "icon": "./assets/tagRenderings/2euro.svg", + "then": { + "en": "2 euro coins are accepted" + } + } + ] + }, "last_edit": { "#": "Gives some metainfo about the last edit and who did edit it - rendering only", "condition": "_last_edit:contributor~*", diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json index d0726a92e2..80c6edbffa 100644 --- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json +++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json @@ -350,6 +350,10 @@ "if": "theme=sports", "then": "./assets/themes/sports/sport.svg" }, + { + "if": "theme=stations", + "then": "./assets/themes/stations/rail-light.svg" + }, { "if": "theme=street_lighting", "then": "./assets/layers/street_lamps/street_lamp.svg" diff --git a/assets/themes/stations/bench.svg b/assets/themes/stations/bench.svg new file mode 100644 index 0000000000..d1d8c8b141 --- /dev/null +++ b/assets/themes/stations/bench.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/assets/themes/stations/bicycle_parking.svg b/assets/themes/stations/bicycle_parking.svg new file mode 100644 index 0000000000..ebec627bd5 --- /dev/null +++ b/assets/themes/stations/bicycle_parking.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/assets/themes/stations/departures_board.svg b/assets/themes/stations/departures_board.svg new file mode 100644 index 0000000000..b5b8538476 --- /dev/null +++ b/assets/themes/stations/departures_board.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/themes/stations/license_info.json b/assets/themes/stations/license_info.json new file mode 100644 index 0000000000..13b0032bbc --- /dev/null +++ b/assets/themes/stations/license_info.json @@ -0,0 +1,61 @@ +[ + { + "path": "bench.svg", + "license": "CC0", + "authors": [ + "Matthijs Melissen" + ], + "sources": [ + "https://github.com/gravitystorm/openstreetmap-carto/blob/master/symbols/amenity/bench.svg" + ] + }, + { + "path": "bicycle_parking.svg", + "license": "CC0", + "authors": [ + "Matthijs Melissen" + ], + "sources": [ + "https://github.com/gravitystorm/openstreetmap-carto/blob/master/symbols/amenity/bicycle_parking.svg" + ] + }, + { + "path": "departures_board.svg", + "license": "CC0", + "authors": [ + "Robin van der Linde" + ], + "sources": [] + }, + { + "path": "public_transport_tickets.svg", + "license": "CC0", + "authors": [ + "Jérémy Ragusa" + ], + "sources": [ + "https://github.com/gravitystorm/openstreetmap-carto/blob/master/symbols/amenity/public_transport_tickets.svg" + ] + }, + { + "path": "rail-light.svg", + "license": "CC0", + "authors": [ + "Maki" + ], + "sources": [ + "https://labs.mapbox.com/maki-icons/" + ] + }, + { + "path": "rental_bicycle.svg", + "license": "CC0", + "authors": [ + "Michael Glanznig", + "Andy Allan" + ], + "sources": [ + "https://github.com/gravitystorm/openstreetmap-carto/blob/master/symbols/amenity/rental_bicycle.svg" + ] + } +] \ No newline at end of file diff --git a/assets/themes/stations/public_transport_tickets.svg b/assets/themes/stations/public_transport_tickets.svg new file mode 100644 index 0000000000..132830c222 --- /dev/null +++ b/assets/themes/stations/public_transport_tickets.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/themes/stations/rail-light.svg b/assets/themes/stations/rail-light.svg new file mode 100644 index 0000000000..1548d99098 --- /dev/null +++ b/assets/themes/stations/rail-light.svg @@ -0,0 +1,47 @@ + +image/svg+xml + + diff --git a/assets/themes/stations/rental_bicycle.svg b/assets/themes/stations/rental_bicycle.svg new file mode 100644 index 0000000000..cf4397e1a2 --- /dev/null +++ b/assets/themes/stations/rental_bicycle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/assets/themes/stations/stations.json b/assets/themes/stations/stations.json new file mode 100644 index 0000000000..c51b09d25e --- /dev/null +++ b/assets/themes/stations/stations.json @@ -0,0 +1,307 @@ +{ + "id": "stations", + "title": { + "en": "Train Stations" + }, + "description": { + "en": "View, edit and add details to a train station" + }, + "icon": "./assets/themes/stations/rail-light.svg", + "startLat": 0, + "startLon": 0, + "startZoom": 0, + "hideFromOverview": true, + "defaultBackgroundId": "CartoDB.Positron", + "layers": [ + { + "builtin": "indoors", + "override": { + "minzoom": 19, + "passAllFeatures": true, + "mapRendering": [ + {}, + {}, + { + "label": { + "render": null, + "mappings": null + }, + "iconSize": "0,0,bottom" + } + ] + } + }, + { + "builtin": "stairs", + "override": { + "minzoom": 19 + } + }, + { + "builtin": "pedestrian_path", + "override": { + "title": null, + "name": null, + "mapRendering": null + } + }, + { + "id": "train_station", + "minzoom": 12, + "minzoomVisible": 17, + "source": { + "osmTags": { + "or": [ + "railway=station", + "railway=halt" + ] + } + }, + "name": { + "en": "Train Stations" + }, + "description": { + "en": "Layer showing train stations" + }, + "mapRendering": [ + { + "icon": "./assets/themes/stations/rail-light.svg", + "location": [ + "point", + "centroid" + ], + "label": { + "mappings": [ + { + "if": "name~*", + "then": "
{name}
" + } + ] + } + }, + { + "color": "green" + } + ] + }, + { + "builtin": [ + "shops" + ], + "override": { + "isShown": { + "or": [ + "indoor=room", + "indoor=area" + ] + }, + "presets": null, + "minzoom": 19 + } + }, + { + "builtin": "bike_parking", + "override": { + "isShown": { + "or": [ + "indoor=room", + "indoor=area" + ] + }, + "presets": null, + "minzoom": 19, + "mapRendering": [ + { + "icon": "circle:white;./assets/themes/stations/bicycle_parking.svg" + } + ] + } + }, + { + "builtin": "bicycle_rental", + "override": { + "isShown": { + "or": [ + "indoor=room", + "indoor=area" + ] + }, + "presets": null, + "minzoom": 19, + "mapRendering": [ + { + "icon": "circle:white;./assets/themes/stations/rental_bicycle.svg" + } + ] + } + }, + { + "builtin": "car_rental", + "override": { + "isShown": { + "or": [ + "indoor=room", + "indoor=area" + ] + }, + "presets": null, + "minzoom": 19 + } + }, + { + "builtin": [ + "food", + "cafe_pub" + ], + "override": { + "isShown": { + "or": [ + "indoor=room", + "indoor=area" + ] + }, + "presets": null, + "minzoom": 19, + "mapRendering+": [ + { + "color": { + "render": "#00f" + }, + "width": { + "render": "8" + } + } + ] + } + }, + { + "builtin": "toilet", + "override": { + "isShown": { + "or": [ + "indoor=room", + "indoor=area" + ] + }, + "presets": null, + "minzoom": 19, + "mapRendering+": [ + { + "color": { + "render": "yellow" + }, + "width": { + "render": "8" + } + } + ] + } + }, + "railway_platforms", + "ticket_machine", + "ticket_validator", + { + "builtin": [ + "entrance", + "elevator", + "waste_basket", + "atm" + ], + "override": { + "minzoom": 19 + } + }, + { + "builtin": "bench", + "override": { + "minzoom": 19, + "mapRendering": [ + { + "icon": "./assets/themes/stations/bench.svg" + } + ] + } + }, + { + "id": "departures_board", + "name": { + "en": "Departures boards" + }, + "description": { + "en": "Displays showing the trains that will leave from this station" + }, + "title": { + "render": { + "en": "Departures board" + } + }, + "minzoom": 19, + "source": { + "osmTags": { + "and": [ + "departures_board~*", + "departures_board!=no", + "public_transport=" + ] + } + }, + "tagRenderings": [ + { + "id": "type", + "question": { + "en": "What kind of departures board is this?" + }, + "mappings": [ + { + "if": "departures_board=yes", + "then": { + "en": "This is a departures board of an unknown type" + } + }, + { + "if": "departures_board=realtime", + "then": { + "en": "This is an electronic board, showing the next departures in realtime" + } + }, + { + "if": "departures_board=timetable", + "then": { + "en": "This is a paper timetable" + } + }, + { + "if": "departures_board=delay", + "then": { + "en": "There is a sign showing the frequency of the trains" + } + } + ] + }, + "level" + ], + "presets": [ + { + "tags": [ + "departures_board=yes" + ], + "title": { + "en": "a departures board" + }, + "description": { + "en": "Add a board showing departures, either electronic or paper" + } + } + ], + "mapRendering": [ + { + "icon": "./assets/themes/stations/departures_board.svg", + "location": [ + "point", + "centroid" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/langs/layers/en.json b/langs/layers/en.json index 48fb33f8cf..ed420095ce 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -153,6 +153,42 @@ "render": "Artwork" } }, + "atm": { + "description": "ATMS to withdraw money", + "name": "ATMs", + "presets": { + "0": { + "title": "an ATM" + } + }, + "tagRenderings": { + "brand": { + "freeform": { + "placeholder": "Brand name" + }, + "question": "What brand is this ATM?", + "render": "The brand of this ATM is {brand}" + }, + "name": { + "render": "The name of this ATM is {name}" + }, + "operator": { + "freeform": { + "placeholder": "Operator" + }, + "question": "What company operates this ATM?", + "render": "The ATM is operated by {operator}" + } + }, + "title": { + "mappings": { + "0": { + "then": "{brand} ATM" + } + }, + "render": "ATM" + } + }, "barrier": { "description": "Obstacles while cycling, such as bollards and cycle barriers", "name": "Barriers", @@ -1297,6 +1333,33 @@ "render": "Pub" } }, + "car_rental": { + "description": "Places where you can rent a car", + "name": "Car Rental", + "presets": { + "0": { + "description": "A place where you can rent a car", + "title": "a car rental" + } + }, + "tagRenderings": { + "name": { + "freeform": { + "placeholder": "Name of the car rental" + }, + "mappings": { + "0": { + "then": "This car rental has no name" + } + }, + "question": "What is the name of this car rental?", + "render": "This car rental is called {name}" + } + }, + "title": { + "render": "Car Rental" + } + }, "charging_station": { "description": "A charging station", "filter": { @@ -6055,6 +6118,27 @@ "render": "Bookcase" } }, + "railway_platforms": { + "description": "Find every platform in the station, and the train routes that use them.", + "name": "Railway Platforms", + "tagRenderings": { + "ref": { + "freeform": { + "placeholder": "Platform number" + }, + "question": "What is the number for this platform?", + "render": "Platform {ref}" + } + }, + "title": { + "mappings": { + "0": { + "then": "Platform {ref}" + } + }, + "render": "Platform" + } + }, "rainbow_crossings": { "description": "A layer showing pedestrian crossings with rainbow paintings", "name": "Crossings with rainbow paintings", @@ -6816,6 +6900,12 @@ }, "question": "Does this stair have a handrail?" }, + "multilevels": { + "override": { + "question": "Between which levels are these stairs?", + "render": "These stairs are between the levels {level}" + } + }, "ramp": { "mappings": { "0": { @@ -7185,6 +7275,68 @@ } } }, + "ticket_machine": { + "description": "Find ticket machines for public transport tickets", + "name": "Ticket Machines", + "presets": { + "0": { + "title": "a ticket machine" + } + }, + "tagRenderings": { + "operator": { + "freeform": { + "placeholder": "Name of the operator" + }, + "question": "Who is the operator of this ticket machine?", + "render": "This ticket machine is operated by {operator}" + } + }, + "title": { + "render": "Ticket Machine" + } + }, + "ticket_validator": { + "description": "Find ticket validators to validate public transport tickets", + "name": "Ticket Validators", + "presets": { + "0": { + "title": "a ticket validator" + } + }, + "tagRenderings": { + "barrier": { + "mappings": { + "0": { + "then": "This ticket validator is part of a gate" + } + }, + "render": "This ticket validator is part of a barrier of type {barrier}" + }, + "payment-options": { + "override": { + "mappings+": { + "0": { + "then": "This ticket validator accepts OV-Chipkaart" + }, + "1": { + "then": "This ticket validator accepts OV-Chipkaart" + } + } + } + }, + "validator-operator": { + "freeform": { + "placeholder": "Name of the operator" + }, + "question": "Who is the operator of this ticket validator?", + "render": "This ticket validator is operated by {operator}" + } + }, + "title": { + "render": "Ticket Validator" + } + }, "toilet": { "description": "A layer showing (public) toilets", "filter": { diff --git a/langs/layers/nl.json b/langs/layers/nl.json index 8f201d482a..76dc8524d4 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -1306,6 +1306,33 @@ "render": "Café" } }, + "car_rental": { + "description": "Plaatsen waar je een auto kunt huren", + "name": "Autoverhuur", + "presets": { + "0": { + "description": "Een plaats waar je een auto kunt huren", + "title": "een autoverhuur" + } + }, + "tagRenderings": { + "name": { + "freeform": { + "placeholder": "Naam van de autoverhuur" + }, + "mappings": { + "0": { + "then": "Deze autoverhuur heeft geen naam" + } + }, + "question": "Wat is de naam van deze autoverhuur?", + "render": "Deze autoverhuur heet {name}" + } + }, + "title": { + "render": "Autoverhuur" + } + }, "charging_station": { "description": "Oplaadpunten", "filter": { @@ -6462,6 +6489,12 @@ }, "question": "Heeft deze trap een leuning?" }, + "multilevels": { + "override": { + "question": "Tussen welke verdiepingen loopt deze trap?", + "render": "Deze trap loopt tussen de verdiepingen {level}" + } + }, "ramp": { "mappings": { "0": { diff --git a/langs/themes/en.json b/langs/themes/en.json index 42c3148849..a0ead4a3d7 100644 --- a/langs/themes/en.json +++ b/langs/themes/en.json @@ -1088,6 +1088,48 @@ "shortDescription": "Map showing sport facilities.", "title": "Sports" }, + "stations": { + "description": "View, edit and add details to a train station", + "layers": { + "3": { + "description": "Layer showing train stations", + "name": "Train Stations" + }, + "15": { + "description": "Displays showing the trains that will leave from this station", + "name": "Departures boards", + "presets": { + "0": { + "description": "Add a board showing departures, either electronic or paper", + "title": "a departures board" + } + }, + "tagRenderings": { + "type": { + "mappings": { + "0": { + "then": "This is a departures board of an unknown type" + }, + "1": { + "then": "This is an electronic board, showing the next departures in realtime" + }, + "2": { + "then": "This is a paper timetable" + }, + "3": { + "then": "There is a sign showing the frequency of the trains" + } + }, + "question": "What kind of departures board is this?" + } + }, + "title": { + "render": "Departures board" + } + } + }, + "title": "Train Stations" + }, "street_lighting": { "description": "On this map you can find everything about street lighting", "layers": {