From ab10f8ac381c2653ba2fe00fbd0164c5de8ecdb6 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 23 May 2013 22:03:59 -0700 Subject: [PATCH] Hook up relation icons --- Makefile | 10 +- css/app.css | 3 +- css/feature-icons.css | 16 +++ data/feature-icons.json | 2 +- data/maki_sprite.js | 13 ++ data/presets.yaml | 33 +++++ data/presets/presets.json | 129 +++++++++++++++++- data/presets/presets/type/boundary.json | 3 +- data/presets/presets/type/multipolygon.json | 10 ++ data/presets/presets/type/restriction.json | 3 +- data/presets/presets/type/route.json | 3 +- data/presets/presets/type/route/bicycle.json | 11 ++ data/presets/presets/type/route/bus.json | 11 ++ data/presets/presets/type/route/detour.json | 11 ++ data/presets/presets/type/route/ferry.json | 11 ++ data/presets/presets/type/route/foot.json | 11 ++ data/presets/presets/type/route/pipeline.json | 11 ++ data/presets/presets/type/route/power.json | 11 ++ data/presets/presets/type/route/road.json | 11 ++ data/presets/presets/type/route/train.json | 11 ++ data/presets/presets/type/route/tram.json | 11 ++ data/relation-icons.json | 17 +++ dist/img/relation-presets.png | Bin 0 -> 15849 bytes dist/locales/en.json | 44 ++++++ js/id/ui/preset_icon.js | 4 +- 25 files changed, 387 insertions(+), 13 deletions(-) create mode 100644 data/presets/presets/type/multipolygon.json create mode 100644 data/presets/presets/type/route/bicycle.json create mode 100644 data/presets/presets/type/route/bus.json create mode 100644 data/presets/presets/type/route/detour.json create mode 100644 data/presets/presets/type/route/ferry.json create mode 100644 data/presets/presets/type/route/foot.json create mode 100644 data/presets/presets/type/route/pipeline.json create mode 100644 data/presets/presets/type/route/power.json create mode 100644 data/presets/presets/type/route/road.json create mode 100644 data/presets/presets/type/route/train.json create mode 100644 data/presets/presets/type/route/tram.json create mode 100644 data/relation-icons.json create mode 100644 dist/img/relation-presets.png diff --git a/Makefile b/Makefile index bbec2ef2a..91d98ed2b 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,8 @@ all: \ dist/iD.css \ dist/iD.js \ dist/iD.min.js \ - dist/img/line-presets.png + dist/img/line-presets.png \ + dist/img/relation-presets.png DATA_FILES = $(shell find data -type f -name '*.json' -o -name '*.md') data/data.js: $(DATA_FILES) dist/locales/en.json dist/img/maki-sprite.png @@ -82,10 +83,13 @@ clean: translations: node data/update_locales -SPRITE = inkscape --export-area-page --export-png=dist/img/line-presets.png svg/line-presets.svg +SPRITE = inkscape --export-area-page dist/img/line-presets.png: svg/line-presets.svg - if [ `which inkscape` ]; then $(SPRITE); else echo "Inkscape is not installed"; fi; + if [ `which inkscape` ]; then $(SPRITE) --export-png=$@ $<; else echo "Inkscape is not installed"; fi; + +dist/img/relation-presets.png: svg/relation-presets.svg + if [ `which inkscape` ]; then $(SPRITE) --export-png=$@ $<; else echo "Inkscape is not installed"; fi; dist/img/maki-sprite.png: $(wildcard node_modules/maki/renders/*.png) node data/maki_sprite diff --git a/css/app.css b/css/app.css index 3d5e21323..b68c2c850 100644 --- a/css/app.css +++ b/css/app.css @@ -739,7 +739,8 @@ a:hover .icon.out-link { background-position: -500px -14px;} margin: auto; } -.preset-icon-line { +.preset-icon-line, +.preset-icon-relation { top: 0; left: 0; } diff --git a/css/feature-icons.css b/css/feature-icons.css index 8f238ce63..ce8166c8b 100644 --- a/css/feature-icons.css +++ b/css/feature-icons.css @@ -2,6 +2,7 @@ .preset-icon{background-image:url(img/maki-sprite.png);background-repeat:no-repeat;width:24px;height:24px;} .preset-icon-line{background-image:url(img/line-presets.png);background-repeat:no-repeat;width:60px;height:60px;} +.preset-icon-relation{background-image:url(img/relation-presets.png);background-repeat:no-repeat;width:60px;height:60px;} .feature-airfield{background-position:-0px -34px;} .feature-airport{background-position:-0px -94px;} .feature-alcohol-shop{background-position:-0px -154px;} @@ -132,3 +133,18 @@ .preset-icon-line.feature-category-rail{background-position:-2060px -25px;} .preset-icon-line.feature-category-path{background-position:-2120px -25px;} .preset-icon-line.feature-category-water{background-position:-2180px -25px;} +.preset-icon-relation.feature-relation{background-position:-20px -25px;} +.preset-icon-relation.feature-restriction{background-position:-80px -25px;} +.preset-icon-relation.feature-multipolygon{background-position:-140px -25px;} +.preset-icon-relation.feature-boundary{background-position:-200px -25px;} +.preset-icon-relation.feature-route{background-position:-260px -25px;} +.preset-icon-relation.feature-route-road{background-position:-320px -25px;} +.preset-icon-relation.feature-route-bicycle{background-position:-380px -25px;} +.preset-icon-relation.feature-route-foot{background-position:-440px -25px;} +.preset-icon-relation.feature-route-bus{background-position:-500px -25px;} +.preset-icon-relation.feature-route-train{background-position:-560px -25px;} +.preset-icon-relation.feature-route-detour{background-position:-620px -25px;} +.preset-icon-relation.feature-route-tram{background-position:-680px -25px;} +.preset-icon-relation.feature-route-ferry{background-position:-740px -25px;} +.preset-icon-relation.feature-route-power{background-position:-800px -25px;} +.preset-icon-relation.feature-route-pipeline{background-position:-860px -25px;} diff --git a/data/feature-icons.json b/data/feature-icons.json index d4df1d4e2..72c9cf7c5 100644 --- a/data/feature-icons.json +++ b/data/feature-icons.json @@ -1 +1 @@ -{"airfield":{"12":[0,0],"18":[0,14],"24":[0,34]},"airport":{"12":[0,60],"18":[0,74],"24":[0,94]},"alcohol-shop":{"12":[0,120],"18":[0,134],"24":[0,154]},"america-football":{"12":[0,180],"18":[0,194],"24":[0,214]},"art-gallery":{"12":[0,240],"18":[0,254],"24":[0,274]},"bank":{"12":[0,300],"18":[0,314],"24":[0,334]},"bar":{"12":[0,360],"18":[0,374],"24":[0,394]},"baseball":{"12":[0,420],"18":[0,434],"24":[0,454]},"basketball":{"12":[0,480],"18":[0,494],"24":[0,514]},"beer":{"12":[0,540],"18":[0,554],"24":[0,574]},"bicycle":{"12":[0,600],"18":[0,614],"24":[0,634]},"building":{"12":[0,660],"18":[0,674],"24":[0,694]},"bus":{"12":[0,720],"18":[0,734],"24":[0,754]},"cafe":{"12":[0,780],"18":[0,794],"24":[0,814]},"campsite":{"12":[0,840],"18":[0,854],"24":[0,874]},"cemetery":{"12":[0,900],"18":[0,914],"24":[0,934]},"cinema":{"12":[0,960],"18":[0,974],"24":[0,994]},"circle":{"12":[0,1020],"18":[0,1034],"24":[0,1054]},"circle-stroked":{"12":[0,1080],"18":[0,1094],"24":[0,1114]},"city":{"12":[0,1140],"18":[0,1154],"24":[0,1174]},"college":{"12":[0,1200],"18":[0,1214],"24":[0,1234]},"commercial":{"12":[0,1260],"18":[0,1274],"24":[0,1294]},"cricket":{"12":[0,1320],"18":[0,1334],"24":[0,1354]},"cross":{"12":[0,1380],"18":[0,1394],"24":[0,1414]},"dam":{"12":[0,1440],"18":[0,1454],"24":[0,1474]},"danger":{"12":[0,1500],"18":[0,1514],"24":[0,1534]},"disability":{"12":[0,1560],"18":[0,1574],"24":[0,1594]},"embassy":{"12":[0,1620],"18":[0,1634],"24":[0,1654]},"emergency-telephone":{"12":[0,1680],"18":[0,1694],"24":[0,1714]},"farm":{"12":[0,1740],"18":[0,1754],"24":[0,1774]},"fast-food":{"12":[0,1800],"18":[0,1814],"24":[0,1834]},"ferry":{"12":[0,1860],"18":[0,1874],"24":[0,1894]},"fire-station":{"12":[0,1920],"18":[0,1934],"24":[0,1954]},"fuel":{"12":[0,1980],"18":[0,1994],"24":[0,2014]},"garden":{"12":[0,2040],"18":[0,2054],"24":[0,2074]},"golf":{"12":[0,2100],"18":[0,2114],"24":[0,2134]},"grocery":{"12":[0,2160],"18":[0,2174],"24":[0,2194]},"harbor":{"12":[0,2220],"18":[0,2234],"24":[0,2254]},"heliport":{"12":[0,2280],"18":[0,2294],"24":[0,2314]},"hospital":{"12":[0,2340],"18":[0,2354],"24":[0,2374]},"industrial":{"12":[0,2400],"18":[0,2414],"24":[0,2434]},"land-use":{"12":[0,2460],"18":[0,2474],"24":[0,2494]},"library":{"12":[0,2520],"18":[0,2534],"24":[0,2554]},"lodging":{"12":[0,2580],"18":[0,2594],"24":[0,2614]},"logging":{"12":[0,2640],"18":[0,2654],"24":[0,2674]},"marker":{"12":[0,2700],"18":[0,2714],"24":[0,2734]},"marker-stroked":{"12":[0,2760],"18":[0,2774],"24":[0,2794]},"monument":{"12":[0,2820],"18":[0,2834],"24":[0,2854]},"museum":{"12":[0,2880],"18":[0,2894],"24":[0,2914]},"music":{"12":[0,2940],"18":[0,2954],"24":[0,2974]},"oil-well":{"12":[0,3000],"18":[0,3014],"24":[0,3034]},"park":{"12":[0,3060],"18":[0,3074],"24":[0,3094]},"park2":{"12":[0,3120],"18":[0,3134],"24":[0,3154]},"parking":{"12":[0,3180],"18":[0,3194],"24":[0,3214]},"parking-garage":{"12":[0,3240],"18":[0,3254],"24":[0,3274]},"pharmacy":{"12":[0,3300],"18":[0,3314],"24":[0,3334]},"pitch":{"12":[0,3360],"18":[0,3374],"24":[0,3394]},"place-of-worship":{"12":[0,3420],"18":[0,3434],"24":[0,3454]},"police":{"12":[0,3480],"18":[0,3494],"24":[0,3514]},"post":{"12":[0,3540],"18":[0,3554],"24":[0,3574]},"prison":{"12":[0,3600],"18":[0,3614],"24":[0,3634]},"rail":{"12":[0,3660],"18":[0,3674],"24":[0,3694]},"rail-above":{"12":[0,3720],"18":[0,3734],"24":[0,3754]},"rail-underground":{"12":[0,3780],"18":[0,3794],"24":[0,3814]},"religious-christian":{"12":[0,3840],"18":[0,3854],"24":[0,3874]},"religious-jewish":{"12":[0,3900],"18":[0,3914],"24":[0,3934]},"religious-muslim":{"12":[0,3960],"18":[0,3974],"24":[0,3994]},"restaurant":{"12":[0,4020],"18":[0,4034],"24":[0,4054]},"roadblock":{"12":[0,4080],"18":[0,4094],"24":[0,4114]},"school":{"12":[0,4140],"18":[0,4154],"24":[0,4174]},"shop":{"12":[0,4200],"18":[0,4214],"24":[0,4234]},"skiing":{"12":[0,4260],"18":[0,4274],"24":[0,4294]},"slaughterhouse":{"12":[0,4320],"18":[0,4334],"24":[0,4354]},"soccer":{"12":[0,4380],"18":[0,4394],"24":[0,4414]},"square":{"12":[0,4440],"18":[0,4454],"24":[0,4474]},"square-stroked":{"12":[0,4500],"18":[0,4514],"24":[0,4534]},"star":{"12":[0,4560],"18":[0,4574],"24":[0,4594]},"star-stroked":{"12":[0,4620],"18":[0,4634],"24":[0,4654]},"swimming":{"12":[0,4680],"18":[0,4694],"24":[0,4714]},"telephone":{"12":[0,4740],"18":[0,4754],"24":[0,4774]},"tennis":{"12":[0,4800],"18":[0,4814],"24":[0,4834]},"theatre":{"12":[0,4860],"18":[0,4874],"24":[0,4894]},"toilets":{"12":[0,4920],"18":[0,4934],"24":[0,4954]},"town":{"12":[0,4980],"18":[0,4994],"24":[0,5014]},"town-hall":{"12":[0,5040],"18":[0,5054],"24":[0,5074]},"triangle":{"12":[0,5100],"18":[0,5114],"24":[0,5134]},"triangle-stroked":{"12":[0,5160],"18":[0,5174],"24":[0,5194]},"village":{"12":[0,5220],"18":[0,5234],"24":[0,5254]},"warehouse":{"12":[0,5280],"18":[0,5294],"24":[0,5314]},"waste-basket":{"12":[0,5340],"18":[0,5354],"24":[0,5374]},"water":{"12":[0,5400],"18":[0,5414],"24":[0,5434]},"wetland":{"12":[0,5460],"18":[0,5474],"24":[0,5494]},"zoo":{"12":[0,5520],"18":[0,5534],"24":[0,5554]},"highway-motorway":{"line":[20,25]},"highway-trunk":{"line":[80,25]},"highway-primary":{"line":[140,25]},"highway-secondary":{"line":[200,25]},"highway-tertiary":{"line":[260,25]},"highway-motorway-link":{"line":[320,25]},"highway-trunk-link":{"line":[380,25]},"highway-primary-link":{"line":[440,25]},"highway-secondary-link":{"line":[500,25]},"highway-tertiary-link":{"line":[560,25]},"highway-residential":{"line":[620,25]},"highway-unclassified":{"line":[680,25]},"highway-service":{"line":[740,25]},"highway-road":{"line":[800,25]},"highway-track":{"line":[860,25]},"highway-living-street":{"line":[920,25]},"highway-path":{"line":[980,25]},"highway-cycleway":{"line":[1040,25]},"highway-footway":{"line":[1100,25]},"highway-bridleway":{"line":[1160,25]},"highway-steps":{"line":[1220,25]},"railway-rail":{"line":[1280,25]},"railway-disused":{"line":[1340,25]},"railway-abandoned":{"line":[1400,25]},"railway-subway":{"line":[1460,25]},"railway-light-rail":{"line":[1520,25]},"railway-monorail":{"line":[1580,25]},"waterway-river":{"line":[1640,25]},"waterway-stream":{"line":[1700,25]},"waterway-canal":{"line":[1760,25]},"waterway-ditch":{"line":[1820,25]},"power-line":{"line":[1880,25]},"other-line":{"line":[1940,25]},"category-roads":{"line":[2000,25]},"category-rail":{"line":[2060,25]},"category-path":{"line":[2120,25]},"category-water":{"line":[2180,25]}} \ No newline at end of file +{"airfield":{"12":[0,0],"18":[0,14],"24":[0,34]},"airport":{"12":[0,60],"18":[0,74],"24":[0,94]},"alcohol-shop":{"12":[0,120],"18":[0,134],"24":[0,154]},"america-football":{"12":[0,180],"18":[0,194],"24":[0,214]},"art-gallery":{"12":[0,240],"18":[0,254],"24":[0,274]},"bank":{"12":[0,300],"18":[0,314],"24":[0,334]},"bar":{"12":[0,360],"18":[0,374],"24":[0,394]},"baseball":{"12":[0,420],"18":[0,434],"24":[0,454]},"basketball":{"12":[0,480],"18":[0,494],"24":[0,514]},"beer":{"12":[0,540],"18":[0,554],"24":[0,574]},"bicycle":{"12":[0,600],"18":[0,614],"24":[0,634]},"building":{"12":[0,660],"18":[0,674],"24":[0,694]},"bus":{"12":[0,720],"18":[0,734],"24":[0,754]},"cafe":{"12":[0,780],"18":[0,794],"24":[0,814]},"campsite":{"12":[0,840],"18":[0,854],"24":[0,874]},"cemetery":{"12":[0,900],"18":[0,914],"24":[0,934]},"cinema":{"12":[0,960],"18":[0,974],"24":[0,994]},"circle":{"12":[0,1020],"18":[0,1034],"24":[0,1054]},"circle-stroked":{"12":[0,1080],"18":[0,1094],"24":[0,1114]},"city":{"12":[0,1140],"18":[0,1154],"24":[0,1174]},"college":{"12":[0,1200],"18":[0,1214],"24":[0,1234]},"commercial":{"12":[0,1260],"18":[0,1274],"24":[0,1294]},"cricket":{"12":[0,1320],"18":[0,1334],"24":[0,1354]},"cross":{"12":[0,1380],"18":[0,1394],"24":[0,1414]},"dam":{"12":[0,1440],"18":[0,1454],"24":[0,1474]},"danger":{"12":[0,1500],"18":[0,1514],"24":[0,1534]},"disability":{"12":[0,1560],"18":[0,1574],"24":[0,1594]},"embassy":{"12":[0,1620],"18":[0,1634],"24":[0,1654]},"emergency-telephone":{"12":[0,1680],"18":[0,1694],"24":[0,1714]},"farm":{"12":[0,1740],"18":[0,1754],"24":[0,1774]},"fast-food":{"12":[0,1800],"18":[0,1814],"24":[0,1834]},"ferry":{"12":[0,1860],"18":[0,1874],"24":[0,1894]},"fire-station":{"12":[0,1920],"18":[0,1934],"24":[0,1954]},"fuel":{"12":[0,1980],"18":[0,1994],"24":[0,2014]},"garden":{"12":[0,2040],"18":[0,2054],"24":[0,2074]},"golf":{"12":[0,2100],"18":[0,2114],"24":[0,2134]},"grocery":{"12":[0,2160],"18":[0,2174],"24":[0,2194]},"harbor":{"12":[0,2220],"18":[0,2234],"24":[0,2254]},"heliport":{"12":[0,2280],"18":[0,2294],"24":[0,2314]},"hospital":{"12":[0,2340],"18":[0,2354],"24":[0,2374]},"industrial":{"12":[0,2400],"18":[0,2414],"24":[0,2434]},"land-use":{"12":[0,2460],"18":[0,2474],"24":[0,2494]},"library":{"12":[0,2520],"18":[0,2534],"24":[0,2554]},"lodging":{"12":[0,2580],"18":[0,2594],"24":[0,2614]},"logging":{"12":[0,2640],"18":[0,2654],"24":[0,2674]},"marker":{"12":[0,2700],"18":[0,2714],"24":[0,2734]},"marker-stroked":{"12":[0,2760],"18":[0,2774],"24":[0,2794]},"monument":{"12":[0,2820],"18":[0,2834],"24":[0,2854]},"museum":{"12":[0,2880],"18":[0,2894],"24":[0,2914]},"music":{"12":[0,2940],"18":[0,2954],"24":[0,2974]},"oil-well":{"12":[0,3000],"18":[0,3014],"24":[0,3034]},"park":{"12":[0,3060],"18":[0,3074],"24":[0,3094]},"park2":{"12":[0,3120],"18":[0,3134],"24":[0,3154]},"parking":{"12":[0,3180],"18":[0,3194],"24":[0,3214]},"parking-garage":{"12":[0,3240],"18":[0,3254],"24":[0,3274]},"pharmacy":{"12":[0,3300],"18":[0,3314],"24":[0,3334]},"pitch":{"12":[0,3360],"18":[0,3374],"24":[0,3394]},"place-of-worship":{"12":[0,3420],"18":[0,3434],"24":[0,3454]},"police":{"12":[0,3480],"18":[0,3494],"24":[0,3514]},"post":{"12":[0,3540],"18":[0,3554],"24":[0,3574]},"prison":{"12":[0,3600],"18":[0,3614],"24":[0,3634]},"rail":{"12":[0,3660],"18":[0,3674],"24":[0,3694]},"rail-above":{"12":[0,3720],"18":[0,3734],"24":[0,3754]},"rail-underground":{"12":[0,3780],"18":[0,3794],"24":[0,3814]},"religious-christian":{"12":[0,3840],"18":[0,3854],"24":[0,3874]},"religious-jewish":{"12":[0,3900],"18":[0,3914],"24":[0,3934]},"religious-muslim":{"12":[0,3960],"18":[0,3974],"24":[0,3994]},"restaurant":{"12":[0,4020],"18":[0,4034],"24":[0,4054]},"roadblock":{"12":[0,4080],"18":[0,4094],"24":[0,4114]},"school":{"12":[0,4140],"18":[0,4154],"24":[0,4174]},"shop":{"12":[0,4200],"18":[0,4214],"24":[0,4234]},"skiing":{"12":[0,4260],"18":[0,4274],"24":[0,4294]},"slaughterhouse":{"12":[0,4320],"18":[0,4334],"24":[0,4354]},"soccer":{"12":[0,4380],"18":[0,4394],"24":[0,4414]},"square":{"12":[0,4440],"18":[0,4454],"24":[0,4474]},"square-stroked":{"12":[0,4500],"18":[0,4514],"24":[0,4534]},"star":{"12":[0,4560],"18":[0,4574],"24":[0,4594]},"star-stroked":{"12":[0,4620],"18":[0,4634],"24":[0,4654]},"swimming":{"12":[0,4680],"18":[0,4694],"24":[0,4714]},"telephone":{"12":[0,4740],"18":[0,4754],"24":[0,4774]},"tennis":{"12":[0,4800],"18":[0,4814],"24":[0,4834]},"theatre":{"12":[0,4860],"18":[0,4874],"24":[0,4894]},"toilets":{"12":[0,4920],"18":[0,4934],"24":[0,4954]},"town":{"12":[0,4980],"18":[0,4994],"24":[0,5014]},"town-hall":{"12":[0,5040],"18":[0,5054],"24":[0,5074]},"triangle":{"12":[0,5100],"18":[0,5114],"24":[0,5134]},"triangle-stroked":{"12":[0,5160],"18":[0,5174],"24":[0,5194]},"village":{"12":[0,5220],"18":[0,5234],"24":[0,5254]},"warehouse":{"12":[0,5280],"18":[0,5294],"24":[0,5314]},"waste-basket":{"12":[0,5340],"18":[0,5354],"24":[0,5374]},"water":{"12":[0,5400],"18":[0,5414],"24":[0,5434]},"wetland":{"12":[0,5460],"18":[0,5474],"24":[0,5494]},"zoo":{"12":[0,5520],"18":[0,5534],"24":[0,5554]},"highway-motorway":{"line":[20,25]},"highway-trunk":{"line":[80,25]},"highway-primary":{"line":[140,25]},"highway-secondary":{"line":[200,25]},"highway-tertiary":{"line":[260,25]},"highway-motorway-link":{"line":[320,25]},"highway-trunk-link":{"line":[380,25]},"highway-primary-link":{"line":[440,25]},"highway-secondary-link":{"line":[500,25]},"highway-tertiary-link":{"line":[560,25]},"highway-residential":{"line":[620,25]},"highway-unclassified":{"line":[680,25]},"highway-service":{"line":[740,25]},"highway-road":{"line":[800,25]},"highway-track":{"line":[860,25]},"highway-living-street":{"line":[920,25]},"highway-path":{"line":[980,25]},"highway-cycleway":{"line":[1040,25]},"highway-footway":{"line":[1100,25]},"highway-bridleway":{"line":[1160,25]},"highway-steps":{"line":[1220,25]},"railway-rail":{"line":[1280,25]},"railway-disused":{"line":[1340,25]},"railway-abandoned":{"line":[1400,25]},"railway-subway":{"line":[1460,25]},"railway-light-rail":{"line":[1520,25]},"railway-monorail":{"line":[1580,25]},"waterway-river":{"line":[1640,25]},"waterway-stream":{"line":[1700,25]},"waterway-canal":{"line":[1760,25]},"waterway-ditch":{"line":[1820,25]},"power-line":{"line":[1880,25]},"other-line":{"line":[1940,25]},"category-roads":{"line":[2000,25]},"category-rail":{"line":[2060,25]},"category-path":{"line":[2120,25]},"category-water":{"line":[2180,25]},"relation":{"relation":[20,25]},"restriction":{"relation":[80,25]},"multipolygon":{"relation":[140,25]},"boundary":{"relation":[200,25]},"route":{"relation":[260,25]},"route-road":{"relation":[320,25]},"route-bicycle":{"relation":[380,25]},"route-foot":{"relation":[440,25]},"route-bus":{"relation":[500,25]},"route-train":{"relation":[560,25]},"route-detour":{"relation":[620,25]},"route-tram":{"relation":[680,25]},"route-ferry":{"relation":[740,25]},"route-power":{"relation":[800,25]},"route-pipeline":{"relation":[860,25]}} \ No newline at end of file diff --git a/data/maki_sprite.js b/data/maki_sprite.js index f597a649c..f459a69b4 100644 --- a/data/maki_sprite.js +++ b/data/maki_sprite.js @@ -5,6 +5,7 @@ var _ = require('../js/lib/lodash'); var makipath = './node_modules/maki'; var lineIcons = require('./line-icons.json'); +var relationIcons = require('./relation-icons.json'); sprite.sprite('renders', { path: makipath }, function(err, makiSprite) { if (err) process.exit(1); @@ -17,6 +18,7 @@ sprite.sprite('renders', { path: makipath }, function(err, makiSprite) { var css = "/* This file is generated by make. Do NOT edit manually. */\n\n"; css += ".preset-icon{background-image:url(img/maki-sprite.png);background-repeat:no-repeat;width:24px;height:24px;}\n"; css += ".preset-icon-line{background-image:url(img/line-presets.png);background-repeat:no-repeat;width:60px;height:60px;}\n"; + css += ".preset-icon-relation{background-image:url(img/relation-presets.png);background-repeat:no-repeat;width:60px;height:60px;}\n"; var images = {}; @@ -45,6 +47,17 @@ sprite.sprite('renders', { path: makipath }, function(err, makiSprite) { images[name].line = position; }); + template = '.preset-icon-relation.feature-{name}{background-position:-{x}px -{y}px;}\n'; + + _.forEach(relationIcons, function(position, name) { + css += template.replace('{name}', name) + .replace('{x}', position[0]) + .replace('{y}', position[1]); + + images[name] = images[name] || {}; + images[name].relation = position; + }); + fs.writeFileSync('./css/feature-icons.css', css); fs.writeFileSync('./data/feature-icons.json', JSON.stringify(images)); }); diff --git a/data/presets.yaml b/data/presets.yaml index e0124c22b..69fafb1dd 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -1057,12 +1057,45 @@ en: type/boundary: name: Boundary terms: "" + type/multipolygon: + name: Multipolygon + terms: "" type/restriction: name: Restriction terms: "" type/route: name: Route terms: "" + type/route/bicycle: + name: Cycle Route + terms: "" + type/route/bus: + name: Bus Route + terms: "" + type/route/detour: + name: Detour Route + terms: "" + type/route/ferry: + name: Ferry Route + terms: "" + type/route/foot: + name: Foot Route + terms: "" + type/route/pipeline: + name: Pipeline Route + terms: "" + type/route/power: + name: Power Route + terms: "" + type/route/road: + name: Road Route + terms: "" + type/route/train: + name: Train Route + terms: "" + type/route/tram: + name: Tram Route + terms: "" waterway: name: Waterway terms: "" diff --git a/data/presets/presets.json b/data/presets/presets.json index c328f26e2..7ac820fbf 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -4477,7 +4477,18 @@ "tags": { "type": "boundary" }, - "name": "Boundary" + "name": "Boundary", + "icon": "boundary" + }, + "type/multipolygon": { + "geometry": [ + "relation" + ], + "tags": { + "type": "multipolygon" + }, + "name": "Multipolygon", + "icon": "multipolygon" }, "type/restriction": { "geometry": [ @@ -4486,7 +4497,8 @@ "tags": { "type": "restriction" }, - "name": "Restriction" + "name": "Restriction", + "icon": "restriction" }, "type/route": { "geometry": [ @@ -4495,7 +4507,118 @@ "tags": { "type": "route" }, - "name": "Route" + "name": "Route", + "icon": "route" + }, + "type/route/bicycle": { + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "bicycle" + }, + "name": "Cycle Route", + "icon": "route-bicycle" + }, + "type/route/bus": { + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "bus" + }, + "name": "Bus Route", + "icon": "route-bus" + }, + "type/route/detour": { + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "detour" + }, + "name": "Detour Route", + "icon": "route-detour" + }, + "type/route/ferry": { + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "ferry" + }, + "name": "Ferry Route", + "icon": "route-ferry" + }, + "type/route/foot": { + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "foot" + }, + "name": "Foot Route", + "icon": "route-foot" + }, + "type/route/pipeline": { + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "pipeline" + }, + "name": "Pipeline Route", + "icon": "route-pipeline" + }, + "type/route/power": { + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "power" + }, + "name": "Power Route", + "icon": "route-power" + }, + "type/route/road": { + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "road" + }, + "name": "Road Route", + "icon": "route-road" + }, + "type/route/train": { + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "train" + }, + "name": "Train Route", + "icon": "route-train" + }, + "type/route/tram": { + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "tram" + }, + "name": "Tram Route", + "icon": "route-tram" }, "waterway": { "fields": [ diff --git a/data/presets/presets/type/boundary.json b/data/presets/presets/type/boundary.json index 030a71667..8fa2f1894 100644 --- a/data/presets/presets/type/boundary.json +++ b/data/presets/presets/type/boundary.json @@ -5,5 +5,6 @@ "tags": { "type": "boundary" }, - "name": "Boundary" + "name": "Boundary", + "icon": "boundary" } \ No newline at end of file diff --git a/data/presets/presets/type/multipolygon.json b/data/presets/presets/type/multipolygon.json new file mode 100644 index 000000000..f5220bb8c --- /dev/null +++ b/data/presets/presets/type/multipolygon.json @@ -0,0 +1,10 @@ +{ + "geometry": [ + "relation" + ], + "tags": { + "type": "multipolygon" + }, + "name": "Multipolygon", + "icon": "multipolygon" +} \ No newline at end of file diff --git a/data/presets/presets/type/restriction.json b/data/presets/presets/type/restriction.json index f758772ad..1c3ebc5a7 100644 --- a/data/presets/presets/type/restriction.json +++ b/data/presets/presets/type/restriction.json @@ -5,5 +5,6 @@ "tags": { "type": "restriction" }, - "name": "Restriction" + "name": "Restriction", + "icon": "restriction" } \ No newline at end of file diff --git a/data/presets/presets/type/route.json b/data/presets/presets/type/route.json index 45bbbea6f..4adc4b98d 100644 --- a/data/presets/presets/type/route.json +++ b/data/presets/presets/type/route.json @@ -5,5 +5,6 @@ "tags": { "type": "route" }, - "name": "Route" + "name": "Route", + "icon": "route" } \ No newline at end of file diff --git a/data/presets/presets/type/route/bicycle.json b/data/presets/presets/type/route/bicycle.json new file mode 100644 index 000000000..60ab30361 --- /dev/null +++ b/data/presets/presets/type/route/bicycle.json @@ -0,0 +1,11 @@ +{ + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "bicycle" + }, + "name": "Cycle Route", + "icon": "route-bicycle" +} \ No newline at end of file diff --git a/data/presets/presets/type/route/bus.json b/data/presets/presets/type/route/bus.json new file mode 100644 index 000000000..472fa057a --- /dev/null +++ b/data/presets/presets/type/route/bus.json @@ -0,0 +1,11 @@ +{ + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "bus" + }, + "name": "Bus Route", + "icon": "route-bus" +} \ No newline at end of file diff --git a/data/presets/presets/type/route/detour.json b/data/presets/presets/type/route/detour.json new file mode 100644 index 000000000..395a7d750 --- /dev/null +++ b/data/presets/presets/type/route/detour.json @@ -0,0 +1,11 @@ +{ + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "detour" + }, + "name": "Detour Route", + "icon": "route-detour" +} \ No newline at end of file diff --git a/data/presets/presets/type/route/ferry.json b/data/presets/presets/type/route/ferry.json new file mode 100644 index 000000000..505833ddb --- /dev/null +++ b/data/presets/presets/type/route/ferry.json @@ -0,0 +1,11 @@ +{ + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "ferry" + }, + "name": "Ferry Route", + "icon": "route-ferry" +} \ No newline at end of file diff --git a/data/presets/presets/type/route/foot.json b/data/presets/presets/type/route/foot.json new file mode 100644 index 000000000..133fcd0de --- /dev/null +++ b/data/presets/presets/type/route/foot.json @@ -0,0 +1,11 @@ +{ + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "foot" + }, + "name": "Foot Route", + "icon": "route-foot" +} \ No newline at end of file diff --git a/data/presets/presets/type/route/pipeline.json b/data/presets/presets/type/route/pipeline.json new file mode 100644 index 000000000..91c161bb4 --- /dev/null +++ b/data/presets/presets/type/route/pipeline.json @@ -0,0 +1,11 @@ +{ + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "pipeline" + }, + "name": "Pipeline Route", + "icon": "route-pipeline" +} \ No newline at end of file diff --git a/data/presets/presets/type/route/power.json b/data/presets/presets/type/route/power.json new file mode 100644 index 000000000..99b078068 --- /dev/null +++ b/data/presets/presets/type/route/power.json @@ -0,0 +1,11 @@ +{ + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "power" + }, + "name": "Power Route", + "icon": "route-power" +} \ No newline at end of file diff --git a/data/presets/presets/type/route/road.json b/data/presets/presets/type/route/road.json new file mode 100644 index 000000000..66a3fed54 --- /dev/null +++ b/data/presets/presets/type/route/road.json @@ -0,0 +1,11 @@ +{ + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "road" + }, + "name": "Road Route", + "icon": "route-road" +} \ No newline at end of file diff --git a/data/presets/presets/type/route/train.json b/data/presets/presets/type/route/train.json new file mode 100644 index 000000000..e5a3e1971 --- /dev/null +++ b/data/presets/presets/type/route/train.json @@ -0,0 +1,11 @@ +{ + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "train" + }, + "name": "Train Route", + "icon": "route-train" +} \ No newline at end of file diff --git a/data/presets/presets/type/route/tram.json b/data/presets/presets/type/route/tram.json new file mode 100644 index 000000000..523212be2 --- /dev/null +++ b/data/presets/presets/type/route/tram.json @@ -0,0 +1,11 @@ +{ + "geometry": [ + "relation" + ], + "tags": { + "type": "route", + "route": "tram" + }, + "name": "Tram Route", + "icon": "route-tram" +} \ No newline at end of file diff --git a/data/relation-icons.json b/data/relation-icons.json new file mode 100644 index 000000000..2e6ad65de --- /dev/null +++ b/data/relation-icons.json @@ -0,0 +1,17 @@ +{ + "relation": [20, 25], + "restriction": [80, 25], + "multipolygon": [140, 25], + "boundary": [200, 25], + "route": [260, 25], + "route-road": [320, 25], + "route-bicycle": [380, 25], + "route-foot": [440, 25], + "route-bus": [500, 25], + "route-train": [560, 25], + "route-detour": [620, 25], + "route-tram": [680, 25], + "route-ferry": [740, 25], + "route-power": [800, 25], + "route-pipeline": [860, 25] +} diff --git a/dist/img/relation-presets.png b/dist/img/relation-presets.png new file mode 100644 index 0000000000000000000000000000000000000000..6619ea91699a6d63e0465af61130aadf69a9b9b7 GIT binary patch literal 15849 zcmeHucQ~7E|95+Ls_MK|QM9#+qV}fCh}oJItEwoe8KY)8lva%jYD;U6gc`9UEfv(N z89TKFi5f`|k@s>x&vX2G-|zGP`@YBV=1|FXCeriz?(gUOIp5wh)Mh)ub>hH*18g9j zyT%6&u+{*tA0Iyo{JuaA!2?f+p|?S%$AL%i@yBm~YZgx(ODOPp;5|0{!Q0o;o&k%T zKAI1FOgx-?{O!FR5BU50OSrg0pbqw)juIZ;&S_*-t^)@y9{}CGW%?|AWg_5N;#>xE zt%s4m5_SOe;G7@oIr8j4mTB&T!?aw-w{EC=T`W~HZd%3CV9>=&NlUTH8K=@0pF0%m zB!l&AJg>bmmy-DL{NwZQhUc!Z>gn8uZ;WF#;1Ay%EKi@k^ovnfVm&{;P`kQ7PmKSF zrzjB|kmx^vP5$k1c{u$c$KO`=FP`81!t>9?Ggpt-9Qx{{H5F+2pzZzsdgy>i?`H?Y~OwZ{%ic zav9Xw)MWYHv6BTWi{SrkZvXjt-i@#OX0~-Sxh!CTU)fbGbtiTI)z^~Kzklw%fCGxn zk4>@TqC=gIF8oiyLSy3>XzD%B;u8~fzz3C^qPkQJxB2$oMX<^8n6du;x1Q4b8*%1v z&`(N{akkz0ap&|zTzYzNKxpXR7<8dK1b4AQKG}Z#9;#Tx$h{_HcOpB}=KPBCfrnE~ zuTyZzN-q>Uz-ft@nVFn#DxO!lwnOOpFjDt$txS;|UV`_=$MO)-6RLq7Znwmhet#R50xe+Cc1omd4%i6!<#>rMr)z@PF<;uA9J_`#H)E#RzCzStg!jn zxZT%iuMx>lb07bJxf$eo$=#zJvaNrzwr98@d#Y!;tPZ9nzh!HH)EttO;FZ5I3$x{p zz#p2^XZwnHdP1$A_*)qGk|J<@_{dMBNeTkN^lJtYwPP;zhOwNNee&buM|QN^m^_b? z_iWhnpnYw@MPHel9x@0U6Ljg0=XU3~;vZHwklyFhF0tj>!u#vu!gmcrB6SU4D(-UW zZYNk;PQ4;T>?zE5%FkosPU#vqNcXg@<`dM)%8E$I@}6$rz~<&=M%RP|M>;Rp*|TdE zoH9ilezh>oF(r2yJgGXgxo-HcH>Y_ix<7%Y|mdfa{dLA=} zV-HG7g=+8`xReDI3gMY*ra!ob#sey3>$&;l$?_}}*FEr_KGM0c;UX4YIsIjKzYdKuQhYuh8Y(574o;9DG`h$E$ z!r`fIP0p&;Gu8e}4iY{nlI2X@gn&q=moAS(qYsKv@O{-zl-RXh8!-44RU!qXVz(9C*tgS4vY{6?>?{>0aXIjMG=%>8dCSbqtk9y=cKul+wRkzfu(}$F)MsaB zhd)N5@lMXpLH&JwV9L8Qzd6uH@#8fS1yN-pn5(MY{Pr<2a_XYxfjW<>YsgYkLh@Iw z%g&N0##?#nqWDE-VN?K;KjQu`n^gmgZ~D@-1Nrh$Q-m9uDt= z{to)#XzH`?{ou60q06D!GOD=blb~B{HOKe?;o+Wi1L7C?^ESC}gaLMEfki{-I=fVO zEBj&{p9))|WVK4WcUu=GIBb5Q4*4db`Z(8J4g;}j{Nl##>{h+Bdcwtu0WjSNPA&-A zz1`gUby~4IacHy@WnpT1Os^bjuD z!piGgv2Rd)kZR@#-1w07qc6D%PtMAGqu%UXY^ut)pm@!)MgfYvyHxe`xZP4y!(?9$i&aA?Uv=`&A$T7 z+$>1OdidF=ygaQ?tX*$!uedr=DX6#@OTBgPj#V)KZ`S<$!14Cy^lxv^uNvv-JbSi2 z+up6Tkj@VpZ499sh?yg6?5DrIJ&m-kUGM#n?%z|>%Yf{Xv$g7O!;zcj$*r}_xBmE5 z*NAm1aUk4y*R)!WR6`dIosq?W@Tj!6kABPw6q){rN{ihdDaWGQ^u5BHrx$I*32ze>vEZ* z;^K@MZN89AwCOqJn4Sd{qrN{2{dOQ=F!&u)wXd(QC`6sW3J&(h%%Zp~*kbVJG(@p^f};j^m+{Q(Sr>^oI+^BoO%-k>-IzEY&2vF>qtQk9O6 z1?}uC+JyZHL}jI6IiE__W5PadA#49nF>d_0=&IBQ?rE zvxRNI+*nt}Z0No^Q4ocbtGooq$FX-oeK>|@zlOLdW+&4tTl=+co0`MZ?`@u~mLd0z zdurar2W7s0T8b>}&DYEwwX?Mi{n${x^Kh>0T5FqM?AyYniCUAVJ%&<-rNb9}Pn1qv z;67WzeUvR~`!cg*L%oyf?SLCjVA+6f$REuui&qTZ`b;H_>zW%CYu}t&y)xZM z0WmYG%XMT)0VR0VcCfl7q@u6CUuMkQ_w_Z-R)2S<+QF)SJ2Z4<;~}5MC9KSI5=i5^|T8d#epbqLX75$r~>BiE5g2>z{@S zfgcQGIzpTPgcO8g zsm7B+^2t^U!(|R`+di+}JD|#=2Gx{bX{7v2TL=3gCl&g7#xA;_b}YWi&)*6ZCM-jv zu_*MaUMl#(gJ;`3{^PyVouhjYN zFap+W%)kNH$;~e%Eu5kZYCVD4M^k&#R~hK_baiwT?NJbXNgz-d@7J1ays8i2mA=bE zCZU91qk$|eEI=L#I_A@>`r>5uOy|R>6d;g-DbDWtKaS0Yc5UWrW=DJV3Cd`d_u}|M zYuA#M;A-<>K`};lcG8&T?txsvdSvfUtE5Yy;45h8eFik5{=@Zz!DpcD&>7~f?u0Ek z(3~;hE7-azAvL-D&CfY1g7w{C|EYKV=kUiq4LSj>r8cNJdb2*wNn^7IzPX@1pXnK$ znBn}G*YnawcSmezSB(qx4(rSNkmveJek;RUKFE~ zJ`bQ&pr`Iwr72kN2~IqtFi?WN*3sd?F%N^&0VopG(ebAa$Es zTO)IFa%Lcoj*eVXkHUZ`;~nfa+ZLCE%ie> zae~zZs!Kk}3T0O0;kG%%=&V>4?y2Ea?I_vNi_TiEhV81@w}>Pe&Aq&0)|e!|E-uLw zF#!@=aXAgKQfKAVvrW-ssw?0xGQR3EDeL@}gtsiK34ViWv`eHK*F&ur`zOF@CLF`= z#7Vz`0#cL|=g{cPOe6|z`C_LsOv^a{Sb=vhJ`cit~1N8h&Pd z(sYc{Uri%V6lZJ4E&+w%XnnQc^MDB`-$@?j%BP*lQuC&EcOp)SSM*tN)9|OxPGWz8 zNOr$+1YBnJu38dN4`m-n0`;3D2%CQ6qme#i^pittjD`j>=%q}f-Rd{b*o{yi5FG4M z+GwZkty!a&Pr)Gg#>nZ&(mzCfXGv>!Wl=^kL5!26ZXJ-n19_Fefg{&CxKMzVSkW_P$-f?%#S6zur83ttk}@h9~D zQgoq`V9JXIj?_|26NwZ;B|dxF{t7NF$O+n*8!cOhpdQ0ST(E>N4fm*x_09CYfK~<0 zdM!9oZbpDOls=t?T;WF>5uJfzuK`hqoXv-qLw22zj}eIpD`j#D?W1~bq`PjQ@5p+X zPTA07U3e53>)xHdZekPEfmPphO(t+U#CWB zMfGB5KPfso+RVqNQoz!ovlwXh#9_k6e^cqr17YKb{qerAibpMx+(%FIuITiA5Vvz| z5)~6eKWaIF2U;RoTEmT4C=;l|EcBM7fq0!W>PZK#BAQgYLHVnGVaH=P+V)$d;WwjG zq}JWg{fOPg&InX#t`k-?c5AaSo=%;hPxf3)TPFbsfQpen8R(BD{O!EI_Si9k7gk}i z!JbHms7L%waz)Nr3o{JOSe?|~%n&(k02vSv(a^9PtMpVXW)r?@AfvQE5A|JgNE9?93SHbGu9deT6G%*`==40khPyj zyesd)<)qn5D5~~ROhXXudd7zvow_vr4w1mYxQg3-ulkcNFeoi9ZmD-S&NOpG@7viB3P8eHZ?YxL05eX7^S*mvgfkQvm^An z_2s@(-`jFvWoS8wlex!b)ke2S`^0-t<3Pd!h~ z%g=Y-32yv&WE@EKW_15==P6TEqTcBkX|3w^Clz)RncXR(u%*67h^Q37nNGOR0-R{$ zpC=(cBIqC~i?fsv(b9t0v@k0K+Pypy{&Yg_5m-%TEOd;4h>s93$Y?|^1{#2@8+}}- z)B2&2Fvw#vs+eE=BJ)(L_r^*@s`^90X=I(XsEApl@s(3tmRmgYNU3k!=R z-Sr2MRXrmknCj)%e$N?_MjcPx+c1lBg$_|tJ!mNC0QjQc0edQ#S`ah~^4bTAk!{_tkAHT0Md$o_yAu;B7r;+UDra$@E zEyaoTFFf)oRqhj9@1Z~#yYwD9nxzJ`b(Iu0o;MA%nGZ6Q$89|fT@67_A0bbor%WoY zh8xv-xIehtC8p6ZpUQU~CaU7Hlfw92aoo9;JGq={2hix4NN`kzM~dCc4xu*t}K7K>$<&4K}Xz8gCU;(y9}7 zj@*S;J_a}0=;h(kIP!6X?Ll)?oPJKuB>Y5^D*3c`UO^ERq+$z44kDH$tA|36RPKdm zpNH2}dJy-t-vkPZiQ%@o=y9R2hNw_;tUIdx{nQ{9$|r+n#2Mj20{E%^(zJw@GkfZAsX zo4TP~;*9EYt*KUnoOIL}DVMx5EcbK38m~qoq;%E(-sW8%zU}@p2xC@kj!N{|5Jm)_ z69et1`uH56j26@#6>+(1)5fUpN}1(#y{ek&a_3xq%b>jJ zQGqrX4k82n`3WbOb7x*t`TDzV(vT)xR-nvk{A-9=zW~Ed1wHiW(;5BKVbtT*9I#OR zG4rLHTZ!1!$tKh-#H{)fofab>V|fWrZ-_J82Ity_V9wR!#3)P4l)f<-<(nYy9wWyx zyF_|$FGVbK#Iz4yAtS*l2QHg>*F(CXQ2ueH0LT0#?+aQfS<`4RfPC1UItn6^28Kj9 z9p)?jmI7x$#kj*NcU+Ev-~81EK0RAH8ZY?(0GHKZj2MZ9NA(Ghx=H2I#%*g4OLVd-#S-^i1zWWE@a>0&Jqya7d5uJ)U9?r;GT5fM^^;;>~%1XPfJk^-i zb6TKKYf2;D=caN{UJV}O)hxfOJdugRBP8yQ_X1_N>ltAFC%ZcD>XVmG&U8lZN89Ux z0izQDzP@;pty*DCggeE+E?^zOMICL+H$zp;1=B_KOuIYfuVg{yKyC zn+gwj`mv0#kn^RTI+L>i2elD#Nz93Jo)+-Ok7j0EZTud=bFCElp|W;L4sb-jDqna# zVU$MYQ34Bz7{Y;SY!1wA>~Va!&bL@A=F-SK^rak&`n~uu)**{FcQPt~_7_lQbha7S z5-xn&qoa&Rxg9e#K%MQ4|MS8i2tF{^07380V4o0+V8+<5CE>Q`uCz*V1-p0%ZW70x z`_t+zj4~6~J+0S1BGc0^!AzVL(nr(ltYI_d_bY@S}o zouN@A^~A3#?O#LY*MQEBay#a+)7r?+1*|U#BQ3Bg28wrq! zQ;+(u1?`1BeRCyv$+PWV7&o+^fju?CYnZEMi~ky=hG+xVYZ@~FFneudY^$>_D6=f8 zH@&~H;>tJlyovnn)qc6gZrxlh-Eu8|?&aEg!Jz2PLgaq}7bn)Kp*I*o7^*-<9)eCF*329{LLHwEEV=m#s6F zf-VCo7raZoCfv)|{vaO{i`4|}U)Z>+zHo#19+8m`Mj8STUZtE1o;YWKi56(;5+#)GG$`n+2?$c(^$VIDRY@~n-SaK0GDu#;{2EGZ zjP=8>c5$hzPCtA){OZ2FeMKv6^}M{m)VHM7Nq)ysuV0?g1az#AcyWq?bAMhDb!p@A zlF+V`yscf0=hQP0KpZeJET|r86cmwBQwuRrNx+K^)v-o`n^w;JWxh2k42ZJ zG*)h1aM*nL_$m@j2=xLtMZ8e-2X}w%;2E(46_pLyT>SXqj}qlRYq8>splt%|VfWgN zsVdAG*H&j$q2;j8zjEszg4fXTAIN7@sw9?b)7?$Q&?GSD3wM3A%5fhR3}R%7w58&S;H&9YR^j zdH(!z3bU}!zu1@!AFKHDm)gGM_bhCHbmL8dIaK^1Uw5mJO0?pzpij-eGvLvu##mqiOlG@$ z#lg$%o|=MQDte(`GJNPkPcCj$PtXSJ-wuX!j^3ED8>8()HB$I%Cw-TjoI|s?9ZC8Y zXYm(BkZ%uC@a>Dr5T07OvvM*DtIxWWoxJV_tQ9v(ITWdsYp16!*8!z-Idv8hY)rE* z2d)G#eO`mV>$|d(lgBg3^$vLzLz_$l=p@Ca9Nu=-?i0gO4!BDv{M_=-%`4_QnhmPe zYijDk>sr5=l2nZS;&LzsHiYo^^dBYn;}YRl1q+cyVEY)8QA0QM_kF7X_!IJo^GMJy z|JXqJ4Il*Qxt*+~aj}addW1`>{e~;{!L83AH_6ZD<{z6$`Dvq}o-|?6tyV(OuGyUB zTg?n!*hZI<9K3R0`39S|TT@lzyBv`;UQUJJ+Zvj7;@Tj5y%# zj~&KA)vES%#6WUzX@*d!?Q<|ojYWC+qd)CS5(O;$0%jJ9V{0YDG?Rq|Tf()Kt98GV z7rDFwhekVql(rF|qA#;o?|O&~8W|Z`$ji+QIs0=XtqbhPnXSZe%JBGi43NVO6w@@~ z9^&SCR&|tHA7Fke@3r)tVhjm^(tO|qm1@}f_UDum=kVxAW*L%nzuMX%Y7(03A1$@I zQ_O$}wx1{04uDm<<8YS6?~p#Ptb^{DnKpqzGs-!)WZ%sw0t7*6T)ON}_b5we6vnpi z_0_)-`ECz$@_8oZ=tIMxwargM+?~LCtCN8*1-Ixx6JO?h6`~ z+VhbVJ-c6XT5bq}dYgqrrmYApcLOYeR>Jw{^vA&LMwlI6YqHr1R_*~MqP6eRBy9^C zonHmp?embAo5c3fddY<*`L_47+@O4^{r4yQtO^HoKtqe}4r=}Y^~#|>2WwS~ z9s4|ruPT&E;>_+4uyLAIY8}F8x9cFjyWUUUjL45*+bw@PV^>1&%SiLv+|<+f(2J4= zcn(+JAkiGU@Z~yTwwn5q`tFPT4xPy{#V3DD;2-C@BcIosa(feMyk;D+V9&8@tx~I- z%B5*Um4RkquYQSerMW#RxeZ+3QeOHj=RD2pvnFgH3M zJ$7Ysp`ol@G`RjA2Mwcz-`$nRP?HuaohXpHGAqJ+#3=6@;+Id#_B9euGyU??$IeEr zM3_4zm4RXObfrWCn;AvJDztppsEog^yOnMHr=39ewu{i%PH&Z`7YBa3 zyD+XC?8#B+Crz1VLzoZLkZbpw)YLNAO#p&`1!E^$?~vh@+c(SVfhIP~6-##m$xX#n zkn%|Nf!DUh%_3EG-!o!?D#O!9xsfb*0GD3Klz>@;?_vOMRTXI zdzRMQRoEJ#)`0XbGuZi_{z=WO$VUq~Q8p8l6z;2`@FTZUuf_(hrC%!vGou~?snxZ( zz=-w+I|~F+p)1>415`ExeK(E7cK?&H)l-?8UT>uo{6_DiwwY^nbuIoDF6{@q8aG_o zBv&^F2dK2$&aNs4es;bGNMP}3>Om|45s0_(51CArxgcSkY)K1$jp$02nz{KAax(0C z`^W~7;|>J5VC+E3g-f7%Q`2or2->mZf*^qM1E`?5`ofP- zcSNsU`|&~C%GAaNAm9axNJy0Mh`MLa8+uEQgz7JI@D#;lsIK*WCNCVWi}GWw#+P?6 zowvs(cUZ`KOS-gQjc!==i2-W7JCM!^%!h10Y#zL(eb_T8&Z6L5nk@T>&>E|2F!$48#i--ysCNt*@0 z(DTD2+=toP!8^v@Q1pj0Fz}*;%xEnHn|{`ylsC4=!F{~Edw#hI9+PaO!&%*f)-fDqF8h$MviIy8>dFW|=n9Xwq-4qc*Fk&7G8+BoTAXcbY`m>y zR%E0$SD6y~qS?0n~QhlOnO2|cskaL*TIW&uT_ z-RYYnzuz?Q`nVSk%)P?Z==3dtzQf%*@&iryEU`x55(kNH2V+i=CxhGS$OR^^$A!Ce zM-o*P8wtNwsVep%Ks%U-ML(u-v##${dr-QPq~vogl4pXw=xrMgKr<=`YGF?d^xCN6 zA1qM`4t1X-J7vmT9-nE@0H#JWSNuWBJ}b#}ceQlk-;0VUD>$PLh&62-kko5ZuaN^V zjIM|mHgaFDbsMV^QBtx5fk3VJQ642CmKNIKN!_w}PU%trU2#gVrzCU-g*`I80?_#^^ioA!02~@VzdzIFep6xf zE|ge}UQ7yA;bQc8KzcoX(U1HlSi+@lq9jYCc0HAQD3_**zgA}@sp-F*JIP^_UBU?W zy-zZwnSjK1kpu35(CSk>1wTF=Vjta{cV`bZcNNU_yGiOY=a6NRfD*rB8GkM-+eec* z*$c!iB3VzO29>g~f~3|HY%7B7dgl+dxHAGnfUvVfUK@)!QH?MJ_)>si3?ICUi5UU{ z7ust^3qYHZBZO8QF4NQS_U)IzxJacuBfc(Zpd!V}PGy&)zP5UPf}XSg?-7+|vGo(e zQjK`MAIKg7b}=9RdfTp+vQ!NFyj!@ELyULd`BYrM9`BSpKKP*m7zW(^3wHJD6q_-D z?Y`=?Fc*q8Vw73*y*en0Z2_e8m$*ZCrVl>`K!p2mg>C%Z{Y zxM{UtOQC#Y*<}yZ^62WUhxiC%4^dUO%5*7C11zo@SZn~^bPM8`G?pt-@#u-;SJCKX zme+;40VC+o#O9;EWG?n?Ivp2nnJ6VMNHldG;1evS5k@gRYCbE&EJnfanU0i9er>;@ z8gj!;JOK>wphP7k)a^-aas0}(aVXHs-89HlwFD-WswCP%W>Co~Ue#w!N&pinGBR?h z&Ck$f!O9VXu`S&v%m8hC+cKpnkbt{M2=@$nAD!$?cmm?XQPfxQalLYeOM`f^GDw4Q zX``(WvO-uwYKI1hu0hqsTsK&+2cWn}gZm;D{Fc|3bz)mNnayJZf@SslSSP6N$`6d} zF-D&xL;f^iXWH3zJ8Ee=f3q}w;C#SGwSgle^kelg^T~)bi#REH$LV9+cJ3=&>?xkM z!4@EN{P_ONZUtDhrQZL#C;1nM>x!+%d60tO>ItSIE(JOEXL)qkb1i6}_v5@~ zplWLm6FK`4;AgFSqL&TRfiFKB#hca#gs6Q=xH0J)1#rjzu*1JAIV(1iZpl9S9W zyLtC+k73=4VQ9}3{^ZGLQuv=^8t;VlR!Sw)fNm_c` z%iJzuT!uV7n>odXPyySZn##RH0xHKR{AZtxyjWj9j{oix9f@4wJZ{$Vvmb$o_GcdMGm3EADS&Ig{ z01Qf*@Y8&afC1^kgVhm!Le_Z&w`LA`sZLQZ7o}y@DVERz_~W&Wj31Z^gW%Y5(_E{) ztVqW4fXC&mB~NJfZa^ThGP}R=IR~k5VRk!Bx!yf;X&OLMIhFnm(V_2| zo1y$^^AM}{TiZ7E27QS@sYLa=Sr15X|3_>m*Y0n&^~B>7m*=X-CFeW%(B`^tFi539 z;p_%Qxh81i%5q({x-E6Mms>&>X7Ns7GIpK2avYSRH{VZ{$(mjp@RE&=+EK!hLqIM#7kBw)NHlhu83T{{_GXR`Fn4mbH zvLRu(q!xn zmIjM`0kkGlvhWKy=vuNI`s%Dq7p|6`9l=WN#BVA3L z^-~k4<79=eDzE&zxh`g;6sTLHUMjHqK6WS!*YxZCR?@ySUC5Sm1QIE_AA0}u^V`kb z{CwuG<4JX$=}H@Y5x`lQ7=Tl26>~``OD%|6;J-R~i>;RLf2zH~TBtKS2M1Pm|76Vt zad0K|Jhy|G^H@$ain$ihnPXyjUo8bxVO;WlvvrTZo~GpS zw492mvfvQ3%Z9i&7?d*Rl-Nu0 zvm7|A6G5k~!t@wmfQYfau_3pAPHAxeoRXlhu$YJlaci{1rrs7fWA)|G(5N_Yn#xe- zHaTqU)f1o!ShsN0ct4PBl}=6K9m;`amL`Wy=4WIDN(1)%O%MEM(!~&me4fEnCSPf> zRj_~Jhf65k;ZFH0FtY+J*uR;;HRlimY~Uu48YjR$-A?^xo!z2AUQrn z!BVO6JTKsArGuR!MbVhD%cXbw_PuRf&|z-|ja6MJL=?DoFvuLa5xnO2@(cF!Dj%b- zbg}vnAUb)wMcVIY?|#S%)$o5zP5sGxBEIhqx&)V+yl-EJqjvT}LabZWucdGc(ES|@ zs5oZGQ?tw6jYR5w!aJo$?*7&Wp4ON#;v1XFhm>&qAum73ze=BfWpFp~9k$T_rXZp; zbiPxMFL3db3OqhuvZtp97DOJe?YR!Fe1bw#&-iB8zIv}R<@cK*?!OGq28{6w=l`57 zymc+C4cKp9&U`|YowQu2!RO_F{K*03bN}t!t0$m>|LyVLKKbVVy%Vxum>&3;zbdDr r+g3&n+Fpl&JH3AV_hY&LS6vv5@NUWNhcEvZt@M>T literal 0 HcmV?d00001 diff --git a/dist/locales/en.json b/dist/locales/en.json index 051b6eaa5..270b9a78b 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1787,6 +1787,10 @@ "name": "Boundary", "terms": "" }, + "type/multipolygon": { + "name": "Multipolygon", + "terms": "" + }, "type/restriction": { "name": "Restriction", "terms": "" @@ -1795,6 +1799,46 @@ "name": "Route", "terms": "" }, + "type/route/bicycle": { + "name": "Cycle Route", + "terms": "" + }, + "type/route/bus": { + "name": "Bus Route", + "terms": "" + }, + "type/route/detour": { + "name": "Detour Route", + "terms": "" + }, + "type/route/ferry": { + "name": "Ferry Route", + "terms": "" + }, + "type/route/foot": { + "name": "Foot Route", + "terms": "" + }, + "type/route/pipeline": { + "name": "Pipeline Route", + "terms": "" + }, + "type/route/power": { + "name": "Power Route", + "terms": "" + }, + "type/route/road": { + "name": "Road Route", + "terms": "" + }, + "type/route/train": { + "name": "Train Route", + "terms": "" + }, + "type/route/tram": { + "name": "Tram Route", + "terms": "" + }, "waterway": { "name": "Waterway", "terms": "" diff --git a/js/id/ui/preset_icon.js b/js/id/ui/preset_icon.js index 37409e121..668049971 100644 --- a/js/id/ui/preset_icon.js +++ b/js/id/ui/preset_icon.js @@ -17,8 +17,8 @@ iD.ui.PresetIcon = function(geometry) { klass = 'feature-' + icon + ' preset-icon'; icon = iD.data.featureIcons[icon]; - if (geometry === 'line' && icon && icon.line) { - klass += ' preset-icon-line'; + if (icon && icon[geometry]) { + klass += ' preset-icon-' + geometry; } return klass;