From d7645d7f219410da69698223c0d673d68cb51b1b Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Tue, 12 Mar 2013 15:45:39 -0400 Subject: [PATCH 01/16] fix locale.js --- js/lib/locale.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/lib/locale.js b/js/lib/locale.js index 91b3818a9..04d9025e7 100644 --- a/js/lib/locale.js +++ b/js/lib/locale.js @@ -18,7 +18,7 @@ function t(s, o, loc) { if (rep !== undefined) { if (o) for (var k in o) rep = rep.replace('{' + k + '}', o[k]); return rep; - } else if (o.default) { + } else if (o && o.default) { return o.default; } else { var missing = 'Missing translation: ' + s; From 1d720b39afb6dd140f93dfe04d4c825de62babef Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Tue, 12 Mar 2013 15:48:15 -0400 Subject: [PATCH 02/16] add portuguese translation --- index.html | 1 + locale/pt.js | 2 +- test/index.html | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 7a96558f9..12524e251 100644 --- a/index.html +++ b/index.html @@ -182,6 +182,7 @@ + diff --git a/locale/pt.js b/locale/pt.js index 55871bb8e..f5a4eed94 100644 --- a/locale/pt.js +++ b/locale/pt.js @@ -1,4 +1,4 @@ -locale.es = { +locale.pt = { modes: { add_area: { title: "Área", //"Area", diff --git a/test/index.html b/test/index.html index 6405d8280..688cf0414 100644 --- a/test/index.html +++ b/test/index.html @@ -163,6 +163,7 @@ + @@ -179,6 +180,7 @@ + From 7133d316cd3cd0ab5e2d4e194bbd2853d724fae4 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Mar 2013 12:56:24 -0700 Subject: [PATCH 03/16] Fix specs --- test/index.html | 2 +- test/spec/lib/locale.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/test/index.html b/test/index.html index 688cf0414..d97f2a6bd 100644 --- a/test/index.html +++ b/test/index.html @@ -163,8 +163,8 @@ - + diff --git a/test/spec/lib/locale.js b/test/spec/lib/locale.js index 3228aa99b..8b4c355fb 100644 --- a/test/spec/lib/locale.js +++ b/test/spec/lib/locale.js @@ -18,6 +18,10 @@ describe("locale", function() { expect(t('test')).to.equal('test'); }); + it("supports a default option", function() { + expect(t('nonesuch', {default: 'default'})).to.equal('default'); + }); + it("falls back to en", function() { locale._current = '__'; expect(t('test')).to.equal('test'); From 107f6cfeba1f32bee60b1864d3eb50bb1dc65137 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Mar 2013 12:32:08 -0700 Subject: [PATCH 04/16] type -> geometry --- data/presets/categories.json | 2 +- data/presets/presets.json | 2 +- data/presets/presets/aeroway.json | 2 +- data/presets/presets/aeroway/aerodrome.json | 2 +- data/presets/presets/aeroway/helipad.json | 2 +- data/presets/presets/amenity.json | 2 +- data/presets/presets/amenity/bank.json | 2 +- data/presets/presets/amenity/bar.json | 2 +- data/presets/presets/amenity/bicycle_rental.json | 2 +- data/presets/presets/amenity/cafe.json | 2 +- data/presets/presets/amenity/cinema.json | 2 +- data/presets/presets/amenity/fast_food.json | 2 +- data/presets/presets/amenity/fire_station.json | 2 +- data/presets/presets/amenity/grave_yard.json | 2 +- data/presets/presets/amenity/hospital.json | 2 +- data/presets/presets/amenity/library.json | 2 +- data/presets/presets/amenity/parking.json | 2 +- data/presets/presets/amenity/pharmacy.json | 2 +- .../presets/amenity/place_of_worship.json | 2 +- .../amenity/place_of_worship/christian.json | 2 +- .../presets/amenity/place_of_worship/jewish.json | 2 +- .../presets/amenity/place_of_worship/muslim.json | 2 +- data/presets/presets/amenity/police.json | 2 +- data/presets/presets/amenity/post_box.json | 2 +- data/presets/presets/amenity/pub.json | 2 +- data/presets/presets/amenity/restaurant.json | 2 +- data/presets/presets/amenity/school.json | 2 +- data/presets/presets/amenity/toilets.json | 2 +- data/presets/presets/amenity/townhall.json | 2 +- data/presets/presets/amenity/university.json | 2 +- data/presets/presets/building.json | 2 +- data/presets/presets/highway.json | 2 +- data/presets/presets/highway/bus_stop.json | 2 +- data/presets/presets/highway/crossing.json | 2 +- data/presets/presets/highway/cycleway.json | 2 +- data/presets/presets/highway/footway.json | 2 +- data/presets/presets/highway/motorway.json | 2 +- data/presets/presets/highway/path.json | 2 +- data/presets/presets/highway/primary.json | 2 +- data/presets/presets/highway/residential.json | 2 +- data/presets/presets/highway/secondary.json | 2 +- data/presets/presets/highway/service.json | 2 +- data/presets/presets/highway/steps.json | 2 +- data/presets/presets/highway/tertiary.json | 2 +- data/presets/presets/highway/track.json | 2 +- data/presets/presets/highway/trunk.json | 2 +- data/presets/presets/highway/turning_circle.json | 2 +- data/presets/presets/highway/unclassified.json | 2 +- data/presets/presets/landuse.json | 2 +- data/presets/presets/landuse/allotments.json | 2 +- data/presets/presets/landuse/cemetery.json | 2 +- data/presets/presets/landuse/commercial.json | 2 +- data/presets/presets/landuse/construction.json | 2 +- data/presets/presets/landuse/farm.json | 2 +- data/presets/presets/landuse/farmyard.json | 2 +- data/presets/presets/landuse/forest.json | 2 +- data/presets/presets/landuse/grass.json | 2 +- data/presets/presets/landuse/industrial.json | 2 +- data/presets/presets/landuse/meadow.json | 2 +- data/presets/presets/landuse/orchard.json | 2 +- data/presets/presets/landuse/quarry.json | 2 +- data/presets/presets/landuse/residential.json | 2 +- data/presets/presets/landuse/vineyard.json | 2 +- data/presets/presets/leisure.json | 2 +- data/presets/presets/leisure/golf_course.json | 2 +- data/presets/presets/leisure/park.json | 2 +- data/presets/presets/leisure/pitch.json | 2 +- data/presets/presets/leisure/pitch/baseball.json | 2 +- .../presets/leisure/pitch/basketball.json | 2 +- data/presets/presets/leisure/pitch/soccer.json | 2 +- data/presets/presets/leisure/pitch/tennis.json | 2 +- data/presets/presets/man_made.json | 2 +- data/presets/presets/man_made/lighthouse.json | 2 +- data/presets/presets/man_made/pier.json | 2 +- data/presets/presets/natural.json | 2 +- data/presets/presets/natural/bay.json | 2 +- data/presets/presets/natural/beach.json | 2 +- data/presets/presets/natural/cliff.json | 2 +- data/presets/presets/natural/coastline.json | 2 +- data/presets/presets/natural/glacier.json | 2 +- data/presets/presets/natural/grassland.json | 2 +- data/presets/presets/natural/heath.json | 2 +- data/presets/presets/natural/peak.json | 2 +- data/presets/presets/natural/scrub.json | 2 +- data/presets/presets/natural/spring.json | 2 +- data/presets/presets/natural/tree.json | 2 +- data/presets/presets/natural/water.json | 2 +- data/presets/presets/natural/water/lake.json | 2 +- data/presets/presets/natural/water/pond.json | 2 +- .../presets/presets/natural/water/reservoir.json | 2 +- data/presets/presets/natural/wetland.json | 2 +- data/presets/presets/natural/wood.json | 2 +- data/presets/presets/office.json | 2 +- data/presets/presets/place.json | 2 +- data/presets/presets/place/hamlet.json | 2 +- data/presets/presets/place/island.json | 2 +- data/presets/presets/place/locality.json | 2 +- data/presets/presets/place/village.json | 2 +- data/presets/presets/railway.json | 2 +- data/presets/presets/railway/rail.json | 2 +- data/presets/presets/railway/subway.json | 2 +- .../presets/presets/railway/subway_entrance.json | 2 +- data/presets/presets/shop.json | 2 +- data/presets/presets/shop/supermarket.json | 2 +- data/presets/presets/tourism.json | 2 +- data/presets/presets/tourism/camp_site.json | 2 +- data/presets/presets/tourism/hotel.json | 2 +- data/presets/presets/tourism/museum.json | 2 +- data/presets/presets/tourism/picnic_site.json | 2 +- data/presets/presets/waterway.json | 2 +- data/presets/presets/waterway/canal.json | 2 +- data/presets/presets/waterway/dam.json | 2 +- data/presets/presets/waterway/ditch.json | 2 +- data/presets/presets/waterway/drain.json | 2 +- data/presets/presets/waterway/river.json | 2 +- data/presets/presets/waterway/riverbank.json | 2 +- data/presets/presets/waterway/stream.json | 2 +- data/presets/presets/waterway/weir.json | 2 +- js/id/presets.js | 4 ++-- js/id/presets/category.js | 4 ++-- js/id/presets/collection.js | 6 +++--- js/id/presets/preset.js | 4 ++-- js/id/ui/preset_grid.js | 2 +- js/id/ui/tag_editor.js | 2 +- test/spec/presets/category.js | 10 +++++----- test/spec/presets/collection.js | 12 ++++++------ test/spec/presets/preset.js | 16 ++++++++-------- 127 files changed, 148 insertions(+), 148 deletions(-) diff --git a/data/presets/categories.json b/data/presets/categories.json index 184ab0df1..2b5138900 100644 --- a/data/presets/categories.json +++ b/data/presets/categories.json @@ -1,7 +1,7 @@ [ { "match": { - "type": "line" + "geometry": "line" }, "icon": "highway", "name": "roads", diff --git a/data/presets/presets.json b/data/presets/presets.json index da99bb325..bcd50593b 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -1 +1 @@ -[{"name":"aeroway","match":{"type":["point","vertex","line","area"],"tags":{"aeroway":"*"}},"form":[{"key":"aeroway","type":"combo"}]},{"name":"airport","match":{"type":["point","area"],"terms":["airplane","airport","aerodrome"],"tags":{"aeroway":"aerodrome"}},"icon":"airport","form":[]},{"name":"helipad","match":{"type":["point","area"],"terms":["helicopter","helipad","heliport"],"tags":{"aeroway":"helipad"}},"icon":"heliport","form":[]},{"name":"amenity","match":{"type":["point","area"],"tags":{"amenity":"*"}},"form":[{"key":"amenity","type":"combo"}]},{"name":"bank","match":{"type":["point","area"],"terms":["coffer","countinghouse","credit union","depository","exchequer","fund","hoard","investment firm","repository","reserve","reservoir","safe","savings","stock","stockpile","store","storehouse","thrift","treasury","trust company","vault"],"tags":{"amenity":"bank"}},"icon":"bank","form":["atm","building_area","address"]},{"name":"bar","match":{"type":["point","area"],"tags":{"amenity":"bar"},"terms":[]},"icon":"bar","form":["building_area","address"]},{"name":"bicycle rental","match":{"type":["point","area"],"tags":{"amenity":"bicycle_rental"}},"icon":"bicycle","form":["capacity","network","operator"]},{"name":"cafe","match":{"type":["point","area"],"terms":["coffee","tea","coffee shop"],"tags":{"amenity":"cafe"}},"icon":"cafe","form":["cuisine","internet_access","building_area","address"]},{"name":"cinema","match":{"type":["point","area"],"terms":["big screen","bijou","cine","drive-in","film","flicks","motion pictures","movie house","movie theater","moving pictures","nabes","photoplay","picture show","pictures","playhouse","show","silver screen"],"tags":{"amenity":"cinema"}},"icon":"cinema","form":["building_area","address"]},{"name":"fast food","match":{"type":["point","area"],"tags":{"amenity":"fast_food"},"terms":[]},"icon":"fast-food","form":["cuisine","building_area","address"]},{"name":"fire station","match":{"type":["point","area"],"tags":{"amenity":"fire_station"},"terms":[]},"icon":"fire-station","form":["operator","building_area","address"]},{"name":"grave yard","match":{"type":["point","area"],"tags":{"amenity":"grave_yard"}},"icon":"cemetery","form":["religion"]},{"name":"hospital","match":{"type":["point","area"],"terms":["clinic","emergency room","health service","hospice","infirmary","institution","nursing home","rest home","sanatorium","sanitarium","sick bay","surgery","ward"],"tags":{"amenity":"hospital"}},"icon":"hospital","form":["emergency","building_area","address"]},{"name":"library","match":{"type":["point","area"],"tags":{"amenity":"library"},"terms":[]},"icon":"library","form":["operator","building_area","address"]},{"name":"parking","match":{"type":["point","area"],"tags":{"amenity":"parking"},"terms":[]},"icon":"parking","form":["fee","access","address"]},{"name":"pharmacy","match":{"type":["point","area"],"tags":{"amenity":"pharmacy"},"terms":[]},"icon":"pharmacy","form":["operator","building_area","address"]},{"name":"place of worship","match":{"type":["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"}},"icon":"place-of-worship","form":["religion","denomination","building","address"]},{"name":"church","match":{"type":["point","area"],"terms":["christian","abbey","basilica","bethel","cathedral","chancel","chantry","chapel","church","fold","house of God","house of prayer","house of worship","minster","mission","oratory","parish","sacellum","sanctuary","shrine","tabernacle","temple"],"tags":{"amenity":"place_of_worship","religion":"christian"}},"icon":"religious-christian","form":["denomination","building","address"]},{"name":"synagogue","match":{"type":["point","area"],"terms":["jewish","synagogue"],"tags":{"amenity":"place_of_worship","religion":"jewish"}},"icon":"religious-jewish","form":["denomination","building","address"]},{"name":"mosque","match":{"type":["point","area"],"terms":["muslim","mosque"],"tags":{"amenity":"place_of_worship","religion":"muslim"}},"icon":"religious-muslim","form":["denomination","building","address"]},{"name":"police","match":{"type":["point","area"],"terms":["badge","bear","blue","bluecoat","bobby","boy scout","bull","constable","constabulary","cop","copper","corps","county mounty","detective","fed","flatfoot","force","fuzz","gendarme","gumshoe","heat","law","law enforcement","man","narc","officers","patrolman","police"],"tags":{"amenity":"police"}},"icon":"police","form":["operator","building_area","address"]},{"name":"post box","match":{"type":["point"],"tags":{"amenity":"post_box"},"terms":["letter drop","letterbox","mail drop","mailbox","pillar box","postbox"]},"icon":"post","form":["address","operator",{"key":"collection_times","type":"text"}]},{"name":"pub","match":{"type":["point","area"],"tags":{"amenity":"pub"},"terms":[]},"icon":"beer","form":["building_area","address"]},{"name":"restaurant","match":{"type":["point","area"],"terms":["bar","cafeteria","café","canteen","chophouse","coffee shop","diner","dining room","dive*","doughtnut shop","drive-in","eatery","eating house","eating place","fast-food place","greasy spoon","grill","hamburger stand","hashery","hideaway","hotdog stand","inn","joint*","luncheonette","lunchroom","night club","outlet*","pizzeria","saloon","soda fountain","watering hole"],"tags":{"amenity":"restaurant"}},"icon":"restaurant","form":["cuisine","building_area","address"]},{"name":"school","match":{"type":["point","area"],"terms":["academy","alma mater","blackboard","college","department","discipline","establishment","faculty","hall","halls of ivy","institute","institution","jail*","schoolhouse","seminary","university"],"tags":{"amenity":"school"}},"icon":"school","form":["operator","building","address"]},{"name":"toilets","match":{"type":["point","area"],"terms":[],"tags":{"amenity":"toilets"}},"form":["operator","building","address"]},{"name":"town hall","match":{"type":["point","areea"],"terms":["village hall","city government","courthouse","municipal building","municipal center"],"tags":{"amenity":"townhall"}},"icon":"town-hall","form":["building_area","address"]},{"name":"university","match":{"type":["point","area"],"tags":{"amenity":"university"},"terms":[]},"icon":"college","form":["operator","address"]},{"name":"building","match":{"type":["point","area"],"tags":{"building":"*"},"terms":[]},"icon":"warehouse","form":["building_yes","levels","address"]},{"name":"highway","match":{"type":["point","vertex","line","area"],"tags":{"highway":"*"}},"form":[{"key":"highway","type":"combo"}]},{"name":"bus stop","match":{"type":["point"],"tags":{"highway":"bus_stop"},"terms":[]},"icon":"bus","form":["operator","shelter"]},{"name":"crossing","match":{"type":["vertex"],"tags":{"highway":"crossing"},"terms":["crosswalk","zebra crossing"]},"form":[{"key":"crossing","type":"combo"}]},{"name":"cycle path","match":{"type":["line"],"tags":{"highway":"cycleway"},"terms":[]},"icon":"highway-cycleway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"foot path","match":{"type":["line"],"terms":["beaten path","boulevard","clearing","course","cut*","drag*","footpath","highway","lane","line","orbit","passage","pathway","rail","rails","road","roadway","route","street","thoroughfare","trackway","trail","trajectory","walk"],"tags":{"highway":"footway"}},"icon":"highway-footway","form":["access","surface"]},{"name":"motorway","match":{"type":["line"],"tags":{"highway":"motorway"},"terms":[]},"icon":"highway-motorway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"path","match":{"type":["line"],"tags":{"highway":"path"},"terms":[]},"icon":"highway-footway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"primary road","match":{"type":["line"],"tags":{"highway":"primary"},"terms":[]},"icon":"highway-primary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"residential road","match":{"type":["line"],"tags":{"highway":"residential"},"terms":[]},"icon":"highway-residential","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"secondary road","match":{"type":["line"],"tags":{"highway":"secondary"},"terms":[]},"icon":"highway-secondary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"service road","match":{"type":["line"],"tags":{"highway":"service"},"terms":[]},"icon":"highway-service","form":[{"key":"service","type":"combo","options":["parking_aisle","driveway","alley","drive-through","emergency_access"]},"oneway","roadtype","access","maxspeed","surface"]},{"name":"steps","match":{"type":["line"],"tags":{"highway":"steps"},"terms":["stairs","staircase"]},"form":["access","surface"]},{"name":"tertiary road","match":{"type":["line"],"tags":{"highway":"tertiary"},"terms":[]},"icon":"highway-tertiary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"track","match":{"type":["line"],"tags":{"highway":"track"},"terms":[]},"icon":"highway-track","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"trunk highway","match":{"type":["line"],"tags":{"highway":"trunk"},"terms":[]},"icon":"highway-trunk","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"turning circle","match":{"type":["vertex"],"tags":{"highway":"turning_circle"},"terms":[]},"icon":"circle"},{"name":"unclassified","match":{"type":["line"],"tags":{"highway":"unclassified"},"terms":[]},"icon":"highway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"landuse","match":{"type":["point","area"],"tags":{"landuse":"*"}},"form":[{"key":"landuse","type":"combo"}]},{"name":"allotments","match":{"type":["point","area"],"tags":{"landuse":"allotments"},"terms":[]},"form":[]},{"name":"cemetery","match":{"type":["point","area"],"tags":{"landuse":"cemetery"},"terms":[]},"form":[],"icon":"cemetery"},{"name":"commercial","match":{"type":["point","area"],"tags":{"landuse":"commercial"},"terms":[]},"form":[]},{"name":"construction","match":{"type":["point","area"],"tags":{"landuse":"construction"},"terms":[]},"form":[{"key":"construction","type":"combo"},"operator"]},{"name":"farm","match":{"type":["point","area"],"tags":{"landuse":"farm"},"terms":[]},"form":[]},{"name":"farmyard","match":{"type":["point","area"],"tags":{"landuse":"farmyard"},"terms":[]},"form":[]},{"name":"forest","match":{"type":["point","area"],"tags":{"landuse":"forest"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"grass","match":{"type":["point","area"],"tags":{"landuse":"grass"},"terms":[]},"form":[]},{"name":"industrial","match":{"type":["point","area"],"tags":{"landuse":"industrial"},"terms":[]},"form":[]},{"name":"meadow","match":{"type":["point","area"],"tags":{"landuse":"meadow"},"terms":[]},"form":[]},{"name":"orchard","match":{"type":["point","area"],"tags":{"landuse":"orchard"},"terms":[]},"form":[]},{"name":"quarry","match":{"type":["point","area"],"tags":{"landuse":"quarry"},"terms":[]},"form":[]},{"name":"residential","match":{"type":["point","area"],"tags":{"landuse":"residential"},"terms":[]},"form":[]},{"name":"vineyard","match":{"type":["point","area"],"tags":{"landuse":"vineyard"},"terms":[]},"form":[]},{"name":"leisure","match":{"type":["point","area"],"tags":{"leisure":"*"}},"form":[{"key":"leisure","type":"combo"}]},{"name":"golf course","match":{"type":["point","area"],"tags":{"leisure":"golf_course"},"terms":[]},"icon":"golf","form":["operator","address"]},{"name":"park","match":{"type":["point","area"],"terms":["esplanade","estate","forest","garden","grass","green","grounds","lawn","lot","meadow","parkland","place","playground","plaza","pleasure garden","recreation area","square","tract","village green","woodland"],"tags":{"leisure":"park"}},"icon":"park"},{"name":"sport pitch","match":{"type":["point","area"],"tags":{"leisure":"pitch"},"terms":[]},"icon":"pitch","form":[{"key":"sport","type":"combo"},"surface"]},{"name":"baseball diamond","match":{"type":["point","area"],"tags":{"leisure":"pitch","sport":"baseball"},"terms":[]},"icon":"baseball","form":["surface"]},{"name":"basketball court","match":{"type":["point","area"],"tags":{"leisure":"pitch","sport":"basketball"},"terms":[]},"icon":"basketball","form":["surface"]},{"name":"soccer field","match":{"type":["point","area"],"tags":{"leisure":"pitch","sport":"soccer"},"terms":[]},"icon":"soccer","form":["surface"]},{"name":"tennis court","match":{"type":["point","area"],"tags":{"leisure":"pitch","sport":"tennis"},"terms":[]},"icon":"tennis","form":["surface"]},{"name":"man made","match":{"type":["point","vertex","line","area"],"tags":{"man_made":"*"}},"form":[{"key":"man_made","type":"combo"}]},{"name":"lighthouse","match":{"type":["point","area"],"tags":{"man_made":"lighthouse"}}},{"name":"pier","match":{"type":["line","area"],"tags":{"man_made":"pier"}}},{"name":"natural","match":{"type":["point","area"],"tags":{"natural":"*"}},"form":[{"key":"natural","type":"combo"}]},{"name":"bay","match":{"type":["point","area"],"terms":[],"tags":{"natural":"bay"}}},{"name":"beach","match":{"type":["point","area"],"terms":[],"tags":{"natural":"beach"}},"form":["surface"]},{"name":"cliff","match":{"type":["point","vertex","line","area"],"terms":[],"tags":{"natural":"cliff"}}},{"name":"coastline","match":{"type":["line"],"terms":["shore"],"tags":{"natural":"coastline"}}},{"name":"glacier","match":{"type":["area"],"terms":[],"tags":{"natural":"glacier"}}},{"name":"grassland","match":{"type":["point","area"],"terms":[],"tags":{"natural":"grassland"}}},{"name":"heath","match":{"type":["area"],"terms":[],"tags":{"natural":"heath"}}},{"name":"peak","match":{"type":["point","vertex"],"tags":{"natural":"peak"},"terms":["acme","aiguille","alp","climax","crest","crown","hill","mount","mountain","pinnacle","summit","tip","top"]},"icon":"triangle","form":["elevation"]},{"name":"scrub","match":{"type":["area"],"tags":{"natural":"scrub"},"terms":[]}},{"name":"spring","match":{"type":["point","vertex"],"terms":[],"tags":{"natural":"spring"}}},{"name":"tree","match":{"type":["point","vertex"],"terms":[],"tags":{"natural":"tree"}},"form":[{"key":"denotation","type":"combo"}],"icon":"park"},{"name":"water","match":{"type":["area"],"tags":{"natural":"water"},"terms":[]},"form":[{"key":"water","type":"combo"}]},{"name":"lake","match":{"type":["area"],"tags":{"natural":"water","water":"lake"},"terms":["lakelet","loch","mere"]}},{"name":"pond","match":{"type":["area"],"tags":{"natural":"water","water":"pond"},"terms":["lakelet","millpond","tarn","pool","mere"]}},{"name":"reservoir","match":{"type":["area"],"tags":{"natural":"water","water":"reservoir"},"terms":[]}},{"name":"wetland","match":{"type":["point","area"],"tags":{"natural":"wetland"},"terms":[]},"form":[{"key":"wetland","type":"combo"}]},{"name":"wood","match":{"type":["point","area"],"tags":{"natural":"wood"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"office","match":{"type":["point","area"],"tags":{"office":"*"},"terms":[]},"icon":"commercial","form":[{"key":"office","type":"combo"},"address","opening_hours"]},{"name":"place","match":{"type":["point","area"],"tags":{"place":"*"}},"form":[{"key":"place","type":"combo"}]},{"name":"hamlet","match":{"type":["point","area"],"tags":{"place":"hamlet"}},"icon":"triangle-stroked"},{"name":"island","match":{"type":["point","area"],"terms":["archipelago","atoll","bar","cay","isle","islet","key","reef"],"tags":{"place":"island"}}},{"name":"locality","match":{"type":["point","area"],"tags":{"place":"locality"}},"icon":"marker"},{"name":"village","match":{"type":["point","area"],"tags":{"place":"village"}},"icon":"square-stroked"},{"name":"railway","match":{"type":["point","vertex","line","area"],"tags":{"railway":"*"}},"form":[{"key":"railway","type":"combo"}]},{"name":"rail","match":{"type":["line"],"tags":{"railway":"rail"},"terms":[]},"icon":"railway-rail"},{"name":"subway","match":{"type":["line"],"tags":{"railway":"subway"},"terms":[]},"icon":"railway-rail"},{"name":"subway entrance","match":{"type":["point"],"tags":{"railway":"subway_entrance"},"terms":[]},"icon":"rail-underground"},{"name":"shop","match":{"type":["point","area"],"tags":{"shop":"*"},"terms":[]},"icon":"shop","form":[{"key":"shop","type":"combo"},"address","opening_hours"]},{"name":"supermarket","match":{"type":["point","area"],"terms":["bazaar","boutique","chain","co-op","cut-rate store","discount store","five-and-dime","flea market","galleria","mall","mart","outlet","outlet store","shop","shopping center","shopping plaza","stand","store","supermarket","thrift shop"],"tags":{"shop":"supermarket"}},"icon":"grocery","form":["operator","building_area","address"]},{"name":"tourism","match":{"type":["point","area"],"tags":{"tourism":"*"}},"form":[{"key":"tourism","type":"combo"}]},{"name":"camp site","match":{"type":["point","area"],"terms":[],"tags":{"tourism":"camp_site"}},"icon":"campsite","form":["operator","address"]},{"name":"hotel","match":{"type":["point","area"],"terms":[],"tags":{"tourism":"hotel"}},"icon":"lodging","form":["operator","building_area","address"]},{"name":"museum","match":{"type":["point","area"],"terms":["exhibition","exhibits archive","foundation","gallery","hall","institution","library","menagerie","repository","salon","storehouse","treasury","vault"],"tags":{"tourism":"museum"}},"icon":"museum","form":["operator","building_area","address"]},{"name":"picnic site","match":{"type":["point","area"],"terms":[],"tags":{"tourism":"picnic_site"}},"form":["operator","building_area","address"]},{"name":"waterway","match":{"type":["point","vertex","line","area"],"tags":{"waterway":"*"}},"form":[{"key":"waterway","type":"combo"}]},{"name":"canal","match":{"type":["line"],"tags":{"waterway":"canal"}},"icon":"waterway-river"},{"name":"dam","match":{"type":["point","vertex","line","area"],"tags":{"waterway":"dam"}},"icon":"dam"},{"name":"ditch","match":{"type":["line"],"tags":{"waterway":"ditch"}},"icon":"waterway-river"},{"name":"drain","match":{"type":["line"],"tags":{"waterway":"drain"}},"icon":"waterway-river"},{"name":"river","match":{"type":["line"],"terms":["beck","branch","brook","course","creek","estuary","rill","rivulet","run","runnel","stream","tributary","watercourse"],"tags":{"waterway":"river"}},"icon":"waterway-river"},{"name":"riverbank","match":{"type":["area"],"tags":{"waterway":"riverbank"}},"icon":"water"},{"name":"stream","match":{"type":["line"],"terms":["beck","branch","brook","burn","course","creek","current","drift","flood","flow","freshet","race","rill","rindle","rivulet","run","runnel","rush","spate","spritz","surge","tide","torrent","tributary","watercourse"],"tags":{"waterway":"stream"}},"icon":"waterway-river","form":["layer"]},{"name":"weir","match":{"type":["vertex","line"],"tags":{"waterway":"weir"}},"icon":"dam"}] \ No newline at end of file +[{"name":"aeroway","match":{"geometry":["point","vertex","line","area"],"tags":{"aeroway":"*"}},"form":[{"key":"aeroway","type":"combo"}]},{"name":"airport","match":{"geometry":["point","area"],"terms":["airplane","airport","aerodrome"],"tags":{"aeroway":"aerodrome"}},"icon":"airport","form":[]},{"name":"helipad","match":{"geometry":["point","area"],"terms":["helicopter","helipad","heliport"],"tags":{"aeroway":"helipad"}},"icon":"heliport","form":[]},{"name":"amenity","match":{"geometry":["point","area"],"tags":{"amenity":"*"}},"form":[{"key":"amenity","type":"combo"}]},{"name":"bank","match":{"geometry":["point","area"],"terms":["coffer","countinghouse","credit union","depository","exchequer","fund","hoard","investment firm","repository","reserve","reservoir","safe","savings","stock","stockpile","store","storehouse","thrift","treasury","trust company","vault"],"tags":{"amenity":"bank"}},"icon":"bank","form":["atm","building_area","address"]},{"name":"bar","match":{"geometry":["point","area"],"tags":{"amenity":"bar"},"terms":[]},"icon":"bar","form":["building_area","address"]},{"name":"bicycle rental","match":{"geometry":["point","area"],"tags":{"amenity":"bicycle_rental"}},"icon":"bicycle","form":["capacity","network","operator"]},{"name":"cafe","match":{"geometry":["point","area"],"terms":["coffee","tea","coffee shop"],"tags":{"amenity":"cafe"}},"icon":"cafe","form":["cuisine","internet_access","building_area","address"]},{"name":"cinema","match":{"geometry":["point","area"],"terms":["big screen","bijou","cine","drive-in","film","flicks","motion pictures","movie house","movie theater","moving pictures","nabes","photoplay","picture show","pictures","playhouse","show","silver screen"],"tags":{"amenity":"cinema"}},"icon":"cinema","form":["building_area","address"]},{"name":"fast food","match":{"geometry":["point","area"],"tags":{"amenity":"fast_food"},"terms":[]},"icon":"fast-food","form":["cuisine","building_area","address"]},{"name":"fire station","match":{"geometry":["point","area"],"tags":{"amenity":"fire_station"},"terms":[]},"icon":"fire-station","form":["operator","building_area","address"]},{"name":"grave yard","match":{"geometry":["point","area"],"tags":{"amenity":"grave_yard"}},"icon":"cemetery","form":["religion"]},{"name":"hospital","match":{"geometry":["point","area"],"terms":["clinic","emergency room","health service","hospice","infirmary","institution","nursing home","rest home","sanatorium","sanitarium","sick bay","surgery","ward"],"tags":{"amenity":"hospital"}},"icon":"hospital","form":["emergency","building_area","address"]},{"name":"library","match":{"geometry":["point","area"],"tags":{"amenity":"library"},"terms":[]},"icon":"library","form":["operator","building_area","address"]},{"name":"parking","match":{"geometry":["point","area"],"tags":{"amenity":"parking"},"terms":[]},"icon":"parking","form":["fee","access","address"]},{"name":"pharmacy","match":{"geometry":["point","area"],"tags":{"amenity":"pharmacy"},"terms":[]},"icon":"pharmacy","form":["operator","building_area","address"]},{"name":"place of worship","match":{"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"}},"icon":"place-of-worship","form":["religion","denomination","building","address"]},{"name":"church","match":{"geometry":["point","area"],"terms":["christian","abbey","basilica","bethel","cathedral","chancel","chantry","chapel","church","fold","house of God","house of prayer","house of worship","minster","mission","oratory","parish","sacellum","sanctuary","shrine","tabernacle","temple"],"tags":{"amenity":"place_of_worship","religion":"christian"}},"icon":"religious-christian","form":["denomination","building","address"]},{"name":"synagogue","match":{"geometry":["point","area"],"terms":["jewish","synagogue"],"tags":{"amenity":"place_of_worship","religion":"jewish"}},"icon":"religious-jewish","form":["denomination","building","address"]},{"name":"mosque","match":{"geometry":["point","area"],"terms":["muslim","mosque"],"tags":{"amenity":"place_of_worship","religion":"muslim"}},"icon":"religious-muslim","form":["denomination","building","address"]},{"name":"police","match":{"geometry":["point","area"],"terms":["badge","bear","blue","bluecoat","bobby","boy scout","bull","constable","constabulary","cop","copper","corps","county mounty","detective","fed","flatfoot","force","fuzz","gendarme","gumshoe","heat","law","law enforcement","man","narc","officers","patrolman","police"],"tags":{"amenity":"police"}},"icon":"police","form":["operator","building_area","address"]},{"name":"post box","match":{"geometry":["point"],"tags":{"amenity":"post_box"},"terms":["letter drop","letterbox","mail drop","mailbox","pillar box","postbox"]},"icon":"post","form":["address","operator",{"key":"collection_times","type":"text"}]},{"name":"pub","match":{"geometry":["point","area"],"tags":{"amenity":"pub"},"terms":[]},"icon":"beer","form":["building_area","address"]},{"name":"restaurant","match":{"geometry":["point","area"],"terms":["bar","cafeteria","café","canteen","chophouse","coffee shop","diner","dining room","dive*","doughtnut shop","drive-in","eatery","eating house","eating place","fast-food place","greasy spoon","grill","hamburger stand","hashery","hideaway","hotdog stand","inn","joint*","luncheonette","lunchroom","night club","outlet*","pizzeria","saloon","soda fountain","watering hole"],"tags":{"amenity":"restaurant"}},"icon":"restaurant","form":["cuisine","building_area","address"]},{"name":"school","match":{"geometry":["point","area"],"terms":["academy","alma mater","blackboard","college","department","discipline","establishment","faculty","hall","halls of ivy","institute","institution","jail*","schoolhouse","seminary","university"],"tags":{"amenity":"school"}},"icon":"school","form":["operator","building","address"]},{"name":"toilets","match":{"geometry":["point","area"],"terms":[],"tags":{"amenity":"toilets"}},"form":["operator","building","address"]},{"name":"town hall","match":{"geometry":["point","areea"],"terms":["village hall","city government","courthouse","municipal building","municipal center"],"tags":{"amenity":"townhall"}},"icon":"town-hall","form":["building_area","address"]},{"name":"university","match":{"geometry":["point","area"],"tags":{"amenity":"university"},"terms":[]},"icon":"college","form":["operator","address"]},{"name":"building","match":{"geometry":["point","area"],"tags":{"building":"*"},"terms":[]},"icon":"warehouse","form":["building_yes","levels","address"]},{"name":"highway","match":{"geometry":["point","vertex","line","area"],"tags":{"highway":"*"}},"form":[{"key":"highway","type":"combo"}]},{"name":"bus stop","match":{"geometry":["point"],"tags":{"highway":"bus_stop"},"terms":[]},"icon":"bus","form":["operator","shelter"]},{"name":"crossing","match":{"geometry":["vertex"],"tags":{"highway":"crossing"},"terms":["crosswalk","zebra crossing"]},"form":[{"key":"crossing","type":"combo"}]},{"name":"cycle path","match":{"geometry":["line"],"tags":{"highway":"cycleway"},"terms":[]},"icon":"highway-cycleway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"foot path","match":{"geometry":["line"],"terms":["beaten path","boulevard","clearing","course","cut*","drag*","footpath","highway","lane","line","orbit","passage","pathway","rail","rails","road","roadway","route","street","thoroughfare","trackway","trail","trajectory","walk"],"tags":{"highway":"footway"}},"icon":"highway-footway","form":["access","surface"]},{"name":"motorway","match":{"geometry":["line"],"tags":{"highway":"motorway"},"terms":[]},"icon":"highway-motorway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"path","match":{"geometry":["line"],"tags":{"highway":"path"},"terms":[]},"icon":"highway-footway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"primary road","match":{"geometry":["line"],"tags":{"highway":"primary"},"terms":[]},"icon":"highway-primary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"residential road","match":{"geometry":["line"],"tags":{"highway":"residential"},"terms":[]},"icon":"highway-residential","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"secondary road","match":{"geometry":["line"],"tags":{"highway":"secondary"},"terms":[]},"icon":"highway-secondary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"service road","match":{"geometry":["line"],"tags":{"highway":"service"},"terms":[]},"icon":"highway-service","form":[{"key":"service","type":"combo","options":["parking_aisle","driveway","alley","drive-through","emergency_access"]},"oneway","roadtype","access","maxspeed","surface"]},{"name":"steps","match":{"geometry":["line"],"tags":{"highway":"steps"},"terms":["stairs","staircase"]},"form":["access","surface"]},{"name":"tertiary road","match":{"geometry":["line"],"tags":{"highway":"tertiary"},"terms":[]},"icon":"highway-tertiary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"track","match":{"geometry":["line"],"tags":{"highway":"track"},"terms":[]},"icon":"highway-track","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"trunk highway","match":{"geometry":["line"],"tags":{"highway":"trunk"},"terms":[]},"icon":"highway-trunk","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"turning circle","match":{"geometry":["vertex"],"tags":{"highway":"turning_circle"},"terms":[]},"icon":"circle"},{"name":"unclassified","match":{"geometry":["line"],"tags":{"highway":"unclassified"},"terms":[]},"icon":"highway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"landuse","match":{"geometry":["point","area"],"tags":{"landuse":"*"}},"form":[{"key":"landuse","type":"combo"}]},{"name":"allotments","match":{"geometry":["point","area"],"tags":{"landuse":"allotments"},"terms":[]},"form":[]},{"name":"cemetery","match":{"geometry":["point","area"],"tags":{"landuse":"cemetery"},"terms":[]},"form":[],"icon":"cemetery"},{"name":"commercial","match":{"geometry":["point","area"],"tags":{"landuse":"commercial"},"terms":[]},"form":[]},{"name":"construction","match":{"geometry":["point","area"],"tags":{"landuse":"construction"},"terms":[]},"form":[{"key":"construction","type":"combo"},"operator"]},{"name":"farm","match":{"geometry":["point","area"],"tags":{"landuse":"farm"},"terms":[]},"form":[]},{"name":"farmyard","match":{"geometry":["point","area"],"tags":{"landuse":"farmyard"},"terms":[]},"form":[]},{"name":"forest","match":{"geometry":["point","area"],"tags":{"landuse":"forest"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"grass","match":{"geometry":["point","area"],"tags":{"landuse":"grass"},"terms":[]},"form":[]},{"name":"industrial","match":{"geometry":["point","area"],"tags":{"landuse":"industrial"},"terms":[]},"form":[]},{"name":"meadow","match":{"geometry":["point","area"],"tags":{"landuse":"meadow"},"terms":[]},"form":[]},{"name":"orchard","match":{"geometry":["point","area"],"tags":{"landuse":"orchard"},"terms":[]},"form":[]},{"name":"quarry","match":{"geometry":["point","area"],"tags":{"landuse":"quarry"},"terms":[]},"form":[]},{"name":"residential","match":{"geometry":["point","area"],"tags":{"landuse":"residential"},"terms":[]},"form":[]},{"name":"vineyard","match":{"geometry":["point","area"],"tags":{"landuse":"vineyard"},"terms":[]},"form":[]},{"name":"leisure","match":{"geometry":["point","area"],"tags":{"leisure":"*"}},"form":[{"key":"leisure","type":"combo"}]},{"name":"golf course","match":{"geometry":["point","area"],"tags":{"leisure":"golf_course"},"terms":[]},"icon":"golf","form":["operator","address"]},{"name":"park","match":{"geometry":["point","area"],"terms":["esplanade","estate","forest","garden","grass","green","grounds","lawn","lot","meadow","parkland","place","playground","plaza","pleasure garden","recreation area","square","tract","village green","woodland"],"tags":{"leisure":"park"}},"icon":"park"},{"name":"sport pitch","match":{"geometry":["point","area"],"tags":{"leisure":"pitch"},"terms":[]},"icon":"pitch","form":[{"key":"sport","type":"combo"},"surface"]},{"name":"baseball diamond","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"baseball"},"terms":[]},"icon":"baseball","form":["surface"]},{"name":"basketball court","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"basketball"},"terms":[]},"icon":"basketball","form":["surface"]},{"name":"soccer field","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"soccer"},"terms":[]},"icon":"soccer","form":["surface"]},{"name":"tennis court","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"tennis"},"terms":[]},"icon":"tennis","form":["surface"]},{"name":"man made","match":{"geometry":["point","vertex","line","area"],"tags":{"man_made":"*"}},"form":[{"key":"man_made","type":"combo"}]},{"name":"lighthouse","match":{"geometry":["point","area"],"tags":{"man_made":"lighthouse"}}},{"name":"pier","match":{"geometry":["line","area"],"tags":{"man_made":"pier"}}},{"name":"natural","match":{"geometry":["point","area"],"tags":{"natural":"*"}},"form":[{"key":"natural","type":"combo"}]},{"name":"bay","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"bay"}}},{"name":"beach","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"beach"}},"form":["surface"]},{"name":"cliff","match":{"geometry":["point","vertex","line","area"],"terms":[],"tags":{"natural":"cliff"}}},{"name":"coastline","match":{"geometry":["line"],"terms":["shore"],"tags":{"natural":"coastline"}}},{"name":"glacier","match":{"geometry":["area"],"terms":[],"tags":{"natural":"glacier"}}},{"name":"grassland","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"grassland"}}},{"name":"heath","match":{"geometry":["area"],"terms":[],"tags":{"natural":"heath"}}},{"name":"peak","match":{"geometry":["point","vertex"],"tags":{"natural":"peak"},"terms":["acme","aiguille","alp","climax","crest","crown","hill","mount","mountain","pinnacle","summit","tip","top"]},"icon":"triangle","form":["elevation"]},{"name":"scrub","match":{"geometry":["area"],"tags":{"natural":"scrub"},"terms":[]}},{"name":"spring","match":{"geometry":["point","vertex"],"terms":[],"tags":{"natural":"spring"}}},{"name":"tree","match":{"geometry":["point","vertex"],"terms":[],"tags":{"natural":"tree"}},"form":[{"key":"denotation","type":"combo"}],"icon":"park"},{"name":"water","match":{"geometry":["area"],"tags":{"natural":"water"},"terms":[]},"form":[{"key":"water","type":"combo"}]},{"name":"lake","match":{"geometry":["area"],"tags":{"natural":"water","water":"lake"},"terms":["lakelet","loch","mere"]}},{"name":"pond","match":{"geometry":["area"],"tags":{"natural":"water","water":"pond"},"terms":["lakelet","millpond","tarn","pool","mere"]}},{"name":"reservoir","match":{"geometry":["area"],"tags":{"natural":"water","water":"reservoir"},"terms":[]}},{"name":"wetland","match":{"geometry":["point","area"],"tags":{"natural":"wetland"},"terms":[]},"form":[{"key":"wetland","type":"combo"}]},{"name":"wood","match":{"geometry":["point","area"],"tags":{"natural":"wood"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"office","match":{"geometry":["point","area"],"tags":{"office":"*"},"terms":[]},"icon":"commercial","form":[{"key":"office","type":"combo"},"address","opening_hours"]},{"name":"place","match":{"geometry":["point","area"],"tags":{"place":"*"}},"form":[{"key":"place","type":"combo"}]},{"name":"hamlet","match":{"geometry":["point","area"],"tags":{"place":"hamlet"}},"icon":"triangle-stroked"},{"name":"island","match":{"geometry":["point","area"],"terms":["archipelago","atoll","bar","cay","isle","islet","key","reef"],"tags":{"place":"island"}}},{"name":"locality","match":{"geometry":["point","area"],"tags":{"place":"locality"}},"icon":"marker"},{"name":"village","match":{"geometry":["point","area"],"tags":{"place":"village"}},"icon":"square-stroked"},{"name":"railway","match":{"geometry":["point","vertex","line","area"],"tags":{"railway":"*"}},"form":[{"key":"railway","type":"combo"}]},{"name":"rail","match":{"geometry":["line"],"tags":{"railway":"rail"},"terms":[]},"icon":"railway-rail"},{"name":"subway","match":{"geometry":["line"],"tags":{"railway":"subway"},"terms":[]},"icon":"railway-rail"},{"name":"subway entrance","match":{"geometry":["point"],"tags":{"railway":"subway_entrance"},"terms":[]},"icon":"rail-underground"},{"name":"shop","match":{"geometry":["point","area"],"tags":{"shop":"*"},"terms":[]},"icon":"shop","form":[{"key":"shop","type":"combo"},"address","opening_hours"]},{"name":"supermarket","match":{"geometry":["point","area"],"terms":["bazaar","boutique","chain","co-op","cut-rate store","discount store","five-and-dime","flea market","galleria","mall","mart","outlet","outlet store","shop","shopping center","shopping plaza","stand","store","supermarket","thrift shop"],"tags":{"shop":"supermarket"}},"icon":"grocery","form":["operator","building_area","address"]},{"name":"tourism","match":{"geometry":["point","area"],"tags":{"tourism":"*"}},"form":[{"key":"tourism","type":"combo"}]},{"name":"camp site","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"camp_site"}},"icon":"campsite","form":["operator","address"]},{"name":"hotel","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"hotel"}},"icon":"lodging","form":["operator","building_area","address"]},{"name":"museum","match":{"geometry":["point","area"],"terms":["exhibition","exhibits archive","foundation","gallery","hall","institution","library","menagerie","repository","salon","storehouse","treasury","vault"],"tags":{"tourism":"museum"}},"icon":"museum","form":["operator","building_area","address"]},{"name":"picnic site","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"picnic_site"}},"form":["operator","building_area","address"]},{"name":"waterway","match":{"geometry":["point","vertex","line","area"],"tags":{"waterway":"*"}},"form":[{"key":"waterway","type":"combo"}]},{"name":"canal","match":{"geometry":["line"],"tags":{"waterway":"canal"}},"icon":"waterway-river"},{"name":"dam","match":{"geometry":["point","vertex","line","area"],"tags":{"waterway":"dam"}},"icon":"dam"},{"name":"ditch","match":{"geometry":["line"],"tags":{"waterway":"ditch"}},"icon":"waterway-river"},{"name":"drain","match":{"geometry":["line"],"tags":{"waterway":"drain"}},"icon":"waterway-river"},{"name":"river","match":{"geometry":["line"],"terms":["beck","branch","brook","course","creek","estuary","rill","rivulet","run","runnel","stream","tributary","watercourse"],"tags":{"waterway":"river"}},"icon":"waterway-river"},{"name":"riverbank","match":{"geometry":["area"],"tags":{"waterway":"riverbank"}},"icon":"water"},{"name":"stream","match":{"geometry":["line"],"terms":["beck","branch","brook","burn","course","creek","current","drift","flood","flow","freshet","race","rill","rindle","rivulet","run","runnel","rush","spate","spritz","surge","tide","torrent","tributary","watercourse"],"tags":{"waterway":"stream"}},"icon":"waterway-river","form":["layer"]},{"name":"weir","match":{"geometry":["vertex","line"],"tags":{"waterway":"weir"}},"icon":"dam"}] \ No newline at end of file diff --git a/data/presets/presets/aeroway.json b/data/presets/presets/aeroway.json index c1e578441..d3e8c5b4e 100644 --- a/data/presets/presets/aeroway.json +++ b/data/presets/presets/aeroway.json @@ -1,7 +1,7 @@ { "name": "aeroway", "match": { - "type": [ + "geometry": [ "point", "vertex", "line", diff --git a/data/presets/presets/aeroway/aerodrome.json b/data/presets/presets/aeroway/aerodrome.json index 3a9902d95..3bf3bdd96 100644 --- a/data/presets/presets/aeroway/aerodrome.json +++ b/data/presets/presets/aeroway/aerodrome.json @@ -1,7 +1,7 @@ { "name": "airport", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/aeroway/helipad.json b/data/presets/presets/aeroway/helipad.json index 8a26fbdc5..0aa1f5d02 100644 --- a/data/presets/presets/aeroway/helipad.json +++ b/data/presets/presets/aeroway/helipad.json @@ -1,7 +1,7 @@ { "name": "helipad", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity.json b/data/presets/presets/amenity.json index de010b188..e55aaae03 100644 --- a/data/presets/presets/amenity.json +++ b/data/presets/presets/amenity.json @@ -1,7 +1,7 @@ { "name": "amenity", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/bank.json b/data/presets/presets/amenity/bank.json index 0fe34acb3..5fc666799 100644 --- a/data/presets/presets/amenity/bank.json +++ b/data/presets/presets/amenity/bank.json @@ -1,7 +1,7 @@ { "name": "bank", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/bar.json b/data/presets/presets/amenity/bar.json index 770a6263c..0aead72e1 100644 --- a/data/presets/presets/amenity/bar.json +++ b/data/presets/presets/amenity/bar.json @@ -1,7 +1,7 @@ { "name": "bar", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/bicycle_rental.json b/data/presets/presets/amenity/bicycle_rental.json index 9b33d993c..49ffab05d 100644 --- a/data/presets/presets/amenity/bicycle_rental.json +++ b/data/presets/presets/amenity/bicycle_rental.json @@ -1,7 +1,7 @@ { "name": "bicycle rental", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/cafe.json b/data/presets/presets/amenity/cafe.json index 033724dfb..0adfc6f77 100644 --- a/data/presets/presets/amenity/cafe.json +++ b/data/presets/presets/amenity/cafe.json @@ -1,7 +1,7 @@ { "name": "cafe", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/cinema.json b/data/presets/presets/amenity/cinema.json index 88f829539..644a4552f 100644 --- a/data/presets/presets/amenity/cinema.json +++ b/data/presets/presets/amenity/cinema.json @@ -1,7 +1,7 @@ { "name": "cinema", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/fast_food.json b/data/presets/presets/amenity/fast_food.json index 1af60bfa0..c20284a2c 100644 --- a/data/presets/presets/amenity/fast_food.json +++ b/data/presets/presets/amenity/fast_food.json @@ -1,7 +1,7 @@ { "name": "fast food", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/fire_station.json b/data/presets/presets/amenity/fire_station.json index f257dd629..db24919e9 100644 --- a/data/presets/presets/amenity/fire_station.json +++ b/data/presets/presets/amenity/fire_station.json @@ -1,7 +1,7 @@ { "name": "fire station", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/grave_yard.json b/data/presets/presets/amenity/grave_yard.json index c5bb73e01..0ac475e6a 100644 --- a/data/presets/presets/amenity/grave_yard.json +++ b/data/presets/presets/amenity/grave_yard.json @@ -1,7 +1,7 @@ { "name": "grave yard", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/hospital.json b/data/presets/presets/amenity/hospital.json index ae98d309e..b9b3b3400 100644 --- a/data/presets/presets/amenity/hospital.json +++ b/data/presets/presets/amenity/hospital.json @@ -1,7 +1,7 @@ { "name": "hospital", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/library.json b/data/presets/presets/amenity/library.json index 673235d7f..ecbfc4e68 100644 --- a/data/presets/presets/amenity/library.json +++ b/data/presets/presets/amenity/library.json @@ -1,7 +1,7 @@ { "name": "library", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/parking.json b/data/presets/presets/amenity/parking.json index 6c5accd7c..beb1ea4f0 100644 --- a/data/presets/presets/amenity/parking.json +++ b/data/presets/presets/amenity/parking.json @@ -1,7 +1,7 @@ { "name": "parking", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/pharmacy.json b/data/presets/presets/amenity/pharmacy.json index ac1e9a732..ea96822a3 100644 --- a/data/presets/presets/amenity/pharmacy.json +++ b/data/presets/presets/amenity/pharmacy.json @@ -1,7 +1,7 @@ { "name": "pharmacy", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/place_of_worship.json b/data/presets/presets/amenity/place_of_worship.json index 96fb77f9d..ab6fb6f0b 100644 --- a/data/presets/presets/amenity/place_of_worship.json +++ b/data/presets/presets/amenity/place_of_worship.json @@ -1,7 +1,7 @@ { "name": "place of worship", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/place_of_worship/christian.json b/data/presets/presets/amenity/place_of_worship/christian.json index f4da88d4c..886a8ed58 100644 --- a/data/presets/presets/amenity/place_of_worship/christian.json +++ b/data/presets/presets/amenity/place_of_worship/christian.json @@ -1,7 +1,7 @@ { "name": "church", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/place_of_worship/jewish.json b/data/presets/presets/amenity/place_of_worship/jewish.json index 6c562ca6d..22861c980 100644 --- a/data/presets/presets/amenity/place_of_worship/jewish.json +++ b/data/presets/presets/amenity/place_of_worship/jewish.json @@ -1,7 +1,7 @@ { "name": "synagogue", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/place_of_worship/muslim.json b/data/presets/presets/amenity/place_of_worship/muslim.json index c3f48f905..7828e8baa 100644 --- a/data/presets/presets/amenity/place_of_worship/muslim.json +++ b/data/presets/presets/amenity/place_of_worship/muslim.json @@ -1,7 +1,7 @@ { "name": "mosque", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/police.json b/data/presets/presets/amenity/police.json index 51f9c931b..56a2113f3 100644 --- a/data/presets/presets/amenity/police.json +++ b/data/presets/presets/amenity/police.json @@ -1,7 +1,7 @@ { "name": "police", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/post_box.json b/data/presets/presets/amenity/post_box.json index 047aa6cbb..94a4cfbb2 100644 --- a/data/presets/presets/amenity/post_box.json +++ b/data/presets/presets/amenity/post_box.json @@ -1,7 +1,7 @@ { "name": "post box", "match": { - "type": [ + "geometry": [ "point" ], "tags": { diff --git a/data/presets/presets/amenity/pub.json b/data/presets/presets/amenity/pub.json index 248ae57ed..6904678ea 100644 --- a/data/presets/presets/amenity/pub.json +++ b/data/presets/presets/amenity/pub.json @@ -1,7 +1,7 @@ { "name": "pub", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/restaurant.json b/data/presets/presets/amenity/restaurant.json index ae92a8b2a..fc93d926d 100644 --- a/data/presets/presets/amenity/restaurant.json +++ b/data/presets/presets/amenity/restaurant.json @@ -1,7 +1,7 @@ { "name": "restaurant", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/school.json b/data/presets/presets/amenity/school.json index b3d4ddd72..19746564f 100644 --- a/data/presets/presets/amenity/school.json +++ b/data/presets/presets/amenity/school.json @@ -1,7 +1,7 @@ { "name": "school", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/toilets.json b/data/presets/presets/amenity/toilets.json index ea98c523b..891591d22 100644 --- a/data/presets/presets/amenity/toilets.json +++ b/data/presets/presets/amenity/toilets.json @@ -1,7 +1,7 @@ { "name": "toilets", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/amenity/townhall.json b/data/presets/presets/amenity/townhall.json index 15e87c278..8b6f87cdc 100644 --- a/data/presets/presets/amenity/townhall.json +++ b/data/presets/presets/amenity/townhall.json @@ -1,7 +1,7 @@ { "name": "town hall", "match": { - "type": [ + "geometry": [ "point", "areea" ], diff --git a/data/presets/presets/amenity/university.json b/data/presets/presets/amenity/university.json index 45ebf8679..f4508c153 100644 --- a/data/presets/presets/amenity/university.json +++ b/data/presets/presets/amenity/university.json @@ -1,7 +1,7 @@ { "name": "university", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/building.json b/data/presets/presets/building.json index e5adb7cf1..6d4bb8a3c 100644 --- a/data/presets/presets/building.json +++ b/data/presets/presets/building.json @@ -1,7 +1,7 @@ { "name": "building", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/highway.json b/data/presets/presets/highway.json index ce0f56828..97ab342dd 100644 --- a/data/presets/presets/highway.json +++ b/data/presets/presets/highway.json @@ -1,7 +1,7 @@ { "name": "highway", "match": { - "type": [ + "geometry": [ "point", "vertex", "line", diff --git a/data/presets/presets/highway/bus_stop.json b/data/presets/presets/highway/bus_stop.json index 60a5f2587..75a7e88a8 100644 --- a/data/presets/presets/highway/bus_stop.json +++ b/data/presets/presets/highway/bus_stop.json @@ -1,7 +1,7 @@ { "name": "bus stop", "match": { - "type": [ + "geometry": [ "point" ], "tags": { diff --git a/data/presets/presets/highway/crossing.json b/data/presets/presets/highway/crossing.json index 00fe9d496..0409caf9e 100644 --- a/data/presets/presets/highway/crossing.json +++ b/data/presets/presets/highway/crossing.json @@ -1,7 +1,7 @@ { "name": "crossing", "match": { - "type": [ + "geometry": [ "vertex" ], "tags": { diff --git a/data/presets/presets/highway/cycleway.json b/data/presets/presets/highway/cycleway.json index bcccf5962..f96d37516 100644 --- a/data/presets/presets/highway/cycleway.json +++ b/data/presets/presets/highway/cycleway.json @@ -1,7 +1,7 @@ { "name": "cycle path", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/highway/footway.json b/data/presets/presets/highway/footway.json index 780485ad0..0e343c217 100644 --- a/data/presets/presets/highway/footway.json +++ b/data/presets/presets/highway/footway.json @@ -1,7 +1,7 @@ { "name": "foot path", "match": { - "type": [ + "geometry": [ "line" ], "terms": [ diff --git a/data/presets/presets/highway/motorway.json b/data/presets/presets/highway/motorway.json index bdec8ba38..e31aab447 100644 --- a/data/presets/presets/highway/motorway.json +++ b/data/presets/presets/highway/motorway.json @@ -1,7 +1,7 @@ { "name": "motorway", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/highway/path.json b/data/presets/presets/highway/path.json index 9e1052b99..e06de5f3d 100644 --- a/data/presets/presets/highway/path.json +++ b/data/presets/presets/highway/path.json @@ -1,7 +1,7 @@ { "name": "path", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/highway/primary.json b/data/presets/presets/highway/primary.json index 7dc80e0cd..9ebd52c50 100644 --- a/data/presets/presets/highway/primary.json +++ b/data/presets/presets/highway/primary.json @@ -1,7 +1,7 @@ { "name": "primary road", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/highway/residential.json b/data/presets/presets/highway/residential.json index 062850a1a..67f60cb33 100644 --- a/data/presets/presets/highway/residential.json +++ b/data/presets/presets/highway/residential.json @@ -1,7 +1,7 @@ { "name": "residential road", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/highway/secondary.json b/data/presets/presets/highway/secondary.json index 5d837853b..b229af62b 100644 --- a/data/presets/presets/highway/secondary.json +++ b/data/presets/presets/highway/secondary.json @@ -1,7 +1,7 @@ { "name": "secondary road", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/highway/service.json b/data/presets/presets/highway/service.json index 4073393fc..b21c4c259 100644 --- a/data/presets/presets/highway/service.json +++ b/data/presets/presets/highway/service.json @@ -1,7 +1,7 @@ { "name": "service road", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/highway/steps.json b/data/presets/presets/highway/steps.json index 1379dad11..31fe8d490 100644 --- a/data/presets/presets/highway/steps.json +++ b/data/presets/presets/highway/steps.json @@ -1,7 +1,7 @@ { "name": "steps", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/highway/tertiary.json b/data/presets/presets/highway/tertiary.json index 03b764fee..f838a4c90 100644 --- a/data/presets/presets/highway/tertiary.json +++ b/data/presets/presets/highway/tertiary.json @@ -1,7 +1,7 @@ { "name": "tertiary road", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/highway/track.json b/data/presets/presets/highway/track.json index d0812cced..a83da1bfe 100644 --- a/data/presets/presets/highway/track.json +++ b/data/presets/presets/highway/track.json @@ -1,7 +1,7 @@ { "name": "track", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/highway/trunk.json b/data/presets/presets/highway/trunk.json index 424e735ee..7325bd0a9 100644 --- a/data/presets/presets/highway/trunk.json +++ b/data/presets/presets/highway/trunk.json @@ -1,7 +1,7 @@ { "name": "trunk highway", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/highway/turning_circle.json b/data/presets/presets/highway/turning_circle.json index ab5db3a37..78b40f95c 100644 --- a/data/presets/presets/highway/turning_circle.json +++ b/data/presets/presets/highway/turning_circle.json @@ -1,7 +1,7 @@ { "name": "turning circle", "match": { - "type": [ + "geometry": [ "vertex" ], "tags": { diff --git a/data/presets/presets/highway/unclassified.json b/data/presets/presets/highway/unclassified.json index cf7a6d157..dde578754 100644 --- a/data/presets/presets/highway/unclassified.json +++ b/data/presets/presets/highway/unclassified.json @@ -1,7 +1,7 @@ { "name": "unclassified", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/landuse.json b/data/presets/presets/landuse.json index 5a0885b7e..9a0637d8f 100644 --- a/data/presets/presets/landuse.json +++ b/data/presets/presets/landuse.json @@ -1,7 +1,7 @@ { "name": "landuse", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/allotments.json b/data/presets/presets/landuse/allotments.json index 5cba18e10..cb325330a 100644 --- a/data/presets/presets/landuse/allotments.json +++ b/data/presets/presets/landuse/allotments.json @@ -1,7 +1,7 @@ { "name": "allotments", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/cemetery.json b/data/presets/presets/landuse/cemetery.json index 3ffd94d1b..ffdc2a2e7 100644 --- a/data/presets/presets/landuse/cemetery.json +++ b/data/presets/presets/landuse/cemetery.json @@ -1,7 +1,7 @@ { "name": "cemetery", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/commercial.json b/data/presets/presets/landuse/commercial.json index 081c06848..d4d5967c7 100644 --- a/data/presets/presets/landuse/commercial.json +++ b/data/presets/presets/landuse/commercial.json @@ -1,7 +1,7 @@ { "name": "commercial", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/construction.json b/data/presets/presets/landuse/construction.json index 517a76450..3c5ca1b11 100644 --- a/data/presets/presets/landuse/construction.json +++ b/data/presets/presets/landuse/construction.json @@ -1,7 +1,7 @@ { "name": "construction", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/farm.json b/data/presets/presets/landuse/farm.json index a14c02bab..6c32c9af1 100644 --- a/data/presets/presets/landuse/farm.json +++ b/data/presets/presets/landuse/farm.json @@ -1,7 +1,7 @@ { "name": "farm", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/farmyard.json b/data/presets/presets/landuse/farmyard.json index 11282ec2a..cf982184d 100644 --- a/data/presets/presets/landuse/farmyard.json +++ b/data/presets/presets/landuse/farmyard.json @@ -1,7 +1,7 @@ { "name": "farmyard", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/forest.json b/data/presets/presets/landuse/forest.json index b2948264f..c81ecd1d0 100644 --- a/data/presets/presets/landuse/forest.json +++ b/data/presets/presets/landuse/forest.json @@ -1,7 +1,7 @@ { "name": "forest", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/grass.json b/data/presets/presets/landuse/grass.json index 6bf9ad245..6fccf2ff6 100644 --- a/data/presets/presets/landuse/grass.json +++ b/data/presets/presets/landuse/grass.json @@ -1,7 +1,7 @@ { "name": "grass", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/industrial.json b/data/presets/presets/landuse/industrial.json index 779bef0c6..9d22e13fa 100644 --- a/data/presets/presets/landuse/industrial.json +++ b/data/presets/presets/landuse/industrial.json @@ -1,7 +1,7 @@ { "name": "industrial", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/meadow.json b/data/presets/presets/landuse/meadow.json index 55995998d..d92086812 100644 --- a/data/presets/presets/landuse/meadow.json +++ b/data/presets/presets/landuse/meadow.json @@ -1,7 +1,7 @@ { "name": "meadow", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/orchard.json b/data/presets/presets/landuse/orchard.json index 71e273c6a..2066b7ef1 100644 --- a/data/presets/presets/landuse/orchard.json +++ b/data/presets/presets/landuse/orchard.json @@ -1,7 +1,7 @@ { "name": "orchard", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/quarry.json b/data/presets/presets/landuse/quarry.json index cdfeffa31..3785d619a 100644 --- a/data/presets/presets/landuse/quarry.json +++ b/data/presets/presets/landuse/quarry.json @@ -1,7 +1,7 @@ { "name": "quarry", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/residential.json b/data/presets/presets/landuse/residential.json index cf4f0609a..b2389006d 100644 --- a/data/presets/presets/landuse/residential.json +++ b/data/presets/presets/landuse/residential.json @@ -1,7 +1,7 @@ { "name": "residential", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/landuse/vineyard.json b/data/presets/presets/landuse/vineyard.json index af99bd6c0..c7faf3878 100644 --- a/data/presets/presets/landuse/vineyard.json +++ b/data/presets/presets/landuse/vineyard.json @@ -1,7 +1,7 @@ { "name": "vineyard", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/leisure.json b/data/presets/presets/leisure.json index 4103c56de..b9f39339d 100644 --- a/data/presets/presets/leisure.json +++ b/data/presets/presets/leisure.json @@ -1,7 +1,7 @@ { "name": "leisure", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/leisure/golf_course.json b/data/presets/presets/leisure/golf_course.json index 1bccee40d..a26890958 100644 --- a/data/presets/presets/leisure/golf_course.json +++ b/data/presets/presets/leisure/golf_course.json @@ -1,7 +1,7 @@ { "name": "golf course", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/leisure/park.json b/data/presets/presets/leisure/park.json index 7616510ab..3dbea6066 100644 --- a/data/presets/presets/leisure/park.json +++ b/data/presets/presets/leisure/park.json @@ -1,7 +1,7 @@ { "name": "park", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/leisure/pitch.json b/data/presets/presets/leisure/pitch.json index 8cadc81d4..05b27a11c 100644 --- a/data/presets/presets/leisure/pitch.json +++ b/data/presets/presets/leisure/pitch.json @@ -1,7 +1,7 @@ { "name": "sport pitch", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/leisure/pitch/baseball.json b/data/presets/presets/leisure/pitch/baseball.json index da32ce8a7..a460c7a17 100644 --- a/data/presets/presets/leisure/pitch/baseball.json +++ b/data/presets/presets/leisure/pitch/baseball.json @@ -1,7 +1,7 @@ { "name": "baseball diamond", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/leisure/pitch/basketball.json b/data/presets/presets/leisure/pitch/basketball.json index 862bf44b0..2e4697f40 100644 --- a/data/presets/presets/leisure/pitch/basketball.json +++ b/data/presets/presets/leisure/pitch/basketball.json @@ -1,7 +1,7 @@ { "name": "basketball court", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/leisure/pitch/soccer.json b/data/presets/presets/leisure/pitch/soccer.json index 650624f07..7d09a2728 100644 --- a/data/presets/presets/leisure/pitch/soccer.json +++ b/data/presets/presets/leisure/pitch/soccer.json @@ -1,7 +1,7 @@ { "name": "soccer field", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/leisure/pitch/tennis.json b/data/presets/presets/leisure/pitch/tennis.json index 119021c20..64e78f666 100644 --- a/data/presets/presets/leisure/pitch/tennis.json +++ b/data/presets/presets/leisure/pitch/tennis.json @@ -1,7 +1,7 @@ { "name": "tennis court", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/man_made.json b/data/presets/presets/man_made.json index 5ba7c0f48..1918be887 100644 --- a/data/presets/presets/man_made.json +++ b/data/presets/presets/man_made.json @@ -1,7 +1,7 @@ { "name": "man made", "match": { - "type": [ + "geometry": [ "point", "vertex", "line", diff --git a/data/presets/presets/man_made/lighthouse.json b/data/presets/presets/man_made/lighthouse.json index 09ae75049..061695853 100644 --- a/data/presets/presets/man_made/lighthouse.json +++ b/data/presets/presets/man_made/lighthouse.json @@ -1,7 +1,7 @@ { "name": "lighthouse", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/man_made/pier.json b/data/presets/presets/man_made/pier.json index 59836279c..7a869efe2 100644 --- a/data/presets/presets/man_made/pier.json +++ b/data/presets/presets/man_made/pier.json @@ -1,7 +1,7 @@ { "name": "pier", "match": { - "type": [ + "geometry": [ "line", "area" ], diff --git a/data/presets/presets/natural.json b/data/presets/presets/natural.json index 99866992c..ec6915069 100644 --- a/data/presets/presets/natural.json +++ b/data/presets/presets/natural.json @@ -1,7 +1,7 @@ { "name": "natural", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/natural/bay.json b/data/presets/presets/natural/bay.json index c984fea71..ffd6fa1a2 100644 --- a/data/presets/presets/natural/bay.json +++ b/data/presets/presets/natural/bay.json @@ -1,7 +1,7 @@ { "name": "bay", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/natural/beach.json b/data/presets/presets/natural/beach.json index 30995af62..07248a73a 100644 --- a/data/presets/presets/natural/beach.json +++ b/data/presets/presets/natural/beach.json @@ -1,7 +1,7 @@ { "name": "beach", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/natural/cliff.json b/data/presets/presets/natural/cliff.json index ded9e2c8f..c8d9631dc 100644 --- a/data/presets/presets/natural/cliff.json +++ b/data/presets/presets/natural/cliff.json @@ -1,7 +1,7 @@ { "name": "cliff", "match": { - "type": [ + "geometry": [ "point", "vertex", "line", diff --git a/data/presets/presets/natural/coastline.json b/data/presets/presets/natural/coastline.json index 2825acb10..aa0422db9 100644 --- a/data/presets/presets/natural/coastline.json +++ b/data/presets/presets/natural/coastline.json @@ -1,7 +1,7 @@ { "name": "coastline", "match": { - "type": [ + "geometry": [ "line" ], "terms": [ diff --git a/data/presets/presets/natural/glacier.json b/data/presets/presets/natural/glacier.json index 3d794eb50..fe071601e 100644 --- a/data/presets/presets/natural/glacier.json +++ b/data/presets/presets/natural/glacier.json @@ -1,7 +1,7 @@ { "name": "glacier", "match": { - "type": [ + "geometry": [ "area" ], "terms": [ diff --git a/data/presets/presets/natural/grassland.json b/data/presets/presets/natural/grassland.json index 627a1a7c7..8fd3927a6 100644 --- a/data/presets/presets/natural/grassland.json +++ b/data/presets/presets/natural/grassland.json @@ -1,7 +1,7 @@ { "name": "grassland", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/natural/heath.json b/data/presets/presets/natural/heath.json index 2e3e70490..e447a6cde 100644 --- a/data/presets/presets/natural/heath.json +++ b/data/presets/presets/natural/heath.json @@ -1,7 +1,7 @@ { "name": "heath", "match": { - "type": [ + "geometry": [ "area" ], "terms": [ diff --git a/data/presets/presets/natural/peak.json b/data/presets/presets/natural/peak.json index 7b77631af..d89cd93b1 100644 --- a/data/presets/presets/natural/peak.json +++ b/data/presets/presets/natural/peak.json @@ -1,7 +1,7 @@ { "name": "peak", "match": { - "type": [ + "geometry": [ "point", "vertex" ], diff --git a/data/presets/presets/natural/scrub.json b/data/presets/presets/natural/scrub.json index ff87022c7..2fea59fc7 100644 --- a/data/presets/presets/natural/scrub.json +++ b/data/presets/presets/natural/scrub.json @@ -1,7 +1,7 @@ { "name": "scrub", "match": { - "type": [ + "geometry": [ "area" ], "tags": { diff --git a/data/presets/presets/natural/spring.json b/data/presets/presets/natural/spring.json index cabc97cc5..d12c210d2 100644 --- a/data/presets/presets/natural/spring.json +++ b/data/presets/presets/natural/spring.json @@ -1,7 +1,7 @@ { "name": "spring", "match": { - "type": [ + "geometry": [ "point", "vertex" ], diff --git a/data/presets/presets/natural/tree.json b/data/presets/presets/natural/tree.json index 21ebf5895..b3b81e048 100644 --- a/data/presets/presets/natural/tree.json +++ b/data/presets/presets/natural/tree.json @@ -1,7 +1,7 @@ { "name": "tree", "match": { - "type": [ + "geometry": [ "point", "vertex" ], diff --git a/data/presets/presets/natural/water.json b/data/presets/presets/natural/water.json index 3c53a7540..1d2412c62 100644 --- a/data/presets/presets/natural/water.json +++ b/data/presets/presets/natural/water.json @@ -1,7 +1,7 @@ { "name": "water", "match": { - "type": [ + "geometry": [ "area" ], "tags": { diff --git a/data/presets/presets/natural/water/lake.json b/data/presets/presets/natural/water/lake.json index 67fe90a8a..493aa7b27 100644 --- a/data/presets/presets/natural/water/lake.json +++ b/data/presets/presets/natural/water/lake.json @@ -1,7 +1,7 @@ { "name": "lake", "match": { - "type": [ + "geometry": [ "area" ], "tags": { diff --git a/data/presets/presets/natural/water/pond.json b/data/presets/presets/natural/water/pond.json index 8bd6bf658..f1d40311f 100644 --- a/data/presets/presets/natural/water/pond.json +++ b/data/presets/presets/natural/water/pond.json @@ -1,7 +1,7 @@ { "name": "pond", "match": { - "type": [ + "geometry": [ "area" ], "tags": { diff --git a/data/presets/presets/natural/water/reservoir.json b/data/presets/presets/natural/water/reservoir.json index 54ab1f2db..23c3ae8f6 100644 --- a/data/presets/presets/natural/water/reservoir.json +++ b/data/presets/presets/natural/water/reservoir.json @@ -1,7 +1,7 @@ { "name": "reservoir", "match": { - "type": [ + "geometry": [ "area" ], "tags": { diff --git a/data/presets/presets/natural/wetland.json b/data/presets/presets/natural/wetland.json index f65d22ebd..5769f4b81 100644 --- a/data/presets/presets/natural/wetland.json +++ b/data/presets/presets/natural/wetland.json @@ -1,7 +1,7 @@ { "name": "wetland", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/natural/wood.json b/data/presets/presets/natural/wood.json index 96a45e726..e127dde35 100644 --- a/data/presets/presets/natural/wood.json +++ b/data/presets/presets/natural/wood.json @@ -1,7 +1,7 @@ { "name": "wood", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/office.json b/data/presets/presets/office.json index 4ec845763..56c85cfc3 100644 --- a/data/presets/presets/office.json +++ b/data/presets/presets/office.json @@ -1,7 +1,7 @@ { "name": "office", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/place.json b/data/presets/presets/place.json index b440150ea..87b25e571 100644 --- a/data/presets/presets/place.json +++ b/data/presets/presets/place.json @@ -1,7 +1,7 @@ { "name": "place", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/place/hamlet.json b/data/presets/presets/place/hamlet.json index 6cdf3a919..80aa2cf05 100644 --- a/data/presets/presets/place/hamlet.json +++ b/data/presets/presets/place/hamlet.json @@ -1,7 +1,7 @@ { "name": "hamlet", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/place/island.json b/data/presets/presets/place/island.json index 6cfcee497..a1fc0abae 100644 --- a/data/presets/presets/place/island.json +++ b/data/presets/presets/place/island.json @@ -1,7 +1,7 @@ { "name": "island", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/place/locality.json b/data/presets/presets/place/locality.json index 3fa8c43fa..c6a61b90b 100644 --- a/data/presets/presets/place/locality.json +++ b/data/presets/presets/place/locality.json @@ -1,7 +1,7 @@ { "name": "locality", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/place/village.json b/data/presets/presets/place/village.json index 1dae9ffde..8a5447e63 100644 --- a/data/presets/presets/place/village.json +++ b/data/presets/presets/place/village.json @@ -1,7 +1,7 @@ { "name": "village", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/railway.json b/data/presets/presets/railway.json index aff59dbb0..f101aac2d 100644 --- a/data/presets/presets/railway.json +++ b/data/presets/presets/railway.json @@ -1,7 +1,7 @@ { "name": "railway", "match": { - "type": [ + "geometry": [ "point", "vertex", "line", diff --git a/data/presets/presets/railway/rail.json b/data/presets/presets/railway/rail.json index a90c18e99..81060918c 100644 --- a/data/presets/presets/railway/rail.json +++ b/data/presets/presets/railway/rail.json @@ -1,7 +1,7 @@ { "name": "rail", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/railway/subway.json b/data/presets/presets/railway/subway.json index db770b294..ca2bb966e 100644 --- a/data/presets/presets/railway/subway.json +++ b/data/presets/presets/railway/subway.json @@ -1,7 +1,7 @@ { "name": "subway", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/railway/subway_entrance.json b/data/presets/presets/railway/subway_entrance.json index 09d1c5901..60b6fa0ac 100644 --- a/data/presets/presets/railway/subway_entrance.json +++ b/data/presets/presets/railway/subway_entrance.json @@ -1,7 +1,7 @@ { "name": "subway entrance", "match": { - "type": [ + "geometry": [ "point" ], "tags": { diff --git a/data/presets/presets/shop.json b/data/presets/presets/shop.json index 6aa08d949..d7d8bde69 100644 --- a/data/presets/presets/shop.json +++ b/data/presets/presets/shop.json @@ -1,7 +1,7 @@ { "name": "shop", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/shop/supermarket.json b/data/presets/presets/shop/supermarket.json index 66efada36..90cd913ee 100644 --- a/data/presets/presets/shop/supermarket.json +++ b/data/presets/presets/shop/supermarket.json @@ -1,7 +1,7 @@ { "name": "supermarket", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/tourism.json b/data/presets/presets/tourism.json index 589030525..36669d915 100644 --- a/data/presets/presets/tourism.json +++ b/data/presets/presets/tourism.json @@ -1,7 +1,7 @@ { "name": "tourism", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/tourism/camp_site.json b/data/presets/presets/tourism/camp_site.json index 4b8e006d8..ecc0e9cde 100644 --- a/data/presets/presets/tourism/camp_site.json +++ b/data/presets/presets/tourism/camp_site.json @@ -1,7 +1,7 @@ { "name": "camp site", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/tourism/hotel.json b/data/presets/presets/tourism/hotel.json index f2d7e3969..89605810d 100644 --- a/data/presets/presets/tourism/hotel.json +++ b/data/presets/presets/tourism/hotel.json @@ -1,7 +1,7 @@ { "name": "hotel", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/tourism/museum.json b/data/presets/presets/tourism/museum.json index 396711959..d4655c0c8 100644 --- a/data/presets/presets/tourism/museum.json +++ b/data/presets/presets/tourism/museum.json @@ -1,7 +1,7 @@ { "name": "museum", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/tourism/picnic_site.json b/data/presets/presets/tourism/picnic_site.json index 799c9e1ec..8447647bb 100644 --- a/data/presets/presets/tourism/picnic_site.json +++ b/data/presets/presets/tourism/picnic_site.json @@ -1,7 +1,7 @@ { "name": "picnic site", "match": { - "type": [ + "geometry": [ "point", "area" ], diff --git a/data/presets/presets/waterway.json b/data/presets/presets/waterway.json index 95bfde7a3..075acda7a 100644 --- a/data/presets/presets/waterway.json +++ b/data/presets/presets/waterway.json @@ -1,7 +1,7 @@ { "name": "waterway", "match": { - "type": [ + "geometry": [ "point", "vertex", "line", diff --git a/data/presets/presets/waterway/canal.json b/data/presets/presets/waterway/canal.json index f8edaafe5..a78f6fb66 100644 --- a/data/presets/presets/waterway/canal.json +++ b/data/presets/presets/waterway/canal.json @@ -1,7 +1,7 @@ { "name": "canal", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/waterway/dam.json b/data/presets/presets/waterway/dam.json index 9d2bb2222..6477c8734 100644 --- a/data/presets/presets/waterway/dam.json +++ b/data/presets/presets/waterway/dam.json @@ -1,7 +1,7 @@ { "name": "dam", "match": { - "type": [ + "geometry": [ "point", "vertex", "line", diff --git a/data/presets/presets/waterway/ditch.json b/data/presets/presets/waterway/ditch.json index 1f180da0a..2fb7a7565 100644 --- a/data/presets/presets/waterway/ditch.json +++ b/data/presets/presets/waterway/ditch.json @@ -1,7 +1,7 @@ { "name": "ditch", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/waterway/drain.json b/data/presets/presets/waterway/drain.json index e820f9a32..ae5e6c219 100644 --- a/data/presets/presets/waterway/drain.json +++ b/data/presets/presets/waterway/drain.json @@ -1,7 +1,7 @@ { "name": "drain", "match": { - "type": [ + "geometry": [ "line" ], "tags": { diff --git a/data/presets/presets/waterway/river.json b/data/presets/presets/waterway/river.json index fff05840b..4295b0a86 100644 --- a/data/presets/presets/waterway/river.json +++ b/data/presets/presets/waterway/river.json @@ -1,7 +1,7 @@ { "name": "river", "match": { - "type": [ + "geometry": [ "line" ], "terms": [ diff --git a/data/presets/presets/waterway/riverbank.json b/data/presets/presets/waterway/riverbank.json index cd11f7170..b97c2ca57 100644 --- a/data/presets/presets/waterway/riverbank.json +++ b/data/presets/presets/waterway/riverbank.json @@ -1,7 +1,7 @@ { "name": "riverbank", "match": { - "type": [ + "geometry": [ "area" ], "tags": { diff --git a/data/presets/presets/waterway/stream.json b/data/presets/presets/waterway/stream.json index 7a3be3f0c..64104a623 100644 --- a/data/presets/presets/waterway/stream.json +++ b/data/presets/presets/waterway/stream.json @@ -1,7 +1,7 @@ { "name": "stream", "match": { - "type": [ + "geometry": [ "line" ], "terms": [ diff --git a/data/presets/presets/waterway/weir.json b/data/presets/presets/waterway/weir.json index 9a00d83ea..897c474d2 100644 --- a/data/presets/presets/waterway/weir.json +++ b/data/presets/presets/waterway/weir.json @@ -1,7 +1,7 @@ { "name": "weir", "match": { - "type": [ + "geometry": [ "vertex", "line" ], diff --git a/js/id/presets.js b/js/id/presets.js index 2747a80c0..9592e3e60 100644 --- a/js/id/presets.js +++ b/js/id/presets.js @@ -8,7 +8,7 @@ iD.presets = function(context) { icon: 'marker-stroked', match: { tags: {}, - type: ['point', 'vertex', 'line', 'area'] + geometry: ['point', 'vertex', 'line', 'area'] }, form: [] }), @@ -51,7 +51,7 @@ iD.presets = function(context) { }; all.defaults = function(entity, n) { - var rec = recent.matchType(entity, context.graph()).collection.slice(0, 4), + var rec = recent.matchGeometry(entity, context.graph()).collection.slice(0, 4), def = _.uniq(rec.concat(defaults[entity.geometry(context.graph())].collection)).slice(0, n - 1); return iD.presets.Collection(_.unique(rec.concat(def).concat(other))); }; diff --git a/js/id/presets/category.js b/js/id/presets/category.js index 21f16d939..e3c9c13ec 100644 --- a/js/id/presets/category.js +++ b/js/id/presets/category.js @@ -5,8 +5,8 @@ iD.presets.Category = function(category, all) { return all.item(name); })); - category.matchType = function(entity, resolver) { - return category.match.type.indexOf(entity.geometry(resolver)) >= 0; + category.matchGeometry = function(entity, resolver) { + return category.match.geometry.indexOf(entity.geometry(resolver)) >= 0; }; category.matchTags = function() { return false; }; diff --git a/js/id/presets/collection.js b/js/id/presets/collection.js index da7f9e5c9..2d7d528d0 100644 --- a/js/id/presets/collection.js +++ b/js/id/presets/collection.js @@ -11,12 +11,12 @@ iD.presets.Collection = function(collection) { }, match: function(entity, resolver) { - return presets.matchType(entity, resolver).matchTags(entity); + return presets.matchGeometry(entity, resolver).matchTags(entity); }, - matchType: function(entity, resolver) { + matchGeometry: function(entity, resolver) { return iD.presets.Collection(collection.filter(function(d) { - return d.matchType(entity, resolver); + return d.matchGeometry(entity, resolver); })); }, diff --git a/js/id/presets/preset.js b/js/id/presets/preset.js index 7e8dc2672..d9c6309ce 100644 --- a/js/id/presets/preset.js +++ b/js/id/presets/preset.js @@ -11,8 +11,8 @@ iD.presets.Preset = function(preset, forms) { } }) : []; - preset.matchType = function(entity, resolver) { - return preset.match.type.indexOf(entity.geometry(resolver)) >= 0; + preset.matchGeometry = function(entity, resolver) { + return preset.match.geometry.indexOf(entity.geometry(resolver)) >= 0; }; preset.matchTags = function(entity) { diff --git a/js/id/ui/preset_grid.js b/js/id/ui/preset_grid.js index 9e45690d9..1bd787b99 100644 --- a/js/id/ui/preset_grid.js +++ b/js/id/ui/preset_grid.js @@ -8,7 +8,7 @@ iD.ui.PresetGrid = function(context) { selection.html(''); - presets = presets.matchType(entity, context.graph()); + presets = presets.matchGeometry(entity, context.graph()); var messagewrap = selection.append('div') .attr('class', 'message inspector-inner fillL'); diff --git a/js/id/ui/tag_editor.js b/js/id/ui/tag_editor.js index 94fbb12f9..061ee52be 100644 --- a/js/id/ui/tag_editor.js +++ b/js/id/ui/tag_editor.js @@ -148,7 +148,7 @@ iD.ui.TagEditor = function(context) { // change preset if necessary (undos/redos) var newmatch = presets - .matchType(entity, context.graph()) + .matchGeometry(entity, context.graph()) .matchTags(entity.update({ tags: tags })); if (newmatch !== preset) { return tageditor(selection_, newmatch); diff --git a/test/spec/presets/category.js b/test/spec/presets/category.js index 43c1fd068..5ad3799b6 100644 --- a/test/spec/presets/category.js +++ b/test/spec/presets/category.js @@ -4,7 +4,7 @@ describe("iD.presets.Category", function() { beforeEach(function() { category = { "match": { - "type": "line" + "geometry": "line" }, "icon": "highway", "name": "roads", @@ -18,7 +18,7 @@ describe("iD.presets.Category", function() { tags: { highway: 'residential' }, - type: ['line'] + geometry: ['line'] } }); }); @@ -28,14 +28,14 @@ describe("iD.presets.Category", function() { expect(c.members.collection[0]).to.eql(residential); }); - describe("#matchType", function() { + describe("#matchGeometry", function() { it("matches the type of an entity", function() { var c = iD.presets.Category(category, iD.presets.Collection([residential])), w = iD.Way(), n = iD.Node(), g = iD.Graph().replace(w); - expect(c.matchType(w, g)).to.eql(true); - expect(c.matchType(n, g)).to.eql(false); + expect(c.matchGeometry(w, g)).to.eql(true); + expect(c.matchGeometry(n, g)).to.eql(false); }); }); }); diff --git a/test/spec/presets/collection.js b/test/spec/presets/collection.js index 8d0a888c7..a078557cc 100644 --- a/test/spec/presets/collection.js +++ b/test/spec/presets/collection.js @@ -1,11 +1,11 @@ -describe("iD.prests.Collection", function() { +describe("iD.presets.Collection", function() { var p = { other: iD.presets.Preset({ name: 'other', match: { tags: {}, - type: ['point', 'vertex', 'line', 'area'] + geometry: ['point', 'vertex', 'line', 'area'] } }), residential: iD.presets.Preset({ @@ -14,7 +14,7 @@ describe("iD.prests.Collection", function() { tags: { highway: 'residential' }, - type: ['line'] + geometry: ['line'] } }), park: iD.presets.Preset({ @@ -23,7 +23,7 @@ describe("iD.prests.Collection", function() { tags: { leisure: 'park' }, - type: ['point', 'area'] + geometry: ['point', 'area'] } }) }; @@ -39,9 +39,9 @@ describe("iD.prests.Collection", function() { }); }); - describe("#matchType", function() { + describe("#matchGeometry", function() { it("returns a new collection only containing presets matching an entity's type", function() { - expect(c.matchType(w, g).collection).to.eql([p.other, p.residential]); + expect(c.matchGeometry(w, g).collection).to.eql([p.other, p.residential]); }); }); diff --git a/test/spec/presets/preset.js b/test/spec/presets/preset.js index 8b7a85761..ab5e7c379 100644 --- a/test/spec/presets/preset.js +++ b/test/spec/presets/preset.js @@ -13,7 +13,7 @@ describe('iD.presets.Preset', function() { name: 'other', match: { tags: {}, - type: ['point', 'vertex', 'line', 'area'] + geometry: ['point', 'vertex', 'line', 'area'] } }), residential: iD.presets.Preset({ @@ -22,7 +22,7 @@ describe('iD.presets.Preset', function() { tags: { highway: 'residential' }, - type: ['line'] + geometry: ['line'] } }), tennis: iD.presets.Preset({ @@ -32,7 +32,7 @@ describe('iD.presets.Preset', function() { leisure: 'pitch', sport: 'tennis' }, - type: ['area'] + geometry: ['area'] } }), building: iD.presets.Preset({ @@ -41,7 +41,7 @@ describe('iD.presets.Preset', function() { tags: { building: '*' }, - type: ['area'] + geometry: ['area'] } }), cafe: iD.presets.Preset({ @@ -50,7 +50,7 @@ describe('iD.presets.Preset', function() { tags: { amenity: 'cafe' }, - type: ['point', 'area'] + geometry: ['point', 'area'] }, form: ['building_area'] }, forms) @@ -76,15 +76,15 @@ describe('iD.presets.Preset', function() { expect(p.other.form).to.eql([]); }); - describe('#matchType', function() { + describe('#matchGeometry', function() { var n = iD.Node(); var g = iD.Graph().replace(p); it("returns false if it doesn't match the entity type", function() { - expect(p.residential.matchType(n, g)).to.equal(false); + expect(p.residential.matchGeometry(n, g)).to.equal(false); }); it("returns true if it does match the entity type", function() { - expect(p.other.matchType(n, g)).to.equal(true); + expect(p.other.matchGeometry(n, g)).to.equal(true); }); }); From be567fb028a8062b4cca3ea2b79a374f3a18d179 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Mar 2013 13:12:07 -0700 Subject: [PATCH 05/16] Render landuse=farm and landuse=farmland identically See http://www.openstreetmap.org/user/Harry%20Wood/diary/14079 for an entertaining rant on this subject. --- css/map.css | 4 ++++ js/id/svg/areas.js | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/css/map.css b/css/map.css index 496891c1e..f0afd417d 100644 --- a/css/map.css +++ b/css/map.css @@ -331,6 +331,7 @@ path.fill.tag-natural-beach, path.fill.tag-natural-scrub, path.fill.tag-landuse-cemetery, path.fill.tag-landuse-meadow, +path.fill.tag-landuse-farm, path.fill.tag-landuse-farmland, path.fill.tag-landuse-construction, path.fill.tag-landuse-orchard { @@ -343,6 +344,7 @@ path.fill.tag-landuse-orchard { .pattern-color-meadow, .pattern-color-wetland, .pattern-color-cemetery, +.pattern-color-farm, .pattern-color-farmland, .pattern-color-construction, .pattern-color-orchard { @@ -362,10 +364,12 @@ path.fill.tag-landuse-residential { fill: #e06e5f; } +path.fill.tag-landuse-farm, path.fill.tag-landuse-farmland { fill: url(#pattern-farmland) #8cd05f; } +.pattern-color-farm, .pattern-color-farmland { fill: url(#pattern-farmland) #8cd05f; } diff --git a/js/id/svg/areas.js b/js/id/svg/areas.js index 7244f06f1..c0d66cca9 100644 --- a/js/id/svg/areas.js +++ b/js/id/svg/areas.js @@ -34,7 +34,8 @@ iD.svg.Areas = function(projection) { cemetery: 'cemetery', grave_yard: 'cemetery', meadow: 'meadow', - famrland: 'farmland', + farm: 'farmland', + farmland: 'farmland', orchard: 'orchard' }; From 03cede7e24a955ec2e08ee6e87d7876b9903d439 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Mar 2013 13:42:35 -0700 Subject: [PATCH 06/16] Ensure tooltip is removed (fixes #986) --- js/id/ui/radial_menu.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/js/id/ui/radial_menu.js b/js/id/ui/radial_menu.js index 3a6e3314c..ff8ec1007 100644 --- a/js/id/ui/radial_menu.js +++ b/js/id/ui/radial_menu.js @@ -1,6 +1,7 @@ iD.ui.RadialMenu = function(operations) { var menu, - center = [0, 0]; + center = [0, 0], + tooltip; var radialMenu = function(selection) { if (!operations.length) @@ -57,7 +58,7 @@ iD.ui.RadialMenu = function(operations) { .attr('clip-path', 'url(#clip-square-20)') .attr('xlink:href', function(d) { return '#icon-operation-' + d.id; }); - var tooltip = d3.select(document.body) + tooltip = d3.select(document.body) .append('div') .attr('class', 'tooltip-inner radial-menu-tooltip'); @@ -84,6 +85,10 @@ iD.ui.RadialMenu = function(operations) { .attr('opacity', 0) .remove(); } + + if (tooltip) { + tooltip.remove(); + } }; radialMenu.center = function(_) { From 02b836cf0a5e0529fc93f3cdbaf7307b8333bf39 Mon Sep 17 00:00:00 2001 From: richlv Date: Tue, 12 Mar 2013 22:43:29 +0200 Subject: [PATCH 07/16] Update lv.js update Latvian translation --- locale/lv.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/locale/lv.js b/locale/lv.js index aa27ced1e..b6aba3d26 100644 --- a/locale/lv.js +++ b/locale/lv.js @@ -115,12 +115,12 @@ locale.lv = { } }, rotate: { - title: "Rotate", - description: "Rotate this object around its centre point.", + title: "Pagriezt", + description: "Pagriezt šo objektu ap tā centru.", key: "R", annotation: { - line: "Rotated a line.", - area: "Rotated an area." + line: "Līnija pagriezta.", + area: "Apgabals pagriezts." } }, reverse: { @@ -182,10 +182,10 @@ locale.lv = { okay: "Labi", view_on_osm: "Apskatīt OSM", name: "Name", - editing: "Editing {type}", - additional: "Additional tags", - choose: "What are you adding?", - results: "{n} results for {search}" + editing: "Rediģē {type}", + additional: "Papildus apzīmējumi", + choose: "Ko vēlaties pievienot?", + results: "Atrasti {n} rezultāti meklējot {search}" }, background: { @@ -222,15 +222,15 @@ locale.lv = { tag_reference: { description: "Apraksts", - on_wiki: "{tag} on wiki.osm.org", - used_with: "used with {type}" + on_wiki: "{tag} wiki.osm.org", + used_with: "izmantots kopā ar {type}" }, validations: { untagged_point: "Neapzīmēts punkts", untagged_line: "Neapzīmēta līnija", untagged_area: "Neapzīmēts apgabals", - many_deletions: "You're deleting {n} objects. Are you sure you want to do this? This will delete them from the map that everyone else sees on openstreetmap.org.", + many_deletions: "Jūs dzēšat {n} objektus. Vai tiešām vēlaties to darīt? Tie tiks izdzēsti no kartes, ko visi var aplūkt openstreetmap.org.", tag_suggests_area: "Apzīmējums {tag} parasti tiek lietots apgabaliem, bet objekts nav apgabals", deprecated_tags: "Novecojuši apzīmējumi: {tags}" }, From ca1a7cf7f6ddc3a26ac09d86957fa9a7dac2c848 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Tue, 12 Mar 2013 17:42:55 -0400 Subject: [PATCH 08/16] add ability to add general form fields --- css/app.css | 7 ++++ js/id/presets/preset.js | 7 ++-- js/id/ui/preset.js | 78 +++++++++++++++++++++++++++++++--------- js/id/ui/preset/check.js | 4 ++- 4 files changed, 76 insertions(+), 20 deletions(-) diff --git a/css/app.css b/css/app.css index 8ccac2b72..1afa22426 100644 --- a/css/app.css +++ b/css/app.css @@ -664,6 +664,13 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} margin-left: 25%; padding-left: 10px; } + +button.preset-add-form { + width: 40px; + height: 40px; + margin-right: 10px; +} + .preset-fav button.fav { height: 30px; margin: 5px; diff --git a/js/id/presets/preset.js b/js/id/presets/preset.js index d9c6309ce..79f27b32d 100644 --- a/js/id/presets/preset.js +++ b/js/id/presets/preset.js @@ -3,13 +3,16 @@ iD.presets.Preset = function(preset, forms) { preset.icon = preset.icon || 'marker-stroked'; - preset.form = preset.form ? preset.form.map(function(f) { + preset.form = preset.form ? preset.form.map(getForms) : []; + preset.additional = preset.additional ? preset.additional.map(getForms) : []; + + function getForms(f) { if (typeof f === 'string') { return forms[f]; } else { return iD.presets.Form(f, f.key); } - }) : []; + } preset.matchGeometry = function(entity, resolver) { return preset.match.geometry.indexOf(entity.geometry(resolver)) >= 0; diff --git a/js/id/ui/preset.js b/js/id/ui/preset.js index 2a000d703..c9280d1a4 100644 --- a/js/id/ui/preset.js +++ b/js/id/ui/preset.js @@ -3,7 +3,9 @@ iD.ui.preset = function(context) { entity, tags, keys, - preset; + preset, + formwrap, + formbuttonwrap; function input(d) { var i = iD.ui.preset[d.type](d, context) @@ -18,7 +20,7 @@ iD.ui.preset = function(context) { keys = keys.concat(d.key ? [d.key] : d.keys); - this.call(i); + d3.select(this).call(i); } function presets(selection) { @@ -26,27 +28,59 @@ iD.ui.preset = function(context) { selection.html(''); keys = []; + formwrap = selection.append('div'); + draw(formwrap, preset.form); + + var wrap = selection.append('div') + .attr('class', 'col12 inspector-inner'); + + wrap.append('div') + .attr('class', 'col3 preset-label') + .text('Add field'); + + formbuttonwrap = wrap.append('div') + .attr('class', 'col9 preset-input'); + + formbuttonwrap.selectAll('button') + .data(preset.additional) + .enter() + .append('button') + .attr('class', 'preset-add-form') + .attr('title', function(d) { return d.title || d.key; }) + .on('click', addForm) + .append('span') + .attr('class', function(d) { return 'icon ' + d.icon; }); + + function addForm(d) { + draw(formwrap, [d]); + d3.select(this).remove(); + if (!wrap.selectAll('button').node()) wrap.remove(); + } + } + + function formKey(d) { + return d.key || String(d.keys); + } + + function draw(selection, form) { + var sections = selection.selectAll('div.preset-section') - .data(preset.form) + .data(form, formKey) .enter() .append('div') - .attr('class', 'preset-section fillL inspector-inner col12'); - - sections.each(function(d) { - var s = d3.select(this); - var wrap = s.append('div') + .attr('class', 'preset-section fillL inspector-inner col12') + .append('div') .attr('class', 'preset-section-input'); - wrap.append('div') + sections.append('div') .attr('class', 'col3 preset-label') .append('h4') - .attr('for', 'input-' + d.key) + .attr('for', function(d) { return 'input-' + d.key; }) .text(function(d) { return d.label(); }); - input.call(wrap.append('div') - .attr('class', 'col9 preset-input'), d); - }); - if (tags) event.setTags(tags); + sections.append('div') + .attr('class', 'col9 preset-input') + .each(input); } presets.rendered = function() { @@ -59,9 +93,19 @@ iD.ui.preset = function(context) { return presets; }; - presets.change = function(_) { - tags = _; - event.setTags(_); + presets.change = function(t) { + tags = t; + + function haveKey(k) { return k && !!tags[k]; } + + formbuttonwrap.selectAll('button').each(function(p) { + if (haveKey(p.key) || _.any(p.keys, haveKey)) { + draw(formwrap, [p]); + d3.select(this).remove(); + } + }); + + event.setTags(tags); return presets; }; diff --git a/js/id/ui/preset/check.js b/js/id/ui/preset/check.js index 738b14765..ab653ca86 100644 --- a/js/id/ui/preset/check.js +++ b/js/id/ui/preset/check.js @@ -2,7 +2,7 @@ iD.ui.preset.check = function(form) { var event = d3.dispatch('change', 'close'), values = ['', 'yes', 'no'], - value, + value = '', box, text, label; @@ -14,9 +14,11 @@ iD.ui.preset.check = function(form) { label = selection.append('label'); box = label.append('input') + .property('indeterminate', true) .attr('type', 'checkbox'); text = label.append('span') + .text('unknown') .attr('class', 'value'); box.on('click', function() { From 831b67beaee4ddf02144f00b98e416a6f3065456 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Tue, 12 Mar 2013 19:19:10 -0400 Subject: [PATCH 09/16] universal presets presets with universal=true show up for any preset if the key is present --- build.js | 1 - data/presets/forms/address.json | 3 ++- data/presets/forms/elevation.json | 5 +++-- data/presets/forms/source.json | 5 +++++ data/presets/forms/telephone.json | 5 +++++ data/presets/forms/website.json | 5 +++++ data/presets/forms/wikipedia.json | 5 +++++ js/id/presets.js | 7 +++++++ js/id/ui/preset.js | 8 +++++++- 9 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 data/presets/forms/source.json create mode 100644 data/presets/forms/telephone.json create mode 100644 data/presets/forms/website.json create mode 100644 data/presets/forms/wikipedia.json diff --git a/build.js b/build.js index 780c7b98e..ba3a77cd1 100644 --- a/build.js +++ b/build.js @@ -28,7 +28,6 @@ fs.writeFileSync('data/presets/presets.json', JSON.stringify( fs.writeFileSync('data/data.js', 'iD.data = ' + JSON.stringify({ deprecated: r('deprecated.json'), discarded: r('discarded.json'), - imagery: r('imagery.json'), keys: r('keys.json'), imagery: r('imagery.json'), presets: { diff --git a/data/presets/forms/address.json b/data/presets/forms/address.json index dd8a73898..02d01ebb0 100644 --- a/data/presets/forms/address.json +++ b/data/presets/forms/address.json @@ -5,5 +5,6 @@ "addr:housenumber", "addr:street", "addr:city" - ] + ], + "universal": true } diff --git a/data/presets/forms/elevation.json b/data/presets/forms/elevation.json index 3793abbc0..c4ceed73e 100644 --- a/data/presets/forms/elevation.json +++ b/data/presets/forms/elevation.json @@ -1,4 +1,5 @@ { "key": "ele", - "type": "number" -} \ No newline at end of file + "type": "number", + "universal": true +} diff --git a/data/presets/forms/source.json b/data/presets/forms/source.json new file mode 100644 index 000000000..64db875fc --- /dev/null +++ b/data/presets/forms/source.json @@ -0,0 +1,5 @@ +{ + "key": "source", + "type": "text", + "universal": true +} diff --git a/data/presets/forms/telephone.json b/data/presets/forms/telephone.json new file mode 100644 index 000000000..5ac9b3a94 --- /dev/null +++ b/data/presets/forms/telephone.json @@ -0,0 +1,5 @@ +{ + "key": "phone", + "type": "tel", + "universal": true +} diff --git a/data/presets/forms/website.json b/data/presets/forms/website.json new file mode 100644 index 000000000..205eec6ba --- /dev/null +++ b/data/presets/forms/website.json @@ -0,0 +1,5 @@ +{ + "key": "website", + "type": "url", + "universal": true +} diff --git a/data/presets/forms/wikipedia.json b/data/presets/forms/wikipedia.json new file mode 100644 index 000000000..34ce5248d --- /dev/null +++ b/data/presets/forms/wikipedia.json @@ -0,0 +1,5 @@ +{ + "key": "wikipedia", + "type": "text", + "universal": true +} diff --git a/js/id/presets.js b/js/id/presets.js index 9592e3e60..8f6a43bbc 100644 --- a/js/id/presets.js +++ b/js/id/presets.js @@ -15,6 +15,7 @@ iD.presets = function(context) { all = iD.presets.Collection([iD.presets.Preset(other)]), defaults = { area: all, line: all, point: all, vertex: all }, forms = {}, + universal = [], recent = iD.presets.Collection([]); all.load = function(d) { @@ -22,6 +23,7 @@ iD.presets = function(context) { if (d.forms) { _.forEach(d.forms, function(d, id) { forms[id] = iD.presets.Form(d, id); + if (d.universal) universal.push(forms[id]); }); } @@ -31,6 +33,7 @@ iD.presets = function(context) { }); } + if (d.categories) { d.categories.forEach(function(d) { all.collection.push(iD.presets.Category(d, all)); @@ -50,6 +53,10 @@ iD.presets = function(context) { return all; }; + all.universal = function() { + return universal; + }; + all.defaults = function(entity, n) { var rec = recent.matchGeometry(entity, context.graph()).collection.slice(0, 4), def = _.uniq(rec.concat(defaults[entity.geometry(context.graph())].collection)).slice(0, n - 1); diff --git a/js/id/ui/preset.js b/js/id/ui/preset.js index c9280d1a4..48203b457 100644 --- a/js/id/ui/preset.js +++ b/js/id/ui/preset.js @@ -46,7 +46,7 @@ iD.ui.preset = function(context) { .enter() .append('button') .attr('class', 'preset-add-form') - .attr('title', function(d) { return d.title || d.key; }) + .attr('title', function(d) { return d.label(); }) .on('click', addForm) .append('span') .attr('class', function(d) { return 'icon ' + d.icon; }); @@ -105,6 +105,12 @@ iD.ui.preset = function(context) { } }); + context.presets().universal().forEach(function(p) { + if (haveKey(p.key) || _.any(p.keys, haveKey)) { + draw(formwrap, [p]); + } + }); + event.setTags(tags); return presets; }; From 3b3ee84a84c7173928419247f65c724988782f87 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Mar 2013 14:58:16 -0700 Subject: [PATCH 10/16] Specs for Way#areAdjacent --- js/id/core/way.js | 2 +- test/spec/core/way.js | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/js/id/core/way.js b/js/id/core/way.js index 14bbd14fd..9eb27650d 100644 --- a/js/id/core/way.js +++ b/js/id/core/way.js @@ -59,7 +59,7 @@ _.extend(iD.Way.prototype, { areAdjacent: function(n1, n2) { for (var i = 0; i < this.nodes.length; i++) { - if (this.nodes[i] === n1) { + if (this.nodes[i] === n1) { if (this.nodes[i - 1] === n2) return true; if (this.nodes[i + 1] === n2) return true; } diff --git a/test/spec/core/way.js b/test/spec/core/way.js index 00f33b4df..935d51dc4 100644 --- a/test/spec/core/way.js +++ b/test/spec/core/way.js @@ -141,6 +141,30 @@ describe('iD.Way', function() { }); }); + describe("#areAdjacent", function() { + it("returns false for nodes not in the way", function() { + expect(iD.Way().areAdjacent('a', 'b')).to.equal(false); + }); + + it("returns false for non-adjacent nodes in the way", function() { + expect(iD.Way({nodes: ['a', 'b', 'c']}).areAdjacent('a', 'c')).to.equal(false); + }); + + it("returns true for adjacent nodes in the way (forward)", function() { + var way = iD.Way({nodes: ['a', 'b', 'c', 'd']}); + expect(way.areAdjacent('a', 'b')).to.equal(true); + expect(way.areAdjacent('b', 'c')).to.equal(true); + expect(way.areAdjacent('c', 'd')).to.equal(true); + }); + + it("returns true for adjacent nodes in the way (reverse)", function() { + var way = iD.Way({nodes: ['a', 'b', 'c', 'd']}); + expect(way.areAdjacent('b', 'a')).to.equal(true); + expect(way.areAdjacent('c', 'b')).to.equal(true); + expect(way.areAdjacent('d', 'c')).to.equal(true); + }); + }); + describe("#geometry", function() { it("returns 'line' when the way is not an area", function () { expect(iD.Way().geometry()).to.equal('line'); From 4fa88acc85d7c842eabd42afe05caf4bb6fb3a78 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Mar 2013 16:21:12 -0700 Subject: [PATCH 11/16] Fix connecting adjacent vertices Can't unconditionally delete the node; it may be a member of other ways. I didn't preserve the behavior of dragging a midpoint to an adjacent node being a no-op. In general we don't try to eliminate compound operations whose net result is a no-op; I don't think it's important to do so for this special case. The degenerate case of connecting the endpoints of a two-vertex line now results in a point. This is what naturally resulted from the code, and seems ok. Fixes #983. --- js/id/actions/connect.js | 6 ++-- js/id/modes/drag_node.js | 15 -------- test/spec/actions/connect.js | 69 ++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 17 deletions(-) diff --git a/js/id/actions/connect.js b/js/id/actions/connect.js index aed9882bc..82764e15f 100644 --- a/js/id/actions/connect.js +++ b/js/id/actions/connect.js @@ -17,10 +17,12 @@ iD.actions.Connect = function(nodeIds) { var survivor = graph.entity(_.last(nodeIds)); for (var i = 0; i < nodeIds.length - 1; i++) { - var node = graph.entity(nodeIds[i]), index; + var node = graph.entity(nodeIds[i]); graph.parentWays(node).forEach(function(parent) { - graph = graph.replace(parent.replaceNode(node.id, survivor.id)); + if (!parent.areAdjacent(node.id, survivor.id)) { + graph = graph.replace(parent.replaceNode(node.id, survivor.id)); + } }); graph.parentRelations(node).forEach(function(parent) { diff --git a/js/id/modes/drag_node.js b/js/id/modes/drag_node.js index fea02bf86..475f7aef7 100644 --- a/js/id/modes/drag_node.js +++ b/js/id/modes/drag_node.js @@ -102,12 +102,6 @@ iD.modes.DragNode = function(context) { function end(entity) { if (cancelled) return; - function adjacent(d) { - return _.any(context.graph().parentWays(entity).map(function(w) { - return w.areAdjacent(d.id, entity.id); - })); - } - var d = datum(); if (d.type === 'way') { @@ -117,15 +111,6 @@ iD.modes.DragNode = function(context) { iD.actions.AddVertex(d.id, entity.id, choice.index), connectAnnotation(d)); - } else if (d.type === 'node' && adjacent(d)) { - if (wasMidpoint) { - context.history().pop(); - } else { - context.replace( - iD.actions.DeleteNode(entity.id), - t('operations.delete.annotation.vertex')); - } - } else if (d.type === 'node' && d.id !== entity.id) { context.replace( iD.actions.Connect([entity.id, d.id]), diff --git a/test/spec/actions/connect.js b/test/spec/actions/connect.js index fc585b43c..683bae623 100644 --- a/test/spec/actions/connect.js +++ b/test/spec/actions/connect.js @@ -78,6 +78,75 @@ describe("iD.actions.Connect", function() { expect(graph.entity('-').nodes).to.eql(['d', 'b', 'c', 'd']); }); + it("merges adjacent nodes", function() { + // a --- b --- c + // + // Connect [b, c] + // + // Expected result: + // + // a --- c + // + var graph = iD.Graph({ + 'a': iD.Node({id: 'a'}), + 'b': iD.Node({id: 'b'}), + 'c': iD.Node({id: 'c'}), + '-': iD.Way({id: '-', nodes: ['a', 'b', 'c']}) + }); + + graph = iD.actions.Connect(['b', 'c'])(graph); + + expect(graph.entity('-').nodes).to.eql(['a', 'c']); + expect(graph.entity('b')).to.be.undefined; + }); + + it("merges adjacent nodes with connections", function() { + // a --- b --- c + // | + // d + // + // Connect [b, c] + // + // Expected result: + // + // a --- c + // | + // d + // + var graph = iD.Graph({ + 'a': iD.Node({id: 'a'}), + 'b': iD.Node({id: 'b'}), + 'c': iD.Node({id: 'c'}), + 'd': iD.Node({id: 'c'}), + '-': iD.Way({id: '-', nodes: ['a', 'b', 'c']}), + '|': iD.Way({id: '|', nodes: ['b', 'd']}) + + }); + + graph = iD.actions.Connect(['b', 'c'])(graph); + + expect(graph.entity('-').nodes).to.eql(['a', 'c']); + expect(graph.entity('|').nodes).to.eql(['c', 'd']); + expect(graph.entity('b')).to.be.undefined; + }); + + it("deletes a degenerate way", function() { + // a --- b + // + // Connect [a, b] + // + var graph = iD.Graph({ + 'a': iD.Node({id: 'a'}), + 'b': iD.Node({id: 'b'}), + '-': iD.Way({id: '-', nodes: ['a', 'b']}) + }); + + graph = iD.actions.Connect(['a', 'b'])(graph); + + expect(graph.entity('a')).to.be.undefined; + expect(graph.entity('-')).to.be.undefined; + }); + it("merges tags to the surviving node", function() { var graph = iD.Graph({ 'a': iD.Node({id: 'a', tags: {a: 'a'}}), From 4720a84d38c23de9c007a1e4d0f1c53611d47c4a Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Mar 2013 16:22:10 -0700 Subject: [PATCH 12/16] No-op a null tag merge Reduces unnecessary node churn in Connect action. --- js/id/core/entity.js | 12 +++++++----- test/spec/core/entity.js | 12 +++++++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/js/id/core/entity.js b/js/id/core/entity.js index b0ed5b0f0..0aaa36907 100644 --- a/js/id/core/entity.js +++ b/js/id/core/entity.js @@ -68,17 +68,19 @@ iD.Entity.prototype = { }, mergeTags: function(tags) { - var merged = _.clone(this.tags); + var merged = _.clone(this.tags), changed = false; for (var k in tags) { var t1 = merged[k], t2 = tags[k]; - if (t1 && t1 !== t2) { - merged[k] = _.union(t1.split(/;\s*/), t2.split(/;\s*/)).join(';'); - } else { + if (!t1) { + changed = true; merged[k] = t2; + } else if (t1 !== t2) { + changed = true; + merged[k] = _.union(t1.split(/;\s*/), t2.split(/;\s*/)).join(';'); } } - return this.update({tags: merged}); + return changed ? this.update({tags: merged}) : this; }, intersects: function(extent, resolver) { diff --git a/test/spec/core/entity.js b/test/spec/core/entity.js index 2cc3cce05..b1ea3d308 100644 --- a/test/spec/core/entity.js +++ b/test/spec/core/entity.js @@ -64,9 +64,15 @@ describe('iD.Entity', function () { }); describe("#mergeTags", function () { - it("returns a new Entity", function () { - var a = iD.Entity(), - b = a.mergeTags({}); + it("returns self if unchanged", function () { + var a = iD.Entity({tags: {a: 'a'}}), + b = a.mergeTags({a: 'a'}); + expect(a).to.equal(b); + }); + + it("returns a new Entity if changed", function () { + var a = iD.Entity({tags: {a: 'a'}}), + b = a.mergeTags({a: 'b'}); expect(b instanceof iD.Entity).to.be.true; expect(a).not.to.equal(b); }); From 4f4082527a36103340cdace0ef516615546aa83e Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Mar 2013 16:30:15 -0700 Subject: [PATCH 13/16] Build forms --- data/presets/forms.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/presets/forms.json b/data/presets/forms.json index 72815cbd9..573e72986 100644 --- a/data/presets/forms.json +++ b/data/presets/forms.json @@ -1 +1 @@ -{"access":{"key":"access","type":"combo"},"address":{"type":"address","keys":["addr:housename","addr:housenumber","addr:street","addr:city"]},"atm":{"key":"atm","type":"check"},"building":{"key":"building","type":"combo"},"building_area":{"key":"building","type":"check","default":{"area":"yes"}},"building_yes":{"key":"building","type":"combo","default":{"area":"yes"}},"capacity":{"key":"capacity","type":"text"},"cuisine":{"key":"cuisine","type":"combo","indexed":true},"denomination":{"key":"denomination","type":"combo"},"elevation":{"key":"ele","type":"number"},"emergency":{"key":"emergency","type":"check"},"fax":{"key":"fax","type":"tel"},"fee":{"key":"fee","type":"check"},"internet_access":{"key":"internet_access","type":"combo","options":["yes","no","wlan","wired","terminal"]},"layer":{"key":"layer","type":"combo"},"levels":{"key":"building:levels","type":"number"},"maxspeed":{"key":"maxspeed","type":"combo"},"network":{"key":"network","type":"text"},"oneway":{"key":"oneway","type":"check"},"opening_hours":{"key":"opening_hours","type":"text"},"operator":{"key":"operator","type":"text"},"phone":{"key":"phone","type":"tel"},"religion":{"key":"religion","type":"combo","options":["christian","muslim","buddhist","jewish","hindu","shinto","taoist"]},"roadtype":{"title":" ","type":"radio","options":["bridge","tunnel","embankment","cutting"]},"shelter":{"key":"shelter","type":"check"},"surface":{"key":"surface","type":"combo"}} \ No newline at end of file +{"access":{"key":"access","type":"combo"},"address":{"type":"address","keys":["addr:housename","addr:housenumber","addr:street","addr:city"],"universal":true},"atm":{"key":"atm","type":"check"},"building":{"key":"building","type":"combo"},"building_area":{"key":"building","type":"check","default":{"area":"yes"}},"building_yes":{"key":"building","type":"combo","default":{"area":"yes"}},"capacity":{"key":"capacity","type":"text"},"cuisine":{"key":"cuisine","type":"combo","indexed":true},"denomination":{"key":"denomination","type":"combo"},"elevation":{"key":"ele","type":"number","universal":true},"emergency":{"key":"emergency","type":"check"},"fax":{"key":"fax","type":"tel"},"fee":{"key":"fee","type":"check"},"internet_access":{"key":"internet_access","type":"combo","options":["yes","no","wlan","wired","terminal"]},"layer":{"key":"layer","type":"combo"},"levels":{"key":"building:levels","type":"number"},"maxspeed":{"key":"maxspeed","type":"combo"},"network":{"key":"network","type":"text"},"oneway":{"key":"oneway","type":"check"},"opening_hours":{"key":"opening_hours","type":"text"},"operator":{"key":"operator","type":"text"},"phone":{"key":"phone","type":"tel"},"religion":{"key":"religion","type":"combo","options":["christian","muslim","buddhist","jewish","hindu","shinto","taoist"]},"roadtype":{"title":" ","type":"radio","options":["bridge","tunnel","embankment","cutting"]},"shelter":{"key":"shelter","type":"check"},"source":{"key":"source","type":"text","universal":true},"surface":{"key":"surface","type":"combo"},"telephone":{"key":"phone","type":"tel","universal":true},"website":{"key":"website","type":"url","universal":true},"wikipedia":{"key":"wikipedia","type":"text","universal":true}} \ No newline at end of file From 8459c3ab34c4234f7e1d1bace495e084a575b616 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Mar 2013 16:33:07 -0700 Subject: [PATCH 14/16] Remove surface form from baseball preset It's pretty much universally dirt/grass; taginfo shows no usages of sport=baseball, surface=*. --- data/presets/presets.json | 2 +- data/presets/presets/leisure/pitch/baseball.json | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index bcd50593b..eb17a1a81 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -1 +1 @@ -[{"name":"aeroway","match":{"geometry":["point","vertex","line","area"],"tags":{"aeroway":"*"}},"form":[{"key":"aeroway","type":"combo"}]},{"name":"airport","match":{"geometry":["point","area"],"terms":["airplane","airport","aerodrome"],"tags":{"aeroway":"aerodrome"}},"icon":"airport","form":[]},{"name":"helipad","match":{"geometry":["point","area"],"terms":["helicopter","helipad","heliport"],"tags":{"aeroway":"helipad"}},"icon":"heliport","form":[]},{"name":"amenity","match":{"geometry":["point","area"],"tags":{"amenity":"*"}},"form":[{"key":"amenity","type":"combo"}]},{"name":"bank","match":{"geometry":["point","area"],"terms":["coffer","countinghouse","credit union","depository","exchequer","fund","hoard","investment firm","repository","reserve","reservoir","safe","savings","stock","stockpile","store","storehouse","thrift","treasury","trust company","vault"],"tags":{"amenity":"bank"}},"icon":"bank","form":["atm","building_area","address"]},{"name":"bar","match":{"geometry":["point","area"],"tags":{"amenity":"bar"},"terms":[]},"icon":"bar","form":["building_area","address"]},{"name":"bicycle rental","match":{"geometry":["point","area"],"tags":{"amenity":"bicycle_rental"}},"icon":"bicycle","form":["capacity","network","operator"]},{"name":"cafe","match":{"geometry":["point","area"],"terms":["coffee","tea","coffee shop"],"tags":{"amenity":"cafe"}},"icon":"cafe","form":["cuisine","internet_access","building_area","address"]},{"name":"cinema","match":{"geometry":["point","area"],"terms":["big screen","bijou","cine","drive-in","film","flicks","motion pictures","movie house","movie theater","moving pictures","nabes","photoplay","picture show","pictures","playhouse","show","silver screen"],"tags":{"amenity":"cinema"}},"icon":"cinema","form":["building_area","address"]},{"name":"fast food","match":{"geometry":["point","area"],"tags":{"amenity":"fast_food"},"terms":[]},"icon":"fast-food","form":["cuisine","building_area","address"]},{"name":"fire station","match":{"geometry":["point","area"],"tags":{"amenity":"fire_station"},"terms":[]},"icon":"fire-station","form":["operator","building_area","address"]},{"name":"grave yard","match":{"geometry":["point","area"],"tags":{"amenity":"grave_yard"}},"icon":"cemetery","form":["religion"]},{"name":"hospital","match":{"geometry":["point","area"],"terms":["clinic","emergency room","health service","hospice","infirmary","institution","nursing home","rest home","sanatorium","sanitarium","sick bay","surgery","ward"],"tags":{"amenity":"hospital"}},"icon":"hospital","form":["emergency","building_area","address"]},{"name":"library","match":{"geometry":["point","area"],"tags":{"amenity":"library"},"terms":[]},"icon":"library","form":["operator","building_area","address"]},{"name":"parking","match":{"geometry":["point","area"],"tags":{"amenity":"parking"},"terms":[]},"icon":"parking","form":["fee","access","address"]},{"name":"pharmacy","match":{"geometry":["point","area"],"tags":{"amenity":"pharmacy"},"terms":[]},"icon":"pharmacy","form":["operator","building_area","address"]},{"name":"place of worship","match":{"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"}},"icon":"place-of-worship","form":["religion","denomination","building","address"]},{"name":"church","match":{"geometry":["point","area"],"terms":["christian","abbey","basilica","bethel","cathedral","chancel","chantry","chapel","church","fold","house of God","house of prayer","house of worship","minster","mission","oratory","parish","sacellum","sanctuary","shrine","tabernacle","temple"],"tags":{"amenity":"place_of_worship","religion":"christian"}},"icon":"religious-christian","form":["denomination","building","address"]},{"name":"synagogue","match":{"geometry":["point","area"],"terms":["jewish","synagogue"],"tags":{"amenity":"place_of_worship","religion":"jewish"}},"icon":"religious-jewish","form":["denomination","building","address"]},{"name":"mosque","match":{"geometry":["point","area"],"terms":["muslim","mosque"],"tags":{"amenity":"place_of_worship","religion":"muslim"}},"icon":"religious-muslim","form":["denomination","building","address"]},{"name":"police","match":{"geometry":["point","area"],"terms":["badge","bear","blue","bluecoat","bobby","boy scout","bull","constable","constabulary","cop","copper","corps","county mounty","detective","fed","flatfoot","force","fuzz","gendarme","gumshoe","heat","law","law enforcement","man","narc","officers","patrolman","police"],"tags":{"amenity":"police"}},"icon":"police","form":["operator","building_area","address"]},{"name":"post box","match":{"geometry":["point"],"tags":{"amenity":"post_box"},"terms":["letter drop","letterbox","mail drop","mailbox","pillar box","postbox"]},"icon":"post","form":["address","operator",{"key":"collection_times","type":"text"}]},{"name":"pub","match":{"geometry":["point","area"],"tags":{"amenity":"pub"},"terms":[]},"icon":"beer","form":["building_area","address"]},{"name":"restaurant","match":{"geometry":["point","area"],"terms":["bar","cafeteria","café","canteen","chophouse","coffee shop","diner","dining room","dive*","doughtnut shop","drive-in","eatery","eating house","eating place","fast-food place","greasy spoon","grill","hamburger stand","hashery","hideaway","hotdog stand","inn","joint*","luncheonette","lunchroom","night club","outlet*","pizzeria","saloon","soda fountain","watering hole"],"tags":{"amenity":"restaurant"}},"icon":"restaurant","form":["cuisine","building_area","address"]},{"name":"school","match":{"geometry":["point","area"],"terms":["academy","alma mater","blackboard","college","department","discipline","establishment","faculty","hall","halls of ivy","institute","institution","jail*","schoolhouse","seminary","university"],"tags":{"amenity":"school"}},"icon":"school","form":["operator","building","address"]},{"name":"toilets","match":{"geometry":["point","area"],"terms":[],"tags":{"amenity":"toilets"}},"form":["operator","building","address"]},{"name":"town hall","match":{"geometry":["point","areea"],"terms":["village hall","city government","courthouse","municipal building","municipal center"],"tags":{"amenity":"townhall"}},"icon":"town-hall","form":["building_area","address"]},{"name":"university","match":{"geometry":["point","area"],"tags":{"amenity":"university"},"terms":[]},"icon":"college","form":["operator","address"]},{"name":"building","match":{"geometry":["point","area"],"tags":{"building":"*"},"terms":[]},"icon":"warehouse","form":["building_yes","levels","address"]},{"name":"highway","match":{"geometry":["point","vertex","line","area"],"tags":{"highway":"*"}},"form":[{"key":"highway","type":"combo"}]},{"name":"bus stop","match":{"geometry":["point"],"tags":{"highway":"bus_stop"},"terms":[]},"icon":"bus","form":["operator","shelter"]},{"name":"crossing","match":{"geometry":["vertex"],"tags":{"highway":"crossing"},"terms":["crosswalk","zebra crossing"]},"form":[{"key":"crossing","type":"combo"}]},{"name":"cycle path","match":{"geometry":["line"],"tags":{"highway":"cycleway"},"terms":[]},"icon":"highway-cycleway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"foot path","match":{"geometry":["line"],"terms":["beaten path","boulevard","clearing","course","cut*","drag*","footpath","highway","lane","line","orbit","passage","pathway","rail","rails","road","roadway","route","street","thoroughfare","trackway","trail","trajectory","walk"],"tags":{"highway":"footway"}},"icon":"highway-footway","form":["access","surface"]},{"name":"motorway","match":{"geometry":["line"],"tags":{"highway":"motorway"},"terms":[]},"icon":"highway-motorway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"path","match":{"geometry":["line"],"tags":{"highway":"path"},"terms":[]},"icon":"highway-footway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"primary road","match":{"geometry":["line"],"tags":{"highway":"primary"},"terms":[]},"icon":"highway-primary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"residential road","match":{"geometry":["line"],"tags":{"highway":"residential"},"terms":[]},"icon":"highway-residential","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"secondary road","match":{"geometry":["line"],"tags":{"highway":"secondary"},"terms":[]},"icon":"highway-secondary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"service road","match":{"geometry":["line"],"tags":{"highway":"service"},"terms":[]},"icon":"highway-service","form":[{"key":"service","type":"combo","options":["parking_aisle","driveway","alley","drive-through","emergency_access"]},"oneway","roadtype","access","maxspeed","surface"]},{"name":"steps","match":{"geometry":["line"],"tags":{"highway":"steps"},"terms":["stairs","staircase"]},"form":["access","surface"]},{"name":"tertiary road","match":{"geometry":["line"],"tags":{"highway":"tertiary"},"terms":[]},"icon":"highway-tertiary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"track","match":{"geometry":["line"],"tags":{"highway":"track"},"terms":[]},"icon":"highway-track","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"trunk highway","match":{"geometry":["line"],"tags":{"highway":"trunk"},"terms":[]},"icon":"highway-trunk","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"turning circle","match":{"geometry":["vertex"],"tags":{"highway":"turning_circle"},"terms":[]},"icon":"circle"},{"name":"unclassified","match":{"geometry":["line"],"tags":{"highway":"unclassified"},"terms":[]},"icon":"highway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"landuse","match":{"geometry":["point","area"],"tags":{"landuse":"*"}},"form":[{"key":"landuse","type":"combo"}]},{"name":"allotments","match":{"geometry":["point","area"],"tags":{"landuse":"allotments"},"terms":[]},"form":[]},{"name":"cemetery","match":{"geometry":["point","area"],"tags":{"landuse":"cemetery"},"terms":[]},"form":[],"icon":"cemetery"},{"name":"commercial","match":{"geometry":["point","area"],"tags":{"landuse":"commercial"},"terms":[]},"form":[]},{"name":"construction","match":{"geometry":["point","area"],"tags":{"landuse":"construction"},"terms":[]},"form":[{"key":"construction","type":"combo"},"operator"]},{"name":"farm","match":{"geometry":["point","area"],"tags":{"landuse":"farm"},"terms":[]},"form":[]},{"name":"farmyard","match":{"geometry":["point","area"],"tags":{"landuse":"farmyard"},"terms":[]},"form":[]},{"name":"forest","match":{"geometry":["point","area"],"tags":{"landuse":"forest"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"grass","match":{"geometry":["point","area"],"tags":{"landuse":"grass"},"terms":[]},"form":[]},{"name":"industrial","match":{"geometry":["point","area"],"tags":{"landuse":"industrial"},"terms":[]},"form":[]},{"name":"meadow","match":{"geometry":["point","area"],"tags":{"landuse":"meadow"},"terms":[]},"form":[]},{"name":"orchard","match":{"geometry":["point","area"],"tags":{"landuse":"orchard"},"terms":[]},"form":[]},{"name":"quarry","match":{"geometry":["point","area"],"tags":{"landuse":"quarry"},"terms":[]},"form":[]},{"name":"residential","match":{"geometry":["point","area"],"tags":{"landuse":"residential"},"terms":[]},"form":[]},{"name":"vineyard","match":{"geometry":["point","area"],"tags":{"landuse":"vineyard"},"terms":[]},"form":[]},{"name":"leisure","match":{"geometry":["point","area"],"tags":{"leisure":"*"}},"form":[{"key":"leisure","type":"combo"}]},{"name":"golf course","match":{"geometry":["point","area"],"tags":{"leisure":"golf_course"},"terms":[]},"icon":"golf","form":["operator","address"]},{"name":"park","match":{"geometry":["point","area"],"terms":["esplanade","estate","forest","garden","grass","green","grounds","lawn","lot","meadow","parkland","place","playground","plaza","pleasure garden","recreation area","square","tract","village green","woodland"],"tags":{"leisure":"park"}},"icon":"park"},{"name":"sport pitch","match":{"geometry":["point","area"],"tags":{"leisure":"pitch"},"terms":[]},"icon":"pitch","form":[{"key":"sport","type":"combo"},"surface"]},{"name":"baseball diamond","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"baseball"},"terms":[]},"icon":"baseball","form":["surface"]},{"name":"basketball court","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"basketball"},"terms":[]},"icon":"basketball","form":["surface"]},{"name":"soccer field","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"soccer"},"terms":[]},"icon":"soccer","form":["surface"]},{"name":"tennis court","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"tennis"},"terms":[]},"icon":"tennis","form":["surface"]},{"name":"man made","match":{"geometry":["point","vertex","line","area"],"tags":{"man_made":"*"}},"form":[{"key":"man_made","type":"combo"}]},{"name":"lighthouse","match":{"geometry":["point","area"],"tags":{"man_made":"lighthouse"}}},{"name":"pier","match":{"geometry":["line","area"],"tags":{"man_made":"pier"}}},{"name":"natural","match":{"geometry":["point","area"],"tags":{"natural":"*"}},"form":[{"key":"natural","type":"combo"}]},{"name":"bay","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"bay"}}},{"name":"beach","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"beach"}},"form":["surface"]},{"name":"cliff","match":{"geometry":["point","vertex","line","area"],"terms":[],"tags":{"natural":"cliff"}}},{"name":"coastline","match":{"geometry":["line"],"terms":["shore"],"tags":{"natural":"coastline"}}},{"name":"glacier","match":{"geometry":["area"],"terms":[],"tags":{"natural":"glacier"}}},{"name":"grassland","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"grassland"}}},{"name":"heath","match":{"geometry":["area"],"terms":[],"tags":{"natural":"heath"}}},{"name":"peak","match":{"geometry":["point","vertex"],"tags":{"natural":"peak"},"terms":["acme","aiguille","alp","climax","crest","crown","hill","mount","mountain","pinnacle","summit","tip","top"]},"icon":"triangle","form":["elevation"]},{"name":"scrub","match":{"geometry":["area"],"tags":{"natural":"scrub"},"terms":[]}},{"name":"spring","match":{"geometry":["point","vertex"],"terms":[],"tags":{"natural":"spring"}}},{"name":"tree","match":{"geometry":["point","vertex"],"terms":[],"tags":{"natural":"tree"}},"form":[{"key":"denotation","type":"combo"}],"icon":"park"},{"name":"water","match":{"geometry":["area"],"tags":{"natural":"water"},"terms":[]},"form":[{"key":"water","type":"combo"}]},{"name":"lake","match":{"geometry":["area"],"tags":{"natural":"water","water":"lake"},"terms":["lakelet","loch","mere"]}},{"name":"pond","match":{"geometry":["area"],"tags":{"natural":"water","water":"pond"},"terms":["lakelet","millpond","tarn","pool","mere"]}},{"name":"reservoir","match":{"geometry":["area"],"tags":{"natural":"water","water":"reservoir"},"terms":[]}},{"name":"wetland","match":{"geometry":["point","area"],"tags":{"natural":"wetland"},"terms":[]},"form":[{"key":"wetland","type":"combo"}]},{"name":"wood","match":{"geometry":["point","area"],"tags":{"natural":"wood"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"office","match":{"geometry":["point","area"],"tags":{"office":"*"},"terms":[]},"icon":"commercial","form":[{"key":"office","type":"combo"},"address","opening_hours"]},{"name":"place","match":{"geometry":["point","area"],"tags":{"place":"*"}},"form":[{"key":"place","type":"combo"}]},{"name":"hamlet","match":{"geometry":["point","area"],"tags":{"place":"hamlet"}},"icon":"triangle-stroked"},{"name":"island","match":{"geometry":["point","area"],"terms":["archipelago","atoll","bar","cay","isle","islet","key","reef"],"tags":{"place":"island"}}},{"name":"locality","match":{"geometry":["point","area"],"tags":{"place":"locality"}},"icon":"marker"},{"name":"village","match":{"geometry":["point","area"],"tags":{"place":"village"}},"icon":"square-stroked"},{"name":"railway","match":{"geometry":["point","vertex","line","area"],"tags":{"railway":"*"}},"form":[{"key":"railway","type":"combo"}]},{"name":"rail","match":{"geometry":["line"],"tags":{"railway":"rail"},"terms":[]},"icon":"railway-rail"},{"name":"subway","match":{"geometry":["line"],"tags":{"railway":"subway"},"terms":[]},"icon":"railway-rail"},{"name":"subway entrance","match":{"geometry":["point"],"tags":{"railway":"subway_entrance"},"terms":[]},"icon":"rail-underground"},{"name":"shop","match":{"geometry":["point","area"],"tags":{"shop":"*"},"terms":[]},"icon":"shop","form":[{"key":"shop","type":"combo"},"address","opening_hours"]},{"name":"supermarket","match":{"geometry":["point","area"],"terms":["bazaar","boutique","chain","co-op","cut-rate store","discount store","five-and-dime","flea market","galleria","mall","mart","outlet","outlet store","shop","shopping center","shopping plaza","stand","store","supermarket","thrift shop"],"tags":{"shop":"supermarket"}},"icon":"grocery","form":["operator","building_area","address"]},{"name":"tourism","match":{"geometry":["point","area"],"tags":{"tourism":"*"}},"form":[{"key":"tourism","type":"combo"}]},{"name":"camp site","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"camp_site"}},"icon":"campsite","form":["operator","address"]},{"name":"hotel","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"hotel"}},"icon":"lodging","form":["operator","building_area","address"]},{"name":"museum","match":{"geometry":["point","area"],"terms":["exhibition","exhibits archive","foundation","gallery","hall","institution","library","menagerie","repository","salon","storehouse","treasury","vault"],"tags":{"tourism":"museum"}},"icon":"museum","form":["operator","building_area","address"]},{"name":"picnic site","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"picnic_site"}},"form":["operator","building_area","address"]},{"name":"waterway","match":{"geometry":["point","vertex","line","area"],"tags":{"waterway":"*"}},"form":[{"key":"waterway","type":"combo"}]},{"name":"canal","match":{"geometry":["line"],"tags":{"waterway":"canal"}},"icon":"waterway-river"},{"name":"dam","match":{"geometry":["point","vertex","line","area"],"tags":{"waterway":"dam"}},"icon":"dam"},{"name":"ditch","match":{"geometry":["line"],"tags":{"waterway":"ditch"}},"icon":"waterway-river"},{"name":"drain","match":{"geometry":["line"],"tags":{"waterway":"drain"}},"icon":"waterway-river"},{"name":"river","match":{"geometry":["line"],"terms":["beck","branch","brook","course","creek","estuary","rill","rivulet","run","runnel","stream","tributary","watercourse"],"tags":{"waterway":"river"}},"icon":"waterway-river"},{"name":"riverbank","match":{"geometry":["area"],"tags":{"waterway":"riverbank"}},"icon":"water"},{"name":"stream","match":{"geometry":["line"],"terms":["beck","branch","brook","burn","course","creek","current","drift","flood","flow","freshet","race","rill","rindle","rivulet","run","runnel","rush","spate","spritz","surge","tide","torrent","tributary","watercourse"],"tags":{"waterway":"stream"}},"icon":"waterway-river","form":["layer"]},{"name":"weir","match":{"geometry":["vertex","line"],"tags":{"waterway":"weir"}},"icon":"dam"}] \ No newline at end of file +[{"name":"aeroway","match":{"geometry":["point","vertex","line","area"],"tags":{"aeroway":"*"}},"form":[{"key":"aeroway","type":"combo"}]},{"name":"airport","match":{"geometry":["point","area"],"terms":["airplane","airport","aerodrome"],"tags":{"aeroway":"aerodrome"}},"icon":"airport","form":[]},{"name":"helipad","match":{"geometry":["point","area"],"terms":["helicopter","helipad","heliport"],"tags":{"aeroway":"helipad"}},"icon":"heliport","form":[]},{"name":"amenity","match":{"geometry":["point","area"],"tags":{"amenity":"*"}},"form":[{"key":"amenity","type":"combo"}]},{"name":"bank","match":{"geometry":["point","area"],"terms":["coffer","countinghouse","credit union","depository","exchequer","fund","hoard","investment firm","repository","reserve","reservoir","safe","savings","stock","stockpile","store","storehouse","thrift","treasury","trust company","vault"],"tags":{"amenity":"bank"}},"icon":"bank","form":["atm","building_area","address"]},{"name":"bar","match":{"geometry":["point","area"],"tags":{"amenity":"bar"},"terms":[]},"icon":"bar","form":["building_area","address"]},{"name":"bicycle rental","match":{"geometry":["point","area"],"tags":{"amenity":"bicycle_rental"}},"icon":"bicycle","form":["capacity","network","operator"]},{"name":"cafe","match":{"geometry":["point","area"],"terms":["coffee","tea","coffee shop"],"tags":{"amenity":"cafe"}},"icon":"cafe","form":["cuisine","internet_access","building_area","address"]},{"name":"cinema","match":{"geometry":["point","area"],"terms":["big screen","bijou","cine","drive-in","film","flicks","motion pictures","movie house","movie theater","moving pictures","nabes","photoplay","picture show","pictures","playhouse","show","silver screen"],"tags":{"amenity":"cinema"}},"icon":"cinema","form":["building_area","address"]},{"name":"fast food","match":{"geometry":["point","area"],"tags":{"amenity":"fast_food"},"terms":[]},"icon":"fast-food","form":["cuisine","building_area","address"]},{"name":"fire station","match":{"geometry":["point","area"],"tags":{"amenity":"fire_station"},"terms":[]},"icon":"fire-station","form":["operator","building_area","address"]},{"name":"grave yard","match":{"geometry":["point","area"],"tags":{"amenity":"grave_yard"}},"icon":"cemetery","form":["religion"]},{"name":"hospital","match":{"geometry":["point","area"],"terms":["clinic","emergency room","health service","hospice","infirmary","institution","nursing home","rest home","sanatorium","sanitarium","sick bay","surgery","ward"],"tags":{"amenity":"hospital"}},"icon":"hospital","form":["emergency","building_area","address"]},{"name":"library","match":{"geometry":["point","area"],"tags":{"amenity":"library"},"terms":[]},"icon":"library","form":["operator","building_area","address"]},{"name":"parking","match":{"geometry":["point","area"],"tags":{"amenity":"parking"},"terms":[]},"icon":"parking","form":["fee","access","address"]},{"name":"pharmacy","match":{"geometry":["point","area"],"tags":{"amenity":"pharmacy"},"terms":[]},"icon":"pharmacy","form":["operator","building_area","address"]},{"name":"place of worship","match":{"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"}},"icon":"place-of-worship","form":["religion","denomination","building","address"]},{"name":"church","match":{"geometry":["point","area"],"terms":["christian","abbey","basilica","bethel","cathedral","chancel","chantry","chapel","church","fold","house of God","house of prayer","house of worship","minster","mission","oratory","parish","sacellum","sanctuary","shrine","tabernacle","temple"],"tags":{"amenity":"place_of_worship","religion":"christian"}},"icon":"religious-christian","form":["denomination","building","address"]},{"name":"synagogue","match":{"geometry":["point","area"],"terms":["jewish","synagogue"],"tags":{"amenity":"place_of_worship","religion":"jewish"}},"icon":"religious-jewish","form":["denomination","building","address"]},{"name":"mosque","match":{"geometry":["point","area"],"terms":["muslim","mosque"],"tags":{"amenity":"place_of_worship","religion":"muslim"}},"icon":"religious-muslim","form":["denomination","building","address"]},{"name":"police","match":{"geometry":["point","area"],"terms":["badge","bear","blue","bluecoat","bobby","boy scout","bull","constable","constabulary","cop","copper","corps","county mounty","detective","fed","flatfoot","force","fuzz","gendarme","gumshoe","heat","law","law enforcement","man","narc","officers","patrolman","police"],"tags":{"amenity":"police"}},"icon":"police","form":["operator","building_area","address"]},{"name":"post box","match":{"geometry":["point"],"tags":{"amenity":"post_box"},"terms":["letter drop","letterbox","mail drop","mailbox","pillar box","postbox"]},"icon":"post","form":["address","operator",{"key":"collection_times","type":"text"}]},{"name":"pub","match":{"geometry":["point","area"],"tags":{"amenity":"pub"},"terms":[]},"icon":"beer","form":["building_area","address"]},{"name":"restaurant","match":{"geometry":["point","area"],"terms":["bar","cafeteria","café","canteen","chophouse","coffee shop","diner","dining room","dive*","doughtnut shop","drive-in","eatery","eating house","eating place","fast-food place","greasy spoon","grill","hamburger stand","hashery","hideaway","hotdog stand","inn","joint*","luncheonette","lunchroom","night club","outlet*","pizzeria","saloon","soda fountain","watering hole"],"tags":{"amenity":"restaurant"}},"icon":"restaurant","form":["cuisine","building_area","address"]},{"name":"school","match":{"geometry":["point","area"],"terms":["academy","alma mater","blackboard","college","department","discipline","establishment","faculty","hall","halls of ivy","institute","institution","jail*","schoolhouse","seminary","university"],"tags":{"amenity":"school"}},"icon":"school","form":["operator","building","address"]},{"name":"toilets","match":{"geometry":["point","area"],"terms":[],"tags":{"amenity":"toilets"}},"form":["operator","building","address"]},{"name":"town hall","match":{"geometry":["point","areea"],"terms":["village hall","city government","courthouse","municipal building","municipal center"],"tags":{"amenity":"townhall"}},"icon":"town-hall","form":["building_area","address"]},{"name":"university","match":{"geometry":["point","area"],"tags":{"amenity":"university"},"terms":[]},"icon":"college","form":["operator","address"]},{"name":"building","match":{"geometry":["point","area"],"tags":{"building":"*"},"terms":[]},"icon":"warehouse","form":["building_yes","levels","address"]},{"name":"highway","match":{"geometry":["point","vertex","line","area"],"tags":{"highway":"*"}},"form":[{"key":"highway","type":"combo"}]},{"name":"bus stop","match":{"geometry":["point"],"tags":{"highway":"bus_stop"},"terms":[]},"icon":"bus","form":["operator","shelter"]},{"name":"crossing","match":{"geometry":["vertex"],"tags":{"highway":"crossing"},"terms":["crosswalk","zebra crossing"]},"form":[{"key":"crossing","type":"combo"}]},{"name":"cycle path","match":{"geometry":["line"],"tags":{"highway":"cycleway"},"terms":[]},"icon":"highway-cycleway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"foot path","match":{"geometry":["line"],"terms":["beaten path","boulevard","clearing","course","cut*","drag*","footpath","highway","lane","line","orbit","passage","pathway","rail","rails","road","roadway","route","street","thoroughfare","trackway","trail","trajectory","walk"],"tags":{"highway":"footway"}},"icon":"highway-footway","form":["access","surface"]},{"name":"motorway","match":{"geometry":["line"],"tags":{"highway":"motorway"},"terms":[]},"icon":"highway-motorway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"path","match":{"geometry":["line"],"tags":{"highway":"path"},"terms":[]},"icon":"highway-footway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"primary road","match":{"geometry":["line"],"tags":{"highway":"primary"},"terms":[]},"icon":"highway-primary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"residential road","match":{"geometry":["line"],"tags":{"highway":"residential"},"terms":[]},"icon":"highway-residential","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"secondary road","match":{"geometry":["line"],"tags":{"highway":"secondary"},"terms":[]},"icon":"highway-secondary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"service road","match":{"geometry":["line"],"tags":{"highway":"service"},"terms":[]},"icon":"highway-service","form":[{"key":"service","type":"combo","options":["parking_aisle","driveway","alley","drive-through","emergency_access"]},"oneway","roadtype","access","maxspeed","surface"]},{"name":"steps","match":{"geometry":["line"],"tags":{"highway":"steps"},"terms":["stairs","staircase"]},"form":["access","surface"]},{"name":"tertiary road","match":{"geometry":["line"],"tags":{"highway":"tertiary"},"terms":[]},"icon":"highway-tertiary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"track","match":{"geometry":["line"],"tags":{"highway":"track"},"terms":[]},"icon":"highway-track","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"trunk highway","match":{"geometry":["line"],"tags":{"highway":"trunk"},"terms":[]},"icon":"highway-trunk","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"turning circle","match":{"geometry":["vertex"],"tags":{"highway":"turning_circle"},"terms":[]},"icon":"circle"},{"name":"unclassified","match":{"geometry":["line"],"tags":{"highway":"unclassified"},"terms":[]},"icon":"highway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"landuse","match":{"geometry":["point","area"],"tags":{"landuse":"*"}},"form":[{"key":"landuse","type":"combo"}]},{"name":"allotments","match":{"geometry":["point","area"],"tags":{"landuse":"allotments"},"terms":[]},"form":[]},{"name":"cemetery","match":{"geometry":["point","area"],"tags":{"landuse":"cemetery"},"terms":[]},"form":[],"icon":"cemetery"},{"name":"commercial","match":{"geometry":["point","area"],"tags":{"landuse":"commercial"},"terms":[]},"form":[]},{"name":"construction","match":{"geometry":["point","area"],"tags":{"landuse":"construction"},"terms":[]},"form":[{"key":"construction","type":"combo"},"operator"]},{"name":"farm","match":{"geometry":["point","area"],"tags":{"landuse":"farm"},"terms":[]},"form":[]},{"name":"farmyard","match":{"geometry":["point","area"],"tags":{"landuse":"farmyard"},"terms":[]},"form":[]},{"name":"forest","match":{"geometry":["point","area"],"tags":{"landuse":"forest"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"grass","match":{"geometry":["point","area"],"tags":{"landuse":"grass"},"terms":[]},"form":[]},{"name":"industrial","match":{"geometry":["point","area"],"tags":{"landuse":"industrial"},"terms":[]},"form":[]},{"name":"meadow","match":{"geometry":["point","area"],"tags":{"landuse":"meadow"},"terms":[]},"form":[]},{"name":"orchard","match":{"geometry":["point","area"],"tags":{"landuse":"orchard"},"terms":[]},"form":[]},{"name":"quarry","match":{"geometry":["point","area"],"tags":{"landuse":"quarry"},"terms":[]},"form":[]},{"name":"residential","match":{"geometry":["point","area"],"tags":{"landuse":"residential"},"terms":[]},"form":[]},{"name":"vineyard","match":{"geometry":["point","area"],"tags":{"landuse":"vineyard"},"terms":[]},"form":[]},{"name":"leisure","match":{"geometry":["point","area"],"tags":{"leisure":"*"}},"form":[{"key":"leisure","type":"combo"}]},{"name":"golf course","match":{"geometry":["point","area"],"tags":{"leisure":"golf_course"},"terms":[]},"icon":"golf","form":["operator","address"]},{"name":"park","match":{"geometry":["point","area"],"terms":["esplanade","estate","forest","garden","grass","green","grounds","lawn","lot","meadow","parkland","place","playground","plaza","pleasure garden","recreation area","square","tract","village green","woodland"],"tags":{"leisure":"park"}},"icon":"park"},{"name":"sport pitch","match":{"geometry":["point","area"],"tags":{"leisure":"pitch"},"terms":[]},"icon":"pitch","form":[{"key":"sport","type":"combo"},"surface"]},{"name":"baseball diamond","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"baseball"},"terms":[]},"icon":"baseball"},{"name":"basketball court","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"basketball"},"terms":[]},"icon":"basketball","form":["surface"]},{"name":"soccer field","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"soccer"},"terms":[]},"icon":"soccer","form":["surface"]},{"name":"tennis court","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"tennis"},"terms":[]},"icon":"tennis","form":["surface"]},{"name":"man made","match":{"geometry":["point","vertex","line","area"],"tags":{"man_made":"*"}},"form":[{"key":"man_made","type":"combo"}]},{"name":"lighthouse","match":{"geometry":["point","area"],"tags":{"man_made":"lighthouse"}}},{"name":"pier","match":{"geometry":["line","area"],"tags":{"man_made":"pier"}}},{"name":"natural","match":{"geometry":["point","area"],"tags":{"natural":"*"}},"form":[{"key":"natural","type":"combo"}]},{"name":"bay","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"bay"}}},{"name":"beach","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"beach"}},"form":["surface"]},{"name":"cliff","match":{"geometry":["point","vertex","line","area"],"terms":[],"tags":{"natural":"cliff"}}},{"name":"coastline","match":{"geometry":["line"],"terms":["shore"],"tags":{"natural":"coastline"}}},{"name":"glacier","match":{"geometry":["area"],"terms":[],"tags":{"natural":"glacier"}}},{"name":"grassland","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"grassland"}}},{"name":"heath","match":{"geometry":["area"],"terms":[],"tags":{"natural":"heath"}}},{"name":"peak","match":{"geometry":["point","vertex"],"tags":{"natural":"peak"},"terms":["acme","aiguille","alp","climax","crest","crown","hill","mount","mountain","pinnacle","summit","tip","top"]},"icon":"triangle","form":["elevation"]},{"name":"scrub","match":{"geometry":["area"],"tags":{"natural":"scrub"},"terms":[]}},{"name":"spring","match":{"geometry":["point","vertex"],"terms":[],"tags":{"natural":"spring"}}},{"name":"tree","match":{"geometry":["point","vertex"],"terms":[],"tags":{"natural":"tree"}},"form":[{"key":"denotation","type":"combo"}],"icon":"park"},{"name":"water","match":{"geometry":["area"],"tags":{"natural":"water"},"terms":[]},"form":[{"key":"water","type":"combo"}]},{"name":"lake","match":{"geometry":["area"],"tags":{"natural":"water","water":"lake"},"terms":["lakelet","loch","mere"]}},{"name":"pond","match":{"geometry":["area"],"tags":{"natural":"water","water":"pond"},"terms":["lakelet","millpond","tarn","pool","mere"]}},{"name":"reservoir","match":{"geometry":["area"],"tags":{"natural":"water","water":"reservoir"},"terms":[]}},{"name":"wetland","match":{"geometry":["point","area"],"tags":{"natural":"wetland"},"terms":[]},"form":[{"key":"wetland","type":"combo"}]},{"name":"wood","match":{"geometry":["point","area"],"tags":{"natural":"wood"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"office","match":{"geometry":["point","area"],"tags":{"office":"*"},"terms":[]},"icon":"commercial","form":[{"key":"office","type":"combo"},"address","opening_hours"]},{"name":"place","match":{"geometry":["point","area"],"tags":{"place":"*"}},"form":[{"key":"place","type":"combo"}]},{"name":"hamlet","match":{"geometry":["point","area"],"tags":{"place":"hamlet"}},"icon":"triangle-stroked"},{"name":"island","match":{"geometry":["point","area"],"terms":["archipelago","atoll","bar","cay","isle","islet","key","reef"],"tags":{"place":"island"}}},{"name":"locality","match":{"geometry":["point","area"],"tags":{"place":"locality"}},"icon":"marker"},{"name":"village","match":{"geometry":["point","area"],"tags":{"place":"village"}},"icon":"square-stroked"},{"name":"railway","match":{"geometry":["point","vertex","line","area"],"tags":{"railway":"*"}},"form":[{"key":"railway","type":"combo"}]},{"name":"rail","match":{"geometry":["line"],"tags":{"railway":"rail"},"terms":[]},"icon":"railway-rail"},{"name":"subway","match":{"geometry":["line"],"tags":{"railway":"subway"},"terms":[]},"icon":"railway-rail"},{"name":"subway entrance","match":{"geometry":["point"],"tags":{"railway":"subway_entrance"},"terms":[]},"icon":"rail-underground"},{"name":"shop","match":{"geometry":["point","area"],"tags":{"shop":"*"},"terms":[]},"icon":"shop","form":[{"key":"shop","type":"combo"},"address","opening_hours"]},{"name":"supermarket","match":{"geometry":["point","area"],"terms":["bazaar","boutique","chain","co-op","cut-rate store","discount store","five-and-dime","flea market","galleria","mall","mart","outlet","outlet store","shop","shopping center","shopping plaza","stand","store","supermarket","thrift shop"],"tags":{"shop":"supermarket"}},"icon":"grocery","form":["operator","building_area","address"]},{"name":"tourism","match":{"geometry":["point","area"],"tags":{"tourism":"*"}},"form":[{"key":"tourism","type":"combo"}]},{"name":"camp site","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"camp_site"}},"icon":"campsite","form":["operator","address"]},{"name":"hotel","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"hotel"}},"icon":"lodging","form":["operator","building_area","address"]},{"name":"museum","match":{"geometry":["point","area"],"terms":["exhibition","exhibits archive","foundation","gallery","hall","institution","library","menagerie","repository","salon","storehouse","treasury","vault"],"tags":{"tourism":"museum"}},"icon":"museum","form":["operator","building_area","address"]},{"name":"picnic site","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"picnic_site"}},"form":["operator","building_area","address"]},{"name":"waterway","match":{"geometry":["point","vertex","line","area"],"tags":{"waterway":"*"}},"form":[{"key":"waterway","type":"combo"}]},{"name":"canal","match":{"geometry":["line"],"tags":{"waterway":"canal"}},"icon":"waterway-river"},{"name":"dam","match":{"geometry":["point","vertex","line","area"],"tags":{"waterway":"dam"}},"icon":"dam"},{"name":"ditch","match":{"geometry":["line"],"tags":{"waterway":"ditch"}},"icon":"waterway-river"},{"name":"drain","match":{"geometry":["line"],"tags":{"waterway":"drain"}},"icon":"waterway-river"},{"name":"river","match":{"geometry":["line"],"terms":["beck","branch","brook","course","creek","estuary","rill","rivulet","run","runnel","stream","tributary","watercourse"],"tags":{"waterway":"river"}},"icon":"waterway-river"},{"name":"riverbank","match":{"geometry":["area"],"tags":{"waterway":"riverbank"}},"icon":"water"},{"name":"stream","match":{"geometry":["line"],"terms":["beck","branch","brook","burn","course","creek","current","drift","flood","flow","freshet","race","rill","rindle","rivulet","run","runnel","rush","spate","spritz","surge","tide","torrent","tributary","watercourse"],"tags":{"waterway":"stream"}},"icon":"waterway-river","form":["layer"]},{"name":"weir","match":{"geometry":["vertex","line"],"tags":{"waterway":"weir"}},"icon":"dam"}] \ No newline at end of file diff --git a/data/presets/presets/leisure/pitch/baseball.json b/data/presets/presets/leisure/pitch/baseball.json index a460c7a17..1caf26900 100644 --- a/data/presets/presets/leisure/pitch/baseball.json +++ b/data/presets/presets/leisure/pitch/baseball.json @@ -11,8 +11,5 @@ }, "terms": [] }, - "icon": "baseball", - "form": [ - "surface" - ] + "icon": "baseball" } From 93f8ddaac9767ce7f6f3b81aef9978833740e748 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Mar 2013 16:36:45 -0700 Subject: [PATCH 15/16] Add playground preset --- data/presets/presets.json | 2 +- data/presets/presets/leisure/playground.json | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 data/presets/presets/leisure/playground.json diff --git a/data/presets/presets.json b/data/presets/presets.json index eb17a1a81..870b9da2f 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -1 +1 @@ -[{"name":"aeroway","match":{"geometry":["point","vertex","line","area"],"tags":{"aeroway":"*"}},"form":[{"key":"aeroway","type":"combo"}]},{"name":"airport","match":{"geometry":["point","area"],"terms":["airplane","airport","aerodrome"],"tags":{"aeroway":"aerodrome"}},"icon":"airport","form":[]},{"name":"helipad","match":{"geometry":["point","area"],"terms":["helicopter","helipad","heliport"],"tags":{"aeroway":"helipad"}},"icon":"heliport","form":[]},{"name":"amenity","match":{"geometry":["point","area"],"tags":{"amenity":"*"}},"form":[{"key":"amenity","type":"combo"}]},{"name":"bank","match":{"geometry":["point","area"],"terms":["coffer","countinghouse","credit union","depository","exchequer","fund","hoard","investment firm","repository","reserve","reservoir","safe","savings","stock","stockpile","store","storehouse","thrift","treasury","trust company","vault"],"tags":{"amenity":"bank"}},"icon":"bank","form":["atm","building_area","address"]},{"name":"bar","match":{"geometry":["point","area"],"tags":{"amenity":"bar"},"terms":[]},"icon":"bar","form":["building_area","address"]},{"name":"bicycle rental","match":{"geometry":["point","area"],"tags":{"amenity":"bicycle_rental"}},"icon":"bicycle","form":["capacity","network","operator"]},{"name":"cafe","match":{"geometry":["point","area"],"terms":["coffee","tea","coffee shop"],"tags":{"amenity":"cafe"}},"icon":"cafe","form":["cuisine","internet_access","building_area","address"]},{"name":"cinema","match":{"geometry":["point","area"],"terms":["big screen","bijou","cine","drive-in","film","flicks","motion pictures","movie house","movie theater","moving pictures","nabes","photoplay","picture show","pictures","playhouse","show","silver screen"],"tags":{"amenity":"cinema"}},"icon":"cinema","form":["building_area","address"]},{"name":"fast food","match":{"geometry":["point","area"],"tags":{"amenity":"fast_food"},"terms":[]},"icon":"fast-food","form":["cuisine","building_area","address"]},{"name":"fire station","match":{"geometry":["point","area"],"tags":{"amenity":"fire_station"},"terms":[]},"icon":"fire-station","form":["operator","building_area","address"]},{"name":"grave yard","match":{"geometry":["point","area"],"tags":{"amenity":"grave_yard"}},"icon":"cemetery","form":["religion"]},{"name":"hospital","match":{"geometry":["point","area"],"terms":["clinic","emergency room","health service","hospice","infirmary","institution","nursing home","rest home","sanatorium","sanitarium","sick bay","surgery","ward"],"tags":{"amenity":"hospital"}},"icon":"hospital","form":["emergency","building_area","address"]},{"name":"library","match":{"geometry":["point","area"],"tags":{"amenity":"library"},"terms":[]},"icon":"library","form":["operator","building_area","address"]},{"name":"parking","match":{"geometry":["point","area"],"tags":{"amenity":"parking"},"terms":[]},"icon":"parking","form":["fee","access","address"]},{"name":"pharmacy","match":{"geometry":["point","area"],"tags":{"amenity":"pharmacy"},"terms":[]},"icon":"pharmacy","form":["operator","building_area","address"]},{"name":"place of worship","match":{"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"}},"icon":"place-of-worship","form":["religion","denomination","building","address"]},{"name":"church","match":{"geometry":["point","area"],"terms":["christian","abbey","basilica","bethel","cathedral","chancel","chantry","chapel","church","fold","house of God","house of prayer","house of worship","minster","mission","oratory","parish","sacellum","sanctuary","shrine","tabernacle","temple"],"tags":{"amenity":"place_of_worship","religion":"christian"}},"icon":"religious-christian","form":["denomination","building","address"]},{"name":"synagogue","match":{"geometry":["point","area"],"terms":["jewish","synagogue"],"tags":{"amenity":"place_of_worship","religion":"jewish"}},"icon":"religious-jewish","form":["denomination","building","address"]},{"name":"mosque","match":{"geometry":["point","area"],"terms":["muslim","mosque"],"tags":{"amenity":"place_of_worship","religion":"muslim"}},"icon":"religious-muslim","form":["denomination","building","address"]},{"name":"police","match":{"geometry":["point","area"],"terms":["badge","bear","blue","bluecoat","bobby","boy scout","bull","constable","constabulary","cop","copper","corps","county mounty","detective","fed","flatfoot","force","fuzz","gendarme","gumshoe","heat","law","law enforcement","man","narc","officers","patrolman","police"],"tags":{"amenity":"police"}},"icon":"police","form":["operator","building_area","address"]},{"name":"post box","match":{"geometry":["point"],"tags":{"amenity":"post_box"},"terms":["letter drop","letterbox","mail drop","mailbox","pillar box","postbox"]},"icon":"post","form":["address","operator",{"key":"collection_times","type":"text"}]},{"name":"pub","match":{"geometry":["point","area"],"tags":{"amenity":"pub"},"terms":[]},"icon":"beer","form":["building_area","address"]},{"name":"restaurant","match":{"geometry":["point","area"],"terms":["bar","cafeteria","café","canteen","chophouse","coffee shop","diner","dining room","dive*","doughtnut shop","drive-in","eatery","eating house","eating place","fast-food place","greasy spoon","grill","hamburger stand","hashery","hideaway","hotdog stand","inn","joint*","luncheonette","lunchroom","night club","outlet*","pizzeria","saloon","soda fountain","watering hole"],"tags":{"amenity":"restaurant"}},"icon":"restaurant","form":["cuisine","building_area","address"]},{"name":"school","match":{"geometry":["point","area"],"terms":["academy","alma mater","blackboard","college","department","discipline","establishment","faculty","hall","halls of ivy","institute","institution","jail*","schoolhouse","seminary","university"],"tags":{"amenity":"school"}},"icon":"school","form":["operator","building","address"]},{"name":"toilets","match":{"geometry":["point","area"],"terms":[],"tags":{"amenity":"toilets"}},"form":["operator","building","address"]},{"name":"town hall","match":{"geometry":["point","areea"],"terms":["village hall","city government","courthouse","municipal building","municipal center"],"tags":{"amenity":"townhall"}},"icon":"town-hall","form":["building_area","address"]},{"name":"university","match":{"geometry":["point","area"],"tags":{"amenity":"university"},"terms":[]},"icon":"college","form":["operator","address"]},{"name":"building","match":{"geometry":["point","area"],"tags":{"building":"*"},"terms":[]},"icon":"warehouse","form":["building_yes","levels","address"]},{"name":"highway","match":{"geometry":["point","vertex","line","area"],"tags":{"highway":"*"}},"form":[{"key":"highway","type":"combo"}]},{"name":"bus stop","match":{"geometry":["point"],"tags":{"highway":"bus_stop"},"terms":[]},"icon":"bus","form":["operator","shelter"]},{"name":"crossing","match":{"geometry":["vertex"],"tags":{"highway":"crossing"},"terms":["crosswalk","zebra crossing"]},"form":[{"key":"crossing","type":"combo"}]},{"name":"cycle path","match":{"geometry":["line"],"tags":{"highway":"cycleway"},"terms":[]},"icon":"highway-cycleway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"foot path","match":{"geometry":["line"],"terms":["beaten path","boulevard","clearing","course","cut*","drag*","footpath","highway","lane","line","orbit","passage","pathway","rail","rails","road","roadway","route","street","thoroughfare","trackway","trail","trajectory","walk"],"tags":{"highway":"footway"}},"icon":"highway-footway","form":["access","surface"]},{"name":"motorway","match":{"geometry":["line"],"tags":{"highway":"motorway"},"terms":[]},"icon":"highway-motorway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"path","match":{"geometry":["line"],"tags":{"highway":"path"},"terms":[]},"icon":"highway-footway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"primary road","match":{"geometry":["line"],"tags":{"highway":"primary"},"terms":[]},"icon":"highway-primary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"residential road","match":{"geometry":["line"],"tags":{"highway":"residential"},"terms":[]},"icon":"highway-residential","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"secondary road","match":{"geometry":["line"],"tags":{"highway":"secondary"},"terms":[]},"icon":"highway-secondary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"service road","match":{"geometry":["line"],"tags":{"highway":"service"},"terms":[]},"icon":"highway-service","form":[{"key":"service","type":"combo","options":["parking_aisle","driveway","alley","drive-through","emergency_access"]},"oneway","roadtype","access","maxspeed","surface"]},{"name":"steps","match":{"geometry":["line"],"tags":{"highway":"steps"},"terms":["stairs","staircase"]},"form":["access","surface"]},{"name":"tertiary road","match":{"geometry":["line"],"tags":{"highway":"tertiary"},"terms":[]},"icon":"highway-tertiary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"track","match":{"geometry":["line"],"tags":{"highway":"track"},"terms":[]},"icon":"highway-track","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"trunk highway","match":{"geometry":["line"],"tags":{"highway":"trunk"},"terms":[]},"icon":"highway-trunk","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"turning circle","match":{"geometry":["vertex"],"tags":{"highway":"turning_circle"},"terms":[]},"icon":"circle"},{"name":"unclassified","match":{"geometry":["line"],"tags":{"highway":"unclassified"},"terms":[]},"icon":"highway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"landuse","match":{"geometry":["point","area"],"tags":{"landuse":"*"}},"form":[{"key":"landuse","type":"combo"}]},{"name":"allotments","match":{"geometry":["point","area"],"tags":{"landuse":"allotments"},"terms":[]},"form":[]},{"name":"cemetery","match":{"geometry":["point","area"],"tags":{"landuse":"cemetery"},"terms":[]},"form":[],"icon":"cemetery"},{"name":"commercial","match":{"geometry":["point","area"],"tags":{"landuse":"commercial"},"terms":[]},"form":[]},{"name":"construction","match":{"geometry":["point","area"],"tags":{"landuse":"construction"},"terms":[]},"form":[{"key":"construction","type":"combo"},"operator"]},{"name":"farm","match":{"geometry":["point","area"],"tags":{"landuse":"farm"},"terms":[]},"form":[]},{"name":"farmyard","match":{"geometry":["point","area"],"tags":{"landuse":"farmyard"},"terms":[]},"form":[]},{"name":"forest","match":{"geometry":["point","area"],"tags":{"landuse":"forest"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"grass","match":{"geometry":["point","area"],"tags":{"landuse":"grass"},"terms":[]},"form":[]},{"name":"industrial","match":{"geometry":["point","area"],"tags":{"landuse":"industrial"},"terms":[]},"form":[]},{"name":"meadow","match":{"geometry":["point","area"],"tags":{"landuse":"meadow"},"terms":[]},"form":[]},{"name":"orchard","match":{"geometry":["point","area"],"tags":{"landuse":"orchard"},"terms":[]},"form":[]},{"name":"quarry","match":{"geometry":["point","area"],"tags":{"landuse":"quarry"},"terms":[]},"form":[]},{"name":"residential","match":{"geometry":["point","area"],"tags":{"landuse":"residential"},"terms":[]},"form":[]},{"name":"vineyard","match":{"geometry":["point","area"],"tags":{"landuse":"vineyard"},"terms":[]},"form":[]},{"name":"leisure","match":{"geometry":["point","area"],"tags":{"leisure":"*"}},"form":[{"key":"leisure","type":"combo"}]},{"name":"golf course","match":{"geometry":["point","area"],"tags":{"leisure":"golf_course"},"terms":[]},"icon":"golf","form":["operator","address"]},{"name":"park","match":{"geometry":["point","area"],"terms":["esplanade","estate","forest","garden","grass","green","grounds","lawn","lot","meadow","parkland","place","playground","plaza","pleasure garden","recreation area","square","tract","village green","woodland"],"tags":{"leisure":"park"}},"icon":"park"},{"name":"sport pitch","match":{"geometry":["point","area"],"tags":{"leisure":"pitch"},"terms":[]},"icon":"pitch","form":[{"key":"sport","type":"combo"},"surface"]},{"name":"baseball diamond","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"baseball"},"terms":[]},"icon":"baseball"},{"name":"basketball court","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"basketball"},"terms":[]},"icon":"basketball","form":["surface"]},{"name":"soccer field","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"soccer"},"terms":[]},"icon":"soccer","form":["surface"]},{"name":"tennis court","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"tennis"},"terms":[]},"icon":"tennis","form":["surface"]},{"name":"man made","match":{"geometry":["point","vertex","line","area"],"tags":{"man_made":"*"}},"form":[{"key":"man_made","type":"combo"}]},{"name":"lighthouse","match":{"geometry":["point","area"],"tags":{"man_made":"lighthouse"}}},{"name":"pier","match":{"geometry":["line","area"],"tags":{"man_made":"pier"}}},{"name":"natural","match":{"geometry":["point","area"],"tags":{"natural":"*"}},"form":[{"key":"natural","type":"combo"}]},{"name":"bay","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"bay"}}},{"name":"beach","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"beach"}},"form":["surface"]},{"name":"cliff","match":{"geometry":["point","vertex","line","area"],"terms":[],"tags":{"natural":"cliff"}}},{"name":"coastline","match":{"geometry":["line"],"terms":["shore"],"tags":{"natural":"coastline"}}},{"name":"glacier","match":{"geometry":["area"],"terms":[],"tags":{"natural":"glacier"}}},{"name":"grassland","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"grassland"}}},{"name":"heath","match":{"geometry":["area"],"terms":[],"tags":{"natural":"heath"}}},{"name":"peak","match":{"geometry":["point","vertex"],"tags":{"natural":"peak"},"terms":["acme","aiguille","alp","climax","crest","crown","hill","mount","mountain","pinnacle","summit","tip","top"]},"icon":"triangle","form":["elevation"]},{"name":"scrub","match":{"geometry":["area"],"tags":{"natural":"scrub"},"terms":[]}},{"name":"spring","match":{"geometry":["point","vertex"],"terms":[],"tags":{"natural":"spring"}}},{"name":"tree","match":{"geometry":["point","vertex"],"terms":[],"tags":{"natural":"tree"}},"form":[{"key":"denotation","type":"combo"}],"icon":"park"},{"name":"water","match":{"geometry":["area"],"tags":{"natural":"water"},"terms":[]},"form":[{"key":"water","type":"combo"}]},{"name":"lake","match":{"geometry":["area"],"tags":{"natural":"water","water":"lake"},"terms":["lakelet","loch","mere"]}},{"name":"pond","match":{"geometry":["area"],"tags":{"natural":"water","water":"pond"},"terms":["lakelet","millpond","tarn","pool","mere"]}},{"name":"reservoir","match":{"geometry":["area"],"tags":{"natural":"water","water":"reservoir"},"terms":[]}},{"name":"wetland","match":{"geometry":["point","area"],"tags":{"natural":"wetland"},"terms":[]},"form":[{"key":"wetland","type":"combo"}]},{"name":"wood","match":{"geometry":["point","area"],"tags":{"natural":"wood"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"office","match":{"geometry":["point","area"],"tags":{"office":"*"},"terms":[]},"icon":"commercial","form":[{"key":"office","type":"combo"},"address","opening_hours"]},{"name":"place","match":{"geometry":["point","area"],"tags":{"place":"*"}},"form":[{"key":"place","type":"combo"}]},{"name":"hamlet","match":{"geometry":["point","area"],"tags":{"place":"hamlet"}},"icon":"triangle-stroked"},{"name":"island","match":{"geometry":["point","area"],"terms":["archipelago","atoll","bar","cay","isle","islet","key","reef"],"tags":{"place":"island"}}},{"name":"locality","match":{"geometry":["point","area"],"tags":{"place":"locality"}},"icon":"marker"},{"name":"village","match":{"geometry":["point","area"],"tags":{"place":"village"}},"icon":"square-stroked"},{"name":"railway","match":{"geometry":["point","vertex","line","area"],"tags":{"railway":"*"}},"form":[{"key":"railway","type":"combo"}]},{"name":"rail","match":{"geometry":["line"],"tags":{"railway":"rail"},"terms":[]},"icon":"railway-rail"},{"name":"subway","match":{"geometry":["line"],"tags":{"railway":"subway"},"terms":[]},"icon":"railway-rail"},{"name":"subway entrance","match":{"geometry":["point"],"tags":{"railway":"subway_entrance"},"terms":[]},"icon":"rail-underground"},{"name":"shop","match":{"geometry":["point","area"],"tags":{"shop":"*"},"terms":[]},"icon":"shop","form":[{"key":"shop","type":"combo"},"address","opening_hours"]},{"name":"supermarket","match":{"geometry":["point","area"],"terms":["bazaar","boutique","chain","co-op","cut-rate store","discount store","five-and-dime","flea market","galleria","mall","mart","outlet","outlet store","shop","shopping center","shopping plaza","stand","store","supermarket","thrift shop"],"tags":{"shop":"supermarket"}},"icon":"grocery","form":["operator","building_area","address"]},{"name":"tourism","match":{"geometry":["point","area"],"tags":{"tourism":"*"}},"form":[{"key":"tourism","type":"combo"}]},{"name":"camp site","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"camp_site"}},"icon":"campsite","form":["operator","address"]},{"name":"hotel","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"hotel"}},"icon":"lodging","form":["operator","building_area","address"]},{"name":"museum","match":{"geometry":["point","area"],"terms":["exhibition","exhibits archive","foundation","gallery","hall","institution","library","menagerie","repository","salon","storehouse","treasury","vault"],"tags":{"tourism":"museum"}},"icon":"museum","form":["operator","building_area","address"]},{"name":"picnic site","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"picnic_site"}},"form":["operator","building_area","address"]},{"name":"waterway","match":{"geometry":["point","vertex","line","area"],"tags":{"waterway":"*"}},"form":[{"key":"waterway","type":"combo"}]},{"name":"canal","match":{"geometry":["line"],"tags":{"waterway":"canal"}},"icon":"waterway-river"},{"name":"dam","match":{"geometry":["point","vertex","line","area"],"tags":{"waterway":"dam"}},"icon":"dam"},{"name":"ditch","match":{"geometry":["line"],"tags":{"waterway":"ditch"}},"icon":"waterway-river"},{"name":"drain","match":{"geometry":["line"],"tags":{"waterway":"drain"}},"icon":"waterway-river"},{"name":"river","match":{"geometry":["line"],"terms":["beck","branch","brook","course","creek","estuary","rill","rivulet","run","runnel","stream","tributary","watercourse"],"tags":{"waterway":"river"}},"icon":"waterway-river"},{"name":"riverbank","match":{"geometry":["area"],"tags":{"waterway":"riverbank"}},"icon":"water"},{"name":"stream","match":{"geometry":["line"],"terms":["beck","branch","brook","burn","course","creek","current","drift","flood","flow","freshet","race","rill","rindle","rivulet","run","runnel","rush","spate","spritz","surge","tide","torrent","tributary","watercourse"],"tags":{"waterway":"stream"}},"icon":"waterway-river","form":["layer"]},{"name":"weir","match":{"geometry":["vertex","line"],"tags":{"waterway":"weir"}},"icon":"dam"}] \ No newline at end of file +[{"name":"aeroway","match":{"geometry":["point","vertex","line","area"],"tags":{"aeroway":"*"}},"form":[{"key":"aeroway","type":"combo"}]},{"name":"airport","match":{"geometry":["point","area"],"terms":["airplane","airport","aerodrome"],"tags":{"aeroway":"aerodrome"}},"icon":"airport","form":[]},{"name":"helipad","match":{"geometry":["point","area"],"terms":["helicopter","helipad","heliport"],"tags":{"aeroway":"helipad"}},"icon":"heliport","form":[]},{"name":"amenity","match":{"geometry":["point","area"],"tags":{"amenity":"*"}},"form":[{"key":"amenity","type":"combo"}]},{"name":"bank","match":{"geometry":["point","area"],"terms":["coffer","countinghouse","credit union","depository","exchequer","fund","hoard","investment firm","repository","reserve","reservoir","safe","savings","stock","stockpile","store","storehouse","thrift","treasury","trust company","vault"],"tags":{"amenity":"bank"}},"icon":"bank","form":["atm","building_area","address"]},{"name":"bar","match":{"geometry":["point","area"],"tags":{"amenity":"bar"},"terms":[]},"icon":"bar","form":["building_area","address"]},{"name":"bicycle rental","match":{"geometry":["point","area"],"tags":{"amenity":"bicycle_rental"}},"icon":"bicycle","form":["capacity","network","operator"]},{"name":"cafe","match":{"geometry":["point","area"],"terms":["coffee","tea","coffee shop"],"tags":{"amenity":"cafe"}},"icon":"cafe","form":["cuisine","internet_access","building_area","address"]},{"name":"cinema","match":{"geometry":["point","area"],"terms":["big screen","bijou","cine","drive-in","film","flicks","motion pictures","movie house","movie theater","moving pictures","nabes","photoplay","picture show","pictures","playhouse","show","silver screen"],"tags":{"amenity":"cinema"}},"icon":"cinema","form":["building_area","address"]},{"name":"fast food","match":{"geometry":["point","area"],"tags":{"amenity":"fast_food"},"terms":[]},"icon":"fast-food","form":["cuisine","building_area","address"]},{"name":"fire station","match":{"geometry":["point","area"],"tags":{"amenity":"fire_station"},"terms":[]},"icon":"fire-station","form":["operator","building_area","address"]},{"name":"grave yard","match":{"geometry":["point","area"],"tags":{"amenity":"grave_yard"}},"icon":"cemetery","form":["religion"]},{"name":"hospital","match":{"geometry":["point","area"],"terms":["clinic","emergency room","health service","hospice","infirmary","institution","nursing home","rest home","sanatorium","sanitarium","sick bay","surgery","ward"],"tags":{"amenity":"hospital"}},"icon":"hospital","form":["emergency","building_area","address"]},{"name":"library","match":{"geometry":["point","area"],"tags":{"amenity":"library"},"terms":[]},"icon":"library","form":["operator","building_area","address"]},{"name":"parking","match":{"geometry":["point","area"],"tags":{"amenity":"parking"},"terms":[]},"icon":"parking","form":["fee","access","address"]},{"name":"pharmacy","match":{"geometry":["point","area"],"tags":{"amenity":"pharmacy"},"terms":[]},"icon":"pharmacy","form":["operator","building_area","address"]},{"name":"place of worship","match":{"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"}},"icon":"place-of-worship","form":["religion","denomination","building","address"]},{"name":"church","match":{"geometry":["point","area"],"terms":["christian","abbey","basilica","bethel","cathedral","chancel","chantry","chapel","church","fold","house of God","house of prayer","house of worship","minster","mission","oratory","parish","sacellum","sanctuary","shrine","tabernacle","temple"],"tags":{"amenity":"place_of_worship","religion":"christian"}},"icon":"religious-christian","form":["denomination","building","address"]},{"name":"synagogue","match":{"geometry":["point","area"],"terms":["jewish","synagogue"],"tags":{"amenity":"place_of_worship","religion":"jewish"}},"icon":"religious-jewish","form":["denomination","building","address"]},{"name":"mosque","match":{"geometry":["point","area"],"terms":["muslim","mosque"],"tags":{"amenity":"place_of_worship","religion":"muslim"}},"icon":"religious-muslim","form":["denomination","building","address"]},{"name":"police","match":{"geometry":["point","area"],"terms":["badge","bear","blue","bluecoat","bobby","boy scout","bull","constable","constabulary","cop","copper","corps","county mounty","detective","fed","flatfoot","force","fuzz","gendarme","gumshoe","heat","law","law enforcement","man","narc","officers","patrolman","police"],"tags":{"amenity":"police"}},"icon":"police","form":["operator","building_area","address"]},{"name":"post box","match":{"geometry":["point"],"tags":{"amenity":"post_box"},"terms":["letter drop","letterbox","mail drop","mailbox","pillar box","postbox"]},"icon":"post","form":["address","operator",{"key":"collection_times","type":"text"}]},{"name":"pub","match":{"geometry":["point","area"],"tags":{"amenity":"pub"},"terms":[]},"icon":"beer","form":["building_area","address"]},{"name":"restaurant","match":{"geometry":["point","area"],"terms":["bar","cafeteria","café","canteen","chophouse","coffee shop","diner","dining room","dive*","doughtnut shop","drive-in","eatery","eating house","eating place","fast-food place","greasy spoon","grill","hamburger stand","hashery","hideaway","hotdog stand","inn","joint*","luncheonette","lunchroom","night club","outlet*","pizzeria","saloon","soda fountain","watering hole"],"tags":{"amenity":"restaurant"}},"icon":"restaurant","form":["cuisine","building_area","address"]},{"name":"school","match":{"geometry":["point","area"],"terms":["academy","alma mater","blackboard","college","department","discipline","establishment","faculty","hall","halls of ivy","institute","institution","jail*","schoolhouse","seminary","university"],"tags":{"amenity":"school"}},"icon":"school","form":["operator","building","address"]},{"name":"toilets","match":{"geometry":["point","area"],"terms":[],"tags":{"amenity":"toilets"}},"form":["operator","building","address"]},{"name":"town hall","match":{"geometry":["point","areea"],"terms":["village hall","city government","courthouse","municipal building","municipal center"],"tags":{"amenity":"townhall"}},"icon":"town-hall","form":["building_area","address"]},{"name":"university","match":{"geometry":["point","area"],"tags":{"amenity":"university"},"terms":[]},"icon":"college","form":["operator","address"]},{"name":"building","match":{"geometry":["point","area"],"tags":{"building":"*"},"terms":[]},"icon":"warehouse","form":["building_yes","levels","address"]},{"name":"highway","match":{"geometry":["point","vertex","line","area"],"tags":{"highway":"*"}},"form":[{"key":"highway","type":"combo"}]},{"name":"bus stop","match":{"geometry":["point"],"tags":{"highway":"bus_stop"},"terms":[]},"icon":"bus","form":["operator","shelter"]},{"name":"crossing","match":{"geometry":["vertex"],"tags":{"highway":"crossing"},"terms":["crosswalk","zebra crossing"]},"form":[{"key":"crossing","type":"combo"}]},{"name":"cycle path","match":{"geometry":["line"],"tags":{"highway":"cycleway"},"terms":[]},"icon":"highway-cycleway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"foot path","match":{"geometry":["line"],"terms":["beaten path","boulevard","clearing","course","cut*","drag*","footpath","highway","lane","line","orbit","passage","pathway","rail","rails","road","roadway","route","street","thoroughfare","trackway","trail","trajectory","walk"],"tags":{"highway":"footway"}},"icon":"highway-footway","form":["access","surface"]},{"name":"motorway","match":{"geometry":["line"],"tags":{"highway":"motorway"},"terms":[]},"icon":"highway-motorway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"path","match":{"geometry":["line"],"tags":{"highway":"path"},"terms":[]},"icon":"highway-footway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"primary road","match":{"geometry":["line"],"tags":{"highway":"primary"},"terms":[]},"icon":"highway-primary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"residential road","match":{"geometry":["line"],"tags":{"highway":"residential"},"terms":[]},"icon":"highway-residential","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"secondary road","match":{"geometry":["line"],"tags":{"highway":"secondary"},"terms":[]},"icon":"highway-secondary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"service road","match":{"geometry":["line"],"tags":{"highway":"service"},"terms":[]},"icon":"highway-service","form":[{"key":"service","type":"combo","options":["parking_aisle","driveway","alley","drive-through","emergency_access"]},"oneway","roadtype","access","maxspeed","surface"]},{"name":"steps","match":{"geometry":["line"],"tags":{"highway":"steps"},"terms":["stairs","staircase"]},"form":["access","surface"]},{"name":"tertiary road","match":{"geometry":["line"],"tags":{"highway":"tertiary"},"terms":[]},"icon":"highway-tertiary","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"track","match":{"geometry":["line"],"tags":{"highway":"track"},"terms":[]},"icon":"highway-track","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"trunk highway","match":{"geometry":["line"],"tags":{"highway":"trunk"},"terms":[]},"icon":"highway-trunk","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"turning circle","match":{"geometry":["vertex"],"tags":{"highway":"turning_circle"},"terms":[]},"icon":"circle"},{"name":"unclassified","match":{"geometry":["line"],"tags":{"highway":"unclassified"},"terms":[]},"icon":"highway","form":["oneway","roadtype","access","maxspeed","surface"]},{"name":"landuse","match":{"geometry":["point","area"],"tags":{"landuse":"*"}},"form":[{"key":"landuse","type":"combo"}]},{"name":"allotments","match":{"geometry":["point","area"],"tags":{"landuse":"allotments"},"terms":[]},"form":[]},{"name":"cemetery","match":{"geometry":["point","area"],"tags":{"landuse":"cemetery"},"terms":[]},"form":[],"icon":"cemetery"},{"name":"commercial","match":{"geometry":["point","area"],"tags":{"landuse":"commercial"},"terms":[]},"form":[]},{"name":"construction","match":{"geometry":["point","area"],"tags":{"landuse":"construction"},"terms":[]},"form":[{"key":"construction","type":"combo"},"operator"]},{"name":"farm","match":{"geometry":["point","area"],"tags":{"landuse":"farm"},"terms":[]},"form":[]},{"name":"farmyard","match":{"geometry":["point","area"],"tags":{"landuse":"farmyard"},"terms":[]},"form":[]},{"name":"forest","match":{"geometry":["point","area"],"tags":{"landuse":"forest"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"grass","match":{"geometry":["point","area"],"tags":{"landuse":"grass"},"terms":[]},"form":[]},{"name":"industrial","match":{"geometry":["point","area"],"tags":{"landuse":"industrial"},"terms":[]},"form":[]},{"name":"meadow","match":{"geometry":["point","area"],"tags":{"landuse":"meadow"},"terms":[]},"form":[]},{"name":"orchard","match":{"geometry":["point","area"],"tags":{"landuse":"orchard"},"terms":[]},"form":[]},{"name":"quarry","match":{"geometry":["point","area"],"tags":{"landuse":"quarry"},"terms":[]},"form":[]},{"name":"residential","match":{"geometry":["point","area"],"tags":{"landuse":"residential"},"terms":[]},"form":[]},{"name":"vineyard","match":{"geometry":["point","area"],"tags":{"landuse":"vineyard"},"terms":[]},"form":[]},{"name":"leisure","match":{"geometry":["point","area"],"tags":{"leisure":"*"}},"form":[{"key":"leisure","type":"combo"}]},{"name":"golf course","match":{"geometry":["point","area"],"tags":{"leisure":"golf_course"},"terms":[]},"icon":"golf","form":["operator","address"]},{"name":"park","match":{"geometry":["point","area"],"terms":["esplanade","estate","forest","garden","grass","green","grounds","lawn","lot","meadow","parkland","place","playground","plaza","pleasure garden","recreation area","square","tract","village green","woodland"],"tags":{"leisure":"park"}},"icon":"park"},{"name":"sport pitch","match":{"geometry":["point","area"],"tags":{"leisure":"pitch"},"terms":[]},"icon":"pitch","form":[{"key":"sport","type":"combo"},"surface"]},{"name":"baseball diamond","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"baseball"},"terms":[]},"icon":"baseball"},{"name":"basketball court","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"basketball"},"terms":[]},"icon":"basketball","form":["surface"]},{"name":"soccer field","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"soccer"},"terms":[]},"icon":"soccer","form":["surface"]},{"name":"tennis court","match":{"geometry":["point","area"],"tags":{"leisure":"pitch","sport":"tennis"},"terms":[]},"icon":"tennis","form":["surface"]},{"name":"playground","match":{"geometry":["point","area"],"tags":{"leisure":"playground"}}},{"name":"man made","match":{"geometry":["point","vertex","line","area"],"tags":{"man_made":"*"}},"form":[{"key":"man_made","type":"combo"}]},{"name":"lighthouse","match":{"geometry":["point","area"],"tags":{"man_made":"lighthouse"}}},{"name":"pier","match":{"geometry":["line","area"],"tags":{"man_made":"pier"}}},{"name":"natural","match":{"geometry":["point","area"],"tags":{"natural":"*"}},"form":[{"key":"natural","type":"combo"}]},{"name":"bay","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"bay"}}},{"name":"beach","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"beach"}},"form":["surface"]},{"name":"cliff","match":{"geometry":["point","vertex","line","area"],"terms":[],"tags":{"natural":"cliff"}}},{"name":"coastline","match":{"geometry":["line"],"terms":["shore"],"tags":{"natural":"coastline"}}},{"name":"glacier","match":{"geometry":["area"],"terms":[],"tags":{"natural":"glacier"}}},{"name":"grassland","match":{"geometry":["point","area"],"terms":[],"tags":{"natural":"grassland"}}},{"name":"heath","match":{"geometry":["area"],"terms":[],"tags":{"natural":"heath"}}},{"name":"peak","match":{"geometry":["point","vertex"],"tags":{"natural":"peak"},"terms":["acme","aiguille","alp","climax","crest","crown","hill","mount","mountain","pinnacle","summit","tip","top"]},"icon":"triangle","form":["elevation"]},{"name":"scrub","match":{"geometry":["area"],"tags":{"natural":"scrub"},"terms":[]}},{"name":"spring","match":{"geometry":["point","vertex"],"terms":[],"tags":{"natural":"spring"}}},{"name":"tree","match":{"geometry":["point","vertex"],"terms":[],"tags":{"natural":"tree"}},"form":[{"key":"denotation","type":"combo"}],"icon":"park"},{"name":"water","match":{"geometry":["area"],"tags":{"natural":"water"},"terms":[]},"form":[{"key":"water","type":"combo"}]},{"name":"lake","match":{"geometry":["area"],"tags":{"natural":"water","water":"lake"},"terms":["lakelet","loch","mere"]}},{"name":"pond","match":{"geometry":["area"],"tags":{"natural":"water","water":"pond"},"terms":["lakelet","millpond","tarn","pool","mere"]}},{"name":"reservoir","match":{"geometry":["area"],"tags":{"natural":"water","water":"reservoir"},"terms":[]}},{"name":"wetland","match":{"geometry":["point","area"],"tags":{"natural":"wetland"},"terms":[]},"form":[{"key":"wetland","type":"combo"}]},{"name":"wood","match":{"geometry":["point","area"],"tags":{"natural":"wood"},"terms":[]},"form":[{"key":"wood","type":"combo"}],"icon":"park2"},{"name":"office","match":{"geometry":["point","area"],"tags":{"office":"*"},"terms":[]},"icon":"commercial","form":[{"key":"office","type":"combo"},"address","opening_hours"]},{"name":"place","match":{"geometry":["point","area"],"tags":{"place":"*"}},"form":[{"key":"place","type":"combo"}]},{"name":"hamlet","match":{"geometry":["point","area"],"tags":{"place":"hamlet"}},"icon":"triangle-stroked"},{"name":"island","match":{"geometry":["point","area"],"terms":["archipelago","atoll","bar","cay","isle","islet","key","reef"],"tags":{"place":"island"}}},{"name":"locality","match":{"geometry":["point","area"],"tags":{"place":"locality"}},"icon":"marker"},{"name":"village","match":{"geometry":["point","area"],"tags":{"place":"village"}},"icon":"square-stroked"},{"name":"railway","match":{"geometry":["point","vertex","line","area"],"tags":{"railway":"*"}},"form":[{"key":"railway","type":"combo"}]},{"name":"rail","match":{"geometry":["line"],"tags":{"railway":"rail"},"terms":[]},"icon":"railway-rail"},{"name":"subway","match":{"geometry":["line"],"tags":{"railway":"subway"},"terms":[]},"icon":"railway-rail"},{"name":"subway entrance","match":{"geometry":["point"],"tags":{"railway":"subway_entrance"},"terms":[]},"icon":"rail-underground"},{"name":"shop","match":{"geometry":["point","area"],"tags":{"shop":"*"},"terms":[]},"icon":"shop","form":[{"key":"shop","type":"combo"},"address","opening_hours"]},{"name":"supermarket","match":{"geometry":["point","area"],"terms":["bazaar","boutique","chain","co-op","cut-rate store","discount store","five-and-dime","flea market","galleria","mall","mart","outlet","outlet store","shop","shopping center","shopping plaza","stand","store","supermarket","thrift shop"],"tags":{"shop":"supermarket"}},"icon":"grocery","form":["operator","building_area","address"]},{"name":"tourism","match":{"geometry":["point","area"],"tags":{"tourism":"*"}},"form":[{"key":"tourism","type":"combo"}]},{"name":"camp site","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"camp_site"}},"icon":"campsite","form":["operator","address"]},{"name":"hotel","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"hotel"}},"icon":"lodging","form":["operator","building_area","address"]},{"name":"museum","match":{"geometry":["point","area"],"terms":["exhibition","exhibits archive","foundation","gallery","hall","institution","library","menagerie","repository","salon","storehouse","treasury","vault"],"tags":{"tourism":"museum"}},"icon":"museum","form":["operator","building_area","address"]},{"name":"picnic site","match":{"geometry":["point","area"],"terms":[],"tags":{"tourism":"picnic_site"}},"form":["operator","building_area","address"]},{"name":"waterway","match":{"geometry":["point","vertex","line","area"],"tags":{"waterway":"*"}},"form":[{"key":"waterway","type":"combo"}]},{"name":"canal","match":{"geometry":["line"],"tags":{"waterway":"canal"}},"icon":"waterway-river"},{"name":"dam","match":{"geometry":["point","vertex","line","area"],"tags":{"waterway":"dam"}},"icon":"dam"},{"name":"ditch","match":{"geometry":["line"],"tags":{"waterway":"ditch"}},"icon":"waterway-river"},{"name":"drain","match":{"geometry":["line"],"tags":{"waterway":"drain"}},"icon":"waterway-river"},{"name":"river","match":{"geometry":["line"],"terms":["beck","branch","brook","course","creek","estuary","rill","rivulet","run","runnel","stream","tributary","watercourse"],"tags":{"waterway":"river"}},"icon":"waterway-river"},{"name":"riverbank","match":{"geometry":["area"],"tags":{"waterway":"riverbank"}},"icon":"water"},{"name":"stream","match":{"geometry":["line"],"terms":["beck","branch","brook","burn","course","creek","current","drift","flood","flow","freshet","race","rill","rindle","rivulet","run","runnel","rush","spate","spritz","surge","tide","torrent","tributary","watercourse"],"tags":{"waterway":"stream"}},"icon":"waterway-river","form":["layer"]},{"name":"weir","match":{"geometry":["vertex","line"],"tags":{"waterway":"weir"}},"icon":"dam"}] \ No newline at end of file diff --git a/data/presets/presets/leisure/playground.json b/data/presets/presets/leisure/playground.json new file mode 100644 index 000000000..64f70b9e2 --- /dev/null +++ b/data/presets/presets/leisure/playground.json @@ -0,0 +1,12 @@ +{ + "name": "playground", + "match": { + "geometry": [ + "point", + "area" + ], + "tags": { + "leisure": "playground" + } + } +} From c0e124562394e1b9dd49f8dba91c0077780a7f43 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Mar 2013 16:39:44 -0700 Subject: [PATCH 16/16] Fix reversed alignment adjustment (fixes #999) --- js/id/ui/background.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/id/ui/background.js b/js/id/ui/background.js index 4d5588567..21e710dc2 100644 --- a/js/id/ui/background.js +++ b/js/id/ui/background.js @@ -187,9 +187,9 @@ iD.ui.Background = function(context) { .attr('class', 'adjustments pad1'); var directions = [ - ['left', [-1, 0]], + ['left', [1, 0]], ['top', [0, -1]], - ['right', [1, 0]], + ['right', [-1, 0]], ['bottom', [0, 1]]]; adjustments.append('a')