From 2a1fbcc3b8539683c989ff07f1e0a8456fa7f0ce Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 26 Mar 2020 11:28:53 -0700 Subject: [PATCH] Add field and preset for accessible parking (close #7465) Add Type field and search terms to Parking Space Add parking-specific capacity field Deprecate `disabled_spaces` --- data/deprecated.json | 4 +++ data/presets.yaml | 19 ++++++++++++++ data/presets/fields.json | 3 +++ .../fields/capacity/disabled_parking.json | 7 ++++++ data/presets/fields/capacity_parking.json | 7 ++++++ data/presets/fields/parking_space.json | 5 ++++ data/presets/presets.json | 7 +++--- .../presets/amenity/motorcycle_parking.json | 2 +- data/presets/presets/amenity/parking.json | 3 ++- .../presets/amenity/parking_space.json | 10 +++++++- .../amenity/parking_space/disabled.json | 25 +++++++++++++++++++ data/taginfo.json | 6 ++++- dist/locales/en.json | 17 ++++++++++++- 13 files changed, 107 insertions(+), 8 deletions(-) create mode 100644 data/presets/fields/capacity/disabled_parking.json create mode 100644 data/presets/fields/capacity_parking.json create mode 100644 data/presets/fields/parking_space.json create mode 100644 data/presets/presets/amenity/parking_space/disabled.json diff --git a/data/deprecated.json b/data/deprecated.json index 27d217616..4dac07403 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -375,6 +375,10 @@ "old": {"direction": "West"}, "replace": {"direction": "W"} }, + { + "old": {"disabled_spaces":"*"}, + "replace": {"capacity:disabled": "$1"} + }, { "old": {"drinkable": "*"}, "replace": {"drinking_water": "$1"} diff --git a/data/presets.yaml b/data/presets.yaml index 14494ce67..ab280e169 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -422,6 +422,16 @@ en: # capacity field placeholder placeholder: '50, 100, 200...' terms: '[translate with synonyms or related terms for ''Capacity'', separated by commas]' + capacity/disabled_parking: + # 'capacity:disabled=*' + label: Accessible Spaces + # capacity/disabled_parking field placeholder + placeholder: '1, 2, 3...' + capacity_parking: + # capacity=* + label: Total Spaces + # capacity_parking field placeholder + placeholder: '10, 20, 30...' cash_in: # cash_in=* label: Cash In @@ -1622,6 +1632,9 @@ en: surface: Surface # parking=underground underground: Underground + parking_space: + # parking_space=* + label: Type payment_multi: # 'payment:=*' label: Payment Types @@ -3403,7 +3416,13 @@ en: amenity/parking_space: # amenity=parking_space name: Parking Space + # 'terms: parking spot,parking stall' terms: '' + amenity/parking_space/disabled: + # 'amenity=parking_space, parking_space=disabled' + name: Accessible Parking Space + # 'terms: disability,disabled parking stall,handicap parking spot,wheelchair' + terms: '' amenity/payment_centre: # amenity=payment_centre name: Payment Center diff --git a/data/presets/fields.json b/data/presets/fields.json index 72cc8342d..44ba798e5 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -63,7 +63,9 @@ "camera/direction": {"key": "camera:direction", "type": "number", "label": "Direction (Degrees Clockwise)", "placeholder": "45, 90, 180, 270"}, "camera/mount": {"key": "camera:mount", "type": "combo", "label": "Camera Mount"}, "camera/type": {"key": "camera:type", "type": "combo", "label": "Camera Type", "strings": {"options": {"fixed": "Fixed", "panning": "Panning", "dome": "Dome"}}}, + "capacity_parking": {"key": "capacity", "type": "number", "minValue": 0, "label": "Total Spaces", "placeholder": "10, 20, 30..."}, "capacity": {"key": "capacity", "type": "number", "minValue": 0, "label": "Capacity", "placeholder": "50, 100, 200..."}, + "capacity/disabled_parking": {"key": "capacity:disabled", "type": "number", "minValue": 0, "label": "Accessible Spaces", "placeholder": "1, 2, 3..."}, "cash_in": {"key": "cash_in", "type": "check", "label": "Cash In"}, "castle_type": {"key": "castle_type", "type": "combo", "label": "Type"}, "changing_table": {"key": "changing_table", "type": "check", "label": "Diaper Changing Table"}, @@ -288,6 +290,7 @@ "outdoor_seating": {"key": "outdoor_seating", "type": "check", "label": "Outdoor Seating"}, "par": {"key": "par", "type": "number", "minValue": 1, "label": "Par", "placeholder": "3, 4, 5..."}, "park_ride": {"key": "park_ride", "type": "check", "label": "Park and Ride"}, + "parking_space": {"key": "parking_space", "type": "combo", "label": "Type"}, "parking": {"key": "parking", "type": "combo", "label": "Type", "strings": {"options": {"surface": "Surface", "multi-storey": "Multilevel", "underground": "Underground", "sheds": "Sheds", "carports": "Carports", "garage_boxes": "Garage Boxes", "lane": "Roadside Lane"}}}, "payment_multi_fee": {"key": "payment:", "type": "multiCombo", "label": "Payment Types", "prerequisiteTag": {"key": "fee", "valueNot": "no"}}, "payment_multi": {"key": "payment:", "type": "multiCombo", "label": "Payment Types"}, diff --git a/data/presets/fields/capacity/disabled_parking.json b/data/presets/fields/capacity/disabled_parking.json new file mode 100644 index 000000000..36c54b2e2 --- /dev/null +++ b/data/presets/fields/capacity/disabled_parking.json @@ -0,0 +1,7 @@ +{ + "key": "capacity:disabled", + "type": "number", + "minValue": 0, + "label": "Accessible Spaces", + "placeholder": "1, 2, 3..." +} diff --git a/data/presets/fields/capacity_parking.json b/data/presets/fields/capacity_parking.json new file mode 100644 index 000000000..6f7b7277a --- /dev/null +++ b/data/presets/fields/capacity_parking.json @@ -0,0 +1,7 @@ +{ + "key": "capacity", + "type": "number", + "minValue": 0, + "label": "Total Spaces", + "placeholder": "10, 20, 30..." +} diff --git a/data/presets/fields/parking_space.json b/data/presets/fields/parking_space.json new file mode 100644 index 000000000..a7183080f --- /dev/null +++ b/data/presets/fields/parking_space.json @@ -0,0 +1,5 @@ +{ + "key": "parking_space", + "type": "combo", + "label": "Type" +} diff --git a/data/presets/presets.json b/data/presets/presets.json index 17e5a6403..e3f20a012 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -147,13 +147,14 @@ "amenity/marketplace": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "marketplace"}, "name": "Marketplace"}, "amenity/monastery": {"icon": "maki-place-of-worship", "fields": ["name", "religion", "denomination", "address"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website", "wheelchair"], "geometry": ["area", "point"], "terms": ["abbey", "basilica", "bethel", "cathedral", "chancel", "chantry", "chapel", "church", "fold", "house of God", "house of prayer", "house of worship", "minster", "mission", "monastery", "mosque", "oratory", "parish", "sacellum", "sanctuary", "shrine", "synagogue", "tabernacle", "temple"], "tags": {"amenity": "monastery"}, "name": "Monastery Grounds"}, "amenity/money_transfer": {"icon": "temaki-money_hand", "fields": ["name", "brand", "address", "building_area", "payment_multi", "currency_multi"], "moreFields": ["email", "fax", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["money order", "check", "bill", "currency", "finance", "wire transfer", "cable", "person to person", "cash to cash", "exchange"], "tags": {"amenity": "money_transfer"}, "name": "Money Transfer Station"}, - "amenity/motorcycle_parking": {"icon": "fas-motorcycle", "fields": ["capacity", "operator", "covered", "access_simple"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "motorcycle_parking"}, "name": "Motorcycle Parking"}, + "amenity/motorcycle_parking": {"icon": "fas-motorcycle", "fields": ["capacity_parking", "operator", "covered", "access_simple"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "motorcycle_parking"}, "name": "Motorcycle Parking"}, "amenity/music_school": {"icon": "fas-music", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["school of music"], "tags": {"amenity": "music_school"}, "name": "Music School"}, "amenity/nightclub": {"icon": "maki-bar", "fields": ["name", "operator", "address", "building_area", "opening_hours", "min_age", "smoking"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "nightclub"}, "terms": ["disco*", "night club", "dancing", "dance club"], "name": "Nightclub"}, "amenity/nightclub/lgbtq": {"icon": "maki-bar", "geometry": ["point", "area"], "tags": {"amenity": "nightclub", "lgbtq": "primary"}, "terms": ["gay nightclub", "lesbian nightclub", "lgbtq nightclub", "lgbt nightclub", "lgb nightclub"], "name": "LGBTQ+ Nightclub"}, "amenity/parking_entrance": {"icon": "maki-entrance-alt1", "fields": ["ref", "access_simple", "address", "level"], "geometry": ["vertex"], "tags": {"amenity": "parking_entrance"}, "name": "Parking Garage Entrance / Exit"}, - "amenity/parking_space": {"icon": "temaki-parking_space", "fields": ["capacity"], "geometry": ["area", "point", "vertex"], "terms": [], "tags": {"amenity": "parking_space"}, "matchScore": 0.95, "name": "Parking Space"}, - "amenity/parking": {"icon": "temaki-car_parked", "fields": ["operator", "operator/type", "parking", "capacity", "access_simple", "fee", "payment_multi_fee", "charge_fee", "surface"], "moreFields": ["address", "covered", "email", "fax", "maxstay", "name", "opening_hours", "park_ride", "phone", "ref", "supervised", "website", "wheelchair"], "geometry": ["area", "point", "vertex"], "tags": {"amenity": "parking"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "truck parking", "vehicle parking"], "name": "Parking Lot"}, + "amenity/parking_space": {"icon": "temaki-parking_space", "fields": ["parking_space", "capacity"], "geometry": ["area", "point", "vertex"], "tags": {"amenity": "parking_space"}, "addTags": {"amenity": "parking_space", "capacity": "1"}, "terms": ["parking spot", "parking stall"], "matchScore": 0.95, "name": "Parking Space"}, + "amenity/parking_space/disabled": {"icon": "temaki-parking_space", "geometry": ["area", "point", "vertex"], "tags": {"amenity": "parking_space", "parking_space": "disabled"}, "addTags": {"amenity": "parking_space", "parking_space": "disabled", "capacity": "1"}, "terms": ["disability", "disabled parking stall", "handicap parking spot", "wheelchair"], "matchScore": 0.95, "name": "Accessible Parking Space"}, + "amenity/parking": {"icon": "temaki-car_parked", "fields": ["operator", "operator/type", "parking", "capacity_parking", "capacity/disabled_parking", "access_simple", "fee", "payment_multi_fee", "charge_fee", "surface"], "moreFields": ["address", "covered", "email", "fax", "maxstay", "name", "opening_hours", "park_ride", "phone", "ref", "supervised", "website", "wheelchair"], "geometry": ["area", "point", "vertex"], "tags": {"amenity": "parking"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "truck parking", "vehicle parking"], "name": "Parking Lot"}, "amenity/parking/multi-storey": {"icon": "temaki-car_structure", "fields": ["name", "{amenity/parking}", "building"], "moreFields": ["{amenity/parking}", "height", "building/levels"], "geometry": ["area"], "tags": {"amenity": "parking", "parking": "multi-storey"}, "addTags": {"building": "parking", "amenity": "parking", "parking": "multi-storey"}, "reference": {"key": "parking", "value": "multi-storey"}, "terms": ["car", "indoor parking", "multistorey car park", "parkade", "parking building", "parking deck", "parking garage", "parking ramp", "parking structure"], "name": "Multilevel Parking Garage"}, "amenity/parking/park_ride": {"icon": "temaki-sign_and_car", "geometry": ["area", "point", "vertex"], "tags": {"amenity": "parking", "park_ride": "yes"}, "reference": {"key": "park_ride", "value": "yes"}, "terms": ["commuter parking lot", "incentive parking lot", "metro parking lot", "park and pool lot", "park and ride lot", "P+R", "public transport parking lot", "public transit parking lot", "train parking lot"], "matchScore": 0.95, "name": "Park & Ride Lot"}, "amenity/parking/underground": {"icon": "temaki-car_structure", "fields": ["{amenity/parking}", "layer"], "geometry": ["area", "point", "vertex"], "tags": {"amenity": "parking", "parking": "underground"}, "addTags": {"amenity": "parking", "parking": "underground", "layer": "-1"}, "reference": {"key": "parking", "value": "underground"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "subsurface parking", "truck parking", "vehicle parking"], "name": "Underground Parking"}, diff --git a/data/presets/presets/amenity/motorcycle_parking.json b/data/presets/presets/amenity/motorcycle_parking.json index 904b31854..fd5085525 100644 --- a/data/presets/presets/amenity/motorcycle_parking.json +++ b/data/presets/presets/amenity/motorcycle_parking.json @@ -1,7 +1,7 @@ { "icon": "fas-motorcycle", "fields": [ - "capacity", + "capacity_parking", "operator", "covered", "access_simple" diff --git a/data/presets/presets/amenity/parking.json b/data/presets/presets/amenity/parking.json index 6da18c497..a94980c69 100644 --- a/data/presets/presets/amenity/parking.json +++ b/data/presets/presets/amenity/parking.json @@ -4,7 +4,8 @@ "operator", "operator/type", "parking", - "capacity", + "capacity_parking", + "capacity/disabled_parking", "access_simple", "fee", "payment_multi_fee", diff --git a/data/presets/presets/amenity/parking_space.json b/data/presets/presets/amenity/parking_space.json index 5b4d979f0..a53c9dedf 100644 --- a/data/presets/presets/amenity/parking_space.json +++ b/data/presets/presets/amenity/parking_space.json @@ -1,6 +1,7 @@ { "icon": "temaki-parking_space", "fields": [ + "parking_space", "capacity" ], "geometry": [ @@ -8,10 +9,17 @@ "point", "vertex" ], - "terms": [], "tags": { "amenity": "parking_space" }, + "addTags": { + "amenity": "parking_space", + "capacity": "1" + }, + "terms": [ + "parking spot", + "parking stall" + ], "matchScore": 0.95, "name": "Parking Space" } diff --git a/data/presets/presets/amenity/parking_space/disabled.json b/data/presets/presets/amenity/parking_space/disabled.json new file mode 100644 index 000000000..776c6661a --- /dev/null +++ b/data/presets/presets/amenity/parking_space/disabled.json @@ -0,0 +1,25 @@ +{ + "icon": "temaki-parking_space", + "geometry": [ + "area", + "point", + "vertex" + ], + "tags": { + "amenity": "parking_space", + "parking_space": "disabled" + }, + "addTags": { + "amenity": "parking_space", + "parking_space": "disabled", + "capacity": "1" + }, + "terms": [ + "disability", + "disabled parking stall", + "handicap parking spot", + "wheelchair" + ], + "matchScore": 0.95, + "name": "Accessible Parking Space" +} diff --git a/data/taginfo.json b/data/taginfo.json index 736892c55..f82618d6d 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -155,6 +155,7 @@ {"key": "amenity", "value": "nightclub", "description": "🄿 Nightclub", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bar-15.svg"}, {"key": "amenity", "value": "parking_entrance", "description": "🄿 Parking Garage Entrance / Exit", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/entrance-alt1-15.svg"}, {"key": "amenity", "value": "parking_space", "description": "🄿 Parking Space", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/parking_space.svg"}, + {"key": "parking_space", "value": "disabled", "description": "🄿 Accessible Parking Space", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/parking_space.svg"}, {"key": "amenity", "value": "parking", "description": "🄿 Parking Lot", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/car_parked.svg"}, {"key": "parking", "value": "multi-storey", "description": "🄿 Multilevel Parking Garage, 🄵 Type", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/car_structure.svg"}, {"key": "park_ride", "value": "yes", "description": "🄿 Park & Ride Lot", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/sign_and_car.svg"}, @@ -1374,7 +1375,8 @@ {"key": "camera:type", "value": "fixed", "description": "🄵 Camera Type"}, {"key": "camera:type", "value": "panning", "description": "🄵 Camera Type"}, {"key": "camera:type", "value": "dome", "description": "🄵 Camera Type"}, - {"key": "capacity", "description": "🄵 Capacity"}, + {"key": "capacity", "description": "🄵 Total Spaces, 🄵 Capacity"}, + {"key": "capacity:disabled", "description": "🄵 Accessible Spaces"}, {"key": "cash_in", "description": "🄵 Cash In"}, {"key": "castle_type", "description": "🄵 Type"}, {"key": "changing_table", "description": "🄵 Diaper Changing Table"}, @@ -1668,6 +1670,7 @@ {"key": "outdoor_seating", "description": "🄵 Outdoor Seating"}, {"key": "par", "description": "🄵 Par"}, {"key": "park_ride", "description": "🄵 Park and Ride"}, + {"key": "parking_space", "description": "🄵 Type"}, {"key": "parking", "value": "surface", "description": "🄵 Type"}, {"key": "parking", "value": "sheds", "description": "🄵 Type"}, {"key": "parking", "value": "carports", "description": "🄵 Type"}, @@ -2045,6 +2048,7 @@ {"key": "direction", "value": "South", "description": "🄳 ➜ direction=S"}, {"key": "direction", "value": "uphill", "description": "🄳 ➜ incline=up"}, {"key": "direction", "value": "West", "description": "🄳 ➜ direction=W"}, + {"key": "disabled_spaces", "description": "🄳 ➜ capacity:disabled=*"}, {"key": "drinkable", "description": "🄳 ➜ drinking_water=*"}, {"key": "dropped_kerb", "description": "🄳 ➜ kerb=lowered"}, {"key": "embankment", "value": "1", "description": "🄳 ➜ embankment=yes"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 0d1050c7d..4ed500f5c 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -2955,11 +2955,19 @@ "dome": "Dome" } }, + "capacity_parking": { + "label": "Total Spaces", + "placeholder": "10, 20, 30..." + }, "capacity": { "label": "Capacity", "terms": "", "placeholder": "50, 100, 200..." }, + "capacity/disabled_parking": { + "label": "Accessible Spaces", + "placeholder": "1, 2, 3..." + }, "cash_in": { "label": "Cash In" }, @@ -3982,6 +3990,9 @@ "label": "Park and Ride", "terms": "" }, + "parking_space": { + "label": "Type" + }, "parking": { "label": "Type", "options": { @@ -5529,7 +5540,11 @@ }, "amenity/parking_space": { "name": "Parking Space", - "terms": "" + "terms": "parking spot,parking stall" + }, + "amenity/parking_space/disabled": { + "name": "Accessible Parking Space", + "terms": "disability,disabled parking stall,handicap parking spot,wheelchair" }, "amenity/parking": { "name": "Parking Lot",