mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-15 13:38:26 +02:00
Fix leaking globals and add test case
This commit is contained in:
@@ -252,17 +252,17 @@ iD.Map = function() {
|
||||
BR = projection(br);
|
||||
|
||||
// Calculate maximum zoom that fits extent
|
||||
hFactor = (BR[0] - TL[0]) / dimensions[0];
|
||||
vFactor = (BR[1] - TL[1]) / dimensions[1];
|
||||
hZoomDiff = Math.log(Math.abs(hFactor)) / Math.LN2;
|
||||
vZoomDiff = Math.log(Math.abs(vFactor)) / Math.LN2;
|
||||
zoomDiff = map.zoom() - Math.max(hZoomDiff, vZoomDiff);
|
||||
var hFactor = (BR[0] - TL[0]) / dimensions[0],
|
||||
vFactor = (BR[1] - TL[1]) / dimensions[1],
|
||||
hZoomDiff = Math.log(Math.abs(hFactor)) / Math.LN2,
|
||||
vZoomDiff = Math.log(Math.abs(vFactor)) / Math.LN2,
|
||||
newZoom = map.zoom() - Math.max(hZoomDiff, vZoomDiff);
|
||||
|
||||
// Calculate center of projected extent
|
||||
midPoint = [(TL[0] + BR[0]) / 2, (TL[1] + BR[1]) / 2];
|
||||
midLoc = projection.invert(midPoint);
|
||||
var midPoint = [(TL[0] + BR[0]) / 2, (TL[1] + BR[1]) / 2],
|
||||
midLoc = projection.invert(midPoint);
|
||||
|
||||
map.zoom(zoomDiff).center(midLoc);
|
||||
map.zoom(newZoom).center(midLoc);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -53,11 +53,17 @@ describe('Map', function() {
|
||||
});
|
||||
|
||||
describe('#extent', function() {
|
||||
it('reports extent', function() {
|
||||
it('gets and sets extent', function() {
|
||||
expect(map.size([100, 100])).to.equal(map);
|
||||
expect(map.center([0, 0])).to.equal(map);
|
||||
expect(map.extent()[0][0]).to.be.closeTo(-17.5, 0.5);
|
||||
expect(map.extent()[1][0]).to.be.closeTo(17.5, 0.5);
|
||||
expect(map.extent([10, 1], [30, 1]));
|
||||
expect(map.extent()[0][0]).to.be.closeTo(10, 0.1);
|
||||
expect(map.extent()[1][0]).to.be.closeTo(30, 0.1);
|
||||
expect(map.extent([-1, -20], [1, -40]));
|
||||
expect(map.extent()[0][1]).to.be.closeTo(-20, 0.1);
|
||||
expect(map.extent()[1][1]).to.be.closeTo(-40, 0.1);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user