diff --git a/css/app.css b/css/app.css
index 09ff7f1e3..74585ff7a 100644
--- a/css/app.css
+++ b/css/app.css
@@ -2904,6 +2904,7 @@ div.full-screen > button:hover {
}
.radial-menu-background {
+ fill: none;
stroke: black;
stroke-opacity: 0.5;
}
diff --git a/css/map.css b/css/map.css
index 97b5be9c1..83b8bcc4c 100644
--- a/css/map.css
+++ b/css/map.css
@@ -24,13 +24,11 @@ img.tile-removing {
/* allow overrideable fill for svg sprite icons */
#defs path { fill: inherit; }
-path { fill: none; }
+/*path { fill: none; }*/
use { pointer-events: none; }
/* base styles */
-g.line path, g.area path {
- fill: none;
-}
+.layer path { fill: none; }
g.point .shadow,
g.vertex .shadow,
diff --git a/package.json b/package.json
index 2c4fab06f..5c2b64196 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,9 @@
"request": "~2.16.2",
"jsonschema": "~0.3.2",
"editor-imagery-index": "git://github.com/osmlab/editor-imagery-index.git#gh-pages",
- "name-suggestion-index": "0.0.1"
+ "name-suggestion-index": "0.0.1",
+ "minimist": "~1.2.0",
+ "xml-stream": "~0.4.5"
},
"engines": {
"node": ">=0.10.0"
diff --git a/svg/iD-sprite.idraw b/svg/iD-sprite.idraw
index 5b0596200..fdb581780 100644
Binary files a/svg/iD-sprite.idraw and b/svg/iD-sprite.idraw differ
diff --git a/svg/iD-sprite.json b/svg/iD-sprite.json
new file mode 100644
index 000000000..1432e085d
--- /dev/null
+++ b/svg/iD-sprite.json
@@ -0,0 +1,132 @@
+{
+ "icon-alert": { "viewBox": "0 0 20 20" },
+ "icon-point": { "viewBox": "20 0 20 20" },
+ "icon-line": { "viewBox": "40 0 20 20" },
+ "icon-area": { "viewBox": "60 0 20 20" },
+ "icon-undo": { "viewBox": "80 0 20 20" },
+ "icon-redo": { "viewBox": "100 0 20 20" },
+ "icon-apply": { "viewBox": "120 0 20 20" },
+ "icon-save": { "viewBox": "140 0 20 20" },
+ "icon-close": { "viewBox": "160 0 20 20" },
+ "icon-out-link": { "viewBox": "200 0 20 20" },
+ "icon-inspect": { "viewBox": "220 0 20 20" },
+ "icon-plus": { "viewBox": "240 0 20 20" },
+ "icon-minus": { "viewBox": "260 0 20 20" },
+ "icon-search": { "viewBox": "280 0 20 20" },
+ "icon-layers": { "viewBox": "300 0 20 20" },
+ "icon-avatar": { "viewBox": "320 0 20 20" },
+ "icon-nearby": { "viewBox": "340 0 20 20" },
+ "icon-geolocate": { "viewBox": "360 0 20 20" },
+ "icon-bug": { "viewBox": "400 0 20 20" },
+ "icon-translate": { "viewBox": "420 0 20 20" },
+ "icon-help": { "viewBox": "460 0 20 20" },
+ "icon-data": { "viewBox": "480 0 20 20" },
+ "icon-full-screen": { "viewBox": "500 0 20 20" },
+ "icon-collapse-screen": { "viewBox": "520 0 20 20" },
+
+ "highway-motorway": { "viewBox": "0 20 60 60" },
+ "highway-trunk": { "viewBox": "60 20 60 60" },
+ "highway-primary": { "viewBox": "120 20 60 60" },
+ "highway-secondary": { "viewBox": "180 20 60 60" },
+ "highway-tertiary": { "viewBox": "240 20 60 60" },
+ "highway-motorway-link": { "viewBox": "300 20 60 60" },
+ "highway-trunk-link": { "viewBox": "360 20 60 60" },
+ "highway-primary-link": { "viewBox": "420 20 60 60" },
+ "highway-secondary-link": { "viewBox": "480 20 60 60" },
+ "highway-tertiary-link": { "viewBox": "540 20 60 60" },
+ "highway-residential": { "viewBox": "600 20 60 60" },
+ "highway-unclassified": { "viewBox": "660 20 60 60" },
+ "highway-service": { "viewBox": "720 20 60 60" },
+ "highway-road": { "viewBox": "0 80 60 60" },
+ "highway-track": { "viewBox": "60 80 60 60" },
+ "highway-living-street": { "viewBox": "120 80 60 60" },
+ "highway-path": { "viewBox": "180 80 60 60" },
+ "highway-cycleway": { "viewBox": "240 80 60 60" },
+ "highway-footway": { "viewBox": "300 80 60 60" },
+ "highway-bridleway": { "viewBox": "360 80 60 60" },
+ "highway-steps": { "viewBox": "420 80 60 60" },
+
+ "railway-rail": { "viewBox": "480 80 60 60" },
+ "railway-disused": { "viewBox": "540 80 60 60" },
+ "railway-abandoned": { "viewBox": "600 80 60 60" },
+ "railway-subway": { "viewBox": "660 80 60 60" },
+ "railway-light-rail": { "viewBox": "720 80 60 60" },
+ "railway-monorail": { "viewBox": "0 140 60 60" },
+
+ "waterway-river": { "viewBox": "60 140 60 60" },
+ "waterway-stream": { "viewBox": "120 140 60 60" },
+ "waterway-canal": { "viewBox": "180 140 60 60" },
+ "waterway-ditch": { "viewBox": "240 140 60 60" },
+
+ "power-line": { "viewBox": "300 140 60 60" },
+ "other-line": { "viewBox": "360 140 60 60" },
+
+ "category-roads": { "viewBox": "420 140 60 60" },
+ "category-rail": { "viewBox": "480 140 60 60" },
+ "category-path": { "viewBox": "540 140 60 60" },
+ "category-water": { "viewBox": "600 140 60 60" },
+
+ "ferry": { "viewBox": "660 140 60 60" },
+ "pipeline": { "viewBox": "720 140 60 60" },
+
+ "relation": { "viewBox": "0 200 60 60" },
+ "boundary": { "viewBox": "60 200 60 60" },
+ "route": { "viewBox": "120 200 60 60" },
+ "route-road": { "viewBox": "180 200 60 60" },
+ "route-bicycle": { "viewBox": "240 200 60 60" },
+ "route-foot": { "viewBox": "300 200 60 60" },
+ "route-bus": { "viewBox": "360 200 60 60" },
+ "route-train": { "viewBox": "420 200 60 60" },
+ "route-detour": { "viewBox": "480 200 60 60" },
+ "route-tram": { "viewBox": "540 200 60 60" },
+ "route-ferry": { "viewBox": "600 200 60 60" },
+ "route-power": { "viewBox": "660 200 60 60" },
+ "route-pipeline": { "viewBox": "720 200 60 60" },
+ "route-master": { "viewBox": "0 260 60 60" },
+
+ "restriction-no-straight-on": { "viewBox": "60 260 60 60" },
+ "restriction-no-u-turn": { "viewBox": "120 260 60 60" },
+ "restriction-no-left-turn": { "viewBox": "180 260 60 60" },
+ "restriction-no-right-turn": { "viewBox": "240 260 60 60" },
+ "restriction-only-straight-on": { "viewBox": "300 260 60 60" },
+ "restriction-only-left-turn": { "viewBox": "360 260 60 60" },
+ "restriction-only-right-turn": { "viewBox": "420 260 60 60" },
+
+ "restriction": { "viewBox": "480 260 60 60" },
+ "multipolygon": { "viewBox": "540 260 60 60" },
+
+ "turn-yes": { "viewBox": "200 320 44 24" },
+ "turn-no": { "viewBox": "244 320 44 24" },
+ "turn-only": { "viewBox": "288 320 44 24" },
+ "turn-yes-u": { "viewBox": "200 344 32 32" },
+ "turn-no-u": { "viewBox": "232 344 32 32" },
+ "turn-only-u": { "viewBox": "264 344 32 32 "},
+
+ "preset-icon-frame": { "viewBox": "340 320 45 45" },
+
+ "operation-delete": { "viewBox": "200 380 20 20" },
+ "operation-circularize": { "viewBox": "220 380 20 20" },
+ "operation-straighten": { "viewBox": "240 380 20 20" },
+ "operation-split": { "viewBox": "260 380 20 20" },
+ "operation-disconnect": { "viewBox": "280 380 20 20" },
+ "operation-reverse": { "viewBox": "300 380 20 20" },
+ "operation-move": { "viewBox": "320 380 20 20" },
+ "operation-merge": { "viewBox": "340 380 20 20" },
+ "operation-orthogonalize": { "viewBox": "360 380 20 20" },
+ "operation-rotate": { "viewBox": "380 380 20 20" },
+ "operation-simplify": { "viewBox": "400 380 20 20" },
+ "operation-continue": { "viewBox": "420 380 20 20" },
+
+ "logo-twitter": { "viewBox": "200 400 60 60" },
+ "logo-facebook": { "viewBox": "260 400 60 60" },
+ "logo-google": { "viewBox": "320 400 60 60" },
+ "logo-osm": { "viewBox": "200 460 100 100" },
+ "logo-walkthrough": { "viewBox": "300 460 100 100" },
+ "logo-features": { "viewBox": "400 460 100 100" },
+ "logo-restore": { "viewBox": "500 480 80 80" },
+ "logo-reset": { "viewBox": "580 480 80 80" },
+
+ "poi-images": { "viewBox": "0 320 200 80" },
+ "landuse-images": { "viewBox": "0 400 200 80" },
+ "feature-images": { "viewBox": "0 480 200 80" }
+}
diff --git a/svg/line-presets.svg b/svg/line-presets.svg
deleted file mode 100644
index 93f62ecf1..000000000
--- a/svg/line-presets.svg
+++ /dev/null
@@ -1,4128 +0,0 @@
-
-
-
-
diff --git a/svg/relation-presets.svg b/svg/relation-presets.svg
deleted file mode 100644
index c791d2573..000000000
--- a/svg/relation-presets.svg
+++ /dev/null
@@ -1,3350 +0,0 @@
-
-
-
-
diff --git a/svg/spriteify.js b/svg/spriteify.js
new file mode 100755
index 000000000..c31ea9773
--- /dev/null
+++ b/svg/spriteify.js
@@ -0,0 +1,34 @@
+#!/usr/bin/env node
+
+'use strict';
+
+var argv = require('minimist')(process.argv.slice(2));
+var fs = require('fs');
+var XmlStream = require('xml-stream');
+var status = 0;
+
+if (argv.help || argv.h || !argv.svg || !argv.json) {
+ return help();
+}
+
+var stream = fs.createReadStream(argv.svg);
+var json = JSON.parse(fs.readFileSync(argv.json));
+var svg = new XmlStream(stream);
+
+svg.preserve('id', true);
+svg.collect('subitem');
+svg.on('endElement: id', function(item) {
+ console.log(item);
+});
+
+process.exit(status);
+
+function help() {
+ console.log('usage:');
+ console.log(' spriteify --svg source.svg --json source.json > destination.svg');
+ console.log('');
+}
+
+
+
+