From 0764be77c4544c9f181215865a3baf23cdd2201a Mon Sep 17 00:00:00 2001 From: Thomas Chandelle Date: Wed, 15 Feb 2017 09:46:51 +0100 Subject: [PATCH 1/2] Failing test for "Circle Modification" --- test/spec/ol/interaction/modify.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/spec/ol/interaction/modify.test.js b/test/spec/ol/interaction/modify.test.js index 349c731ac9..8ab79812b3 100644 --- a/test/spec/ol/interaction/modify.test.js +++ b/test/spec/ol/interaction/modify.test.js @@ -392,8 +392,8 @@ describe('ol.interaction.Modify', function() { expect(circleFeature.getGeometry().getCenter()).to.eql([5, 5]); // Increase radius - simulateEvent('pointermove', 25, -5, false, 0); - simulateEvent('pointerdown', 25, -5, false, 0); + simulateEvent('pointermove', 25, -4, false, 0); + simulateEvent('pointerdown', 25, -4, false, 0); simulateEvent('pointermove', 30, -5, false, 0); simulateEvent('pointerdrag', 30, -5, false, 0); simulateEvent('pointerup', 30, -5, false, 0); From 9bf6dcbdcbda6b418717fdbee2185a216f81d114 Mon Sep 17 00:00:00 2001 From: Thomas Chandelle Date: Thu, 16 Feb 2017 09:56:00 +0100 Subject: [PATCH 2/2] Find the closest vertex on the circle from the pixel coordinates --- src/ol/interaction/modify.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ol/interaction/modify.js b/src/ol/interaction/modify.js index 1cb34e445f..abf0274778 100644 --- a/src/ol/interaction/modify.js +++ b/src/ol/interaction/modify.js @@ -550,6 +550,7 @@ ol.interaction.Modify.handleDownEvent_ = function(evt) { return false; } this.handlePointerAtPixel_(evt.pixel, evt.map); + var pixelCoordinate = evt.map.getCoordinateFromPixel(evt.pixel); this.dragSegments_.length = 0; this.modified_ = false; var vertexFeature = this.vertexFeature_; @@ -575,7 +576,7 @@ ol.interaction.Modify.handleDownEvent_ = function(evt) { if (segmentDataMatch.geometry.getType() === ol.geom.GeometryType.CIRCLE && segmentDataMatch.index === ol.interaction.Modify.MODIFY_SEGMENT_CIRCLE_CIRCUMFERENCE_INDEX) { - var closestVertex = ol.interaction.Modify.closestOnSegmentData_(vertex, segmentDataMatch); + var closestVertex = ol.interaction.Modify.closestOnSegmentData_(pixelCoordinate, segmentDataMatch); if (ol.coordinate.equals(closestVertex, vertex) && !componentSegments[uid][0]) { this.dragSegments_.push([segmentDataMatch, 0]); componentSegments[uid][0] = segmentDataMatch;