From 1107f7dc7fc5f20d7c3e9ad903295bc382cbbbac Mon Sep 17 00:00:00 2001 From: Tom MacWright Date: Fri, 4 Jan 2013 14:43:47 -0500 Subject: [PATCH] Optimize calls, generation of accuracy handles --- js/id/connection.js | 4 +--- js/id/renderer/map.js | 28 ++++++++++++---------------- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/js/id/connection.js b/js/id/connection.js index d5851c104..a3cd28fd9 100644 --- a/js/id/connection.js +++ b/js/id/connection.js @@ -69,9 +69,7 @@ iD.Connection = function() { tags: getTags(obj) }; for (var i = 0, l = obj.attributes.length; i < l; i++) { - var n = obj.attributes[i].nodeName; - var v = obj.attributes[i].nodeValue; - o[n] = v; + o[obj.attributes[i].nodeName] = obj.attributes[i].nodeValue; } if (o.lon && o.lat) { o.loc = [parseFloat(o.lon), parseFloat(o.lat)]; diff --git a/js/id/renderer/map.js b/js/id/renderer/map.js index 254147f9b..4cc7de184 100644 --- a/js/id/renderer/map.js +++ b/js/id/renderer/map.js @@ -94,7 +94,6 @@ iD.Map = function() { filter = function(d) { return d.accuracy ? d.way in only : d.id in only; }; } - if (all.length > 10000) return editOff(); else editOn(); @@ -112,9 +111,10 @@ iD.Map = function() { } } var parentStructure = graph.parentStructure(ways); - var wayAccuracyHandles = ways.reduce(function(mem, w) { - return mem.concat(accuracyHandles(w)); - }, []); + var wayAccuracyHandles = []; + for (i = 0; i < ways.length; i++) { + accuracyHandles(ways[i], wayAccuracyHandles); + } drawVertices(vertices, parentStructure, filter); drawAccuracyHandles(wayAccuracyHandles, filter); drawCasings(lines, filter); @@ -123,8 +123,8 @@ iD.Map = function() { drawPoints(points, filter); } - function accuracyHandles(way) { - var handles = []; + // updates handles by reference + function accuracyHandles(way, handles) { for (var i = 0; i < way.nodes.length - 1; i++) { if (iD.util.geo.dist(way.nodes[i].loc, way.nodes[i + 1].loc) > 0.0001) { handles.push({ @@ -135,7 +135,6 @@ iD.Map = function() { }); } } - return handles; } function pointTransform(entity) { @@ -233,10 +232,7 @@ iD.Map = function() { .attr({ width: 16, height: 16 }) .attr('transform', 'translate(-8, -8)'); - groups.attr('transform', function(d) { - var pt = projection(d.loc); - return 'translate(' + [~~pt[0], ~~pt[1]] + ')'; - }); + groups.attr('transform', pointTransform); groups.classed('hover', classHover); groups.select('image').attr('xlink:href', iD.Style.pointImage); @@ -314,11 +310,11 @@ iD.Map = function() { if (fast) { if (!translateStart) translateStart = d3.event.translate.slice(); var a = d3.event.translate, - b = translateStart; - tilegroup.style(transformProp, - 'translate(' + ~~(a[0] - b[0]) + 'px,' + ~~(a[1] - b[1]) + 'px)'); - surface.style(transformProp, - 'translate(' + ~~(a[0] - b[0]) + 'px,' + ~~(a[1] - b[1]) + 'px)'); + b = translateStart, + translate = 'translate(' + ~~(a[0] - b[0]) + 'px,' + + ~~(a[1] - b[1]) + 'px)'; + tilegroup.style(transformProp, translate); + surface.style(transformProp, translate); } else { redraw(); translateStart = null;