From: J Guthrie Date: Sat, 6 Oct 2018 23:33:54 +0000 (+0100) Subject: Convert degrees min-width to pixels min-width X-Git-Tag: live~2867^2~1 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/e976f316b78355967a0deb2f78f0d5e4eb69ee47 Convert degrees min-width to pixels min-width --- diff --git a/app/assets/javascripts/index/history.js b/app/assets/javascripts/index/history.js index 9babb6e32..d92e56db6 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); }