From c1aff5cba2f3f2d245737867683a92ba6f8dff52 Mon Sep 17 00:00:00 2001 From: danzel Date: Mon, 27 Aug 2012 13:02:45 +1200 Subject: [PATCH] Make getNearObject always return the closest point to make the clusters do stupid things less often --- src/DistanceGrid.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/DistanceGrid.js b/src/DistanceGrid.js index 70df5fb21..e7632fd66 100644 --- a/src/DistanceGrid.js +++ b/src/DistanceGrid.js @@ -74,7 +74,9 @@ L.DistanceGrid.prototype = { getNearObject: function (point) { var x = this._getCoord(point.x), y = this._getCoord(point.y), - i, j, k, row, cell, len, obj; + i, j, k, row, cell, len, obj, dist, + closestDistSq = this._sqCellSize, + closest = null; for (i = y - 1; i <= y + 1; i++) { row = this._grid[i]; @@ -86,16 +88,17 @@ L.DistanceGrid.prototype = { for (k = 0, len = cell.length; k < len; k++) { obj = cell[k]; - if (this._sqDist(obj._dGridPoint, point) < this._sqCellSize) { - return obj; + dist = this._sqDist(obj._dGridPoint, point); + if (dist < closestDistSq) { + closestDistSq = dist; + closest = obj; } } } } } } - - return null; + return closest; }, _getCoord: function (x) {