@@ -4,4 +4,5 @@
|
|||||||
@exportProperty ol.View2D.prototype.constrainRotation
|
@exportProperty ol.View2D.prototype.constrainRotation
|
||||||
@exportProperty ol.View2D.prototype.fitExtent
|
@exportProperty ol.View2D.prototype.fitExtent
|
||||||
@exportProperty ol.View2D.prototype.getView2D
|
@exportProperty ol.View2D.prototype.getView2D
|
||||||
|
@exportProperty ol.View2D.prototype.getZoom
|
||||||
@exportProperty ol.View2D.prototype.setZoom
|
@exportProperty ol.View2D.prototype.setZoom
|
||||||
|
|||||||
@@ -363,6 +363,31 @@ ol.View2D.prototype.getView3D = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current zoom level. Return undefined if the current
|
||||||
|
* resolution is undefined or not a "constrained resolution".
|
||||||
|
* @return {number|undefined} Zoom.
|
||||||
|
*/
|
||||||
|
ol.View2D.prototype.getZoom = function() {
|
||||||
|
var zoom;
|
||||||
|
var resolution = this.getResolution();
|
||||||
|
|
||||||
|
if (goog.isDef(resolution)) {
|
||||||
|
var res, z = 0;
|
||||||
|
do {
|
||||||
|
res = this.constrainResolution(this.maxResolution_, z);
|
||||||
|
if (res == resolution) {
|
||||||
|
zoom = z;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
++z;
|
||||||
|
} while (res > this.minResolution_);
|
||||||
|
}
|
||||||
|
|
||||||
|
return zoom;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fit the given extent based on the given map size.
|
* Fit the given extent based on the given map size.
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
|
|||||||
@@ -70,6 +70,38 @@ describe('ol.View2D', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('#getZoom', function() {
|
||||||
|
var view;
|
||||||
|
beforeEach(function() {
|
||||||
|
view = new ol.View2D({
|
||||||
|
resolutions: [512, 256, 128, 64, 32, 16]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns correct zoom levels', function() {
|
||||||
|
view.setResolution(undefined);
|
||||||
|
expect(view.getZoom()).to.be(undefined);
|
||||||
|
|
||||||
|
view.setResolution(511);
|
||||||
|
expect(view.getZoom()).to.be(undefined);
|
||||||
|
|
||||||
|
view.setResolution(512);
|
||||||
|
expect(view.getZoom()).to.be(0);
|
||||||
|
|
||||||
|
view.setResolution(64);
|
||||||
|
expect(view.getZoom()).to.be(3);
|
||||||
|
|
||||||
|
view.setResolution(65);
|
||||||
|
expect(view.getZoom()).to.be(undefined);
|
||||||
|
|
||||||
|
view.setResolution(16);
|
||||||
|
expect(view.getZoom()).to.be(5);
|
||||||
|
|
||||||
|
view.setResolution(15);
|
||||||
|
expect(view.getZoom()).to.be(undefined);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
goog.require('ol.View2D');
|
goog.require('ol.View2D');
|
||||||
|
|||||||
Reference in New Issue
Block a user