Resize change bounding boxes on a zoom change
This commit is contained in:
parent
5e76ec80ce
commit
6b194ed627
1 changed files with 32 additions and 26 deletions
|
@ -89,36 +89,30 @@ OSM.History = function(map) {
|
|||
});
|
||||
}
|
||||
|
||||
function updateMap() {
|
||||
var changesets = [];
|
||||
|
||||
function updateBounds() {
|
||||
group.clearLayers();
|
||||
|
||||
var changesets = [];
|
||||
changesets.forEach(function(changeset) {
|
||||
var bottomLeft = map.project(L.latLng(changeset.bbox.minlat, changeset.bbox.minlon)),
|
||||
topRight = map.project(L.latLng(changeset.bbox.maxlat, changeset.bbox.maxlon)),
|
||||
width = topRight.x - bottomLeft.x,
|
||||
height = bottomLeft.y - topRight.y,
|
||||
minSize = 20; // Min width/height of changeset in pixels
|
||||
|
||||
$("[data-changeset]").each(function () {
|
||||
var changeset = $(this).data('changeset');
|
||||
if (changeset.bbox) {
|
||||
var bottomLeft = map.project(L.latLng(changeset.bbox.minlat, changeset.bbox.minlon)),
|
||||
topRight = map.project(L.latLng(changeset.bbox.maxlat, changeset.bbox.maxlon)),
|
||||
width = topRight.x - bottomLeft.x,
|
||||
height = bottomLeft.y - topRight.y,
|
||||
minSize = 20; // Min width/height of changeset in pixels
|
||||
|
||||
if (width < minSize) {
|
||||
bottomLeft.x -= ((minSize - width) / 2);
|
||||
topRight.x += ((minSize - width) / 2);
|
||||
}
|
||||
|
||||
if (height < minSize) {
|
||||
bottomLeft.y += ((minSize - height) / 2);
|
||||
topRight.y -= ((minSize - height) / 2);
|
||||
}
|
||||
|
||||
var bounds = [map.unproject(bottomLeft),
|
||||
map.unproject(topRight)];
|
||||
|
||||
changeset.bounds = L.latLngBounds(bounds);
|
||||
changesets.push(changeset);
|
||||
if (width < minSize) {
|
||||
bottomLeft.x -= ((minSize - width) / 2);
|
||||
topRight.x += ((minSize - width) / 2);
|
||||
}
|
||||
|
||||
if (height < minSize) {
|
||||
bottomLeft.y += ((minSize - height) / 2);
|
||||
topRight.y -= ((minSize - height) / 2);
|
||||
}
|
||||
|
||||
changeset.bounds = L.latLngBounds(map.unproject(bottomLeft),
|
||||
map.unproject(topRight));
|
||||
});
|
||||
|
||||
changesets.sort(function (a, b) {
|
||||
|
@ -132,6 +126,16 @@ OSM.History = function(map) {
|
|||
rect.id = changeset.id;
|
||||
rect.addTo(group);
|
||||
}
|
||||
}
|
||||
|
||||
function updateMap() {
|
||||
changesets = $("[data-changeset]").map(function (index,element) {
|
||||
return $(element).data('changeset');
|
||||
}).get().filter(function (changeset) {
|
||||
return changeset.bbox;
|
||||
});
|
||||
|
||||
updateBounds();
|
||||
|
||||
if (window.location.pathname !== '/history') {
|
||||
var bounds = group.getBounds();
|
||||
|
@ -151,6 +155,8 @@ OSM.History = function(map) {
|
|||
map.on("moveend", update);
|
||||
}
|
||||
|
||||
map.on("zoomend", updateBounds);
|
||||
|
||||
update();
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue