From 27d30e428655ecb95f73240e21b984bbfc103094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 5 Dec 2014 12:13:20 +0100 Subject: [PATCH] Replay replays in correct order for hit detection --- src/ol/render/canvas/canvasreplay.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index e2ab0f38e0..e47cee9a74 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1892,12 +1892,13 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(context, extent, ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function( zs, context, extent, transform, viewRotation, skippedFeaturesHash, geometryCallback) { - var i, ii, replays, replayType, replay, result; + var i, ii, j, replays, replay, result; for (i = 0, ii = zs.length; i < ii; ++i) { replays = this.replaysByZIndex_[zs[i].toString()]; - for (replayType in replays) { - replay = replays[replayType]; - if (ol.extent.intersects(extent, replay.getExtent())) { + for (j = ol.render.REPLAY_ORDER.length - 1; j >= 0; --j) { + replay = replays[ol.render.REPLAY_ORDER[j]]; + if (goog.isDef(replay) && + ol.extent.intersects(extent, replay.getExtent())) { result = replay.replayHitDetection(context, transform, viewRotation, skippedFeaturesHash, geometryCallback); if (result) {