From b69abc2359587d0064414d4a437e383bf915b664 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 10 Oct 2013 11:23:43 -0700 Subject: [PATCH] iD.geo.edgeEqual --- js/id/actions/add_midpoint.js | 5 +---- js/id/geo.js | 5 +++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/js/id/actions/add_midpoint.js b/js/id/actions/add_midpoint.js index 36724f70b..b89a87f5b 100644 --- a/js/id/actions/add_midpoint.js +++ b/js/id/actions/add_midpoint.js @@ -8,10 +8,7 @@ iD.actions.AddMidpoint = function(midpoint, node) { parents.forEach(function(way) { for (var i = 0; i < way.nodes.length - 1; i++) { - if ((way.nodes[i] === midpoint.edge[0] && - way.nodes[i + 1] === midpoint.edge[1]) || - (way.nodes[i] === midpoint.edge[1] && - way.nodes[i + 1] === midpoint.edge[0])) { + if (iD.geo.edgeEqual([way.nodes[i], way.nodes[i + 1]], midpoint.edge)) { graph = graph.replace(graph.entity(way.id).addNode(node.id, i + 1)); // Add only one midpoint on doubled-back segments, diff --git a/js/id/geo.js b/js/id/geo.js index 3b901d263..f773106df 100644 --- a/js/id/geo.js +++ b/js/id/geo.js @@ -21,6 +21,11 @@ iD.geo.sphericalDistance = function(a, b) { return 6.3710E6 * Math.sqrt((x * x) + (y * y)) * Math.PI/180; }; +iD.geo.edgeEqual = function(a, b) { + return (a[0] === b[0] && a[1] === b[1]) || + (a[0] === b[1] && a[1] === b[0]); +}; + // Choose the edge with the minimal distance from `point` to its orthogonal // projection onto that edge, if such a projection exists, or the distance to // the closest vertex on that edge. Returns an object with the `index` of the