From 2f03bc8be3104b6be653d8d1152f5dded65f3d27 Mon Sep 17 00:00:00 2001 From: Tom MacWright Date: Wed, 24 Oct 2012 23:19:20 -0400 Subject: [PATCH] Dragging points omg --- js/iD/renderer/Map.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/js/iD/renderer/Map.js b/js/iD/renderer/Map.js index dd5ed5427..5ce5b8223 100755 --- a/js/iD/renderer/Map.js +++ b/js/iD/renderer/Map.js @@ -27,6 +27,24 @@ iD.renderer.Map = function(obj) { .scale(projection.scale()) .scaleExtent([256, 134217728]); + var dragbehavior = d3.behavior.drag() + .origin(function(d) { + var p = projection(d); + return { x: p[0], y: p[1] }; + }) + .on("drag", dragmove); + + // http://bl.ocks.org/1557377 + function dragmove(d) { + d3.select(this).attr('transform', function() { + return 'translate(' + d3.event.x + ',' + d3.event.y + ')'; + }); + var ll = projection.invert([d3.event.x, d3.event.y]); + d[0] = ll[0]; + d[1] = ll[1]; + drawVector(); + } + zoombehavior.on('zoom', redraw); var surface = d3.selectAll(obj.selector) @@ -36,7 +54,6 @@ iD.renderer.Map = function(obj) { var defs = surface.append('defs'); - var clipPath = defs.append('clipPath') .attr('id', 'clip') .append('rect') @@ -261,7 +278,7 @@ iD.renderer.Map = function(obj) { handles.enter().append('circle') .attr('class', 'handle') .attr('r', 5) - .on('click', selectClick); + .call(dragbehavior); handles.attr('transform', function(d) { return 'translate(' + projection(d) + ')'; });