From 17087f42c8eef77ab928de08684ffee39636bbbd Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 13 Mar 2019 17:51:12 -0400 Subject: [PATCH] Adding mechanism for specifying an upgrade path for deprecated presets (close #6045) --- build_data.js | 8 ++ css/30_highways.css | 1 - data/deprecated.json | 52 ----------- data/presets.yaml | 90 +++++++++---------- data/presets/presets.json | 56 ++++++------ data/presets/presets/aerialway/_station.json | 3 +- .../presets/presets/amenity/_bus_station.json | 3 +- .../presets/amenity/_ferry_terminal.json | 3 +- .../presets/amenity/_swimming_pool.json | 3 +- data/presets/presets/barrier/_entrance.json | 3 +- data/presets/presets/craft/_jeweler.json | 3 +- data/presets/presets/craft/_optician.json | 3 +- data/presets/presets/highway/_bus_stop.json | 3 +- .../highway/crossing/_zebra-raised.json | 3 +- .../presets/highway/crossing/_zebra.json | 3 +- .../highway/footway/_zebra-raised.json | 3 +- .../presets/highway/footway/_zebra.json | 3 +- data/presets/presets/landuse/_basin.json | 3 +- data/presets/presets/landuse/_farm.json | 3 +- data/presets/presets/landuse/_pond.json | 3 +- data/presets/presets/landuse/_reservoir.json | 3 +- .../presets/office/_administrative.json | 3 +- .../aerialway.json} | 0 .../{platform_bus.json => platform/bus.json} | 0 .../ferry.json} | 0 .../light_rail.json} | 0 .../monorail.json} | 0 .../subway.json} | 0 .../train.json} | 0 .../tram.json} | 0 .../trolleybus.json} | 0 data/presets/presets/railway/_platform.json | 3 +- data/presets/presets/railway/_station.json | 3 +- data/presets/schema/preset.json | 4 + data/taginfo.json | 18 ++-- dist/locales/en.json | 72 +++++++-------- modules/validations/outdated_tags.js | 41 ++++++--- test/spec/osm/entity.js | 6 +- 38 files changed, 198 insertions(+), 207 deletions(-) rename data/presets/presets/public_transport/{platform_aerialway.json => platform/aerialway.json} (100%) rename data/presets/presets/public_transport/{platform_bus.json => platform/bus.json} (100%) rename data/presets/presets/public_transport/{platform_ferry.json => platform/ferry.json} (100%) rename data/presets/presets/public_transport/{platform_light_rail.json => platform/light_rail.json} (100%) rename data/presets/presets/public_transport/{platform_monorail.json => platform/monorail.json} (100%) rename data/presets/presets/public_transport/{platform_subway.json => platform/subway.json} (100%) rename data/presets/presets/public_transport/{platform_train.json => platform/train.json} (100%) rename data/presets/presets/public_transport/{platform_tram.json => platform/tram.json} (100%) rename data/presets/presets/public_transport/{platform_trolleybus.json => platform/trolleybus.json} (100%) diff --git a/build_data.js b/build_data.js index 981b23fb3..db7722db6 100644 --- a/build_data.js +++ b/build_data.js @@ -491,6 +491,14 @@ function validatePresetFields(presets, fields) { var maxFieldsBeforeWarning = 8; for (var presetID in presets) { var preset = presets[presetID]; + + if (preset.replacement) { + if (presets[preset.replacement] === undefined) { + console.error('Unknown preset "' + preset.replacement + '" referenced as replacement of preset ' + preset.name); + process.exit(1); + } + } + // the keys for properties that contain arrays of field ids var fieldKeys = ['fields', 'moreFields']; for (var fieldsKeyIndex in fieldKeys) { diff --git a/css/30_highways.css b/css/30_highways.css index 4ff7a2b63..2246d5e87 100644 --- a/css/30_highways.css +++ b/css/30_highways.css @@ -471,7 +471,6 @@ path.line.casing.tag-highway-bridleway.tag-unpaved { stroke-dasharray: none; } -.preset-icon .icon.iD-category-path, .preset-icon .icon.tag-highway-path, .preset-icon .icon.tag-highway-footway.tag-public_transport-platform, .preset-icon .icon.tag-highway-footway.tag-man_made-pier, diff --git a/data/deprecated.json b/data/deprecated.json index 36461414d..a20f0ba43 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -1,9 +1,5 @@ { "dataDeprecated": [ - { - "old": {"aerialway": "station"}, - "replace": {"aerialway": "yes", "public_transport": "station"} - }, { "old": {"amenity": "advertising"}, "replace": {"advertising": "*"} @@ -12,10 +8,6 @@ "old": {"amenity": "artwork"}, "replace": {"tourism": "artwork"} }, - { - "old": {"amenity": "bus_station"}, - "replace": {"amenity": "bus_station", "bus": "yes", "public_transport": "station"} - }, { "old": {"amenity": "car_repair"}, "replace": {"shop": "car_repair"} @@ -32,10 +24,6 @@ "old": {"amenity": "ev_charging"}, "replace": {"amenity": "charging_station"} }, - { - "old": {"amenity": "ferry_terminal"}, - "replace": {"amenity": "ferry_terminal", "ferry": "yes", "public_transport": "station"} - }, { "old": {"amenity": "firepit"}, "replace": {"leisure": "firepit"} @@ -72,10 +60,6 @@ "old": {"amenity": "shop"}, "replace": {"shop": "*"} }, - { - "old": {"amenity": "swimming_pool"}, - "replace": {"leisure": "swimming_pool"} - }, { "old": {"amenity": "toilet"}, "replace": {"amenity": "toilets"} @@ -120,18 +104,6 @@ "old": {"color": "*"}, "replace": {"colour": "$1"} }, - { - "old": {"craft": "jeweler"}, - "replace": {"shop": "jewelery"} - }, - { - "old": {"craft": "optician"}, - "replace": {"shop": "optician"} - }, - { - "old": {"crossing": "zebra"}, - "replace": {"crossing": "marked"} - }, { "old": {"cuisine": "gluten-free"}, "replace": {"diet:gluten_free": "yes"} @@ -192,10 +164,6 @@ "old": {"highway": "abandoned"}, "replace": {"abandoned:highway": "*"} }, - { - "old": {"highway": "bus_stop"}, - "replace": {"bus": "yes", "highway": "bus_stop", "public_transport": "platform"} - }, { "old": {"highway": "ford"}, "replace": {"ford": "*"} @@ -227,18 +195,10 @@ "old": {"landuse": "conservation"}, "replace": {"boundary": "protected_area"} }, - { - "old": {"landuse": "farm"}, - "replace": {"landuse": "farmland"} - }, { "old": {"landuse": "field"}, "replace": {"landuse": "farmland"} }, - { - "old": {"landuse": "pond"}, - "replace": {"natural": "water", "water": "pond"} - }, { "old": {"landuse": "wood"}, "replace": {"natural": "wood"} @@ -279,10 +239,6 @@ "old": {"natural": "waterfall"}, "replace": {"waterway": "waterfall"} }, - { - "old": {"office": "administrative"}, - "replace": {"office": "government"} - }, { "old": {"office": "real_estate"}, "replace": {"office": "estate_agent"} @@ -311,14 +267,6 @@ "old": {"power_rating": "*"}, "replace": {"generator:output": "$1"} }, - { - "old": {"railway": "platform"}, - "replace": {"highway": "footway", "public_transport": "platform", "railway": "platform"} - }, - { - "old": {"railway": "station"}, - "replace": {"public_transport": "station", "railway": "station"} - }, { "old": {"roof:color": "*"}, "replace": {"roof:colour": "$1"} diff --git a/data/presets.yaml b/data/presets.yaml index dcdd38a9c..8f3af3948 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -5691,87 +5691,87 @@ en: name: Transit Platform # 'terms: platform,public transit,public transportation,transit,transportation' terms: '' + public_transport/platform/aerialway: + # 'public_transport=platform, aerialway=yes' + name: Aerialway Platform + # 'terms: aerialway,cable car,platform,public transit,public transportation,transit,transportation' + terms: '' public_transport/platform/aerialway_point: # 'public_transport=platform, aerialway=yes' name: Aerialway Stop / Platform + public_transport/platform/bus: + # 'public_transport=platform, bus=yes' + name: Bus Platform + # 'terms: bus,platform,public transit,public transportation,transit,transportation' + terms: '' public_transport/platform/bus_point: # 'public_transport=platform, bus=yes' name: Bus Stop # 'terms: bus,platform,public transit,public transportation,transit,transportation' terms: '' + public_transport/platform/ferry: + # 'public_transport=platform, ferry=yes' + name: Ferry Platform + # 'terms: boat,dock,ferry,pier,platform,public transit,public transportation,transit,transportation' + terms: '' public_transport/platform/ferry_point: # 'public_transport=platform, ferry=yes' name: Ferry Stop / Platform + public_transport/platform/light_rail: + # 'public_transport=platform, light_rail=yes' + name: Light Rail Platform + # 'terms: electric,light rail,platform,public transit,public transportation,rail,track,tram,trolley,transit,transportation' + terms: '' public_transport/platform/light_rail_point: # 'public_transport=platform, light_rail=yes' name: Light Rail Stop / Platform + public_transport/platform/monorail: + # 'public_transport=platform, monorail=yes' + name: Monorail Platform + # 'terms: monorail,platform,public transit,public transportation,rail,transit,transportation' + terms: '' public_transport/platform/monorail_point: # 'public_transport=platform, monorail=yes' name: Monorail Stop / Platform + public_transport/platform/subway: + # 'public_transport=platform, subway=yes' + name: Subway Platform + # 'terms: metro,platform,public transit,public transportation,rail,subway,track,transit,transportation,underground' + terms: '' public_transport/platform/subway_point: # 'public_transport=platform, subway=yes' name: Subway Stop / Platform + public_transport/platform/train: + # 'public_transport=platform, train=yes' + name: Train Platform + # 'terms: platform,public transit,public transportation,rail,track,train,transit,transportation' + terms: '' public_transport/platform/train_point: # 'public_transport=platform, train=yes' name: Train Stop / Platform + public_transport/platform/tram: + # 'public_transport=platform, tram=yes' + name: Tram Platform + # 'terms: electric,light rail,platform,public transit,public transportation,rail,streetcar,track,tram,trolley,transit,transportation' + terms: '' public_transport/platform/tram_point: # 'public_transport=platform, tram=yes' name: Tram Stop / Platform + public_transport/platform/trolleybus: + # 'public_transport=platform, trolleybus=yes' + name: Trolleybus Platform + # 'terms: bus,electric,platform,public transit,public transportation,streetcar,trackless,tram,trolley,transit,transportation' + terms: '' public_transport/platform/trolleybus_point: # 'public_transport=platform, trolleybus=yes' name: Trolleybus Stop # 'terms: bus,electric,platform,public transit,public transportation,streetcar,trackless,tram,trolley,transit,transportation' terms: '' - public_transport/platform_aerialway: - # 'public_transport=platform, aerialway=yes' - name: Aerialway Platform - # 'terms: aerialway,cable car,platform,public transit,public transportation,transit,transportation' - terms: '' - public_transport/platform_bus: - # 'public_transport=platform, bus=yes' - name: Bus Platform - # 'terms: bus,platform,public transit,public transportation,transit,transportation' - terms: '' - public_transport/platform_ferry: - # 'public_transport=platform, ferry=yes' - name: Ferry Platform - # 'terms: boat,dock,ferry,pier,platform,public transit,public transportation,transit,transportation' - terms: '' - public_transport/platform_light_rail: - # 'public_transport=platform, light_rail=yes' - name: Light Rail Platform - # 'terms: electric,light rail,platform,public transit,public transportation,rail,track,tram,trolley,transit,transportation' - terms: '' - public_transport/platform_monorail: - # 'public_transport=platform, monorail=yes' - name: Monorail Platform - # 'terms: monorail,platform,public transit,public transportation,rail,transit,transportation' - terms: '' public_transport/platform_point: # public_transport=platform name: Transit Stop / Platform # 'terms: platform,public transit,public transportation,transit,transportation' terms: '' - public_transport/platform_subway: - # 'public_transport=platform, subway=yes' - name: Subway Platform - # 'terms: metro,platform,public transit,public transportation,rail,subway,track,transit,transportation,underground' - terms: '' - public_transport/platform_train: - # 'public_transport=platform, train=yes' - name: Train Platform - # 'terms: platform,public transit,public transportation,rail,track,train,transit,transportation' - terms: '' - public_transport/platform_tram: - # 'public_transport=platform, tram=yes' - name: Tram Platform - # 'terms: electric,light rail,platform,public transit,public transportation,rail,streetcar,track,tram,trolley,transit,transportation' - terms: '' - public_transport/platform_trolleybus: - # 'public_transport=platform, trolleybus=yes' - name: Trolleybus Platform - # 'terms: bus,electric,platform,public transit,public transportation,streetcar,trackless,tram,trolley,transit,transportation' - terms: '' public_transport/station: # public_transport=station name: Transit Station diff --git a/data/presets/presets.json b/data/presets/presets.json index 17613f385..5ec3cf808 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -21,7 +21,7 @@ "address": {"fields": ["address"], "geometry": ["point", "vertex", "area"], "tags": {"addr:*": "*"}, "addTags": {}, "removeTags": {}, "reference": {"key": "addr"}, "name": "Address", "matchScore": 0.15}, "advertising/billboard": {"fields": ["direction", "lit"], "geometry": ["point", "vertex", "line"], "tags": {"advertising": "billboard"}, "name": "Billboard"}, "advertising/column": {"icon": "temaki-storage_tank", "fields": ["lit"], "geometry": ["point", "area"], "tags": {"advertising": "column"}, "name": "Advertising Column"}, - "aerialway/station": {"icon": "maki-aerialway", "geometry": ["point", "vertex", "area"], "fields": ["aerialway/access", "aerialway/summer/access", "elevation", "building_area"], "tags": {"aerialway": "station"}, "name": "Aerialway Station", "searchable": false}, + "aerialway/station": {"icon": "maki-aerialway", "geometry": ["point", "vertex", "area"], "fields": ["aerialway/access", "aerialway/summer/access", "elevation", "building_area"], "tags": {"aerialway": "station"}, "name": "Aerialway Station", "searchable": false, "replacement": "public_transport/station_aerialway"}, "aerialway/cable_car": {"geometry": ["line"], "terms": ["tramway", "ropeway"], "fields": ["name", "aerialway/occupancy", "aerialway/capacity", "aerialway/duration", "aerialway/heating"], "tags": {"aerialway": "cable_car"}, "name": "Cable Car"}, "aerialway/chair_lift": {"icon": "temaki-chairlift", "geometry": ["line"], "fields": ["name", "aerialway/occupancy", "aerialway/capacity", "aerialway/duration", "aerialway/bubble", "aerialway/heating"], "tags": {"aerialway": "chair_lift"}, "name": "Chair Lift"}, "aerialway/drag_lift": {"geometry": ["line"], "fields": ["name", "aerialway/capacity", "aerialway/duration"], "tags": {"aerialway": "drag_lift"}, "name": "Drag Lift"}, @@ -42,14 +42,14 @@ "aeroway/taxiway": {"geometry": ["line"], "fields": ["ref_taxiway", "surface"], "tags": {"aeroway": "taxiway"}, "name": "Taxiway"}, "aeroway/terminal": {"icon": "maki-airport", "geometry": ["point", "area"], "terms": ["airport", "aerodrome"], "fields": ["name", "operator", "building_area"], "moreFields": ["wheelchair", "smoking"], "tags": {"aeroway": "terminal"}, "name": "Airport Terminal"}, "allotments/plot": {"geometry": ["area"], "fields": ["name", "ref"], "tags": {"allotments": "plot"}, "reference": {"key": "allotments", "value": "plot"}, "name": "Community Garden Plot"}, - "amenity/bus_station": {"icon": "maki-bus", "fields": ["name", "building_area", "operator", "internet_access", "internet_access/fee", "internet_access/ssid"], "geometry": ["point", "area"], "tags": {"amenity": "bus_station"}, "name": "Bus Station / Terminal", "searchable": false}, + "amenity/bus_station": {"icon": "maki-bus", "fields": ["name", "building_area", "operator", "internet_access", "internet_access/fee", "internet_access/ssid"], "geometry": ["point", "area"], "tags": {"amenity": "bus_station"}, "name": "Bus Station / Terminal", "searchable": false, "replacement": "public_transport/station_bus"}, "amenity/coworking_space": {"icon": "maki-commercial", "fields": ["name", "address", "building_area", "opening_hours", "internet_access", "internet_access/fee", "internet_access/ssid"], "geometry": ["point", "area"], "tags": {"amenity": "coworking_space"}, "name": "Coworking Space", "searchable": false}, - "amenity/ferry_terminal": {"icon": "maki-ferry", "fields": ["name", "network", "operator", "address", "building_area"], "geometry": ["point", "vertex", "area"], "terms": [], "tags": {"amenity": "ferry_terminal"}, "name": "Ferry Station / Terminal", "searchable": false}, + "amenity/ferry_terminal": {"icon": "maki-ferry", "fields": ["name", "network", "operator", "address", "building_area"], "geometry": ["point", "vertex", "area"], "terms": [], "tags": {"amenity": "ferry_terminal"}, "name": "Ferry Station / Terminal", "searchable": false, "replacement": "public_transport/station_ferry"}, "amenity/nursing_home": {"icon": "maki-wheelchair", "fields": ["name", "operator", "address", "building_area", "social_facility", "social_facility_for", "opening_hours", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "nursing_home"}, "reference": {"key": "social_facility", "value": "nursing_home"}, "name": "Nursing Home", "searchable": false}, "amenity/recycling": {"icon": "maki-recycling", "fields": ["recycling_type", "recycling_accepts", "collection_times"], "geometry": ["point", "area"], "terms": ["bin", "can", "bottle", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling"}, "name": "Recycling", "searchable": false}, "amenity/register_office": {"icon": "maki-town-hall", "fields": ["name", "address", "building_area", "opening_hours", "operator"], "geometry": ["point", "area"], "tags": {"amenity": "register_office"}, "reference": {"key": "government", "value": "register_office"}, "name": "Register Office", "searchable": false}, "amenity/scrapyard": {"icon": "maki-car", "fields": ["name", "operator", "address", "opening_hours"], "geometry": ["point", "area"], "tags": {"amenity": "scrapyard"}, "reference": {"key": "industrial", "value": "scrap_yard"}, "name": "Scrap Yard", "searchable": false}, - "amenity/swimming_pool": {"icon": "maki-swimming", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "swimming_pool"}, "reference": {"key": "leisure", "value": "swimming_pool"}, "name": "Swimming Pool", "searchable": false}, + "amenity/swimming_pool": {"icon": "maki-swimming", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "swimming_pool"}, "reference": {"key": "leisure", "value": "swimming_pool"}, "name": "Swimming Pool", "searchable": false, "replacement": "leisure/swimming_pool"}, "amenity/animal_boarding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_boarding"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["boarding", "cat", "cattery", "dog", "horse", "kennel", "kitten", "pet", "pet boarding", "pet care", "pet hotel", "puppy", "reptile"], "tags": {"amenity": "animal_boarding"}, "name": "Animal Boarding Facility"}, "amenity/animal_breeding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_breeding"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["breeding", "bull", "cat", "cow", "dog", "horse", "husbandry", "kitten", "livestock", "pet breeding", "puppy", "reptile"], "tags": {"amenity": "animal_breeding"}, "name": "Animal Breeding Facility"}, "amenity/animal_shelter": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_shelter"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["adoption", "aspca", "cat", "dog", "horse", "kitten", "pet care", "pet rescue", "puppy", "raptor", "reptile", "rescue", "spca"], "tags": {"amenity": "animal_shelter"}, "name": "Animal Shelter"}, @@ -239,7 +239,7 @@ "attraction/train": {"icon": "maki-rail", "fields": ["{attraction}", "fee"], "geometry": ["point", "line"], "terms": ["theme park", "rackless train", "road train", "Tschu-Tschu train", "dotto train", "park train"], "tags": {"attraction": "train"}, "name": "Tourist Train"}, "attraction/water_slide": {"icon": "maki-swimming", "fields": ["{attraction}", "height"], "geometry": ["line", "area"], "terms": ["theme park", "aquatic park", "water park", "flumes", "water chutes", "hydroslides"], "tags": {"attraction": "water_slide"}, "name": "Water Slide"}, "barrier": {"icon": "maki-roadblock", "geometry": ["point", "vertex", "line", "area"], "tags": {"barrier": "*"}, "fields": ["barrier"], "name": "Barrier", "matchScore": 0.4}, - "barrier/entrance": {"icon": "maki-entrance-alt1", "geometry": ["vertex"], "tags": {"barrier": "entrance"}, "name": "Entrance", "searchable": false}, + "barrier/entrance": {"icon": "maki-entrance-alt1", "geometry": ["vertex"], "tags": {"barrier": "entrance"}, "name": "Entrance", "searchable": false, "replacement": "entrance"}, "barrier/block": {"icon": "maki-roadblock", "fields": ["access", "material"], "geometry": ["point", "vertex"], "tags": {"barrier": "block"}, "name": "Block"}, "barrier/bollard": {"icon": "maki-roadblock", "fields": ["access", "material"], "geometry": ["point", "vertex", "line"], "tags": {"barrier": "bollard"}, "name": "Bollard"}, "barrier/border_control": {"icon": "maki-roadblock", "fields": ["access", "building_area"], "moreFields": ["address", "website", "phone", "email", "fax"], "geometry": ["vertex", "area"], "tags": {"barrier": "border_control"}, "name": "Border Control"}, @@ -318,9 +318,9 @@ "club": {"icon": "fas-handshake", "fields": ["name", "club", "operator", "address", "building_area", "opening_hours"], "moreFields": ["access_simple", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"club": "*"}, "terms": ["social"], "name": "Club"}, "club/sport": {"icon": "maki-pitch", "fields": ["name", "sport", "{club}"], "geometry": ["point", "area"], "tags": {"club": "sport"}, "terms": ["athletics club", "sporting club", "sports association", "sports society"], "name": "Sports Club"}, "craft": {"icon": "temaki-tools", "fields": ["name", "craft", "operator", "address", "building_area", "opening_hours"], "moreFields": ["product", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"craft": "*"}, "terms": [], "name": "Craft"}, - "craft/jeweler": {"icon": "maki-marker-stroked", "geometry": ["point", "area"], "tags": {"craft": "jeweler"}, "reference": {"key": "shop", "value": "jewelry"}, "name": "Jeweler", "searchable": false}, + "craft/jeweler": {"icon": "maki-marker-stroked", "geometry": ["point", "area"], "tags": {"craft": "jeweler"}, "reference": {"key": "shop", "value": "jewelry"}, "name": "Jeweler", "searchable": false, "replacement": "shop/jewelry"}, "craft/locksmith": {"icon": "maki-marker-stroked", "geometry": ["point", "area"], "tags": {"craft": "locksmith"}, "reference": {"key": "shop", "value": "locksmith"}, "name": "Locksmith", "searchable": false}, - "craft/optician": {"icon": "maki-marker-stroked", "geometry": ["point", "area"], "tags": {"craft": "optician"}, "reference": {"key": "shop", "value": "optician"}, "name": "Optician", "searchable": false}, + "craft/optician": {"icon": "maki-marker-stroked", "geometry": ["point", "area"], "tags": {"craft": "optician"}, "reference": {"key": "shop", "value": "optician"}, "name": "Optician", "searchable": false, "replacement": "shop/optician"}, "craft/tailor": {"icon": "maki-clothing-store", "geometry": ["point", "area"], "terms": ["clothes", "suit"], "tags": {"craft": "tailor"}, "reference": {"key": "shop", "value": "tailor"}, "name": "Tailor", "searchable": false}, "craft/basket_maker": {"icon": "maki-art-gallery", "geometry": ["point", "area"], "tags": {"craft": "basket_maker"}, "name": "Basket Maker"}, "craft/beekeeper": {"icon": "maki-farm", "geometry": ["point", "area"], "tags": {"craft": "beekeeper"}, "name": "Beekeeper"}, @@ -413,13 +413,13 @@ "healthcare/psychotherapist": {"icon": "maki-hospital", "geometry": ["point", "area"], "terms": ["anxiety", "counselor", "depression", "mental health", "mind", "suicide", "therapist", "therapy"], "tags": {"healthcare": "psychotherapist"}, "name": "Psychotherapist"}, "healthcare/rehabilitation": {"icon": "maki-hospital", "geometry": ["point", "area"], "terms": ["rehab", "therapist", "therapy"], "tags": {"healthcare": "rehabilitation"}, "name": "Rehabilitation Facility"}, "healthcare/speech_therapist": {"icon": "maki-hospital", "geometry": ["point", "area"], "terms": ["speech", "therapist", "therapy", "voice"], "tags": {"healthcare": "speech_therapist"}, "name": "Speech Therapist"}, - "highway/bus_stop": {"icon": "maki-bus", "fields": ["name", "network", "operator", "bench", "shelter"], "geometry": ["point", "vertex"], "tags": {"highway": "bus_stop"}, "name": "Bus Stop", "searchable": false}, + "highway/bus_stop": {"icon": "maki-bus", "fields": ["name", "network", "operator", "bench", "shelter"], "geometry": ["point", "vertex"], "tags": {"highway": "bus_stop"}, "name": "Bus Stop", "searchable": false, "replacement": "public_transport/platform/bus_point"}, "highway/bridleway": {"fields": ["name", "surface", "width", "structure", "access", "incline", "horse_scale"], "moreFields": ["wheelchair", "lit", "smoothness", "covered", "dog"], "icon": "maki-horse-riding", "geometry": ["line"], "tags": {"highway": "bridleway"}, "terms": ["bridleway", "equestrian", "horse", "trail"], "name": "Bridle Path"}, "highway/bus_guideway": {"icon": "maki-bus", "fields": ["name", "operator", "oneway", "structure", "covered"], "geometry": ["line"], "tags": {"highway": "bus_guideway"}, "addTags": {"highway": "bus_guideway", "access": "no", "bus": "designated"}, "removeTags": {"highway": "bus_guideway", "access": "no", "bus": "designated"}, "terms": [], "name": "Bus Guideway"}, "highway/construction": {"icon": "maki-barrier", "fields": ["name", "opening_date", "check_date", "note", "oneway", "structure", "access"], "geometry": ["line"], "tags": {"highway": "construction", "access": "no"}, "terms": ["closed", "closure", "construction"], "name": "Road Closed"}, "highway/corridor": {"icon": "temaki-pedestrian", "fields": ["name", "width", "level", "access_simple", "wheelchair"], "moreFields": ["maxheight"], "geometry": ["line"], "tags": {"highway": "corridor"}, "terms": ["gallery", "hall", "hallway", "indoor", "passage", "passageway"], "name": "Indoor Corridor"}, - "highway/crossing/zebra-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "kerb", "tactile_paving"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "zebra", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["zebra crossing", "marked crossing", "crosswalk", "flat top", "hump", "speed", "slow"], "name": "Marked Crosswalk (Raised)", "searchable": false}, - "highway/crossing/zebra": {"icon": "temaki-pedestrian", "fields": ["crossing", "kerb", "tactile_paving"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "zebra"}, "reference": {"key": "highway", "value": "crossing"}, "terms": ["zebra crossing", "marked crossing", "crosswalk"], "name": "Marked Crosswalk", "searchable": false}, + "highway/crossing/zebra-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "kerb", "tactile_paving"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "zebra", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["zebra crossing", "marked crossing", "crosswalk", "flat top", "hump", "speed", "slow"], "name": "Marked Crosswalk (Raised)", "searchable": false, "replacement": "highway/crossing/marked-raised"}, + "highway/crossing/zebra": {"icon": "temaki-pedestrian", "fields": ["crossing", "kerb", "tactile_paving"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "zebra"}, "reference": {"key": "highway", "value": "crossing"}, "terms": ["zebra crossing", "marked crossing", "crosswalk"], "name": "Marked Crosswalk", "searchable": false, "replacement": "highway/crossing/marked"}, "highway/crossing/marked-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "kerb", "tactile_paving"], "geometry": ["vertex"], "tags": {"crossing": "marked", "traffic_calming": "table"}, "addTags": {"highway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "removeTags": {"highway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["zebra crossing", "marked crossing", "crosswalk", "flat top", "hump", "speed", "slow"], "name": "Marked Crosswalk (Raised)"}, "highway/crossing/marked": {"icon": "temaki-pedestrian", "fields": ["crossing", "kerb", "tactile_paving"], "geometry": ["vertex"], "tags": {"crossing": "marked"}, "addTags": {"highway": "crossing", "crossing": "marked"}, "removeTags": {"highway": "crossing", "crossing": "marked"}, "reference": {"key": "highway", "value": "crossing"}, "terms": ["zebra crossing", "marked crossing", "crosswalk"], "name": "Marked Crosswalk"}, "highway/crossing/unmarked-raised": {"fields": ["crossing", "kerb", "tactile_paving"], "geometry": ["vertex"], "addTags": {"highway": "crossing", "crossing": "unmarked", "traffic_calming": "table"}, "removeTags": {"highway": "crossing", "crossing": "unmarked", "traffic_calming": "table"}, "tags": {"highway": "crossing", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["flat top", "hump", "speed", "slow"], "name": "Unmarked Crossing (Raised)"}, @@ -427,8 +427,8 @@ "highway/cycleway": {"icon": "maki-bicycle", "fields": ["name", "oneway", "surface", "width", "structure", "access", "incline"], "moreFields": ["wheelchair", "lit", "smoothness", "maxspeed", "covered", "dog"], "geometry": ["line"], "tags": {"highway": "cycleway"}, "terms": ["bike"], "name": "Cycle Path"}, "highway/elevator": {"icon": "temaki-elevator", "fields": ["access_simple", "opening_hours", "maxweight", "ref", "wheelchair"], "moreFields": ["maxheight"], "geometry": ["vertex"], "tags": {"highway": "elevator"}, "terms": ["lift"], "name": "Elevator"}, "highway/footway": {"icon": "temaki-pedestrian", "fields": ["name", "surface", "width", "structure", "access", "incline"], "moreFields": ["wheelchair", "lit", "smoothness", "covered", "dog"], "geometry": ["line"], "terms": ["hike", "hiking", "promenade", "trackway", "trail", "walk"], "tags": {"highway": "footway"}, "matchScore": 0.9, "name": "Foot Path"}, - "highway/footway/zebra-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "kerb", "tactile_paving"], "geometry": ["line"], "tags": {"highway": "footway", "footway": "crossing", "crossing": "zebra", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["zebra crossing", "marked crossing", "crosswalk", "flat top", "hump", "speed", "slow"], "name": "Marked Crosswalk (Raised)", "searchable": false}, - "highway/footway/zebra": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "kerb", "tactile_paving"], "geometry": ["line"], "tags": {"highway": "footway", "footway": "crossing", "crossing": "zebra"}, "reference": {"key": "footway", "value": "crossing"}, "terms": ["zebra crossing", "marked crossing", "crosswalk"], "name": "Marked Crosswalk", "searchable": false}, + "highway/footway/zebra-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "kerb", "tactile_paving"], "geometry": ["line"], "tags": {"highway": "footway", "footway": "crossing", "crossing": "zebra", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["zebra crossing", "marked crossing", "crosswalk", "flat top", "hump", "speed", "slow"], "name": "Marked Crosswalk (Raised)", "searchable": false, "replacement": "highway/footway/marked-raised"}, + "highway/footway/zebra": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "kerb", "tactile_paving"], "geometry": ["line"], "tags": {"highway": "footway", "footway": "crossing", "crossing": "zebra"}, "reference": {"key": "footway", "value": "crossing"}, "terms": ["zebra crossing", "marked crossing", "crosswalk"], "name": "Marked Crosswalk", "searchable": false, "replacement": "highway/footway/marked"}, "highway/footway/conveying": {"icon": "temaki-pedestrian", "fields": ["name", "conveying", "access_simple", "lit", "width", "wheelchair"], "geometry": ["line"], "terms": ["moving sidewalk", "autwalk", "skywalk", "travolator", "travelator", "travellator", "conveyor"], "tags": {"highway": "footway", "conveying": "*"}, "name": "Moving Walkway"}, "highway/footway/marked-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "kerb", "tactile_paving"], "geometry": ["line"], "tags": {"crossing": "marked", "traffic_calming": "table"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "removeTags": {"highway": "footway", "footway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["zebra crossing", "marked crossing", "crosswalk", "flat top", "hump", "speed", "slow"], "name": "Marked Crosswalk (Raised)"}, "highway/footway/marked": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "kerb", "tactile_paving"], "geometry": ["line"], "tags": {"crossing": "marked"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "marked"}, "removeTags": {"highway": "footway", "footway": "crossing", "crossing": "marked"}, "reference": {"key": "footway", "value": "crossing"}, "terms": ["zebra crossing", "marked crossing", "crosswalk"], "name": "Marked Crosswalk"}, @@ -492,10 +492,10 @@ "junction/circular": {"geometry": ["vertex", "line"], "fields": ["name"], "tags": {"junction": "circular"}, "name": "Traffic Circle", "searchable": false}, "junction/jughandle": {"geometry": ["line"], "fields": ["name"], "tags": {"junction": "jughandle"}, "name": "Jughandle", "searchable": false}, "junction/roundabout": {"geometry": ["vertex", "line"], "fields": ["name"], "tags": {"junction": "roundabout"}, "name": "Roundabout", "searchable": false}, - "landuse/basin": {"icon": "maki-water", "fields": ["name", "basin", "intermittent_yes"], "geometry": ["area"], "tags": {"landuse": "basin"}, "name": "Basin", "searchable": false}, - "landuse/farm": {"icon": "maki-farm", "fields": ["name", "operator", "crop"], "geometry": ["point", "area"], "tags": {"landuse": "farm"}, "name": "Farmland", "searchable": false}, - "landuse/pond": {"icon": "maki-water", "fields": ["name", "intermittent"], "geometry": ["area"], "tags": {"landuse": "pond"}, "name": "Pond", "searchable": false}, - "landuse/reservoir": {"icon": "maki-water", "fields": ["name", "intermittent"], "geometry": ["area"], "tags": {"landuse": "reservoir"}, "name": "Reservoir", "searchable": false}, + "landuse/basin": {"icon": "maki-water", "fields": ["name", "basin", "intermittent_yes"], "geometry": ["area"], "tags": {"landuse": "basin"}, "name": "Basin", "searchable": false, "replacement": "natural/water/basin"}, + "landuse/farm": {"icon": "maki-farm", "fields": ["name", "operator", "crop"], "geometry": ["point", "area"], "tags": {"landuse": "farm"}, "name": "Farmland", "searchable": false, "replacement": "landuse/farmland"}, + "landuse/pond": {"icon": "maki-water", "fields": ["name", "intermittent"], "geometry": ["area"], "tags": {"landuse": "pond"}, "name": "Pond", "searchable": false, "replacement": "natural/water/pond"}, + "landuse/reservoir": {"icon": "maki-water", "fields": ["name", "intermittent"], "geometry": ["area"], "tags": {"landuse": "reservoir"}, "name": "Reservoir", "searchable": false, "replacement": "natural/water/reservoir"}, "landuse/allotments": {"icon": "maki-garden-centre", "geometry": ["area"], "fields": ["name"], "moreFields": ["address", "website", "phone", "email", "fax"], "tags": {"landuse": "allotments"}, "terms": ["allotment", "garden"], "name": "Community Garden"}, "landuse/aquaculture": {"icon": "maki-aquarium", "fields": ["name", "operator", "produce"], "moreFields": ["address", "website", "phone", "email", "fax"], "geometry": ["area"], "tags": {"landuse": "aquaculture"}, "terms": ["fish farm", "crustacean", "algae", "aquafarming", "shrimp farm", "oyster farm", "mariculture", "algaculture"], "name": "Aquaculture"}, "landuse/brownfield": {"geometry": ["area"], "fields": ["name"], "tags": {"landuse": "brownfield"}, "terms": [], "matchScore": 0.9, "name": "Brownfield"}, @@ -691,7 +691,7 @@ "natural/wood": {"icon": "maki-park-alt1", "fields": ["name", "leaf_type", "leaf_cycle"], "geometry": ["point", "area"], "tags": {"natural": "wood"}, "terms": ["tree"], "name": "Wood"}, "noexit/yes": {"icon": "maki-barrier", "geometry": ["vertex"], "terms": ["no exit", "road end", "dead end"], "tags": {"noexit": "yes"}, "reference": {"key": "noexit", "value": "*"}, "name": "No Exit"}, "office": {"icon": "maki-suitcase", "fields": ["name", "office", "address", "building_area", "opening_hours"], "moreFields": ["operator", "smoking", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "vertex", "area"], "tags": {"office": "*"}, "terms": [], "name": "Office"}, - "office/administrative": {"icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"office": "administrative"}, "terms": [], "searchable": false, "name": "Administrative Office"}, + "office/administrative": {"icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"office": "administrative"}, "terms": [], "searchable": false, "name": "Administrative Office", "replacement": "office/government"}, "office/physician": {"icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"office": "physician"}, "searchable": false, "name": "Physician"}, "office/travel_agent": {"icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"office": "travel_agent"}, "reference": {"key": "shop", "value": "travel_agency"}, "terms": [], "name": "Travel Agency", "searchable": false}, "office/accountant": {"icon": "temaki-accounting", "geometry": ["point", "area"], "tags": {"office": "accountant"}, "terms": [], "name": "Accountant Office"}, @@ -784,16 +784,7 @@ "power/switch": {"icon": "temaki-power", "fields": ["switch", "operator", "location", "cables", "voltage", "ref"], "geometry": ["point", "vertex", "area"], "tags": {"power": "switch"}, "name": "Power Switch"}, "power/tower": {"fields": ["design", "ref", "material"], "geometry": ["point", "vertex"], "terms": ["power"], "tags": {"power": "tower"}, "name": "High-Voltage Tower"}, "power/transformer": {"icon": "temaki-power", "fields": ["ref", "operator", "transformer", "location", "rating", "devices", "phases"], "moreFields": ["frequency", "voltage/primary", "voltage/secondary", "voltage/tertiary", "windings", "windings/configuration"], "geometry": ["point", "vertex", "area"], "tags": {"power": "transformer"}, "name": "Transformer"}, - "public_transport/platform_aerialway": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "aerialway": "yes"}, "addTags": {"public_transport": "platform", "aerialway": "yes", "highway": "footway"}, "removeTags": {"public_transport": "platform", "aerialway": "yes", "highway": "footway"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["aerialway", "cable car", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Aerialway Platform"}, - "public_transport/platform_bus": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "bus": "yes"}, "addTags": {"public_transport": "platform", "bus": "yes", "highway": "footway"}, "removeTags": {"public_transport": "platform", "bus": "yes", "highway": "footway"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Bus Platform"}, - "public_transport/platform_ferry": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "ferry": "yes"}, "addTags": {"public_transport": "platform", "ferry": "yes", "highway": "footway"}, "removeTags": {"public_transport": "platform", "ferry": "yes", "highway": "footway"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["boat", "dock", "ferry", "pier", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Ferry Platform"}, - "public_transport/platform_light_rail": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "light_rail": "yes"}, "addTags": {"public_transport": "platform", "light_rail": "yes", "railway": "platform", "highway": "footway"}, "removeTags": {"public_transport": "platform", "light_rail": "yes", "railway": "platform", "highway": "footway"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["electric", "light rail", "platform", "public transit", "public transportation", "rail", "track", "tram", "trolley", "transit", "transportation"], "name": "Light Rail Platform"}, - "public_transport/platform_monorail": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "monorail": "yes"}, "addTags": {"public_transport": "platform", "monorail": "yes", "railway": "platform", "highway": "footway"}, "removeTags": {"public_transport": "platform", "monorail": "yes", "railway": "platform", "highway": "footway"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["monorail", "platform", "public transit", "public transportation", "rail", "transit", "transportation"], "name": "Monorail Platform"}, "public_transport/platform_point": {"icon": "maki-rail", "fields": ["name", "network", "operator", "departures_board"], "moreFields": ["lit", "bench", "shelter", "wheelchair"], "geometry": ["point"], "tags": {"public_transport": "platform"}, "terms": ["platform", "public transit", "public transportation", "transit", "transportation"], "name": "Transit Stop / Platform", "matchScore": 0.2}, - "public_transport/platform_subway": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "subway": "yes"}, "addTags": {"public_transport": "platform", "subway": "yes", "railway": "platform", "highway": "footway"}, "removeTags": {"public_transport": "platform", "subway": "yes", "railway": "platform", "highway": "footway"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["metro", "platform", "public transit", "public transportation", "rail", "subway", "track", "transit", "transportation", "underground"], "name": "Subway Platform"}, - "public_transport/platform_train": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "train": "yes"}, "addTags": {"public_transport": "platform", "train": "yes", "railway": "platform", "highway": "footway"}, "removeTags": {"public_transport": "platform", "train": "yes", "railway": "platform", "highway": "footway"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["platform", "public transit", "public transportation", "rail", "track", "train", "transit", "transportation"], "name": "Train Platform"}, - "public_transport/platform_tram": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "tram": "yes"}, "addTags": {"public_transport": "platform", "tram": "yes", "railway": "platform", "highway": "footway"}, "removeTags": {"public_transport": "platform", "tram": "yes", "railway": "platform", "highway": "footway"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["electric", "light rail", "platform", "public transit", "public transportation", "rail", "streetcar", "track", "tram", "trolley", "transit", "transportation"], "name": "Tram Platform"}, - "public_transport/platform_trolleybus": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "trolleybus": "yes"}, "addTags": {"public_transport": "platform", "trolleybus": "yes", "highway": "footway"}, "removeTags": {"public_transport": "platform", "trolleybus": "yes", "highway": "footway"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "electric", "platform", "public transit", "public transportation", "streetcar", "trackless", "tram", "trolley", "transit", "transportation"], "name": "Trolleybus Platform"}, "public_transport/platform": {"icon": "temaki-pedestrian", "fields": ["ref_platform", "network", "operator", "departures_board", "surface"], "moreFields": ["lit", "wheelchair"], "geometry": ["line", "area"], "tags": {"public_transport": "platform"}, "addTags": {"public_transport": "platform", "highway": "footway"}, "removeTags": {"public_transport": "platform", "highway": "footway"}, "terms": ["platform", "public transit", "public transportation", "transit", "transportation"], "name": "Transit Platform", "matchScore": 0.2}, "public_transport/platform/aerialway_point": {"icon": "maki-aerialway", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "aerialway": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["aerialway", "cable car", "platform", "public transit", "public transportation", "transit", "transportation"], "searchable": false, "name": "Aerialway Stop / Platform"}, "public_transport/platform/ferry_point": {"icon": "maki-ferry", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "ferry": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["boat", "dock", "ferry", "pier", "platform", "public transit", "public transportation", "transit", "transportation"], "searchable": false, "name": "Ferry Stop / Platform"}, @@ -802,8 +793,17 @@ "public_transport/platform/subway_point": {"icon": "temaki-subway", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "subway": "yes"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["metro", "platform", "public transit", "public transportation", "rail", "subway", "track", "transit", "transportation", "underground"], "searchable": false, "name": "Subway Stop / Platform"}, "public_transport/platform/train_point": {"icon": "maki-rail", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "train": "yes"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["platform", "public transit", "public transportation", "rail", "track", "train", "transit", "transportation"], "searchable": false, "name": "Train Stop / Platform"}, "public_transport/platform/tram_point": {"icon": "temaki-tram", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "tram": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["electric", "light rail", "platform", "public transit", "public transportation", "rail", "streetcar", "track", "tram", "trolley", "transit", "transportation"], "searchable": false, "name": "Tram Stop / Platform"}, + "public_transport/platform/aerialway": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "aerialway": "yes"}, "addTags": {"public_transport": "platform", "aerialway": "yes", "highway": "footway"}, "removeTags": {"public_transport": "platform", "aerialway": "yes", "highway": "footway"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["aerialway", "cable car", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Aerialway Platform"}, "public_transport/platform/bus_point": {"icon": "maki-bus", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "bus": "yes"}, "addTags": {"public_transport": "platform", "bus": "yes", "highway": "bus_stop"}, "removeTags": {"public_transport": "platform", "bus": "yes", "highway": "bus_stop"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Bus Stop"}, + "public_transport/platform/bus": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "bus": "yes"}, "addTags": {"public_transport": "platform", "bus": "yes", "highway": "footway"}, "removeTags": {"public_transport": "platform", "bus": "yes", "highway": "footway"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Bus Platform"}, + "public_transport/platform/ferry": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "ferry": "yes"}, "addTags": {"public_transport": "platform", "ferry": "yes", "highway": "footway"}, "removeTags": {"public_transport": "platform", "ferry": "yes", "highway": "footway"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["boat", "dock", "ferry", "pier", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Ferry Platform"}, + "public_transport/platform/light_rail": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "light_rail": "yes"}, "addTags": {"public_transport": "platform", "light_rail": "yes", "railway": "platform", "highway": "footway"}, "removeTags": {"public_transport": "platform", "light_rail": "yes", "railway": "platform", "highway": "footway"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["electric", "light rail", "platform", "public transit", "public transportation", "rail", "track", "tram", "trolley", "transit", "transportation"], "name": "Light Rail Platform"}, + "public_transport/platform/monorail": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "monorail": "yes"}, "addTags": {"public_transport": "platform", "monorail": "yes", "railway": "platform", "highway": "footway"}, "removeTags": {"public_transport": "platform", "monorail": "yes", "railway": "platform", "highway": "footway"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["monorail", "platform", "public transit", "public transportation", "rail", "transit", "transportation"], "name": "Monorail Platform"}, + "public_transport/platform/subway": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "subway": "yes"}, "addTags": {"public_transport": "platform", "subway": "yes", "railway": "platform", "highway": "footway"}, "removeTags": {"public_transport": "platform", "subway": "yes", "railway": "platform", "highway": "footway"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["metro", "platform", "public transit", "public transportation", "rail", "subway", "track", "transit", "transportation", "underground"], "name": "Subway Platform"}, + "public_transport/platform/train": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "train": "yes"}, "addTags": {"public_transport": "platform", "train": "yes", "railway": "platform", "highway": "footway"}, "removeTags": {"public_transport": "platform", "train": "yes", "railway": "platform", "highway": "footway"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["platform", "public transit", "public transportation", "rail", "track", "train", "transit", "transportation"], "name": "Train Platform"}, + "public_transport/platform/tram": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "tram": "yes"}, "addTags": {"public_transport": "platform", "tram": "yes", "railway": "platform", "highway": "footway"}, "removeTags": {"public_transport": "platform", "tram": "yes", "railway": "platform", "highway": "footway"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["electric", "light rail", "platform", "public transit", "public transportation", "rail", "streetcar", "track", "tram", "trolley", "transit", "transportation"], "name": "Tram Platform"}, "public_transport/platform/trolleybus_point": {"icon": "temaki-trolleybus", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "trolleybus": "yes"}, "addTags": {"public_transport": "platform", "trolleybus": "yes", "highway": "bus_stop"}, "removeTags": {"public_transport": "platform", "trolleybus": "yes", "highway": "bus_stop"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "electric", "platform", "public transit", "public transportation", "streetcar", "trackless", "tram", "trolley", "transit", "transportation"], "name": "Trolleybus Stop"}, + "public_transport/platform/trolleybus": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "trolleybus": "yes"}, "addTags": {"public_transport": "platform", "trolleybus": "yes", "highway": "footway"}, "removeTags": {"public_transport": "platform", "trolleybus": "yes", "highway": "footway"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "electric", "platform", "public transit", "public transportation", "streetcar", "trackless", "tram", "trolley", "transit", "transportation"], "name": "Trolleybus Platform"}, "public_transport/station_aerialway": {"icon": "maki-aerialway", "fields": ["{public_transport/station}", "aerialway/access", "aerialway/summer/access"], "moreFields": ["{public_transport/station}"], "geometry": ["point", "area"], "tags": {"public_transport": "station", "aerialway": "yes"}, "reference": {"key": "aerialway", "value": "station"}, "terms": ["aerialway", "cable car", "public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Aerialway Station"}, "public_transport/station_bus": {"icon": "maki-bus", "fields": ["{public_transport/station}"], "moreFields": ["{public_transport/station}"], "geometry": ["point", "area"], "tags": {"public_transport": "station", "bus": "yes"}, "addTags": {"public_transport": "station", "bus": "yes", "amenity": "bus_station"}, "removeTags": {"public_transport": "station", "bus": "yes", "amenity": "bus_station"}, "reference": {"key": "amenity", "value": "bus_station"}, "terms": ["bus", "public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Bus Station / Terminal"}, "public_transport/station_ferry": {"icon": "maki-ferry", "fields": ["{public_transport/station}"], "moreFields": ["{public_transport/station}"], "geometry": ["point", "area"], "tags": {"public_transport": "station", "ferry": "yes"}, "addTags": {"public_transport": "station", "ferry": "yes", "amenity": "ferry_terminal"}, "removeTags": {"public_transport": "station", "ferry": "yes", "amenity": "ferry_terminal"}, "reference": {"key": "amenity", "value": "ferry_terminal"}, "terms": ["boat", "dock", "ferry", "pier", "public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Ferry Station / Terminal"}, @@ -827,8 +827,8 @@ "public_transport/stop_position_trolleybus": {"icon": "temaki-trolleybus", "fields": ["{public_transport/stop_position}"], "moreFields": ["{public_transport/stop_position}"], "geometry": ["vertex"], "tags": {"public_transport": "stop_position", "trolleybus": "yes"}, "reference": {"key": "public_transport", "value": "stop_position"}, "terms": ["bus", "electric", "public transit", "public transportation", "streetcar", "trackless", "tram", "trolley", "transit", "transportation"], "name": "Trolleybus Stopping Location"}, "public_transport/stop_position": {"icon": "maki-bus", "fields": ["name", "ref_stop_position", "network", "operator"], "geometry": ["vertex"], "tags": {"public_transport": "stop_position"}, "terms": ["public transit", "public transportation", "transit", "transportation"], "name": "Transit Stopping Location", "matchScore": 0.2}, "railway/halt": {"icon": "maki-rail", "geometry": ["point", "vertex"], "tags": {"railway": "halt"}, "terms": ["break", "interrupt", "rest", "wait", "interruption"], "name": "Train Station (Halt / Request)", "searchable": false}, - "railway/platform": {"icon": "temaki-pedestrian", "fields": ["name", "ref_platform", "surface", "lit", "shelter"], "geometry": ["line", "area"], "tags": {"railway": "platform"}, "name": "Train Platform", "searchable": false}, - "railway/station": {"icon": "maki-rail", "fields": ["name", "network", "operator", "address", "building_area", "internet_access", "internet_access/fee", "internet_access/ssid"], "geometry": ["point", "vertex", "area"], "tags": {"railway": "station"}, "terms": ["train station", "station"], "name": "Train Station", "searchable": false}, + "railway/platform": {"icon": "temaki-pedestrian", "fields": ["name", "ref_platform", "surface", "lit", "shelter"], "geometry": ["line", "area"], "tags": {"railway": "platform"}, "name": "Train Platform", "searchable": false, "replacement": "public_transport/platform/train"}, + "railway/station": {"icon": "maki-rail", "fields": ["name", "network", "operator", "address", "building_area", "internet_access", "internet_access/fee", "internet_access/ssid"], "geometry": ["point", "vertex", "area"], "tags": {"railway": "station"}, "terms": ["train station", "station"], "name": "Train Station", "searchable": false, "replacement": "public_transport/station_train"}, "railway/tram_stop": {"icon": "temaki-tram", "fields": ["name", "network", "operator"], "geometry": ["vertex"], "tags": {"railway": "tram_stop"}, "terms": ["light rail", "streetcar", "tram", "trolley"], "name": "Tram Stopping Position", "searchable": false}, "railway/abandoned": {"icon": "iD-railway-abandoned", "fields": ["name", "structure", "service_rail", "usage_rail"], "moreFields": ["covered"], "geometry": ["line"], "tags": {"railway": "abandoned"}, "terms": [], "name": "Abandoned Railway"}, "railway/buffer_stop": {"icon": "temaki-buffer_stop", "geometry": ["vertex"], "tags": {"railway": "buffer_stop"}, "terms": ["stop", "halt", "buffer"], "name": "Buffer Stop"}, diff --git a/data/presets/presets/aerialway/_station.json b/data/presets/presets/aerialway/_station.json index 55d126cd5..4b4632a34 100644 --- a/data/presets/presets/aerialway/_station.json +++ b/data/presets/presets/aerialway/_station.json @@ -15,5 +15,6 @@ "aerialway": "station" }, "name": "Aerialway Station", - "searchable": false + "searchable": false, + "replacement": "public_transport/station_aerialway" } diff --git a/data/presets/presets/amenity/_bus_station.json b/data/presets/presets/amenity/_bus_station.json index e0d084ceb..fa9a61de5 100644 --- a/data/presets/presets/amenity/_bus_station.json +++ b/data/presets/presets/amenity/_bus_station.json @@ -16,5 +16,6 @@ "amenity": "bus_station" }, "name": "Bus Station / Terminal", - "searchable": false + "searchable": false, + "replacement": "public_transport/station_bus" } diff --git a/data/presets/presets/amenity/_ferry_terminal.json b/data/presets/presets/amenity/_ferry_terminal.json index 5d3ac84af..b75d03b4c 100644 --- a/data/presets/presets/amenity/_ferry_terminal.json +++ b/data/presets/presets/amenity/_ferry_terminal.json @@ -17,5 +17,6 @@ "amenity": "ferry_terminal" }, "name": "Ferry Station / Terminal", - "searchable": false + "searchable": false, + "replacement": "public_transport/station_ferry" } diff --git a/data/presets/presets/amenity/_swimming_pool.json b/data/presets/presets/amenity/_swimming_pool.json index ba0c48150..48b72d023 100644 --- a/data/presets/presets/amenity/_swimming_pool.json +++ b/data/presets/presets/amenity/_swimming_pool.json @@ -13,5 +13,6 @@ "value": "swimming_pool" }, "name": "Swimming Pool", - "searchable": false + "searchable": false, + "replacement": "leisure/swimming_pool" } diff --git a/data/presets/presets/barrier/_entrance.json b/data/presets/presets/barrier/_entrance.json index a1240a4d9..48c10e0a7 100644 --- a/data/presets/presets/barrier/_entrance.json +++ b/data/presets/presets/barrier/_entrance.json @@ -7,5 +7,6 @@ "barrier": "entrance" }, "name": "Entrance", - "searchable": false + "searchable": false, + "replacement": "entrance" } diff --git a/data/presets/presets/craft/_jeweler.json b/data/presets/presets/craft/_jeweler.json index 1e020c481..cf950666f 100644 --- a/data/presets/presets/craft/_jeweler.json +++ b/data/presets/presets/craft/_jeweler.json @@ -12,5 +12,6 @@ "value": "jewelry" }, "name": "Jeweler", - "searchable": false + "searchable": false, + "replacement": "shop/jewelry" } diff --git a/data/presets/presets/craft/_optician.json b/data/presets/presets/craft/_optician.json index f914ac0cd..d608d1278 100644 --- a/data/presets/presets/craft/_optician.json +++ b/data/presets/presets/craft/_optician.json @@ -12,5 +12,6 @@ "value": "optician" }, "name": "Optician", - "searchable": false + "searchable": false, + "replacement": "shop/optician" } diff --git a/data/presets/presets/highway/_bus_stop.json b/data/presets/presets/highway/_bus_stop.json index 300f54cb2..42b1df83f 100644 --- a/data/presets/presets/highway/_bus_stop.json +++ b/data/presets/presets/highway/_bus_stop.json @@ -15,5 +15,6 @@ "highway": "bus_stop" }, "name": "Bus Stop", - "searchable": false + "searchable": false, + "replacement": "public_transport/platform/bus_point" } diff --git a/data/presets/presets/highway/crossing/_zebra-raised.json b/data/presets/presets/highway/crossing/_zebra-raised.json index 3b47aa2b4..32631e012 100644 --- a/data/presets/presets/highway/crossing/_zebra-raised.json +++ b/data/presets/presets/highway/crossing/_zebra-raised.json @@ -27,5 +27,6 @@ "slow" ], "name": "Marked Crosswalk (Raised)", - "searchable": false + "searchable": false, + "replacement": "highway/crossing/marked-raised" } diff --git a/data/presets/presets/highway/crossing/_zebra.json b/data/presets/presets/highway/crossing/_zebra.json index dfbee0997..b4ca9fbf0 100644 --- a/data/presets/presets/highway/crossing/_zebra.json +++ b/data/presets/presets/highway/crossing/_zebra.json @@ -22,5 +22,6 @@ "crosswalk" ], "name": "Marked Crosswalk", - "searchable": false + "searchable": false, + "replacement": "highway/crossing/marked" } diff --git a/data/presets/presets/highway/footway/_zebra-raised.json b/data/presets/presets/highway/footway/_zebra-raised.json index d7463d63a..aaf778870 100644 --- a/data/presets/presets/highway/footway/_zebra-raised.json +++ b/data/presets/presets/highway/footway/_zebra-raised.json @@ -30,5 +30,6 @@ "slow" ], "name": "Marked Crosswalk (Raised)", - "searchable": false + "searchable": false, + "replacement": "highway/footway/marked-raised" } diff --git a/data/presets/presets/highway/footway/_zebra.json b/data/presets/presets/highway/footway/_zebra.json index 4f9f5d7cb..982b9b67f 100644 --- a/data/presets/presets/highway/footway/_zebra.json +++ b/data/presets/presets/highway/footway/_zebra.json @@ -25,5 +25,6 @@ "crosswalk" ], "name": "Marked Crosswalk", - "searchable": false + "searchable": false, + "replacement": "highway/footway/marked" } diff --git a/data/presets/presets/landuse/_basin.json b/data/presets/presets/landuse/_basin.json index dc9633786..2e81f8436 100644 --- a/data/presets/presets/landuse/_basin.json +++ b/data/presets/presets/landuse/_basin.json @@ -12,5 +12,6 @@ "landuse": "basin" }, "name": "Basin", - "searchable": false + "searchable": false, + "replacement": "natural/water/basin" } diff --git a/data/presets/presets/landuse/_farm.json b/data/presets/presets/landuse/_farm.json index f347b04ec..29d06d03b 100644 --- a/data/presets/presets/landuse/_farm.json +++ b/data/presets/presets/landuse/_farm.json @@ -13,5 +13,6 @@ "landuse": "farm" }, "name": "Farmland", - "searchable": false + "searchable": false, + "replacement": "landuse/farmland" } diff --git a/data/presets/presets/landuse/_pond.json b/data/presets/presets/landuse/_pond.json index cf31f3794..b890536a6 100644 --- a/data/presets/presets/landuse/_pond.json +++ b/data/presets/presets/landuse/_pond.json @@ -11,5 +11,6 @@ "landuse": "pond" }, "name": "Pond", - "searchable": false + "searchable": false, + "replacement": "natural/water/pond" } diff --git a/data/presets/presets/landuse/_reservoir.json b/data/presets/presets/landuse/_reservoir.json index c46c2adf8..915704ffd 100644 --- a/data/presets/presets/landuse/_reservoir.json +++ b/data/presets/presets/landuse/_reservoir.json @@ -11,5 +11,6 @@ "landuse": "reservoir" }, "name": "Reservoir", - "searchable": false + "searchable": false, + "replacement": "natural/water/reservoir" } diff --git a/data/presets/presets/office/_administrative.json b/data/presets/presets/office/_administrative.json index 904828afe..a64e90196 100644 --- a/data/presets/presets/office/_administrative.json +++ b/data/presets/presets/office/_administrative.json @@ -9,5 +9,6 @@ }, "terms": [], "searchable": false, - "name": "Administrative Office" + "name": "Administrative Office", + "replacement": "office/government" } diff --git a/data/presets/presets/public_transport/platform_aerialway.json b/data/presets/presets/public_transport/platform/aerialway.json similarity index 100% rename from data/presets/presets/public_transport/platform_aerialway.json rename to data/presets/presets/public_transport/platform/aerialway.json diff --git a/data/presets/presets/public_transport/platform_bus.json b/data/presets/presets/public_transport/platform/bus.json similarity index 100% rename from data/presets/presets/public_transport/platform_bus.json rename to data/presets/presets/public_transport/platform/bus.json diff --git a/data/presets/presets/public_transport/platform_ferry.json b/data/presets/presets/public_transport/platform/ferry.json similarity index 100% rename from data/presets/presets/public_transport/platform_ferry.json rename to data/presets/presets/public_transport/platform/ferry.json diff --git a/data/presets/presets/public_transport/platform_light_rail.json b/data/presets/presets/public_transport/platform/light_rail.json similarity index 100% rename from data/presets/presets/public_transport/platform_light_rail.json rename to data/presets/presets/public_transport/platform/light_rail.json diff --git a/data/presets/presets/public_transport/platform_monorail.json b/data/presets/presets/public_transport/platform/monorail.json similarity index 100% rename from data/presets/presets/public_transport/platform_monorail.json rename to data/presets/presets/public_transport/platform/monorail.json diff --git a/data/presets/presets/public_transport/platform_subway.json b/data/presets/presets/public_transport/platform/subway.json similarity index 100% rename from data/presets/presets/public_transport/platform_subway.json rename to data/presets/presets/public_transport/platform/subway.json diff --git a/data/presets/presets/public_transport/platform_train.json b/data/presets/presets/public_transport/platform/train.json similarity index 100% rename from data/presets/presets/public_transport/platform_train.json rename to data/presets/presets/public_transport/platform/train.json diff --git a/data/presets/presets/public_transport/platform_tram.json b/data/presets/presets/public_transport/platform/tram.json similarity index 100% rename from data/presets/presets/public_transport/platform_tram.json rename to data/presets/presets/public_transport/platform/tram.json diff --git a/data/presets/presets/public_transport/platform_trolleybus.json b/data/presets/presets/public_transport/platform/trolleybus.json similarity index 100% rename from data/presets/presets/public_transport/platform_trolleybus.json rename to data/presets/presets/public_transport/platform/trolleybus.json diff --git a/data/presets/presets/railway/_platform.json b/data/presets/presets/railway/_platform.json index dbdebc28c..7ab9b541b 100644 --- a/data/presets/presets/railway/_platform.json +++ b/data/presets/presets/railway/_platform.json @@ -15,5 +15,6 @@ "railway": "platform" }, "name": "Train Platform", - "searchable": false + "searchable": false, + "replacement": "public_transport/platform/train" } diff --git a/data/presets/presets/railway/_station.json b/data/presets/presets/railway/_station.json index 50cf27e0c..e24e2020d 100644 --- a/data/presets/presets/railway/_station.json +++ b/data/presets/presets/railway/_station.json @@ -23,5 +23,6 @@ "station" ], "name": "Train Station", - "searchable": false + "searchable": false, + "replacement": "public_transport/station_train" } diff --git a/data/presets/schema/preset.json b/data/presets/schema/preset.json index d16b0b1f7..53e4c210a 100644 --- a/data/presets/schema/preset.json +++ b/data/presets/schema/preset.json @@ -91,6 +91,10 @@ } }, "additionalProperties": false + }, + "replacement": { + "description": "The ID of a preset that is preferable to this one", + "type": "string" } }, "additionalProperties": false diff --git a/data/taginfo.json b/data/taginfo.json index 97e5b2bbd..08a734312 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -760,16 +760,16 @@ {"key": "power", "value": "switch", "description": "🄿 Power Switch", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/power.svg?sanitize=true"}, {"key": "power", "value": "tower", "description": "🄿 High-Voltage Tower", "object_types": ["node"]}, {"key": "power", "value": "transformer", "description": "🄿 Transformer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/power.svg?sanitize=true"}, - {"key": "aerialway", "value": "yes", "description": "🄿 Aerialway Platform, 🄿 Aerialway Stop / Platform (unsearchable), 🄿 Aerialway Station, 🄿 Aerialway Stopping Location", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "bus", "value": "yes", "description": "🄿 Bus Platform, 🄿 Bus Stop, 🄿 Bus Station / Terminal, 🄿 Bus Stopping Location", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "ferry", "value": "yes", "description": "🄿 Ferry Platform, 🄿 Ferry Stop / Platform (unsearchable), 🄿 Ferry Station / Terminal, 🄿 Ferry Stopping Location", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "light_rail", "value": "yes", "description": "🄿 Light Rail Platform, 🄿 Light Rail Stop / Platform (unsearchable), 🄿 Light Rail Station, 🄿 Light Rail Stopping Location", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "monorail", "value": "yes", "description": "🄿 Monorail Platform, 🄿 Monorail Stop / Platform (unsearchable), 🄿 Monorail Station, 🄿 Monorail Stopping Location", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, {"key": "public_transport", "value": "platform", "description": "🄿 Transit Stop / Platform, 🄿 Transit Platform", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, - {"key": "subway", "value": "yes", "description": "🄿 Subway Platform, 🄿 Subway Stop / Platform (unsearchable), 🄿 Subway Station, 🄿 Subway Stopping Location", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "train", "value": "yes", "description": "🄿 Train Platform, 🄿 Train Stop / Platform (unsearchable), 🄿 Train Station, 🄿 Train Stopping Location", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "tram", "value": "yes", "description": "🄿 Tram Platform, 🄿 Tram Stop / Platform (unsearchable), 🄿 Tram Station, 🄿 Tram Stopping Location", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "trolleybus", "value": "yes", "description": "🄿 Trolleybus Platform, 🄿 Trolleybus Stop, 🄿 Trolleybus Station / Terminal, 🄿 Trolleybus Stopping Location", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, + {"key": "aerialway", "value": "yes", "description": "🄿 Aerialway Stop / Platform (unsearchable), 🄿 Aerialway Platform, 🄿 Aerialway Station, 🄿 Aerialway Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/aerialway-15.svg?sanitize=true"}, + {"key": "ferry", "value": "yes", "description": "🄿 Ferry Stop / Platform (unsearchable), 🄿 Ferry Platform, 🄿 Ferry Station / Terminal, 🄿 Ferry Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/ferry-15.svg?sanitize=true"}, + {"key": "light_rail", "value": "yes", "description": "🄿 Light Rail Stop / Platform (unsearchable), 🄿 Light Rail Platform, 🄿 Light Rail Station, 🄿 Light Rail Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/light_rail.svg?sanitize=true"}, + {"key": "monorail", "value": "yes", "description": "🄿 Monorail Stop / Platform (unsearchable), 🄿 Monorail Platform, 🄿 Monorail Station, 🄿 Monorail Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/monorail.svg?sanitize=true"}, + {"key": "subway", "value": "yes", "description": "🄿 Subway Stop / Platform (unsearchable), 🄿 Subway Platform, 🄿 Subway Station, 🄿 Subway Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/subway.svg?sanitize=true"}, + {"key": "train", "value": "yes", "description": "🄿 Train Stop / Platform (unsearchable), 🄿 Train Platform, 🄿 Train Station, 🄿 Train Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, + {"key": "tram", "value": "yes", "description": "🄿 Tram Stop / Platform (unsearchable), 🄿 Tram Platform, 🄿 Tram Station, 🄿 Tram Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tram.svg?sanitize=true"}, + {"key": "bus", "value": "yes", "description": "🄿 Bus Stop, 🄿 Bus Platform, 🄿 Bus Station / Terminal, 🄿 Bus Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bus-15.svg?sanitize=true"}, + {"key": "trolleybus", "value": "yes", "description": "🄿 Trolleybus Stop, 🄿 Trolleybus Platform, 🄿 Trolleybus Station / Terminal, 🄿 Trolleybus Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/trolleybus.svg?sanitize=true"}, {"key": "railway", "value": "halt", "description": "🄿 Train Station (Halt / Request), 🄿 Train Station (Halt / Request) (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, {"key": "public_transport", "value": "station", "description": "🄿 Transit Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, {"key": "public_transport", "value": "stop_area", "description": "🄿 Transit Stop Area", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/relation.svg?sanitize=true"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 18e6c5cb3..57a3d42c5 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -7040,46 +7040,10 @@ "name": "Transformer", "terms": "" }, - "public_transport/platform_aerialway": { - "name": "Aerialway Platform", - "terms": "aerialway,cable car,platform,public transit,public transportation,transit,transportation" - }, - "public_transport/platform_bus": { - "name": "Bus Platform", - "terms": "bus,platform,public transit,public transportation,transit,transportation" - }, - "public_transport/platform_ferry": { - "name": "Ferry Platform", - "terms": "boat,dock,ferry,pier,platform,public transit,public transportation,transit,transportation" - }, - "public_transport/platform_light_rail": { - "name": "Light Rail Platform", - "terms": "electric,light rail,platform,public transit,public transportation,rail,track,tram,trolley,transit,transportation" - }, - "public_transport/platform_monorail": { - "name": "Monorail Platform", - "terms": "monorail,platform,public transit,public transportation,rail,transit,transportation" - }, "public_transport/platform_point": { "name": "Transit Stop / Platform", "terms": "platform,public transit,public transportation,transit,transportation" }, - "public_transport/platform_subway": { - "name": "Subway Platform", - "terms": "metro,platform,public transit,public transportation,rail,subway,track,transit,transportation,underground" - }, - "public_transport/platform_train": { - "name": "Train Platform", - "terms": "platform,public transit,public transportation,rail,track,train,transit,transportation" - }, - "public_transport/platform_tram": { - "name": "Tram Platform", - "terms": "electric,light rail,platform,public transit,public transportation,rail,streetcar,track,tram,trolley,transit,transportation" - }, - "public_transport/platform_trolleybus": { - "name": "Trolleybus Platform", - "terms": "bus,electric,platform,public transit,public transportation,streetcar,trackless,tram,trolley,transit,transportation" - }, "public_transport/platform": { "name": "Transit Platform", "terms": "platform,public transit,public transportation,transit,transportation" @@ -7112,14 +7076,50 @@ "name": "Tram Stop / Platform", "terms": "electric,light rail,platform,public transit,public transportation,rail,streetcar,track,tram,trolley,transit,transportation" }, + "public_transport/platform/aerialway": { + "name": "Aerialway Platform", + "terms": "aerialway,cable car,platform,public transit,public transportation,transit,transportation" + }, "public_transport/platform/bus_point": { "name": "Bus Stop", "terms": "bus,platform,public transit,public transportation,transit,transportation" }, + "public_transport/platform/bus": { + "name": "Bus Platform", + "terms": "bus,platform,public transit,public transportation,transit,transportation" + }, + "public_transport/platform/ferry": { + "name": "Ferry Platform", + "terms": "boat,dock,ferry,pier,platform,public transit,public transportation,transit,transportation" + }, + "public_transport/platform/light_rail": { + "name": "Light Rail Platform", + "terms": "electric,light rail,platform,public transit,public transportation,rail,track,tram,trolley,transit,transportation" + }, + "public_transport/platform/monorail": { + "name": "Monorail Platform", + "terms": "monorail,platform,public transit,public transportation,rail,transit,transportation" + }, + "public_transport/platform/subway": { + "name": "Subway Platform", + "terms": "metro,platform,public transit,public transportation,rail,subway,track,transit,transportation,underground" + }, + "public_transport/platform/train": { + "name": "Train Platform", + "terms": "platform,public transit,public transportation,rail,track,train,transit,transportation" + }, + "public_transport/platform/tram": { + "name": "Tram Platform", + "terms": "electric,light rail,platform,public transit,public transportation,rail,streetcar,track,tram,trolley,transit,transportation" + }, "public_transport/platform/trolleybus_point": { "name": "Trolleybus Stop", "terms": "bus,electric,platform,public transit,public transportation,streetcar,trackless,tram,trolley,transit,transportation" }, + "public_transport/platform/trolleybus": { + "name": "Trolleybus Platform", + "terms": "bus,electric,platform,public transit,public transportation,streetcar,trackless,tram,trolley,transit,transportation" + }, "public_transport/station_aerialway": { "name": "Aerialway Station", "terms": "aerialway,cable car,public transit,public transportation,station,terminal,transit,transportation" diff --git a/modules/validations/outdated_tags.js b/modules/validations/outdated_tags.js index 4fc8326eb..bbbf9fef8 100644 --- a/modules/validations/outdated_tags.js +++ b/modules/validations/outdated_tags.js @@ -1,7 +1,7 @@ import _clone from 'lodash-es/clone'; import { t } from '../util/locale'; -import { actionUpgradeTags, actionChangeTags } from '../actions'; +import { actionUpgradeTags, actionChangeTags, actionChangePreset } from '../actions'; import { utilDisplayLabel } from '../util'; import { validationIssue, validationIssueFix } from '../core/validator'; @@ -9,23 +9,29 @@ export function validationOutdatedTags() { var type = 'outdated_tags'; - var validation = function(entity, context) { - - var deprecatedTagsArray = entity.deprecatedTags(); - - var preset = context.presets().match(entity, context.graph()); - var missingRecommendedTags = {}; + function missingRecommendedTags(entity, context, graph) { + var preset = context.presets().match(entity, graph); if (!preset.isFallback() && preset.tags !== preset.addTags) { - missingRecommendedTags = Object.keys(preset.addTags).reduce(function(obj, key) { + return Object.keys(preset.addTags).reduce(function(obj, key) { if (!entity.tags[key]) { obj[key] = preset.addTags[key]; } return obj; }, {}); } + return {}; + } - if (deprecatedTagsArray.length === 0 && - Object.keys(missingRecommendedTags).length === 0) return []; + + var validation = function(entity, context) { + + var replacementPresetID = context.presets().match(entity, context.graph()).replacement; + var deprecatedTagsArray = entity.deprecatedTags(); + var missingTags = missingRecommendedTags(entity, context, context.graph()); + + + if (!replacementPresetID && deprecatedTagsArray.length === 0 && + Object.keys(missingTags).length === 0) return []; return [new validationIssue({ type: type, @@ -35,24 +41,31 @@ export function validationOutdatedTags() { entities: [entity], info: { deprecatedTagsArray: deprecatedTagsArray, - missingRecommendedTags: missingRecommendedTags + replacementPresetID: replacementPresetID }, fixes: [ new validationIssueFix({ icon: 'iD-icon-up', title: t('issues.fix.upgrade_tags.title'), onClick: function() { + var replacementPresetID = this.issue.info.replacementPresetID; + var replacementPreset = replacementPresetID && context.presets().item(replacementPresetID); var deprecatedTagsArray = this.issue.info.deprecatedTagsArray; - var missingRecommendedTags = this.issue.info.missingRecommendedTags; var entityID = this.issue.entities[0].id; context.perform( function(graph) { + if (replacementPreset) { + var oldPreset = context.presets().match(graph.entity(entityID), context.graph()); + graph = actionChangePreset(entityID, oldPreset, replacementPreset)(graph); + deprecatedTagsArray = graph.entity(entityID).deprecatedTags(); + } deprecatedTagsArray.forEach(function(deprecatedTags) { graph = actionUpgradeTags(entityID, deprecatedTags.old, deprecatedTags.replace)(graph); }); + var missingTags = missingRecommendedTags(graph.entity(entityID), context, graph); var tags = _clone(graph.entity(entityID).tags); - for (var key in missingRecommendedTags) { - tags[key] = missingRecommendedTags[key]; + for (var key in missingTags) { + tags[key] = missingTags[key]; } graph = actionChangeTags(entityID, tags)(graph); return graph; diff --git a/test/spec/osm/entity.js b/test/spec/osm/entity.js index 9a8aa2149..95746e2c5 100644 --- a/test/spec/osm/entity.js +++ b/test/spec/osm/entity.js @@ -227,9 +227,9 @@ describe('iD.osmEntity', function () { }); it('returns true if entity has deprecated tags', function () { - expect(iD.Entity({ tags: { amenity: 'swimming_pool' } }).deprecatedTags()).to.eql([{ - old: { amenity: 'swimming_pool' }, - replace: { leisure: 'swimming_pool' } + expect(iD.Entity({ tags: { amenity: 'toilet' } }).deprecatedTags()).to.eql([{ + old: { amenity: 'toilet' }, + replace: { amenity: 'toilets' } }]); }); });