diff --git a/build_data.js b/build_data.js index 752d97460..a67ac7b6a 100644 --- a/build_data.js +++ b/build_data.js @@ -641,7 +641,7 @@ function validatePresetFields(presets, fields) { let p1geometry = preset.geometry.slice().sort.toString(); let p2geometry = replacementPreset.geometry.slice().sort.toString(); if (replacementPreset === undefined) { - console.error('Unknown preset "' + preset.replacement + '" referenced as replacement of preset ' + preset.name); + console.error('Unknown preset "' + preset.replacement + '" referenced as replacement of preset "' + presetID + '" (' + preset.name + ')'); console.log(''); process.exit(1); } else if (p1geometry !== p2geometry) { @@ -665,12 +665,12 @@ function validatePresetFields(presets, fields) { if (regexResult) { let foreignPresetID = regexResult[0]; if (presets[foreignPresetID] === undefined) { - console.error('Unknown preset "' + foreignPresetID + '" referenced in "' + fieldsKey + '" array of preset ' + preset.name); + console.error('Unknown preset "' + foreignPresetID + '" referenced in "' + fieldsKey + '" array of preset "' + presetID + '" (' + preset.name + ')'); console.log(''); process.exit(1); } } else { - console.error('Unknown preset field "' + field + '" in "' + fieldsKey + '" array of preset ' + preset.name); + console.error('Unknown preset field "' + field + '" in "' + fieldsKey + '" array of preset "' + presetID + '" (' + preset.name + ')'); console.log(''); process.exit(1); } @@ -866,4 +866,4 @@ function readFileProm(path, options) { } -module.exports = buildData; \ No newline at end of file +module.exports = buildData; diff --git a/data/deprecated.json b/data/deprecated.json index 19b2f3440..f774c0d5c 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -651,6 +651,26 @@ "old": {"leisure": "recreation_ground"}, "replace": {"landuse": "recreation_ground"} }, + { + "old": {"Level": "*"}, + "replace": {"level": "$1"} + }, + { + "old": {"LEVEL": "*"}, + "replace": {"level": "$1"} + }, + { + "old": {"levels": "*"}, + "replace": {"building:levels": "$1"} + }, + { + "old": {"LEVELS": "*"}, + "replace": {"building:levels": "$1"} + }, + { + "old": {"levels_count": "*"}, + "replace": {"building:levels": "$1"} + }, { "old": {"man_made": "cut_line"}, "replace": {"man_made": "cutline"} diff --git a/data/presets.yaml b/data/presets.yaml index b410b0720..637c115a3 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -363,6 +363,12 @@ en: label: Building # 'terms: structure' terms: '[translate with synonyms or related terms for ''Building'', separated by commas]' + building/levels: + # 'building:levels=*' + label: Levels + # building/levels field placeholder + placeholder: '2, 4, 6...' + terms: '[translate with synonyms or related terms for ''Levels'', separated by commas]' building/levels/underground: # 'building:levels:underground=*' label: Underground Levels @@ -1241,12 +1247,6 @@ en: label: Levels # 'terms: building floors,decks,stories,storeys,storys' terms: '[translate with synonyms or related terms for ''Levels'', separated by commas]' - levels: - # 'building:levels=*' - label: Levels - # levels field placeholder - placeholder: '2, 4, 6...' - terms: '[translate with synonyms or related terms for ''Levels'', separated by commas]' liaison: # liaison=* label: Type diff --git a/data/presets/fields.json b/data/presets/fields.json index 4eb9d9ea3..39aa3a09b 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -56,6 +56,7 @@ "building_area": {"key": "building", "type": "combo", "default": "yes", "geometry": "area", "label": "Building"}, "building": {"key": "building", "type": "combo", "label": "Building", "terms": ["structure"]}, "building/levels_building": {"key": "building:levels", "type": "number", "minValue": 0, "label": "Building Levels", "placeholder": "2, 4, 6...", "prerequisiteTag": {"key": "building", "valueNot": "no"}}, + "building/levels": {"key": "building:levels", "type": "number", "minValue": 0, "label": "Levels", "placeholder": "2, 4, 6..."}, "building/levels/underground": {"key": "building:levels:underground", "type": "number", "minValue": 0, "label": "Underground Levels", "placeholder": "2, 4, 6...", "terms": ["basement levels"]}, "building/material": {"key": "building:material", "type": "combo", "label": "Material"}, "bunker_type": {"key": "bunker_type", "type": "combo", "label": "Type"}, @@ -228,7 +229,6 @@ "length": {"key": "length", "type": "number", "minValue": 0, "label": "Length (Meters)"}, "level_semi": {"key": "level", "type": "semiCombo", "label": "Levels", "terms": ["building floors", "decks", "stories", "storeys", "storys"]}, "level": {"key": "level", "type": "combo", "label": "Level", "terms": ["building floor", "deck", "storey", "story"], "prerequisiteTag": {"keyNot": "building"}}, - "levels": {"key": "building:levels", "type": "number", "minValue": 0, "label": "Levels", "placeholder": "2, 4, 6..."}, "liaison": {"key": "liaison", "type": "combo", "label": "Type"}, "line_attachment": {"key": "line_attachment", "type": "combo", "label": "Line Attachment"}, "lit": {"key": "lit", "type": "check", "label": "Lit", "terms": ["lamp", "lighting"]}, diff --git a/data/presets/fields/levels.json b/data/presets/fields/building/levels.json similarity index 100% rename from data/presets/fields/levels.json rename to data/presets/fields/building/levels.json diff --git a/data/presets/presets.json b/data/presets/presets.json index 6633824d2..4e6720e08 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -151,7 +151,7 @@ "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": {"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/multi-storey": {"icon": "temaki-car_structure", "fields": ["name", "{amenity/parking}", "building"], "moreFields": ["{amenity/parking}", "height", "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/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"}, "amenity/payment_centre": {"icon": "temaki-money_hand", "fields": ["name", "brand", "address", "building_area", "opening_hours", "payment_multi"], "moreFields": ["currency_multi", "email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["check", "tax pay", "bill pay", "currency", "finance", "cash", "money"], "tags": {"amenity": "payment_centre"}, "name": "Payment Center"}, @@ -327,8 +327,8 @@ "boundary/administrative": {"fields": ["name", "admin_level"], "geometry": ["line"], "tags": {"boundary": "administrative"}, "name": "Administrative Boundary", "matchScore": 0.5}, "bridge/support": {"icon": "fas-archway", "fields": ["bridge/support", "height", "layer", "material"], "moreFields": ["colour", "seamark/type"], "geometry": ["point", "vertex", "area"], "tags": {"bridge:support": "*"}, "name": "Bridge Support"}, "bridge/support/pier": {"icon": "fas-archway", "fields": ["bridge/support", "{bridge/support}"], "geometry": ["point", "vertex", "area"], "tags": {"bridge:support": "pier"}, "name": "Bridge Pier"}, - "building_part": {"icon": "maki-building", "fields": ["levels", "height", "building/material", "roof/colour"], "moreFields": ["layer"], "geometry": ["area"], "tags": {"building:part": "*"}, "matchScore": 0.5, "terms": ["roof", "simple 3D buildings"], "name": "Building Part"}, - "building": {"icon": "maki-home", "fields": ["name", "building", "levels", "height", "address"], "moreFields": ["architect", "building/levels/underground", "building/material", "gnis/feature_id", "layer", "not/name", "operator", "roof/colour", "smoking", "wheelchair"], "geometry": ["area"], "tags": {"building": "*"}, "matchScore": 0.6, "terms": [], "name": "Building"}, + "building_part": {"icon": "maki-building", "fields": ["building/levels", "height", "building/material", "roof/colour"], "moreFields": ["layer"], "geometry": ["area"], "tags": {"building:part": "*"}, "matchScore": 0.5, "terms": ["roof", "simple 3D buildings"], "name": "Building Part"}, + "building": {"icon": "maki-home", "fields": ["name", "building", "building/levels", "height", "address"], "moreFields": ["architect", "building/levels/underground", "building/material", "gnis/feature_id", "layer", "not/name", "operator", "roof/colour", "smoking", "wheelchair"], "geometry": ["area"], "tags": {"building": "*"}, "matchScore": 0.6, "terms": [], "name": "Building"}, "building/bunker": {"icon": "temaki-bunker", "geometry": ["area"], "tags": {"building": "bunker"}, "matchScore": 0.5, "name": "Bunker", "searchable": false}, "building/entrance": {"icon": "maki-entrance-alt1", "fields": [], "moreFields": [], "geometry": ["vertex"], "tags": {"building": "entrance"}, "name": "Entrance/Exit", "searchable": false}, "building/train_station": {"icon": "maki-building", "geometry": ["point", "vertex", "area"], "tags": {"building": "train_station"}, "matchScore": 0.5, "name": "Train Station Building", "searchable": false}, @@ -1110,7 +1110,7 @@ "shop/hunting": {"icon": "temaki-binoculars", "geometry": ["point", "area"], "tags": {"shop": "hunting"}, "terms": ["arrows", "bows", "bullets", "crossbows", "rifles", "traps"], "name": "Hunting Shop"}, "shop/interior_decoration": {"icon": "maki-shop", "geometry": ["point", "area"], "tags": {"shop": "interior_decoration"}, "name": "Interior Decoration Store"}, "shop/jewelry": {"icon": "maki-jewelry-store", "geometry": ["point", "area"], "terms": ["bracelet", "diamond", "earrings", "gem", "gold", "jeweler", "jewellery", "jeweller", "necklace", "pins", "ring", "silver"], "tags": {"shop": "jewelry"}, "name": "Jewelry Store"}, - "shop/kiosk": {"icon": "fas-store", "fields": ["{shop}", "levels"], "geometry": ["point", "area"], "tags": {"shop": "kiosk"}, "name": "Kiosk"}, + "shop/kiosk": {"icon": "fas-store", "geometry": ["point", "area"], "tags": {"shop": "kiosk"}, "name": "Kiosk"}, "shop/kitchen": {"icon": "temaki-kitchen_sink", "geometry": ["point", "area"], "tags": {"shop": "kitchen"}, "terms": ["cabinets", "countertops", "sinks"], "name": "Kitchen Design Store"}, "shop/laundry": {"icon": "temaki-laundry", "fields": ["{shop}", "self_service"], "geometry": ["point", "area"], "tags": {"shop": "laundry"}, "name": "Laundry"}, "shop/laundry/self_service": {"icon": "temaki-laundry", "geometry": ["point", "area"], "tags": {"shop": "laundry", "self_service": "yes"}, "terms": ["Coin Laundry", "Laundromat", "Coin Wash", "Launderette", "Washateria"], "name": "Self-Service Laundry"}, diff --git a/data/presets/presets/amenity/parking/multi-storey.json b/data/presets/presets/amenity/parking/multi-storey.json index c96964141..0435f6c54 100644 --- a/data/presets/presets/amenity/parking/multi-storey.json +++ b/data/presets/presets/amenity/parking/multi-storey.json @@ -8,7 +8,7 @@ "moreFields": [ "{amenity/parking}", "height", - "levels" + "building/levels" ], "geometry": [ "area" diff --git a/data/presets/presets/building.json b/data/presets/presets/building.json index e41989ef4..7298e2275 100644 --- a/data/presets/presets/building.json +++ b/data/presets/presets/building.json @@ -3,7 +3,7 @@ "fields": [ "name", "building", - "levels", + "building/levels", "height", "address" ], diff --git a/data/presets/presets/building_part.json b/data/presets/presets/building_part.json index 6b5cd1b74..84f3fc4c2 100644 --- a/data/presets/presets/building_part.json +++ b/data/presets/presets/building_part.json @@ -1,7 +1,7 @@ { "icon": "maki-building", "fields": [ - "levels", + "building/levels", "height", "building/material", "roof/colour" diff --git a/data/presets/presets/shop/kiosk.json b/data/presets/presets/shop/kiosk.json index ff94a98a0..6a1437d37 100644 --- a/data/presets/presets/shop/kiosk.json +++ b/data/presets/presets/shop/kiosk.json @@ -1,9 +1,5 @@ { "icon": "fas-store", - "fields": [ - "{shop}", - "levels" - ], "geometry": [ "point", "area" diff --git a/data/taginfo.json b/data/taginfo.json index 09aca0c79..7c490f0b4 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -2068,6 +2068,11 @@ {"key": "leisure", "value": "golf_pin", "description": "🄳 ➜ golf=pin"}, {"key": "leisure", "value": "video_arcade", "description": "🄳 ➜ leisure=amusement_arcade"}, {"key": "leisure", "value": "recreation_ground", "description": "🄳 ➜ landuse=recreation_ground"}, + {"key": "Level", "description": "🄳 ➜ level=*"}, + {"key": "LEVEL", "description": "🄳 ➜ level=*"}, + {"key": "levels", "description": "🄳 ➜ building:levels=*"}, + {"key": "LEVELS", "description": "🄳 ➜ building:levels=*"}, + {"key": "levels_count", "description": "🄳 ➜ building:levels=*"}, {"key": "man_made", "value": "cut_line", "description": "🄳 ➜ man_made=cutline"}, {"key": "man_made", "value": "gas_well", "description": "🄳 ➜ man_made=petroleum_well + substance=gas"}, {"key": "man_made", "value": "jetty", "description": "🄳 ➜ highway=footway + man_made=pier"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 8941028a1..a7d43a7d4 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -2880,6 +2880,11 @@ "terms": "", "placeholder": "2, 4, 6..." }, + "building/levels": { + "label": "Levels", + "terms": "", + "placeholder": "2, 4, 6..." + }, "building/levels/underground": { "label": "Underground Levels", "terms": "basement levels", @@ -3642,11 +3647,6 @@ "label": "Level", "terms": "building floor,deck,storey,story" }, - "levels": { - "label": "Levels", - "terms": "", - "placeholder": "2, 4, 6..." - }, "liaison": { "label": "Type" },