diff --git a/css/25_areas.css b/css/25_areas.css index 2d160d5fe..d056a60c4 100644 --- a/css/25_areas.css +++ b/css/25_areas.css @@ -26,6 +26,9 @@ path.stroke.tag-landuse, path.stroke.tag-natural, path.stroke.tag-leisure-nature_reserve, path.stroke.tag-leisure-pitch, +path.stroke.tag-leisure-track, +path.stroke.tag-leisure-golf_course, +path.stroke.tag-leisure-garden, path.stroke.tag-leisure-park, path.stroke.tag-barrier-hedge, path.stroke.tag-landuse-forest, @@ -37,6 +40,9 @@ path.fill.tag-landuse, path.fill.tag-natural, path.fill.tag-leisure-nature_reserve, path.fill.tag-leisure-pitch, +path.fill.tag-leisure-track, +path.fill.tag-leisure-golf_course, +path.fill.tag-leisure-garden, path.fill.tag-leisure-park, path.fill.tag-landuse-forest, path.fill.tag-natural-wood, @@ -48,6 +54,9 @@ path.fill.tag-landuse-grass { .preset-icon-fill-area.tag-natural, .preset-icon-fill-area.tag-leisure-nature_reserve, .preset-icon-fill-area.tag-leisure-pitch, +.preset-icon-fill-area.tag-leisure-track, +.preset-icon-fill-area.tag-leisure-golf_course, +.preset-icon-fill-area.tag-leisure-garden, .preset-icon-fill-area.tag-leisure-park, .preset-icon-fill-area.tag-landuse-forest, .preset-icon-fill-area.tag-natural-wood, diff --git a/css/50_misc.css b/css/50_misc.css index 14629185e..394f766dc 100644 --- a/css/50_misc.css +++ b/css/50_misc.css @@ -351,22 +351,28 @@ path.stroke.tag-crossing.tag-crossing-zebra { } /* Attractions */ -path.shadow.tag-attraction-summer_toboggan { +path.shadow.tag-attraction-summer_toboggan, +path.shadow.tag-attraction-water_slide { stroke-width: 16; } -path.casing.tag-attraction-summer_toboggan { +path.casing.tag-attraction-summer_toboggan, +path.casing.tag-attraction-water_slide { stroke-width: 7; } -path.stroke.tag-attraction-summer_toboggan { +path.stroke.tag-attraction-summer_toboggan, +path.stroke.tag-attraction-water_slide { stroke-width: 5; } -.low-zoom path.shadow.tag-attraction-summer_toboggan { +.low-zoom path.shadow.tag-attraction-summer_toboggan, +.low-zoom path.shadow.tag-attraction-water_slide { stroke-width: 12; } -.low-zoom path.casing.tag-attraction-summer_toboggan { +.low-zoom path.casing.tag-attraction-summer_toboggan, +.low-zoom path.casing.tag-attraction-water_slide { stroke-width: 5; } -.low-zoom path.stroke.tag-attraction-summer_toboggan { +.low-zoom path.stroke.tag-attraction-summer_toboggan, +.low-zoom path.stroke.tag-attraction-water_slide { stroke-width: 3; } path.stroke.tag-attraction-summer_toboggan { @@ -375,3 +381,10 @@ path.stroke.tag-attraction-summer_toboggan { path.casing.tag-attraction-summer_toboggan { stroke: #666; } + +path.stroke.tag-attraction-water_slide { + stroke: #aae0cb; +} +path.casing.tag-attraction-water_slide { + stroke: #3d6c71; +} diff --git a/css/80_app.css b/css/80_app.css index 55da354dd..5e03428d5 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -161,7 +161,6 @@ input[type=email] { border: 1px solid #ccc; padding: 5px 20px 5px 10px; height: 30px; - width: 100%; border-radius: 4px; text-overflow: ellipsis; } @@ -1209,6 +1208,8 @@ a.hide-toggle { } .form-field { + display: flex; + flex-wrap: wrap; margin-bottom: 10px; width: 100%; -webkit-transition: margin-bottom 200ms; @@ -1228,25 +1229,21 @@ a.hide-toggle { color: #333; background: #f6f6f6; border: 1px solid #cfcfcf; - padding: 5px 0 5px 10px; - display: block; border-radius: 4px 4px 0 0; overflow: hidden; + flex: 1 1 100%; + display: flex; } -[dir='rtl'] .form-label { +.form-label .label-text { + flex: 1 1 auto; + padding: 5px 0 5px 10px; +} +[dir='rtl'] .form-label .label-text { padding: 5px 10px 5px 0; } - .form-label-button-wrap { - position: absolute; - top: 0; - right: 0; - height: 100%; background: transparent; -} -[dir='rtl'] .form-label-button-wrap { - right: auto; - left: 0; + flex: 0 1 auto; } .form-label-button-wrap .tag-reference-button { @@ -1268,7 +1265,6 @@ a.hide-toggle { border-left: none; border-right: 1px solid #ccc; border-radius: 4px 0 0 0; - width: 31px; } .form-label button:hover { background: #f1f1f1; @@ -1294,6 +1290,7 @@ a.hide-toggle { border-radius: 0 0 4px 4px; overflow: hidden; position: relative; + flex: 1; } .form-field textarea { @@ -1304,6 +1301,27 @@ a.hide-toggle { border-bottom: 1px solid #ccc } +/* Fields - corner radius for fields with following elements on the same line +------------------------------------------------------- */ +[dir='ltr'] .inspector-wrap:not(.inspector-hover) .form-field .wiki-title, +[dir='ltr'] .inspector-wrap:not(.inspector-hover) .form-field .localized-main, +[dir='ltr'] .inspector-wrap:not(.inspector-hover) .form-field .member-role, +[dir='ltr'] .inspector-wrap:not(.inspector-hover) .form-field .spin-control button:first-child, +[dir='ltr'] .inspector-wrap:not(.inspector-hover) .form-field input[type='text'].number, +[dir='ltr'] #preset-input-maxspeed, +[dir='ltr'] #preset-input-maxspeed_advisory { + border-bottom-right-radius: 0; +} +[dir='rtl'] .inspector-wrap:not(.inspector-hover) .form-field .wiki-title, +[dir='rtl'] .inspector-wrap:not(.inspector-hover) .form-field .localized-main, +[dir='rtl'] .inspector-wrap:not(.inspector-hover) .form-field .member-role, +[dir='rtl'] .inspector-wrap:not(.inspector-hover) .form-field .spin-control button:first-child, +[dir='rtl'] .inspector-wrap:not(.inspector-hover) .form-field input[type='text'].number, +[dir='rtl'] #preset-input-maxspeed, +[dir='rtl'] #preset-input-maxspeed_advisory { + border-bottom-left-radius: 0; +} + /* Inspector (hover styles) ------------------------------------------------------- */ .inspector-hover .checkselect label:last-of-type, @@ -1354,7 +1372,6 @@ a.hide-toggle { } /* hide but preserve in layout */ -.inspector-hover .entity-editor-pane button.minor, .inspector-hover .combobox-caret, .inspector-hover .header button, .inspector-hover .spin-control, @@ -1366,13 +1383,13 @@ a.hide-toggle { .inspector-hover .footer * { opacity: 0; } +/* hide and do not affect layout */ +.inspector-hover .entity-editor-pane button.minor { + display: none; +} /* Styles for raw tag inspector on hover */ .inspector-hover .tag-row .key-wrap, -.inspector-hover .tag-row .form-field.input-wrap-position { - width: 50%; -} -.inspector-hover .tag-row .key-wrap, .inspector-hover .tag-row .input-wrap-position { height: 31px; } @@ -1472,10 +1489,6 @@ a.hide-toggle { padding: 5px 10px; } -[dir='rtl'] .preset-input-wrap .col6 { - float: right; -} - /* Field - Access, Cycleway, Structure ------------------------------------------------------- */ @@ -1483,12 +1496,18 @@ a.hide-toggle { .form-field-cycleway .preset-input-wrap li, .form-field-access .preset-input-wrap li { border-bottom: 1px solid #ccc; + display: flex; } .structure-extras-wrap li:last-child, .form-field-cycleway .preset-input-wrap li:last-child, .form-field-access .preset-input-wrap li:last-child { border-bottom: 0; } +.structure-extras-wrap li > *, +.form-field-cycleway .preset-input-wrap li > *, +.form-field-access .preset-input-wrap li > * { + flex: 1; +} .structure-input-type-wrap input, .structure-input-layer-wrap input, .preset-input-cycleway-wrap input, @@ -1496,6 +1515,7 @@ a.hide-toggle { border-radius: 0; border-width: 0; border-left-width: 1px; + width: 100%; } [dir='rtl'] .structure-input-type-wrap input, [dir='rtl'] .structure-input-layer-wrap input, @@ -1504,6 +1524,17 @@ a.hide-toggle { border-left-width: 0; border-right-width: 1px; } +.structure-extras-wrap .spin-control button { + border-bottom: 0; +} +[dir='ltr'] .structure-extras-wrap .spin-control button { + border-right: 0; + border-left-width: 1px; +} +[dir='rtl'] .structure-extras-wrap .spin-control button { + border-left: 0; + border-right-width: 1px; +} .preset-input-wrap li:last-child input { border-bottom-right-radius: 4px; @@ -1557,6 +1588,7 @@ a.hide-toggle { display: block; border-radius: 0 0 4px 4px; overflow: hidden; + flex: 1 1 auto; } .form-field-multicombo:focus { border-bottom: 0px; @@ -1607,50 +1639,10 @@ a.hide-toggle { /* Field - Numeric ------------------------------------------------------- */ -input[type=number] { - position: relative; - padding-right: 20%; -} - .spin-control { - width: 64px; - height: 30px; - display: inline-block; - margin-left: -64px; - margin-bottom: -11px; position: relative; + display: flex; } -[dir='rtl'] .spin-control{ - margin-left: 0; - margin-right: -64px; -} - -.spin-control button { - right: 1px; - position: relative; - float: left; - height: 100%; - width: 32px; - border-left: 1px solid #ccc; - border-radius: 0; - background: rgba(0, 0, 0, 0); -} -[dir='rtl'] .spin-control button{ - border-left: 0; - border-right: 1px solid #ccc; -} - -.spin-control button.decrement { - border-bottom-right-radius: 3px; -} -[dir='rtl'] .spin-control button.decrement { - border-bottom-right-radius: 0; -} -[dir='rtl'] .spin-control button.increment { - border-bottom-left-radius: 3px; - right: 0; -} - .spin-control button.decrement::after, .spin-control button.increment::after { content:""; @@ -1723,18 +1715,17 @@ input[type=number] { #preset-input-maxspeed_advisory, #preset-input-maxspeed { border-right: none; - border-radius: 0 0 0 4px; - width: 80%; + flex: 1; } [dir='rtl'] #preset-input-maxspeed_advisory, [dir='rtl'] #preset-input-maxspeed { border-right: 1px solid #ccc; - border-radius: 0 0 4px 0; } .form-field .maxspeed-unit { border-radius: 0 0 4px 0; - width: 20%; + flex: 0 1 20%; + min-width: 70px; } [dir='rtl'] .form-field .maxspeed-unit { border-right: 0; @@ -1746,55 +1737,32 @@ input[type=number] { ------------------------------------------------------- */ .form-field .wiki-lang { border-radius: 0; -} -.form-field .wiki-title { - padding-right: 20%; -} -[dir='rtl'] .form-field .wiki-title { - padding-left: 20%; - padding-right: 10px; -} - -.form-field .wiki-title ~ .combobox-caret { - right: 32px; -} -[dir='rtl'] .form-field .wiki-title ~ .combobox-caret { - right: auto; - left: 32px; + flex-basis: 100%; } /* Field - Localized Name ------------------------------------------------------- */ -.localized-main { - padding-right: 12%; -} -[dir='rtl'] .localized-main { - padding-left: 12%; - padding-right: 10px; -} - -button.localized-add { +.form-field .localized-add { position: relative; - right: 1px; - width: 32px; - margin-left: -32px; border: 1px solid #ccc; border-top-width: 0; - border-right-width: 0; + border-left-width: 0; border-radius: 0 0 4px 0; height: 30px; vertical-align: top; + width: 32px; + flex: 0 1 auto; } -[dir='rtl'] button.localized-add { - margin-left: 0; - margin-right: -32px; - border-right-width: 1px; +[dir='rtl'] .form-field .localized-add { + border-left-width: 1px; + border-right-width: 0; border-radius: 0 0 0 4px; } .localized-multilingual { padding: 0 10px; + flex-basis: 100%; } .localized-multilingual .entry { position: relative; @@ -1817,13 +1785,12 @@ button.localized-add { .localized-multilingual .entry .localized-lang { border-radius: 0; border-top-width: 0; + width: 100%; } .localized-multilingual .entry .localized-value { border-top-width: 0; border-radius: 0 0 4px 4px; -} -.localized-multilingual .form-label button { - border-top-right-radius: 3px; + width: 100%; } button.localized-add.disabled, @@ -2183,6 +2150,7 @@ div.combobox { border-radius: 0; border-bottom: 1px solid #ccc; border-left: 1px solid #ccc; + width: 100%; } [dir='rtl'] .tag-row input { border-left: none; @@ -2191,7 +2159,7 @@ div.combobox { .tag-row .key-wrap, .tag-row .input-wrap-position { - flex: 1 0.5 100%; + flex: 1; height: 30px; } @@ -2222,7 +2190,7 @@ div.combobox { .tag-row button { height: 31px; - flex: 0 0 33px; + width: 32px; border: 1px solid #ccc; border-top-width: 0; border-left-width: 0; @@ -2372,6 +2340,7 @@ img.tag-reference-wiki-image { .member-row-new .member-entity-input { border-radius: 4px 4px 0 0; border: 1px solid #cfcfcf; + flex-basis: 100%; } .add-relation { diff --git a/data/core.yaml b/data/core.yaml index 2473a5e08..54d513dbf 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -293,7 +293,7 @@ en: browser_notice: "This editor is supported in Firefox, Chrome, Safari, Opera, and Internet Explorer 11 and above. Please upgrade your browser or use Potlatch 2 to edit the map." translate: translate: Translate - localized_translation_label: Multilingual name + localized_translation_label: Multilingual Name localized_translation_language: Choose language localized_translation_name: Name zoom_in_edit: Zoom in to edit diff --git a/data/presets.yaml b/data/presets.yaml index 0dd5a484f..cfcf5c405 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -2472,6 +2472,11 @@ en: name: Monastery Grounds # 'terms: abbey,basilica,bethel,cathedral,chancel,chantry,chapel,church,fold,house of God,house of prayer,house of worship,minster,mission,monastery,mosque,oratory,parish,sacellum,sanctuary,shrine,synagogue,tabernacle,temple' terms: '' + amenity/money_transfer: + # amenity=money_transfer + name: Money Transfer Station + # 'terms: money order,check,bill,currency,finance,wire transfer,cable,person to person,cash to cash,exchange' + terms: '' amenity/motorcycle_parking: # amenity=motorcycle_parking name: Motorcycle Parking @@ -2492,7 +2497,7 @@ en: amenity/parking: # amenity=parking name: Parking Lot - # 'terms: car,parking lot' + # 'terms: automobile parking,car lot,car parking,rv parking,truck parking,vehicle parking' terms: '' amenity/parking/multi-storey: # 'amenity=parking, parking=multi-storey' @@ -2507,6 +2512,16 @@ en: # amenity=parking_space name: Parking Space terms: '' + amenity/payment_centre: + # amenity=payment_centre + name: Payment Center + # 'terms: check,tax pay,bill pay,currency,finance,cash,money' + terms: '' + amenity/payment_terminal: + # amenity=payment_terminal + name: Payment Terminal + # 'terms: interactive kiosk,ekiosk,atm,bill pay,tax pay,phone pay,finance,cash,money transfer,card' + terms: '' amenity/pharmacy: # amenity=pharmacy name: Pharmacy @@ -3085,6 +3100,11 @@ en: # barrier=gate name: Gate terms: '' + barrier/guard_rail: + # barrier=guard_rail + name: Guard Rail + # 'terms: railing,guardrail,traffic barrier,crash barrier,median barrier,roadside barrier,Armco barrier' + terms: '' barrier/hedge: # barrier=hedge name: Hedge @@ -4607,7 +4627,7 @@ en: leisure/slipway: # leisure=slipway name: Slipway - # 'terms: boat launch,boat ramp' + # 'terms: boat launch,boat ramp,boat landing' terms: '' leisure/sports_centre: # leisure=sports_centre @@ -5877,6 +5897,10 @@ en: name: Carpet Store # 'terms: rug' terms: '' + shop/catalogue: + # shop=catalogue + name: Catalog Shop + terms: '' shop/charity: # shop=charity name: Charity Store @@ -5924,6 +5948,10 @@ en: # shop=cosmetics name: Cosmetics Store terms: '' + shop/country_store: + # shop=country_store + name: Country Store + terms: '' shop/craft: # shop=craft name: Arts and Crafts Store @@ -6036,6 +6064,11 @@ en: name: Hairdresser # 'terms: barber' terms: '' + shop/hairdresser_supply: + # shop=hairdresser_supply + name: Hairdresser Supply Store + # 'terms: barber,shampoo,conditioner' + terms: '' shop/hardware: # shop=hardware name: Hardware Store @@ -6164,6 +6197,11 @@ en: # shop=paint name: Paint Store terms: '' + shop/party: + # shop=party + name: Party Supply Store + # 'terms: balloons,costumes,decorations,invitations' + terms: '' shop/pastry: # shop=pastry name: Pastry Shop diff --git a/data/presets/presets.json b/data/presets/presets.json index 5f3961ade..dfa7cd695 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -107,13 +107,16 @@ "amenity/love_hotel": {"icon": "maki-heart", "fields": ["name", "operator", "address", "building_area", "smoking", "rooms", "internet_access", "internet_access/fee", "internet_access/ssid"], "geometry": ["point", "area"], "tags": {"amenity": "love_hotel"}, "name": "Love Hotel"}, "amenity/marketplace": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building", "opening_hours"], "geometry": ["point", "area"], "tags": {"amenity": "marketplace"}, "name": "Marketplace"}, "amenity/monastery": {"icon": "maki-place-of-worship", "fields": ["name", "religion", "denomination", "address", "building_area"], "geometry": ["point", "area"], "terms": ["abbey", "basilica", "bethel", "cathedral", "chancel", "chantry", "chapel", "church", "fold", "house of God", "house of prayer", "house of worship", "minster", "mission", "monastery", "mosque", "oratory", "parish", "sacellum", "sanctuary", "shrine", "synagogue", "tabernacle", "temple"], "tags": {"amenity": "monastery"}, "name": "Monastery Grounds"}, + "amenity/money_transfer": {"icon": "maki-bank", "fields": ["name", "brand", "address", "building_area", "opening_hours", "currency_multi"], "geometry": ["point", "area"], "terms": ["money order", "check", "bill", "currency", "finance", "wire transfer", "cable", "person to person", "cash to cash", "exchange"], "tags": {"amenity": "money_transfer"}, "name": "Money Transfer Station"}, "amenity/motorcycle_parking": {"icon": "fas-motorcycle", "fields": ["capacity", "operator", "covered", "access_simple"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "motorcycle_parking"}, "name": "Motorcycle Parking"}, "amenity/music_school": {"icon": "maki-school", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "geometry": ["point", "area"], "terms": ["school of music"], "tags": {"amenity": "music_school"}, "name": "Music School"}, "amenity/nightclub": {"icon": "maki-bar", "fields": ["name", "operator", "address", "building_area", "opening_hours", "smoking"], "geometry": ["point", "area"], "tags": {"amenity": "nightclub"}, "terms": ["disco*", "night club", "dancing", "dance club"], "name": "Nightclub"}, "amenity/parking_entrance": {"icon": "maki-entrance-alt1", "fields": ["access_simple", "ref"], "geometry": ["vertex"], "tags": {"amenity": "parking_entrance"}, "name": "Parking Garage Entrance/Exit"}, "amenity/parking_space": {"fields": ["capacity"], "geometry": ["point", "vertex", "area"], "terms": [], "tags": {"amenity": "parking_space"}, "matchScore": 0.95, "name": "Parking Space"}, - "amenity/parking": {"icon": "maki-car", "fields": ["name", "operator", "parking", "capacity", "fee", "access_simple", "supervised", "park_ride", "surface", "maxstay"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking"}, "terms": ["car", "parking lot"], "name": "Parking Lot"}, + "amenity/parking": {"icon": "maki-car", "fields": ["name", "operator", "parking", "capacity", "fee", "access_simple", "supervised", "park_ride", "surface", "maxstay"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "truck parking", "vehicle parking"], "name": "Parking Lot"}, "amenity/parking/multi-storey": {"icon": "maki-car", "fields": ["name", "operator", "building", "levels", "height", "address", "capacity", "fee", "access_simple"], "geometry": ["area"], "tags": {"amenity": "parking", "parking": "multi-storey"}, "addTags": {"building": "parking", "amenity": "parking", "parking": "multi-storey"}, "removeTags": {"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/payment_centre": {"icon": "maki-bank", "fields": ["name", "brand", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["check", "tax pay", "bill pay", "currency", "finance", "cash", "money"], "tags": {"amenity": "payment_centre"}, "name": "Payment Center"}, + "amenity/payment_terminal": {"icon": "maki-bank", "fields": ["name", "brand", "address", "opening_hours", "payment_multi"], "geometry": ["point"], "terms": ["interactive kiosk", "ekiosk", "atm", "bill pay", "tax pay", "phone pay", "finance", "cash", "money transfer", "card"], "tags": {"amenity": "payment_terminal"}, "name": "Payment Terminal"}, "amenity/pharmacy": {"icon": "maki-pharmacy", "fields": ["name", "operator", "address", "building_area", "drive_through", "opening_hours", "payment_multi", "dispensing"], "geometry": ["point", "area"], "tags": {"amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "healthcare": "pharmacy"}, "removeTags": {"amenity": "pharmacy", "healthcare": "pharmacy"}, "reference": {"key": "amenity", "value": "pharmacy"}, "terms": ["apothecary", "drug*", "med*", "prescription"], "name": "Pharmacy"}, "amenity/place_of_worship": {"icon": "maki-place-of-worship", "fields": ["name", "religion", "denomination", "address", "building_area", "service_times"], "geometry": ["point", "area"], "terms": ["abbey", "basilica", "bethel", "cathedral", "chancel", "chantry", "chapel", "church", "fold", "house of God", "house of prayer", "house of worship", "minster", "mission", "mosque", "oratory", "parish", "sacellum", "sanctuary", "shrine", "synagogue", "tabernacle", "temple"], "tags": {"amenity": "place_of_worship"}, "name": "Place of Worship"}, "amenity/place_of_worship/buddhist": {"icon": "maki-religious-buddhist", "fields": ["name", "denomination", "building_area", "address", "service_times"], "geometry": ["point", "area"], "terms": ["stupa", "vihara", "monastery", "temple", "pagoda", "zendo", "dojo"], "tags": {"amenity": "place_of_worship", "religion": "buddhist"}, "reference": {"key": "amenity", "value": "place_of_worship"}, "name": "Buddhist Temple"}, @@ -232,6 +235,7 @@ "barrier/ditch": {"icon": "maki-roadblock", "geometry": ["line", "area"], "tags": {"barrier": "ditch"}, "name": "Trench", "matchScore": 0.25}, "barrier/fence": {"icon": "maki-fence", "fields": ["fence_type", "height"], "geometry": ["line"], "tags": {"barrier": "fence"}, "name": "Fence", "matchScore": 0.25}, "barrier/gate": {"icon": "maki-barrier", "fields": ["access"], "geometry": ["vertex", "line"], "tags": {"barrier": "gate"}, "name": "Gate"}, + "barrier/guard_rail": {"icon": "maki-barrier", "geometry": ["line"], "tags": {"barrier": "guard_rail"}, "name": "Guard Rail", "terms": ["railing", "guardrail", "traffic barrier", "crash barrier", "median barrier", "roadside barrier", "Armco barrier"], "matchScore": 0.75}, "barrier/hedge": {"fields": ["height"], "geometry": ["line", "area"], "tags": {"barrier": "hedge"}, "name": "Hedge", "matchScore": 0.25}, "barrier/kerb": {"icon": "maki-wheelchair", "fields": ["kerb", "tactile_paving"], "geometry": ["vertex", "line"], "tags": {"barrier": "kerb"}, "name": "Curb"}, "barrier/kerb/lowered": {"icon": "maki-wheelchair", "fields": ["kerb", "tactile_paving"], "geometry": ["vertex", "line"], "tags": {"barrier": "kerb", "kerb": "lowered"}, "reference": {"key": "kerb", "value": "lowered"}, "terms": ["curb cut", "curb ramp", "kerb ramp", "dropped kerb", "pram ramp"], "name": "Lowered Curb"}, @@ -570,7 +574,7 @@ "leisure/resort": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "opening_hours"], "geometry": ["point", "area"], "tags": {"leisure": "resort"}, "name": "Resort"}, "leisure/running_track": {"icon": "maki-pitch", "fields": ["surface", "sport_racing_nonmotor", "lit", "width", "lanes"], "geometry": ["point", "line", "area"], "tags": {"leisure": "track", "sport": "running"}, "terms": ["race*", "running", "sprint", "track"], "name": "Racetrack (Running)"}, "leisure/sauna": {"icon": "fas-thermometer-three-quarters", "fields": ["name", "operator", "address", "opening_hours", "access_simple", "fee"], "geometry": ["point", "area"], "tags": {"leisure": "sauna"}, "name": "Sauna"}, - "leisure/slipway": {"icon": "maki-slipway", "fields": ["access_simple"], "geometry": ["point", "line"], "terms": ["boat launch", "boat ramp"], "tags": {"leisure": "slipway"}, "name": "Slipway"}, + "leisure/slipway": {"icon": "maki-slipway", "fields": ["name", "access_simple", "fee"], "geometry": ["point", "vertex", "line"], "terms": ["boat launch", "boat ramp", "boat landing"], "tags": {"leisure": "slipway"}, "name": "Slipway"}, "leisure/sports_centre": {"icon": "maki-pitch", "fields": ["name", "sport", "building", "address", "opening_hours"], "geometry": ["point", "area"], "tags": {"leisure": "sports_centre"}, "terms": [], "name": "Sports Center / Complex"}, "leisure/sports_centre/swimming": {"icon": "maki-swimming", "fields": ["name", "access_simple", "operator", "address", "building"], "geometry": ["point", "area"], "terms": ["dive", "water"], "tags": {"leisure": "sports_centre", "sport": "swimming"}, "reference": {"key": "sport", "value": "swimming"}, "name": "Swimming Pool Facility"}, "leisure/stadium": {"icon": "maki-pitch", "fields": ["name", "sport", "address"], "geometry": ["point", "area"], "tags": {"leisure": "stadium"}, "name": "Stadium"}, @@ -847,6 +851,7 @@ "shop/car_repair": {"icon": "maki-car-repair", "fields": ["name", "operator", "address", "building_area", "service/vehicle", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["auto", "garage", "service"], "tags": {"shop": "car_repair"}, "name": "Car Repair Shop"}, "shop/car": {"icon": "maki-car", "fields": ["name", "brand", "operator", "address", "building_area", "second_hand", "service/vehicle", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["auto"], "tags": {"shop": "car"}, "name": "Car Dealership"}, "shop/carpet": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["rug"], "tags": {"shop": "carpet"}, "name": "Carpet Store"}, + "shop/catalogue": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "catalogue"}, "name": "Catalog Shop"}, "shop/charity": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "second_hand", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["thrift", "op shop", "nonprofit"], "tags": {"shop": "charity"}, "name": "Charity Store"}, "shop/cheese": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "cheese"}, "name": "Cheese Store"}, "shop/chemist": {"icon": "maki-grocery", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "chemist"}, "terms": ["apothecary", "med*", "drug*", "gift"], "name": "Drugstore"}, @@ -858,6 +863,7 @@ "shop/convenience": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "convenience"}, "name": "Convenience Store"}, "shop/copyshop": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "copyshop"}, "name": "Copy Store"}, "shop/cosmetics": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "cosmetics"}, "name": "Cosmetics Store"}, + "shop/country_store": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "country_store"}, "name": "Country Store"}, "shop/craft": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "craft"}, "terms": ["art*", "paint*", "frame"], "name": "Arts and Crafts Store"}, "shop/curtain": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["drape*", "window"], "tags": {"shop": "curtain"}, "name": "Curtain Store"}, "shop/dairy": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["milk", "egg", "cheese"], "tags": {"shop": "dairy"}, "name": "Dairy Store"}, @@ -879,6 +885,7 @@ "shop/gas": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["cng", "lpg", "natural gas", "propane", "refill", "tank"], "tags": {"shop": "gas"}, "name": "Bottled Gas Shop"}, "shop/gift": {"icon": "maki-gift", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["souvenir"], "tags": {"shop": "gift"}, "name": "Gift Shop"}, "shop/greengrocer": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["fruit", "vegetable"], "tags": {"shop": "greengrocer"}, "name": "Greengrocer"}, + "shop/hairdresser_supply": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["barber", "shampoo", "conditioner"], "tags": {"shop": "hairdresser_supply"}, "name": "Hairdresser Supply Store"}, "shop/hairdresser": {"icon": "maki-hairdresser", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["barber"], "tags": {"shop": "hairdresser"}, "name": "Hairdresser"}, "shop/hardware": {"icon": "temaki-tools", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "hardware"}, "name": "Hardware Store"}, "shop/health_food": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["wholefood", "vitamins", "vegetarian", "vegan"], "tags": {"shop": "health_food"}, "name": "Health Food Shop"}, @@ -909,6 +916,7 @@ "shop/organic": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "supermarket", "organic": "only"}, "name": "Organic Goods Store"}, "shop/outdoor": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["camping", "climbing", "hiking"], "tags": {"shop": "outdoor"}, "name": "Outdoors Store"}, "shop/paint": {"icon": "fas-paint-roller", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "paint"}, "name": "Paint Store"}, + "shop/party": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "terms": ["balloons", "costumes", "decorations", "invitations"], "tags": {"shop": "party"}, "name": "Party Supply Store"}, "shop/pastry": {"icon": "maki-bakery", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "pastry"}, "terms": ["patisserie", "cake shop", "cakery"], "name": "Pastry Shop"}, "shop/pawnbroker": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "pawnbroker"}, "name": "Pawn Shop"}, "shop/perfumery": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "perfumery"}, "name": "Perfume Store"}, @@ -1774,6 +1782,10 @@ "amenity/ice_cream/Freddo": {"name": "Freddo", "icon": "maki-ice-cream", "fields": ["name", "address", "building_area", "opening_hours", "takeaway", "delivery", "outdoor_seating"], "geometry": ["point", "area"], "tags": {"amenity": "ice_cream", "brand:wikidata": "Q28823999"}, "addTags": {"amenity": "ice_cream", "brand": "Freddo", "brand:wikidata": "Q28823999", "brand:wikipedia": "es:Freddo", "cuisine": "ice_cream", "name": "Freddo"}, "removeTags": {"amenity": "ice_cream", "brand": "Freddo", "brand:wikidata": "Q28823999", "brand:wikipedia": "es:Freddo", "cuisine": "ice_cream", "name": "Freddo"}, "matchScore": 2, "suggestion": true}, "amenity/ice_cream/Grido": {"name": "Grido", "icon": "maki-ice-cream", "fields": ["name", "address", "building_area", "opening_hours", "takeaway", "delivery", "outdoor_seating"], "geometry": ["point", "area"], "tags": {"amenity": "ice_cream", "brand:wikidata": "Q5885724"}, "addTags": {"amenity": "ice_cream", "brand": "Grido", "brand:wikidata": "Q5885724", "brand:wikipedia": "es:Grido Helado", "cuisine": "ice_cream", "name": "Grido"}, "removeTags": {"amenity": "ice_cream", "brand": "Grido", "brand:wikidata": "Q5885724", "brand:wikipedia": "es:Grido Helado", "cuisine": "ice_cream", "name": "Grido"}, "matchScore": 2, "suggestion": true}, "amenity/ice_cream/sweetFrog": {"name": "sweetFrog", "icon": "maki-ice-cream", "fields": ["name", "address", "building_area", "opening_hours", "takeaway", "delivery", "outdoor_seating"], "geometry": ["point", "area"], "tags": {"amenity": "ice_cream", "brand:wikidata": "Q16952110"}, "addTags": {"amenity": "ice_cream", "brand": "sweetFrog", "brand:wikidata": "Q16952110", "brand:wikipedia": "en:Sweet Frog", "cuisine": "frozen_yogurt", "name": "sweetFrog"}, "removeTags": {"amenity": "ice_cream", "brand": "sweetFrog", "brand:wikidata": "Q16952110", "brand:wikipedia": "en:Sweet Frog", "cuisine": "frozen_yogurt", "name": "sweetFrog"}, "matchScore": 2, "suggestion": true}, + "amenity/money_transfer/Express Union": {"name": "Express Union", "icon": "maki-bank", "fields": ["name", "brand", "address", "building_area", "opening_hours", "currency_multi"], "geometry": ["point", "area"], "tags": {"amenity": "money_transfer", "brand:wikidata": "Q3062276"}, "addTags": {"amenity": "money_transfer", "brand": "Express Union", "brand:wikidata": "Q3062276", "brand:wikipedia": "fr:Express Union", "name": "Express Union"}, "removeTags": {"amenity": "money_transfer", "brand": "Express Union", "brand:wikidata": "Q3062276", "brand:wikipedia": "fr:Express Union", "name": "Express Union"}, "matchScore": 2, "suggestion": true}, + "amenity/money_transfer/Western Union": {"name": "Western Union", "icon": "maki-bank", "fields": ["name", "brand", "address", "building_area", "opening_hours", "currency_multi"], "geometry": ["point", "area"], "tags": {"amenity": "money_transfer", "brand:wikidata": "Q861042"}, "addTags": {"amenity": "money_transfer", "brand": "Western Union", "brand:wikidata": "Q861042", "brand:wikipedia": "en:Western Union", "name": "Western Union"}, "removeTags": {"amenity": "money_transfer", "brand": "Western Union", "brand:wikidata": "Q861042", "brand:wikipedia": "en:Western Union", "name": "Western Union"}, "matchScore": 2, "suggestion": true}, + "amenity/payment_centre/Rapipago": {"name": "Rapipago", "icon": "maki-bank", "fields": ["name", "brand", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"amenity": "payment_centre", "brand:wikidata": "Q6100413"}, "addTags": {"amenity": "payment_centre", "brand": "Rapipago", "brand:wikidata": "Q6100413", "brand:wikipedia": "es:Rapipago", "name": "Rapipago"}, "removeTags": {"amenity": "payment_centre", "brand": "Rapipago", "brand:wikidata": "Q6100413", "brand:wikipedia": "es:Rapipago", "name": "Rapipago"}, "matchScore": 2, "suggestion": true}, + "amenity/payment_terminal/Qiwi": {"name": "Qiwi", "icon": "maki-bank", "fields": ["name", "brand", "address", "opening_hours", "payment_multi"], "geometry": ["point"], "tags": {"amenity": "payment_terminal", "brand:wikidata": "Q4047736"}, "addTags": {"amenity": "payment_terminal", "brand": "Qiwi", "brand:wikidata": "Q4047736", "brand:wikipedia": "en:Qiwi", "name": "Qiwi"}, "removeTags": {"amenity": "payment_terminal", "brand": "Qiwi", "brand:wikidata": "Q4047736", "brand:wikipedia": "en:Qiwi", "name": "Qiwi"}, "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Apotek Hjärtat": {"name": "Apotek Hjärtat", "icon": "maki-pharmacy", "fields": ["name", "operator", "address", "building_area", "drive_through", "opening_hours", "payment_multi", "dispensing"], "geometry": ["point", "area"], "tags": {"amenity": "pharmacy", "brand:wikidata": "Q10416114"}, "addTags": {"amenity": "pharmacy", "brand": "Apotek Hjärtat", "brand:wikidata": "Q10416114", "brand:wikipedia": "sv:Apotek Hjärtat", "healthcare": "pharmacy", "name": "Apotek Hjärtat"}, "removeTags": {"amenity": "pharmacy", "brand": "Apotek Hjärtat", "brand:wikidata": "Q10416114", "brand:wikipedia": "sv:Apotek Hjärtat", "healthcare": "pharmacy", "name": "Apotek Hjärtat"}, "reference": {"key": "amenity", "value": "pharmacy"}, "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Bartell Drugs": {"name": "Bartell Drugs", "icon": "maki-pharmacy", "fields": ["name", "operator", "address", "building_area", "drive_through", "opening_hours", "payment_multi", "dispensing"], "geometry": ["point", "area"], "tags": {"amenity": "pharmacy", "brand:wikidata": "Q4865152"}, "addTags": {"amenity": "pharmacy", "brand": "Bartell Drugs", "brand:wikidata": "Q4865152", "brand:wikipedia": "en:Bartell Drugs", "healthcare": "pharmacy", "name": "Bartell Drugs"}, "removeTags": {"amenity": "pharmacy", "brand": "Bartell Drugs", "brand:wikidata": "Q4865152", "brand:wikipedia": "en:Bartell Drugs", "healthcare": "pharmacy", "name": "Bartell Drugs"}, "reference": {"key": "amenity", "value": "pharmacy"}, "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Chemist Warehouse": {"name": "Chemist Warehouse", "icon": "maki-pharmacy", "fields": ["name", "operator", "address", "building_area", "drive_through", "opening_hours", "payment_multi", "dispensing"], "geometry": ["point", "area"], "tags": {"amenity": "pharmacy", "brand:wikidata": "Q48782120"}, "addTags": {"amenity": "pharmacy", "brand": "Chemist Warehouse", "brand:wikidata": "Q48782120", "brand:wikipedia": "en:Chemist Warehouse", "healthcare": "pharmacy", "name": "Chemist Warehouse"}, "removeTags": {"amenity": "pharmacy", "brand": "Chemist Warehouse", "brand:wikidata": "Q48782120", "brand:wikipedia": "en:Chemist Warehouse", "healthcare": "pharmacy", "name": "Chemist Warehouse"}, "reference": {"key": "amenity", "value": "pharmacy"}, "matchScore": 2, "suggestion": true}, @@ -2080,6 +2092,7 @@ "shop/car/Volkswagen": {"name": "Volkswagen", "icon": "maki-car", "fields": ["name", "brand", "operator", "address", "building_area", "second_hand", "service/vehicle", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "car", "brand:wikidata": "Q246"}, "addTags": {"brand": "Volkswagen", "brand:wikidata": "Q246", "brand:wikipedia": "en:Volkswagen", "name": "Volkswagen", "shop": "car"}, "removeTags": {"brand": "Volkswagen", "brand:wikidata": "Q246", "brand:wikipedia": "en:Volkswagen", "name": "Volkswagen", "shop": "car"}, "matchScore": 2, "suggestion": true}, "shop/car/Volvo": {"name": "Volvo", "icon": "maki-car", "fields": ["name", "brand", "operator", "address", "building_area", "second_hand", "service/vehicle", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "car", "brand:wikidata": "Q215293"}, "addTags": {"brand": "Volvo", "brand:wikidata": "Q215293", "brand:wikipedia": "en:Volvo Cars", "name": "Volvo", "shop": "car"}, "removeTags": {"brand": "Volvo", "brand:wikidata": "Q215293", "brand:wikipedia": "en:Volvo Cars", "name": "Volvo", "shop": "car"}, "matchScore": 2, "suggestion": true}, "shop/car/ホンダ": {"name": "ホンダ", "icon": "maki-car", "fields": ["name", "brand", "operator", "address", "building_area", "second_hand", "service/vehicle", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "car", "brand:wikidata": "Q9584"}, "addTags": {"brand": "ホンダ", "brand:en": "Honda", "brand:wikidata": "Q9584", "brand:wikipedia": "ja:本田技研工業", "name": "ホンダ", "name:en": "Honda", "shop": "car"}, "removeTags": {"brand": "ホンダ", "brand:en": "Honda", "brand:wikidata": "Q9584", "brand:wikipedia": "ja:本田技研工業", "name": "ホンダ", "name:en": "Honda", "shop": "car"}, "matchScore": 2, "suggestion": true}, + "shop/catalogue/Argos": {"name": "Argos", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "catalogue", "brand:wikidata": "Q4789707"}, "addTags": {"brand": "Argos", "brand:wikidata": "Q4789707", "brand:wikipedia": "en:Argos (retailer)", "name": "Argos", "shop": "catalogue"}, "removeTags": {"brand": "Argos", "brand:wikidata": "Q4789707", "brand:wikipedia": "en:Argos (retailer)", "name": "Argos", "shop": "catalogue"}, "matchScore": 2, "suggestion": true}, "shop/charity/Age UK": {"name": "Age UK", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "second_hand", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "charity", "brand:wikidata": "Q4691850"}, "addTags": {"brand": "Age UK", "brand:wikidata": "Q4691850", "brand:wikipedia": "en:Age UK", "name": "Age UK", "shop": "charity"}, "removeTags": {"brand": "Age UK", "brand:wikidata": "Q4691850", "brand:wikipedia": "en:Age UK", "name": "Age UK", "shop": "charity"}, "matchScore": 2, "suggestion": true}, "shop/charity/Barnardo's": {"name": "Barnardo's", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "second_hand", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "charity", "brand:wikidata": "Q2884670"}, "addTags": {"brand": "Barnardo's", "brand:wikidata": "Q2884670", "brand:wikipedia": "en:Barnardo's", "name": "Barnardo's", "shop": "charity"}, "removeTags": {"brand": "Barnardo's", "brand:wikidata": "Q2884670", "brand:wikipedia": "en:Barnardo's", "name": "Barnardo's", "shop": "charity"}, "matchScore": 2, "suggestion": true}, "shop/charity/British Heart Foundation": {"name": "British Heart Foundation", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "second_hand", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "charity", "brand:wikidata": "Q4970039"}, "addTags": {"brand": "British Heart Foundation", "brand:wikidata": "Q4970039", "brand:wikipedia": "en:British Heart Foundation", "name": "British Heart Foundation", "shop": "charity"}, "removeTags": {"brand": "British Heart Foundation", "brand:wikidata": "Q4970039", "brand:wikipedia": "en:British Heart Foundation", "name": "British Heart Foundation", "shop": "charity"}, "matchScore": 2, "suggestion": true}, @@ -2288,6 +2301,8 @@ "shop/cosmetics/The Body Shop": {"name": "The Body Shop", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "cosmetics", "brand:wikidata": "Q837851"}, "addTags": {"brand": "The Body Shop", "brand:wikidata": "Q837851", "brand:wikipedia": "en:The Body Shop", "name": "The Body Shop", "shop": "cosmetics"}, "removeTags": {"brand": "The Body Shop", "brand:wikidata": "Q837851", "brand:wikipedia": "en:The Body Shop", "name": "The Body Shop", "shop": "cosmetics"}, "matchScore": 2, "suggestion": true}, "shop/cosmetics/Л'Этуаль": {"name": "Л'Этуаль", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "cosmetics", "brand:wikidata": "Q18400706"}, "addTags": {"brand": "Л'Этуаль", "brand:wikidata": "Q18400706", "brand:wikipedia": "ru:Л’Этуаль", "name": "Л'Этуаль", "shop": "cosmetics"}, "removeTags": {"brand": "Л'Этуаль", "brand:wikidata": "Q18400706", "brand:wikipedia": "ru:Л’Этуаль", "name": "Л'Этуаль", "shop": "cosmetics"}, "matchScore": 2, "suggestion": true}, "shop/cosmetics/Магнит Косметик": {"name": "Магнит Косметик", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "cosmetics", "brand:wikidata": "Q940518"}, "addTags": {"brand": "Магнит Косметик", "brand:en": "Magnit Cosmetics", "brand:wikidata": "Q940518", "brand:wikipedia": "ru:Магнит (сеть магазинов)", "name": "Магнит Косметик", "name:en": "Magnit Cosmetics", "shop": "cosmetics"}, "removeTags": {"brand": "Магнит Косметик", "brand:en": "Magnit Cosmetics", "brand:wikidata": "Q940518", "brand:wikipedia": "ru:Магнит (сеть магазинов)", "name": "Магнит Косметик", "name:en": "Magnit Cosmetics", "shop": "cosmetics"}, "matchScore": 2, "suggestion": true}, + "shop/country_store/Rural King": {"name": "Rural King", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "country_store", "brand:wikidata": "Q7380525"}, "addTags": {"brand": "Rural King", "brand:wikidata": "Q7380525", "brand:wikipedia": "en:Rural King", "name": "Rural King", "shop": "country_store"}, "removeTags": {"brand": "Rural King", "brand:wikidata": "Q7380525", "brand:wikipedia": "en:Rural King", "name": "Rural King", "shop": "country_store"}, "matchScore": 2, "suggestion": true}, + "shop/country_store/Tractor Supply Company": {"name": "Tractor Supply Company", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "country_store", "brand:wikidata": "Q15109925"}, "addTags": {"brand": "Tractor Supply Company", "brand:wikidata": "Q15109925", "brand:wikipedia": "en:Tractor Supply Company", "name": "Tractor Supply Company", "shop": "country_store"}, "removeTags": {"brand": "Tractor Supply Company", "brand:wikidata": "Q15109925", "brand:wikipedia": "en:Tractor Supply Company", "name": "Tractor Supply Company", "shop": "country_store"}, "matchScore": 2, "suggestion": true}, "shop/craft/Hobby Lobby": {"name": "Hobby Lobby", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "craft", "brand:wikidata": "Q5874938"}, "addTags": {"brand": "Hobby Lobby", "brand:wikidata": "Q5874938", "brand:wikipedia": "en:Hobby Lobby", "name": "Hobby Lobby", "shop": "craft"}, "removeTags": {"brand": "Hobby Lobby", "brand:wikidata": "Q5874938", "brand:wikipedia": "en:Hobby Lobby", "name": "Hobby Lobby", "shop": "craft"}, "matchScore": 2, "suggestion": true}, "shop/craft/Michaels": {"name": "Michaels", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "craft", "brand:wikidata": "Q6835667"}, "addTags": {"brand": "Michaels", "brand:wikidata": "Q6835667", "brand:wikipedia": "en:Michaels", "name": "Michaels", "shop": "craft"}, "removeTags": {"brand": "Michaels", "brand:wikidata": "Q6835667", "brand:wikipedia": "en:Michaels", "name": "Michaels", "shop": "craft"}, "matchScore": 2, "suggestion": true}, "shop/department_store/Belk": {"name": "Belk", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "department_store", "brand:wikidata": "Q127428"}, "addTags": {"brand": "Belk", "brand:wikidata": "Q127428", "brand:wikipedia": "en:Belk", "name": "Belk", "shop": "department_store"}, "removeTags": {"brand": "Belk", "brand:wikidata": "Q127428", "brand:wikipedia": "en:Belk", "name": "Belk", "shop": "department_store"}, "matchScore": 2, "suggestion": true}, @@ -2412,6 +2427,7 @@ "shop/gift/Card Factory": {"name": "Card Factory", "icon": "maki-gift", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "gift", "brand:wikidata": "Q5038192"}, "addTags": {"brand": "Card Factory", "brand:wikidata": "Q5038192", "brand:wikipedia": "en:Card Factory", "name": "Card Factory", "shop": "gift"}, "removeTags": {"brand": "Card Factory", "brand:wikidata": "Q5038192", "brand:wikipedia": "en:Card Factory", "name": "Card Factory", "shop": "gift"}, "matchScore": 2, "suggestion": true}, "shop/gift/Hallmark": {"name": "Hallmark", "icon": "maki-gift", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "gift", "brand:wikidata": "Q1521910"}, "addTags": {"brand": "Hallmark", "brand:wikidata": "Q1521910", "brand:wikipedia": "en:Hallmark Cards", "name": "Hallmark", "shop": "gift"}, "removeTags": {"brand": "Hallmark", "brand:wikidata": "Q1521910", "brand:wikipedia": "en:Hallmark Cards", "name": "Hallmark", "shop": "gift"}, "matchScore": 2, "suggestion": true}, "shop/gift/Nanu-Nana": {"name": "Nanu-Nana", "icon": "maki-gift", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "gift", "brand:wikidata": "Q1720245"}, "addTags": {"brand": "Nanu-Nana", "brand:wikidata": "Q1720245", "brand:wikipedia": "de:Nanu-Nana", "name": "Nanu-Nana", "shop": "gift"}, "removeTags": {"brand": "Nanu-Nana", "brand:wikidata": "Q1720245", "brand:wikipedia": "de:Nanu-Nana", "name": "Nanu-Nana", "shop": "gift"}, "matchScore": 2, "suggestion": true}, + "shop/hairdresser_supply/Sally Beauty Supply": {"name": "Sally Beauty Supply", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "hairdresser_supply", "brand:wikidata": "Q7405065"}, "addTags": {"brand": "Sally Beauty Supply", "brand:wikidata": "Q7405065", "brand:wikipedia": "en:Sally Beauty Holdings", "name": "Sally Beauty Supply", "shop": "hairdresser_supply"}, "removeTags": {"brand": "Sally Beauty Supply", "brand:wikidata": "Q7405065", "brand:wikipedia": "en:Sally Beauty Holdings", "name": "Sally Beauty Supply", "shop": "hairdresser_supply"}, "matchScore": 2, "suggestion": true}, "shop/hairdresser/Fantastic Sams": {"name": "Fantastic Sams", "icon": "maki-hairdresser", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "hairdresser", "brand:wikidata": "Q5434222"}, "addTags": {"brand": "Fantastic Sams", "brand:wikidata": "Q5434222", "brand:wikipedia": "en:Fantastic Sams", "name": "Fantastic Sams", "shop": "hairdresser"}, "removeTags": {"brand": "Fantastic Sams", "brand:wikidata": "Q5434222", "brand:wikipedia": "en:Fantastic Sams", "name": "Fantastic Sams", "shop": "hairdresser"}, "matchScore": 2, "suggestion": true}, "shop/hairdresser/First Choice Haircutters": {"name": "First Choice Haircutters", "icon": "maki-hairdresser", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "hairdresser", "brand:wikidata": "Q5452622"}, "addTags": {"brand": "First Choice Haircutters", "brand:wikidata": "Q5452622", "brand:wikipedia": "en:First Choice Haircutters", "name": "First Choice Haircutters", "shop": "hairdresser"}, "removeTags": {"brand": "First Choice Haircutters", "brand:wikidata": "Q5452622", "brand:wikipedia": "en:First Choice Haircutters", "name": "First Choice Haircutters", "shop": "hairdresser"}, "matchScore": 2, "suggestion": true}, "shop/hairdresser/Great Clips": {"name": "Great Clips", "icon": "maki-hairdresser", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "hairdresser", "brand:wikidata": "Q5598967"}, "addTags": {"brand": "Great Clips", "brand:wikidata": "Q5598967", "brand:wikipedia": "en:Great Clips", "name": "Great Clips", "shop": "hairdresser"}, "removeTags": {"brand": "Great Clips", "brand:wikidata": "Q5598967", "brand:wikipedia": "en:Great Clips", "name": "Great Clips", "shop": "hairdresser"}, "matchScore": 2, "suggestion": true}, @@ -2530,6 +2546,7 @@ "shop/paint/Comex": {"name": "Comex", "icon": "fas-paint-roller", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "paint", "brand:wikidata": "Q5151654"}, "addTags": {"brand": "Comex", "brand:wikidata": "Q5151654", "brand:wikipedia": "en:Comex Group", "name": "Comex", "shop": "paint"}, "removeTags": {"brand": "Comex", "brand:wikidata": "Q5151654", "brand:wikipedia": "en:Comex Group", "name": "Comex", "shop": "paint"}, "matchScore": 2, "suggestion": true}, "shop/paint/Jotun": {"name": "Jotun", "icon": "fas-paint-roller", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "paint", "brand:wikidata": "Q1778870"}, "addTags": {"brand": "Jotun", "brand:wikidata": "Q1778870", "brand:wikipedia": "en:Jotun (company)", "name": "Jotun", "shop": "paint"}, "removeTags": {"brand": "Jotun", "brand:wikidata": "Q1778870", "brand:wikipedia": "en:Jotun (company)", "name": "Jotun", "shop": "paint"}, "matchScore": 2, "suggestion": true}, "shop/paint/Sherwin Williams": {"name": "Sherwin Williams", "icon": "fas-paint-roller", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "paint", "brand:wikidata": "Q48881"}, "addTags": {"brand": "Sherwin Williams", "brand:wikidata": "Q48881", "brand:wikipedia": "en:Sherwin-Williams", "name": "Sherwin Williams", "shop": "paint"}, "removeTags": {"brand": "Sherwin Williams", "brand:wikidata": "Q48881", "brand:wikipedia": "en:Sherwin-Williams", "name": "Sherwin Williams", "shop": "paint"}, "matchScore": 2, "suggestion": true}, + "shop/party/Party City": {"name": "Party City", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "party", "brand:wikidata": "Q7140896"}, "addTags": {"brand": "Party City", "brand:wikidata": "Q7140896", "brand:wikipedia": "en:Party City", "name": "Party City", "shop": "party"}, "removeTags": {"brand": "Party City", "brand:wikidata": "Q7140896", "brand:wikipedia": "en:Party City", "name": "Party City", "shop": "party"}, "matchScore": 2, "suggestion": true}, "shop/pawnbroker/Cash Converters": {"name": "Cash Converters", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "pawnbroker", "brand:wikidata": "Q5048645"}, "addTags": {"brand": "Cash Converters", "brand:wikidata": "Q5048645", "brand:wikipedia": "en:Cash Converters", "name": "Cash Converters", "shop": "pawnbroker"}, "removeTags": {"brand": "Cash Converters", "brand:wikidata": "Q5048645", "brand:wikipedia": "en:Cash Converters", "name": "Cash Converters", "shop": "pawnbroker"}, "matchScore": 2, "suggestion": true}, "shop/pawnbroker/Cebuana Lhuillier": {"name": "Cebuana Lhuillier", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "pawnbroker", "brand:wikidata": "Q17064661"}, "addTags": {"brand": "Cebuana Lhuillier", "brand:wikidata": "Q17064661", "brand:wikipedia": "en:Cebuana Lhuillier", "name": "Cebuana Lhuillier", "shop": "pawnbroker"}, "removeTags": {"brand": "Cebuana Lhuillier", "brand:wikidata": "Q17064661", "brand:wikipedia": "en:Cebuana Lhuillier", "name": "Cebuana Lhuillier", "shop": "pawnbroker"}, "matchScore": 2, "suggestion": true}, "shop/perfumery/Douglas": {"name": "Douglas", "icon": "maki-shop", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi"], "geometry": ["point", "area"], "tags": {"shop": "perfumery", "brand:wikidata": "Q2052213"}, "addTags": {"brand": "Douglas", "brand:wikidata": "Q2052213", "brand:wikipedia": "de:Parfümerie Douglas", "name": "Douglas", "shop": "perfumery"}, "removeTags": {"brand": "Douglas", "brand:wikidata": "Q2052213", "brand:wikipedia": "de:Parfümerie Douglas", "name": "Douglas", "shop": "perfumery"}, "matchScore": 2, "suggestion": true}, diff --git a/data/presets/presets/amenity/money_transfer.json b/data/presets/presets/amenity/money_transfer.json new file mode 100644 index 000000000..d1405ee02 --- /dev/null +++ b/data/presets/presets/amenity/money_transfer.json @@ -0,0 +1,31 @@ +{ + "icon": "maki-bank", + "fields": [ + "name", + "brand", + "address", + "building_area", + "opening_hours", + "currency_multi" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "money order", + "check", + "bill", + "currency", + "finance", + "wire transfer", + "cable", + "person to person", + "cash to cash", + "exchange" + ], + "tags": { + "amenity": "money_transfer" + }, + "name": "Money Transfer Station" +} diff --git a/data/presets/presets/amenity/parking.json b/data/presets/presets/amenity/parking.json index df7f37137..736344a8b 100644 --- a/data/presets/presets/amenity/parking.json +++ b/data/presets/presets/amenity/parking.json @@ -21,8 +21,12 @@ "amenity": "parking" }, "terms": [ - "car", - "parking lot" + "automobile parking", + "car lot", + "car parking", + "rv parking", + "truck parking", + "vehicle parking" ], "name": "Parking Lot" } diff --git a/data/presets/presets/amenity/payment_centre.json b/data/presets/presets/amenity/payment_centre.json new file mode 100644 index 000000000..a2e0bb4f2 --- /dev/null +++ b/data/presets/presets/amenity/payment_centre.json @@ -0,0 +1,28 @@ +{ + "icon": "maki-bank", + "fields": [ + "name", + "brand", + "address", + "building_area", + "opening_hours", + "payment_multi" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "check", + "tax pay", + "bill pay", + "currency", + "finance", + "cash", + "money" + ], + "tags": { + "amenity": "payment_centre" + }, + "name": "Payment Center" +} diff --git a/data/presets/presets/amenity/payment_terminal.json b/data/presets/presets/amenity/payment_terminal.json new file mode 100644 index 000000000..e85228256 --- /dev/null +++ b/data/presets/presets/amenity/payment_terminal.json @@ -0,0 +1,29 @@ +{ + "icon": "maki-bank", + "fields": [ + "name", + "brand", + "address", + "opening_hours", + "payment_multi" + ], + "geometry": [ + "point" + ], + "terms": [ + "interactive kiosk", + "ekiosk", + "atm", + "bill pay", + "tax pay", + "phone pay", + "finance", + "cash", + "money transfer", + "card" + ], + "tags": { + "amenity": "payment_terminal" + }, + "name": "Payment Terminal" +} diff --git a/data/presets/presets/barrier/guard_rail.json b/data/presets/presets/barrier/guard_rail.json new file mode 100644 index 000000000..061d1ebf0 --- /dev/null +++ b/data/presets/presets/barrier/guard_rail.json @@ -0,0 +1,20 @@ +{ + "icon": "maki-barrier", + "geometry": [ + "line" + ], + "tags": { + "barrier": "guard_rail" + }, + "name": "Guard Rail", + "terms": [ + "railing", + "guardrail", + "traffic barrier", + "crash barrier", + "median barrier", + "roadside barrier", + "Armco barrier" + ], + "matchScore": 0.75 +} diff --git a/data/presets/presets/leisure/slipway.json b/data/presets/presets/leisure/slipway.json index ac5b22a11..4d9ec9d42 100644 --- a/data/presets/presets/leisure/slipway.json +++ b/data/presets/presets/leisure/slipway.json @@ -1,15 +1,19 @@ { "icon": "maki-slipway", "fields": [ - "access_simple" + "name", + "access_simple", + "fee" ], "geometry": [ "point", + "vertex", "line" ], "terms": [ "boat launch", - "boat ramp" + "boat ramp", + "boat landing" ], "tags": { "leisure": "slipway" diff --git a/data/presets/presets/shop/catalogue.json b/data/presets/presets/shop/catalogue.json new file mode 100644 index 000000000..7cc9e70ce --- /dev/null +++ b/data/presets/presets/shop/catalogue.json @@ -0,0 +1,19 @@ +{ + "icon": "maki-shop", + "fields": [ + "name", + "operator", + "address", + "building_area", + "opening_hours", + "payment_multi" + ], + "geometry": [ + "point", + "area" + ], + "tags": { + "shop": "catalogue" + }, + "name": "Catalog Shop" +} diff --git a/data/presets/presets/shop/country_store.json b/data/presets/presets/shop/country_store.json new file mode 100644 index 000000000..4c4f033af --- /dev/null +++ b/data/presets/presets/shop/country_store.json @@ -0,0 +1,19 @@ +{ + "icon": "maki-shop", + "fields": [ + "name", + "operator", + "address", + "building_area", + "opening_hours", + "payment_multi" + ], + "geometry": [ + "point", + "area" + ], + "tags": { + "shop": "country_store" + }, + "name": "Country Store" +} diff --git a/data/presets/presets/shop/hairdresser_supply.json b/data/presets/presets/shop/hairdresser_supply.json new file mode 100644 index 000000000..8a3a04538 --- /dev/null +++ b/data/presets/presets/shop/hairdresser_supply.json @@ -0,0 +1,24 @@ +{ + "icon": "maki-shop", + "fields": [ + "name", + "operator", + "address", + "building_area", + "opening_hours", + "payment_multi" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "barber", + "shampoo", + "conditioner" + ], + "tags": { + "shop": "hairdresser_supply" + }, + "name": "Hairdresser Supply Store" +} diff --git a/data/presets/presets/shop/party.json b/data/presets/presets/shop/party.json new file mode 100644 index 000000000..ddab82f4d --- /dev/null +++ b/data/presets/presets/shop/party.json @@ -0,0 +1,25 @@ +{ + "icon": "maki-shop", + "fields": [ + "name", + "operator", + "address", + "building_area", + "opening_hours", + "payment_multi" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "balloons", + "costumes", + "decorations", + "invitations" + ], + "tags": { + "shop": "party" + }, + "name": "Party Supply Store" +} diff --git a/data/taginfo.json b/data/taginfo.json index 96dc57fc7..e14e0b88f 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -721,6 +721,13 @@ "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true" }, + { + "key": "amenity", + "value": "money_transfer", + "description": "Money Transfer Station", + "object_types": ["node", "area"], + "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bank-15.svg?sanitize=true" + }, { "key": "amenity", "value": "motorcycle_parking", @@ -769,6 +776,20 @@ "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true" }, + { + "key": "amenity", + "value": "payment_centre", + "description": "Payment Center", + "object_types": ["node", "area"], + "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bank-15.svg?sanitize=true" + }, + { + "key": "amenity", + "value": "payment_terminal", + "description": "Payment Terminal", + "object_types": ["node"], + "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bank-15.svg?sanitize=true" + }, { "key": "amenity", "value": "pharmacy", @@ -1576,6 +1597,13 @@ "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/barrier-15.svg?sanitize=true" }, + { + "key": "barrier", + "value": "guard_rail", + "description": "Guard Rail", + "object_types": ["way"], + "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/barrier-15.svg?sanitize=true" + }, { "key": "barrier", "value": "hedge", @@ -5484,6 +5512,13 @@ "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true" }, + { + "key": "shop", + "value": "catalogue", + "description": "Catalog Shop", + "object_types": ["node", "area"], + "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true" + }, { "key": "shop", "value": "charity", @@ -5561,6 +5596,13 @@ "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true" }, + { + "key": "shop", + "value": "country_store", + "description": "Country Store", + "object_types": ["node", "area"], + "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true" + }, { "key": "shop", "value": "craft", @@ -5708,6 +5750,13 @@ "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true" }, + { + "key": "shop", + "value": "hairdresser_supply", + "description": "Hairdresser Supply Store", + "object_types": ["node", "area"], + "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true" + }, { "key": "shop", "value": "hairdresser", @@ -5918,6 +5967,13 @@ "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-paint-roller.svg?sanitize=true" }, + { + "key": "shop", + "value": "party", + "description": "Party Supply Store", + "object_types": ["node", "area"], + "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true" + }, { "key": "shop", "value": "pastry", diff --git a/dist/locales/en.json b/dist/locales/en.json index fd8295b9d..c25a151d3 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -373,7 +373,7 @@ "browser_notice": "This editor is supported in Firefox, Chrome, Safari, Opera, and Internet Explorer 11 and above. Please upgrade your browser or use Potlatch 2 to edit the map.", "translate": { "translate": "Translate", - "localized_translation_label": "Multilingual name", + "localized_translation_label": "Multilingual Name", "localized_translation_language": "Choose language", "localized_translation_name": "Name" }, @@ -3608,6 +3608,10 @@ "name": "Monastery Grounds", "terms": "abbey,basilica,bethel,cathedral,chancel,chantry,chapel,church,fold,house of God,house of prayer,house of worship,minster,mission,monastery,mosque,oratory,parish,sacellum,sanctuary,shrine,synagogue,tabernacle,temple" }, + "amenity/money_transfer": { + "name": "Money Transfer Station", + "terms": "money order,check,bill,currency,finance,wire transfer,cable,person to person,cash to cash,exchange" + }, "amenity/motorcycle_parking": { "name": "Motorcycle Parking", "terms": "" @@ -3630,12 +3634,20 @@ }, "amenity/parking": { "name": "Parking Lot", - "terms": "car,parking lot" + "terms": "automobile parking,car lot,car parking,rv parking,truck parking,vehicle parking" }, "amenity/parking/multi-storey": { "name": "Multilevel Parking Garage", "terms": "car,indoor parking,multistorey car park,parkade,parking building,parking deck,parking garage,parking ramp,parking structure" }, + "amenity/payment_centre": { + "name": "Payment Center", + "terms": "check,tax pay,bill pay,currency,finance,cash,money" + }, + "amenity/payment_terminal": { + "name": "Payment Terminal", + "terms": "interactive kiosk,ekiosk,atm,bill pay,tax pay,phone pay,finance,cash,money transfer,card" + }, "amenity/pharmacy": { "name": "Pharmacy", "terms": "apothecary,drug*,med*,prescription" @@ -4108,6 +4120,10 @@ "name": "Gate", "terms": "" }, + "barrier/guard_rail": { + "name": "Guard Rail", + "terms": "railing,guardrail,traffic barrier,crash barrier,median barrier,roadside barrier,Armco barrier" + }, "barrier/hedge": { "name": "Hedge", "terms": "" @@ -5462,7 +5478,7 @@ }, "leisure/slipway": { "name": "Slipway", - "terms": "boat launch,boat ramp" + "terms": "boat launch,boat ramp,boat landing" }, "leisure/sports_centre": { "name": "Sports Center / Complex", @@ -6568,6 +6584,10 @@ "name": "Carpet Store", "terms": "rug" }, + "shop/catalogue": { + "name": "Catalog Shop", + "terms": "" + }, "shop/charity": { "name": "Charity Store", "terms": "thrift,op shop,nonprofit" @@ -6612,6 +6632,10 @@ "name": "Cosmetics Store", "terms": "" }, + "shop/country_store": { + "name": "Country Store", + "terms": "" + }, "shop/craft": { "name": "Arts and Crafts Store", "terms": "art*,paint*,frame" @@ -6696,6 +6720,10 @@ "name": "Greengrocer", "terms": "fruit,vegetable" }, + "shop/hairdresser_supply": { + "name": "Hairdresser Supply Store", + "terms": "barber,shampoo,conditioner" + }, "shop/hairdresser": { "name": "Hairdresser", "terms": "barber" @@ -6816,6 +6844,10 @@ "name": "Paint Store", "terms": "" }, + "shop/party": { + "name": "Party Supply Store", + "terms": "balloons,costumes,decorations,invitations" + }, "shop/pastry": { "name": "Pastry Shop", "terms": "patisserie,cake shop,cakery" diff --git a/modules/renderer/map.js b/modules/renderer/map.js index bb109e639..b1c7cd82c 100644 --- a/modules/renderer/map.js +++ b/modules/renderer/map.js @@ -452,16 +452,6 @@ export function rendererMap(context) { x2 = p0[0] - p1[0] * k2; y2 = p0[1] - p1[1] * k2; - // 2 finger map panning (all browsers) - #5492 - // Panning via the `wheel` event will always have: - // - `ctrlKey = false` - // - `deltaX`,`deltaY` are round integer pixels - } else if (!source.ctrlKey && isInteger(dX) && isInteger(dY)) { - p1 = projection.translate(); - x2 = p1[0] - dX; - y2 = p1[1] - dY; - k2 = projection.scale(); - // 2 finger map pinch zooming (all browsers except Safari) - #5492 // Pinch zooming via the `wheel` event will always have: // - `ctrlKey = true` @@ -476,6 +466,27 @@ export function rendererMap(context) { k2 = t0.k * Math.pow(2, -dY / 500); x2 = p0[0] - p1[0] * k2; y2 = p0[1] - p1[1] * k2; + + // Trackpad scroll zooming with shift or alt/option key down + } else if ((source.altKey || source.shiftKey) && isInteger(dY)) { + + // recalculate x2,y2,k2 + t0 = _transformed ? _transformLast : _transformStart; + p0 = mouse(source); + p1 = t0.invert(p0); + k2 = t0.k * Math.pow(2, -dY / 500); + x2 = p0[0] - p1[0] * k2; + y2 = p0[1] - p1[1] * k2; + + // 2 finger map panning (all browsers) - #5492 + // Panning via the `wheel` event will always have: + // - `ctrlKey = false` + // - `deltaX`,`deltaY` are round integer pixels + } else if (!source.ctrlKey && isInteger(dX) && isInteger(dY)) { + p1 = projection.translate(); + x2 = p1[0] - dX; + y2 = p1[1] - dY; + k2 = projection.scale(); } // something changed - replace the event transform diff --git a/modules/services/taginfo.js b/modules/services/taginfo.js index 524f833d3..7ab7834f3 100644 --- a/modules/services/taginfo.js +++ b/modules/services/taginfo.js @@ -6,6 +6,7 @@ import _omit from 'lodash-es/omit'; import { json as d3_json } from 'd3-request'; import { utilQsString } from '../util'; +import { currentLocale } from '../util/locale'; var apibase = 'https://taginfo.openstreetmap.org/api/4/', @@ -189,7 +190,7 @@ export default { // Fetch popular keys. We'll exclude these from `values` // lookups because they stress taginfo, and they aren't likely // to yield meaningful autocomplete results.. see #3955 - var params = { rp: 100, sortname: 'values_all', sortorder: 'desc', page: 1, debounce: false }; + var params = { rp: 100, sortname: 'values_all', sortorder: 'desc', page: 1, debounce: false, lang: currentLocale }; this.keys(params, function(err, data) { if (err) return; data.forEach(function(d) { @@ -209,7 +210,7 @@ export default { keys: function(params, callback) { var doRequest = params.debounce ? debouncedRequest : request; params = clean(setSort(params)); - params = _extend({ rp: 10, sortname: 'count_all', sortorder: 'desc', page: 1 }, params); + params = _extend({ rp: 10, sortname: 'count_all', sortorder: 'desc', page: 1, lang: currentLocale }, params); var url = apibase + 'keys/all?' + utilQsString(params); doRequest(url, params, false, callback, function(err, d) { @@ -228,7 +229,7 @@ export default { multikeys: function(params, callback) { var doRequest = params.debounce ? debouncedRequest : request; params = clean(setSort(params)); - params = _extend({ rp: 25, sortname: 'count_all', sortorder: 'desc', page: 1 }, params); + params = _extend({ rp: 25, sortname: 'count_all', sortorder: 'desc', page: 1, lang: currentLocale }, params); var prefix = params.query; var url = apibase + 'keys/all?' + utilQsString(params); @@ -255,7 +256,7 @@ export default { var doRequest = params.debounce ? debouncedRequest : request; params = clean(setSort(setFilter(params))); - params = _extend({ rp: 25, sortname: 'count_all', sortorder: 'desc', page: 1 }, params); + params = _extend({ rp: 25, sortname: 'count_all', sortorder: 'desc', page: 1, lang: currentLocale }, params); var url = apibase + 'key/values?' + utilQsString(params); doRequest(url, params, false, callback, function(err, d) { @@ -282,7 +283,7 @@ export default { var doRequest = params.debounce ? debouncedRequest : request; var geometry = params.geometry; params = clean(setSortMembers(params)); - params = _extend({ rp: 25, sortname: 'count_all_members', sortorder: 'desc', page: 1 }, params); + params = _extend({ rp: 25, sortname: 'count_all_members', sortorder: 'desc', page: 1, lang: currentLocale }, params); var url = apibase + 'relation/roles?' + utilQsString(params); doRequest(url, params, true, callback, function(err, d) { diff --git a/modules/ui/field.js b/modules/ui/field.js index 585e38bb8..d1f09a286 100644 --- a/modules/ui/field.js +++ b/modules/ui/field.js @@ -107,7 +107,11 @@ export function uiField(context, presetField, entity, options) { var label = enter .append('label') .attr('class', 'form-label') - .attr('for', function(d) { return 'preset-input-' + d.safeid; }) + .attr('for', function(d) { return 'preset-input-' + d.safeid; }); + + label + .append('span') + .attr('class', 'label-text') .text(function(d) { return d.label(); }); var wrap = label @@ -228,4 +232,3 @@ export function uiField(context, presetField, entity, options) { return utilRebind(field, dispatch, 'on'); } - diff --git a/modules/ui/fields/access.js b/modules/ui/fields/access.js index 4df935d45..44c8c233d 100644 --- a/modules/ui/fields/access.js +++ b/modules/ui/fields/access.js @@ -21,7 +21,7 @@ export function uiFieldAccess(field, context) { wrap = wrap.enter() .append('div') - .attr('class', 'cf preset-input-wrap') + .attr('class', 'preset-input-wrap') .append('ul') .merge(wrap); @@ -39,17 +39,17 @@ export function uiFieldAccess(field, context) { // Enter var enter = items.enter() .append('li') - .attr('class', function(d) { return 'cf preset-access-' + d; }); + .attr('class', function(d) { return 'preset-access-' + d; }); enter .append('span') - .attr('class', 'col6 label preset-label-access') + .attr('class', 'label preset-label-access') .attr('for', function(d) { return 'preset-input-access-' + d; }) .text(function(d) { return field.t('types.' + d); }); enter .append('div') - .attr('class', 'col6 preset-input-access-wrap') + .attr('class', 'preset-input-access-wrap') .append('input') .attr('type', 'text') .attr('class', 'preset-input-access') diff --git a/modules/ui/fields/cycleway.js b/modules/ui/fields/cycleway.js index 4b58f0510..0816795e5 100644 --- a/modules/ui/fields/cycleway.js +++ b/modules/ui/fields/cycleway.js @@ -28,7 +28,7 @@ export function uiFieldCycleway(field, context) { wrap = wrap.enter() .append('div') - .attr('class', 'cf preset-input-wrap') + .attr('class', 'preset-input-wrap') .merge(wrap); @@ -45,17 +45,17 @@ export function uiFieldCycleway(field, context) { var enter = items.enter() .append('li') - .attr('class', function(d) { return 'cf preset-cycleway-' + stripcolon(d); }); + .attr('class', function(d) { return 'preset-cycleway-' + stripcolon(d); }); enter .append('span') - .attr('class', 'col6 label preset-label-cycleway') + .attr('class', 'label preset-label-cycleway') .attr('for', function(d) { return 'preset-input-cycleway-' + stripcolon(d); }) .text(function(d) { return field.t('types.' + d); }); enter .append('div') - .attr('class', 'col6 preset-input-cycleway-wrap') + .attr('class', 'preset-input-cycleway-wrap') .append('input') .attr('type', 'text') .attr('class', function(d) { return 'preset-input-cycleway preset-input-' + stripcolon(d); }) diff --git a/modules/ui/fields/input.js b/modules/ui/fields/input.js index 1bf14637a..9cf1eb7af 100644 --- a/modules/ui/fields/input.js +++ b/modules/ui/fields/input.js @@ -50,6 +50,7 @@ export function uiFieldText(field, context) { .attr('type', field.type) .attr('id', fieldID) .attr('placeholder', field.placeholder() || t('inspector.unknown')) + .classed(field.type, true) .call(utilNoAuto) .merge(input); @@ -87,13 +88,15 @@ export function uiFieldText(field, context) { enter .append('button') .datum(rtl ? 1 : -1) - .attr('class', rtl ? 'increment' : 'decrement') + .attr('class', 'button-input-action minor') + .classed(rtl ? 'increment' : 'decrement', true) .attr('tabindex', -1); enter .append('button') .datum(rtl ? -1 : 1) - .attr('class', rtl ? 'decrement' : 'increment') + .attr('class', 'button-input-action minor') + .classed(rtl ? 'decrement' : 'increment', true) .attr('tabindex', -1); spinControl = spinControl diff --git a/modules/ui/fields/localized.js b/modules/ui/fields/localized.js index a6cef6802..24be2140f 100644 --- a/modules/ui/fields/localized.js +++ b/modules/ui/fields/localized.js @@ -310,20 +310,24 @@ export function uiFieldLocalized(field, context) { var label = wrap .append('label') - .attr('class', 'form-label') - .text(t('translate.localized_translation_label')) - .attr('for', 'localized-lang'); label + .append('span') + .attr('class', 'label-text') + .text(t('translate.localized_translation_label')); + + label + .append('div') + .attr('class', 'form-label-button-wrap') .append('button') - .attr('class', 'minor remove') - .on('click', function(d) { + .attr('class', 'minor remove-icon') + .on('click', function(d){ if (_isLocked) return; d3_event.preventDefault(); var t = {}; t[key(d.lang)] = undefined; dispatch.call('change', this, t); - d3_select(this.parentNode.parentNode) + d3_select(this.parentNode.parentNode.parentNode) .style('top', '0') .style('max-height', '240px') .transition() diff --git a/modules/ui/fields/radio.js b/modules/ui/fields/radio.js index 27c8175b3..7e8fbe3c4 100644 --- a/modules/ui/fields/radio.js +++ b/modules/ui/fields/radio.js @@ -125,17 +125,17 @@ export function uiFieldRadio(field, context) { // Enter var typeEnter = typeItem.enter() .insert('li', ':first-child') - .attr('class', 'cf structure-type-item'); + .attr('class', 'structure-type-item'); typeEnter .append('span') - .attr('class', 'col6 label structure-label-type') + .attr('class', 'label structure-label-type') .attr('for', 'preset-input-' + selected) .text(t('inspector.radio.structure.type')); typeEnter .append('div') - .attr('class', 'col6 structure-input-type-wrap'); + .attr('class', 'structure-input-type-wrap'); // Update typeItem = typeItem @@ -170,17 +170,17 @@ export function uiFieldRadio(field, context) { // Enter var layerEnter = layerItem.enter() .append('li') - .attr('class', 'cf structure-layer-item'); + .attr('class', 'structure-layer-item'); layerEnter .append('span') - .attr('class', 'col6 label structure-label-layer') + .attr('class', 'label structure-label-layer') .attr('for', 'preset-input-layer') .text(t('inspector.radio.structure.layer')); layerEnter .append('div') - .attr('class', 'col6 structure-input-layer-wrap'); + .attr('class', 'structure-input-layer-wrap'); // Update layerItem = layerItem diff --git a/modules/ui/raw_member_editor.js b/modules/ui/raw_member_editor.js index 0d1080dca..656227c79 100644 --- a/modules/ui/raw_member_editor.js +++ b/modules/ui/raw_member_editor.js @@ -45,6 +45,9 @@ export function uiRawMemberEditor(context) { function selectMember(d) { d3_event.preventDefault(); + // remove the hover-highlight styling + utilHighlightEntity(d.id, false, context); + var entity = context.entity(d.id); var mapExtent = context.map().extent(); if (!entity.intersects(mapExtent, context.graph())) { @@ -145,7 +148,10 @@ export function uiRawMemberEditor(context) { var label = d3_select(this).append('label') .attr('class', 'form-label'); - var labelLink = label.append('a') + var labelLink = label + .append('span') + .attr('class', 'label-text') + .append('a') .attr('href', '#') .on('click', selectMember); @@ -174,11 +180,15 @@ export function uiRawMemberEditor(context) { var incompleteLabel = d3_select(this).append('label') .attr('class', 'form-label'); - incompleteLabel.append('span') + var labelText = incompleteLabel + .append('span') + .attr('class', 'label-text'); + + labelText.append('span') .attr('class', 'member-entity-type') .text(t('inspector.'+d.type, { id: d.id })); - incompleteLabel.append('span') + labelText.append('span') .attr('class', 'member-entity-name') .text(t('inspector.incomplete', { id: d.id })); diff --git a/modules/ui/raw_membership_editor.js b/modules/ui/raw_membership_editor.js index f856cd7ab..123907bb7 100644 --- a/modules/ui/raw_membership_editor.js +++ b/modules/ui/raw_membership_editor.js @@ -35,6 +35,10 @@ export function uiRawMembershipEditor(context) { function selectRelation(d) { d3_event.preventDefault(); + + // remove the hover-highlight styling + utilHighlightEntity(d.relation.id, false, context); + context.enter(modeSelect(context, [d.relation.id])); } @@ -186,6 +190,8 @@ export function uiRawMembershipEditor(context) { var label = enter .append('label') .attr('class', 'form-label') + .append('span') + .attr('class', 'label-text') .append('a') .attr('href', '#') .on('click', selectRelation); diff --git a/modules/ui/raw_tag_editor.js b/modules/ui/raw_tag_editor.js index 5e67edad4..63e3b4317 100644 --- a/modules/ui/raw_tag_editor.js +++ b/modules/ui/raw_tag_editor.js @@ -103,7 +103,7 @@ export function uiRawTagEditor(context) { var enter = items.enter() .append('li') - .attr('class', 'tag-row cf') + .attr('class', 'tag-row') .classed('readonly', isReadOnly); var innerWrap = enter.append('div') diff --git a/modules/ui/tag_reference.js b/modules/ui/tag_reference.js index 390f2d7d9..03f625019 100644 --- a/modules/ui/tag_reference.js +++ b/modules/ui/tag_reference.js @@ -187,7 +187,7 @@ export function uiTagReference(tag) { _body = _body.enter() .append('div') - .attr('class', 'tag-reference-body cf') + .attr('class', 'tag-reference-body') .style('max-height', '0') .style('opacity', '0') .merge(_body); diff --git a/test/spec/services/taginfo.js b/test/spec/services/taginfo.js index 266fdf754..6f310e3bc 100644 --- a/test/spec/services/taginfo.js +++ b/test/spec/services/taginfo.js @@ -46,7 +46,7 @@ describe('iD.serviceTaginfo', function() { server.respond(); expect(query(server.requests[0].url)).to.eql( - {query: 'amen', page: '1', rp: '10', sortname: 'count_all', sortorder: 'desc'} + {query: 'amen', page: '1', rp: '10', sortname: 'count_all', sortorder: 'desc', lang: 'en'} ); expect(callback).to.have.been.calledWith( null, [{'title':'amenity', 'value':'amenity'}] @@ -131,7 +131,7 @@ describe('iD.serviceTaginfo', function() { server.respond(); expect(query(server.requests[0].url)).to.eql( - {query: 'recycling:', page: '1', rp: '25', sortname: 'count_all', sortorder: 'desc'} + {query: 'recycling:', page: '1', rp: '25', sortname: 'count_all', sortorder: 'desc', lang: 'en'} ); expect(callback).to.have.been.calledWith( null, [{'title':'recycling:glass', 'value':'recycling:glass'}] @@ -183,7 +183,7 @@ describe('iD.serviceTaginfo', function() { server.respond(); expect(query(server.requests[0].url)).to.eql( - {key: 'amenity', query: 'par', page: '1', rp: '25', sortname: 'count_all', sortorder: 'desc'} + {key: 'amenity', query: 'par', page: '1', rp: '25', sortname: 'count_all', sortorder: 'desc', lang: 'en'} ); expect(callback).to.have.been.calledWith( null, [{'value':'parking','title':'A place for parking cars'}] @@ -321,7 +321,7 @@ describe('iD.serviceTaginfo', function() { server.respond(); expect(query(server.requests[0].url)).to.eql( - {rtype: 'route', query: 's', page: '1', rp: '25', sortname: 'count_relation_members', sortorder: 'desc'} + {rtype: 'route', query: 's', page: '1', rp: '25', sortname: 'count_relation_members', sortorder: 'desc', lang: 'en'} ); expect(callback).to.have.been.calledWith(null, [ {'value': 'stop', 'title': 'stop'},