From bd2c7ba7563a48d352c20ce934c7828c847f5147 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Mon, 20 May 2013 16:49:55 -0700 Subject: [PATCH] Render bridge casing for bridge=viaduct, etc. Fixes #1500. --- css/map.css | 38 ++++++++++++++++++------------------ js/id/svg/tag_classes.js | 2 +- test/spec/svg/tag_classes.js | 7 +++++++ 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/css/map.css b/css/map.css index 0d2a1f498..be3a434c6 100644 --- a/css/map.css +++ b/css/map.css @@ -646,24 +646,24 @@ path.fill.tag-aeroway-apron { /* bridges */ -path.casing.tag-bridge-yes { +path.casing.tag-bridge { stroke-width: 14; stroke-opacity: 0.5; stroke: #000; } -path.casing.tag-highway-living_street.tag-bridge-yes, -path.casing.tag-highway-path.tag-bridge-yes { +path.casing.tag-highway-living_street.tag-bridge, +path.casing.tag-highway-path.tag-bridge { stroke-width: 6; } path.casing.line.tag-highway-pedestrian, -path.casing.tag-highway-service.tag-bridge-yes, -path.casing.tag-highway-track.tag-bridge-yes, -path.casing.tag-highway-steps.tag-bridge-yes, -path.casing.tag-highway-footway.tag-bridge-yes, -path.casing.tag-highway-cycleway.tag-bridge-yes, -path.casing.tag-highway-bridleway.tag-bridge-yes { +path.casing.tag-highway-service.tag-bridge, +path.casing.tag-highway-track.tag-bridge, +path.casing.tag-highway-steps.tag-bridge, +path.casing.tag-highway-footway.tag-bridge, +path.casing.tag-highway-cycleway.tag-bridge, +path.casing.tag-highway-bridleway.tag-bridge { stroke-width: 8; } @@ -671,25 +671,25 @@ path.shadow.tag-highway-residential.tag-bridge { stroke-width:22; } -path.shadow.tag-highway-living_street.tag-bridge-yes, -path.shadow.tag-highway-path.tag-bridge-yes, +path.shadow.tag-highway-living_street.tag-bridge, +path.shadow.tag-highway-path.tag-bridge, path.shadow.line.tag-highway-pedestrian, -path.shadow.tag-highway-service.tag-bridge-yes, -path.shadow.tag-highway-track.tag-bridge-yes, -path.shadow.tag-highway-steps.tag-bridge-yes, -path.shadow.tag-highway-footway.tag-bridge-yes, -path.shadow.tag-highway-cycleway.tag-bridge-yes, -path.shadow.tag-highway-bridleway.tag-bridge-yes { +path.shadow.tag-highway-service.tag-bridge, +path.shadow.tag-highway-track.tag-bridge, +path.shadow.tag-highway-steps.tag-bridge, +path.shadow.tag-highway-footway.tag-bridge, +path.shadow.tag-highway-cycleway.tag-bridge, +path.shadow.tag-highway-bridleway.tag-bridge { stroke-width: 16; } /* tunnels */ -path.stroke.tag-highway.tag-tunnel-yes { +path.stroke.tag-highway.tag-tunnel { stroke-opacity: 0.3; } -path.casing.tag-highway.tag-tunnel-yes { +path.casing.tag-highway.tag-tunnel { stroke-opacity: 0.5; } diff --git a/js/id/svg/tag_classes.js b/js/id/svg/tag_classes.js index 434acc62b..61bd5a3aa 100644 --- a/js/id/svg/tag_classes.js +++ b/js/id/svg/tag_classes.js @@ -18,7 +18,7 @@ iD.svg.TagClasses = function() { var t = tags(entity); for (var k in t) { - if (!keys.has(k)) continue; + if (!keys.has(k) || t[k] === 'no') continue; classes += ' tag-' + k + ' tag-' + k + '-' + t[k]; } diff --git a/test/spec/svg/tag_classes.js b/test/spec/svg/tag_classes.js index 048378815..4ac2b5360 100644 --- a/test/spec/svg/tag_classes.js +++ b/test/spec/svg/tag_classes.js @@ -19,6 +19,13 @@ describe("iD.svg.TagClasses", function () { expect(selection.attr('class')).to.equal('tag-highway tag-highway-primary'); }); + it('adds no bridge=no tags', function() { + selection + .datum(iD.Entity({tags: {bridge: 'no'}})) + .call(iD.svg.TagClasses()); + expect(selection.attr('class')).to.equal(null); + }); + it('adds tags based on the result of the `tags` accessor', function() { selection .datum(iD.Entity())