From: Tom Hughes Date: Thu, 11 Oct 2018 17:47:47 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/pull/2018' X-Git-Tag: live~2864 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/1aa63d92bcbcca6edcd66c55a026e0b1e4413603?hp=aef5273e952b814e171beab7c7d6ee09637350fb Merge remote-tracking branch 'upstream/pull/2018' --- diff --git a/app/assets/javascripts/index/history.js b/app/assets/javascripts/index/history.js index 9babb6e32..3fcc2f790 100644 --- a/app/assets/javascripts/index/history.js +++ b/app/assets/javascripts/index/history.js @@ -97,24 +97,28 @@ OSM.History = function(map) { $("[data-changeset]").each(function () { var changeset = $(this).data('changeset'); if (changeset.bbox) { - var latWidth = changeset.bbox.maxlat - changeset.bbox.minlat, - lonWidth = changeset.bbox.maxlon - changeset.bbox.minlon, - minLatWidth = 0.0004, - minLonWidth = 0.0008; - - var bounds = [[changeset.bbox.minlat, changeset.bbox.minlon], - [changeset.bbox.maxlat, changeset.bbox.maxlon]]; - - if (latWidth < minLatWidth) { - bounds[0][0] -= ((minLatWidth - latWidth) / 2); - bounds[1][0] += ((minLatWidth - latWidth) / 2); + var minProjection = map.project(L.latLng(changeset.bbox.minlat, changeset.bbox.minlon)), + maxProjection = map.project(L.latLng(changeset.bbox.maxlat, changeset.bbox.maxlon)), + xGap = maxProjection.x - minProjection.x, + yGap = minProjection.y - maxProjection.y, + minXGap = 40, // Min width/height of changeset in pixels + minYGap = 40; + + if (xGap < minXGap) { + minProjection.x -= ((minXGap - xGap) / 2); + maxProjection.x += ((minXGap - xGap) / 2); } - if (lonWidth < minLonWidth) { - bounds[0][1] -= ((minLonWidth - lonWidth) / 2); - bounds[1][1] += ((minLonWidth - lonWidth) / 2); + if (yGap < minYGap) { + minProjection.y += ((minYGap - yGap) / 2); + maxProjection.y -= ((minYGap - yGap) / 2); } + var minUnProjection = map.unproject(minProjection), + maxUnProjection = map.unproject(maxProjection), + bounds = [minUnProjection, + maxUnProjection]; + changeset.bounds = L.latLngBounds(bounds); changesets.push(changeset); }