diff --git a/css/20_map.css b/css/20_map.css index 697880e6e..cd310472b 100644 --- a/css/20_map.css +++ b/css/20_map.css @@ -62,7 +62,7 @@ g.vertex .stroke { } g.vertex.shared .stroke { - fill: #aaa; + fill: #bbb; } g.midpoint .fill { diff --git a/data/presets/defaults.json b/data/presets/defaults.json index dcaba3e38..065d2991d 100644 --- a/data/presets/defaults.json +++ b/data/presets/defaults.json @@ -41,6 +41,7 @@ "railway/level_crossing", "highway/traffic_signals", "highway/turning_circle", + "highway/turning_loop", "traffic_calming", "highway/mini_roundabout", "highway/motorway_junction", diff --git a/data/presets/presets.json b/data/presets/presets.json index dc7470420..5e3a274c2 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -4624,7 +4624,7 @@ "name": "Defibrillator" }, "emergency/fire_hydrant": { - "icon": "fire-station", + "icon": "poi-fire-hydrant", "fields": [ "fire_hydrant/type", "fire_hydrant/position" @@ -4964,6 +4964,7 @@ "name": "Street Crossing" }, "highway/crosswalk": { + "icon": "poi-foot", "fields": [ "crossing", "kerb", @@ -5028,6 +5029,7 @@ "name": "Foot Path" }, "highway/give_way": { + "icon": "poi-yield", "fields": [ "parallel_direction" ], @@ -5511,6 +5513,7 @@ "name": "Service Area" }, "highway/steps": { + "icon": "highway-steps", "fields": [ "surface", "lit", @@ -5519,7 +5522,6 @@ "handrail", "step_count" ], - "icon": "highway-steps", "geometry": [ "line" ], @@ -5533,6 +5535,7 @@ "name": "Steps" }, "highway/stop": { + "icon": "poi-stop", "fields": [ "stop", "parallel_direction" @@ -5684,6 +5687,7 @@ "name": "Traffic Mirror" }, "highway/traffic_signals": { + "icon": "poi-traffic-signals", "geometry": [ "vertex" ], @@ -12054,6 +12058,7 @@ "name": "Zoo" }, "traffic_calming": { + "icon": "poi-warning", "fields": [ "traffic_calming", "parallel_direction" @@ -12074,6 +12079,7 @@ "name": "Traffic Calming" }, "traffic_calming/bump": { + "icon": "poi-warning", "fields": [ "surface", "parallel_direction" @@ -12093,6 +12099,7 @@ "name": "Speed Bump" }, "traffic_calming/chicane": { + "icon": "poi-warning", "fields": [ "parallel_direction" ], @@ -12111,6 +12118,7 @@ "name": "Traffic Chicane" }, "traffic_calming/choker": { + "icon": "poi-warning", "fields": [ "parallel_direction" ], @@ -12128,6 +12136,7 @@ "name": "Traffic Choker" }, "traffic_calming/cushion": { + "icon": "poi-warning", "fields": [ "surface", "parallel_direction" @@ -12148,6 +12157,7 @@ "name": "Speed Cushion" }, "traffic_calming/dip": { + "icon": "poi-warning", "fields": [ "surface", "parallel_direction" @@ -12166,6 +12176,7 @@ "name": "Dip" }, "traffic_calming/hump": { + "icon": "poi-warning", "fields": [ "surface", "parallel_direction" @@ -12185,7 +12196,7 @@ "name": "Speed Hump" }, "traffic_calming/island": { - "icon": "circle", + "icon": "poi-warning", "geometry": [ "vertex" ], @@ -12200,6 +12211,7 @@ "name": "Traffic Island" }, "traffic_calming/rumble_strip": { + "icon": "poi-warning", "fields": [ "parallel_direction" ], @@ -12218,6 +12230,7 @@ "name": "Rumble Strip" }, "traffic_calming/table": { + "icon": "poi-warning", "fields": [ "surface" ], diff --git a/data/presets/presets/emergency/fire_hydrant.json b/data/presets/presets/emergency/fire_hydrant.json index e0a161040..408b0774d 100644 --- a/data/presets/presets/emergency/fire_hydrant.json +++ b/data/presets/presets/emergency/fire_hydrant.json @@ -1,5 +1,5 @@ { - "icon": "fire-station", + "icon": "poi-fire-hydrant", "fields": [ "fire_hydrant/type", "fire_hydrant/position" diff --git a/data/presets/presets/highway/crosswalk.json b/data/presets/presets/highway/crosswalk.json index ab8696e0c..9676a4dc6 100644 --- a/data/presets/presets/highway/crosswalk.json +++ b/data/presets/presets/highway/crosswalk.json @@ -1,4 +1,5 @@ { + "icon": "poi-foot", "fields": [ "crossing", "kerb", diff --git a/data/presets/presets/highway/give_way.json b/data/presets/presets/highway/give_way.json index 6533a7c06..232c27d25 100644 --- a/data/presets/presets/highway/give_way.json +++ b/data/presets/presets/highway/give_way.json @@ -1,4 +1,5 @@ { + "icon": "poi-yield", "fields": [ "parallel_direction" ], diff --git a/data/presets/presets/highway/steps.json b/data/presets/presets/highway/steps.json index a8d766ed1..dd30b5778 100644 --- a/data/presets/presets/highway/steps.json +++ b/data/presets/presets/highway/steps.json @@ -1,4 +1,5 @@ { + "icon": "highway-steps", "fields": [ "surface", "lit", @@ -7,7 +8,6 @@ "handrail", "step_count" ], - "icon": "highway-steps", "geometry": [ "line" ], diff --git a/data/presets/presets/highway/stop.json b/data/presets/presets/highway/stop.json index 403a533b2..47b5e35ed 100644 --- a/data/presets/presets/highway/stop.json +++ b/data/presets/presets/highway/stop.json @@ -1,4 +1,5 @@ { + "icon": "poi-stop", "fields": [ "stop", "parallel_direction" diff --git a/data/presets/presets/highway/traffic_signals.json b/data/presets/presets/highway/traffic_signals.json index 40e1f11f0..3dee65640 100644 --- a/data/presets/presets/highway/traffic_signals.json +++ b/data/presets/presets/highway/traffic_signals.json @@ -1,4 +1,5 @@ { + "icon": "poi-traffic-signals", "geometry": [ "vertex" ], diff --git a/data/presets/presets/traffic_calming.json b/data/presets/presets/traffic_calming.json index 92c297cdf..0cb5d8fca 100644 --- a/data/presets/presets/traffic_calming.json +++ b/data/presets/presets/traffic_calming.json @@ -1,4 +1,5 @@ { + "icon": "poi-warning", "fields": [ "traffic_calming", "parallel_direction" diff --git a/data/presets/presets/traffic_calming/bump.json b/data/presets/presets/traffic_calming/bump.json index 6a0c6ce02..071ed8e2c 100644 --- a/data/presets/presets/traffic_calming/bump.json +++ b/data/presets/presets/traffic_calming/bump.json @@ -1,4 +1,5 @@ { + "icon": "poi-warning", "fields": [ "surface", "parallel_direction" diff --git a/data/presets/presets/traffic_calming/chicane.json b/data/presets/presets/traffic_calming/chicane.json index 52d99d68d..bbdbfa068 100644 --- a/data/presets/presets/traffic_calming/chicane.json +++ b/data/presets/presets/traffic_calming/chicane.json @@ -1,4 +1,5 @@ { + "icon": "poi-warning", "fields": [ "parallel_direction" ], diff --git a/data/presets/presets/traffic_calming/choker.json b/data/presets/presets/traffic_calming/choker.json index 0e6143a14..bee59649a 100644 --- a/data/presets/presets/traffic_calming/choker.json +++ b/data/presets/presets/traffic_calming/choker.json @@ -1,4 +1,5 @@ { + "icon": "poi-warning", "fields": [ "parallel_direction" ], diff --git a/data/presets/presets/traffic_calming/cushion.json b/data/presets/presets/traffic_calming/cushion.json index 009c8be56..788b2c4ba 100644 --- a/data/presets/presets/traffic_calming/cushion.json +++ b/data/presets/presets/traffic_calming/cushion.json @@ -1,4 +1,5 @@ { + "icon": "poi-warning", "fields": [ "surface", "parallel_direction" diff --git a/data/presets/presets/traffic_calming/dip.json b/data/presets/presets/traffic_calming/dip.json index 2d29db32e..6098025ba 100644 --- a/data/presets/presets/traffic_calming/dip.json +++ b/data/presets/presets/traffic_calming/dip.json @@ -1,4 +1,5 @@ { + "icon": "poi-warning", "fields": [ "surface", "parallel_direction" diff --git a/data/presets/presets/traffic_calming/hump.json b/data/presets/presets/traffic_calming/hump.json index a03258048..fd724701f 100644 --- a/data/presets/presets/traffic_calming/hump.json +++ b/data/presets/presets/traffic_calming/hump.json @@ -1,4 +1,5 @@ { + "icon": "poi-warning", "fields": [ "surface", "parallel_direction" diff --git a/data/presets/presets/traffic_calming/island.json b/data/presets/presets/traffic_calming/island.json index 44cb98883..fdc7c9b6a 100644 --- a/data/presets/presets/traffic_calming/island.json +++ b/data/presets/presets/traffic_calming/island.json @@ -1,5 +1,5 @@ { - "icon": "circle", + "icon": "poi-warning", "geometry": [ "vertex" ], diff --git a/data/presets/presets/traffic_calming/rumble_strip.json b/data/presets/presets/traffic_calming/rumble_strip.json index c9c2eaf00..f706db468 100644 --- a/data/presets/presets/traffic_calming/rumble_strip.json +++ b/data/presets/presets/traffic_calming/rumble_strip.json @@ -1,4 +1,5 @@ { + "icon": "poi-warning", "fields": [ "parallel_direction" ], diff --git a/data/presets/presets/traffic_calming/table.json b/data/presets/presets/traffic_calming/table.json index a722d8aa1..2c0b94a91 100644 --- a/data/presets/presets/traffic_calming/table.json +++ b/data/presets/presets/traffic_calming/table.json @@ -1,4 +1,5 @@ { + "icon": "poi-warning", "fields": [ "surface" ], diff --git a/modules/svg/labels.js b/modules/svg/labels.js index 94811840c..90a3ea7f2 100644 --- a/modules/svg/labels.js +++ b/modules/svg/labels.js @@ -1,6 +1,7 @@ import * as d3 from 'd3'; import _ from 'lodash'; import rbush from 'rbush'; +import { dataFeatureIcons } from '../../data/index'; import { textDirection } from '../util/locale'; import { @@ -201,8 +202,15 @@ export function svgLabels(projection, context) { icons .attr('transform', get(labels, 'transform')) .attr('xlink:href', function(d) { - var icon = context.presets().match(d, context.graph()).icon; - return '#' + icon + '-15'; + var preset = context.presets().match(d, context.graph()), + picon = preset && preset.icon; + + if (!picon) + return ''; + else { + var isMaki = dataFeatureIcons.indexOf(picon) !== -1; + return '#' + picon + (isMaki ? '-15' : ''); + } }); } diff --git a/modules/svg/points.js b/modules/svg/points.js index ea09d3e4a..26261111c 100644 --- a/modules/svg/points.js +++ b/modules/svg/points.js @@ -1,4 +1,5 @@ import _ from 'lodash'; +import { dataFeatureIcons } from '../../data/index'; import { osmEntity } from '../osm/index'; import { svgPointTransform, svgTagClasses } from './index'; @@ -62,8 +63,15 @@ export function svgPoints(projection, context) { groups.select('.stroke'); groups.select('.icon') .attr('xlink:href', function(entity) { - var preset = context.presets().match(entity, graph); - return (preset && preset.icon) ? '#' + preset.icon + '-11' : ''; + var preset = context.presets().match(entity, graph), + picon = preset && preset.icon; + + if (!picon) + return ''; + else { + var isMaki = dataFeatureIcons.indexOf(picon) !== -1; + return '#' + picon + (isMaki ? '-11' : ''); + } }); }; } diff --git a/modules/svg/vertices.js b/modules/svg/vertices.js index 14897d8bf..91c7c1d34 100644 --- a/modules/svg/vertices.js +++ b/modules/svg/vertices.js @@ -1,4 +1,5 @@ import * as d3 from 'd3'; +import { dataFeatureIcons } from '../../data/index'; import { osmEntity } from '../osm/index'; import { svgPointTransform } from './index'; @@ -130,7 +131,12 @@ export function svgVertices(projection, context) { enter.filter(function(d) { return icon(d); }) .append('use') .attr('transform', 'translate(-5, -6)') - .attr('xlink:href', function(d) { return '#' + icon(d) + '-11'; }) + .attr('xlink:href', function(d) { + var picon = icon(d), + isPoi = picon.match(/^poi-/) !== null, + isMaki = dataFeatureIcons.indexOf(picon) !== -1; + return '#' + picon + (isMaki ? '-11' : ''); + }) .attr('width', '11px') .attr('height', '11px') .each(setClass('icon')); diff --git a/modules/ui/preset_icon.js b/modules/ui/preset_icon.js index 6eee537b9..c6df34105 100644 --- a/modules/ui/preset_icon.js +++ b/modules/ui/preset_icon.js @@ -18,6 +18,7 @@ export function uiPresetIcon() { p = preset.apply(this, arguments), geom = geometry.apply(this, arguments), picon = p.icon || (geom === 'line' ? 'other-line' : 'marker-stroked'), + isPoi = picon.match(/^poi-/) !== null, isMaki = dataFeatureIcons.indexOf(picon) !== -1; function tag_classes(p) { @@ -68,7 +69,7 @@ export function uiPresetIcon() { icon .attr('class', 'preset-icon preset-icon-' + - (isMaki ? (geom === 'area' ? '24' : '28') : (geom === 'area' ? '44' : '60')) + ((isMaki || isPoi) ? (geom === 'area' ? '24' : '28') : (geom === 'area' ? '44' : '60')) ); icon.selectAll('svg') diff --git a/svg/iD-sprite.json b/svg/iD-sprite.json index bf6186e8c..af964581c 100644 --- a/svg/iD-sprite.json +++ b/svg/iD-sprite.json @@ -261,12 +261,14 @@ "poi-yield": { "viewBox": "430 320 15 15" }, "poi-stop": { "viewBox": "445 320 15 15" }, "poi-warning": { "viewBox": "460 320 15 15" }, + "poi-fire-hydrant": { "viewBox": "475 320 15 15" }, "poi-foot-shape": { "fill": "currentColor" }, "poi-traffic-signals-shape": { "fill": "currentColor" }, "poi-yield-shape": { "fill": "currentColor" }, "poi-stop-shape": { "fill": "currentColor" }, "poi-warning-shape": { "fill": "currentColor" }, + "poi-fire-hydrant-shape": { "fill": "currentColor" }, "turn-yes": { "viewBox": "200 320 44 24" }, "turn-no": { "viewBox": "244 320 44 24" }, diff --git a/svg/iD-sprite.src.idraw b/svg/iD-sprite.src.idraw index 10ebd30f3..572d855b5 100644 Binary files a/svg/iD-sprite.src.idraw and b/svg/iD-sprite.src.idraw differ diff --git a/svg/iD-sprite.src.svg b/svg/iD-sprite.src.svg index 2558792d1..57dace665 100644 --- a/svg/iD-sprite.src.svg +++ b/svg/iD-sprite.src.svg @@ -232,20 +232,24 @@ + + + - + - + + - + - + - +