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 @@
+
+
+
-
+
-
+
+
-
+
-
+