Remove the requirement to provide a size to ol.View#fit()

This commit is contained in:
Andreas Hocevar
2016-12-16 11:03:54 +01:00
parent 40afb9d40d
commit 20155ce2a7
14 changed files with 72 additions and 48 deletions
+14 -6
View File
@@ -672,12 +672,22 @@ ol.View.prototype.getZoom = function() {
* Takes care of the map angle.
* @param {ol.geom.SimpleGeometry|ol.Extent} geometryOrExtent The geometry or
* extent to fit the view to.
* @param {ol.Size} size The size in pixels of the box to fit the extent into.
* Will often be `mep.getSize()`.
* @param {olx.view.FitOptions=} opt_options Options.
* @api
* @api stable
*/
ol.View.prototype.fit = function(geometryOrExtent, size, opt_options) {
ol.View.prototype.fit = function(geometryOrExtent, opt_options) {
var options = opt_options || {};
var size = options.size;
if (!size) {
size = [100, 100];
var selector = '.ol-viewport[data-view="' + ol.getUid(this) + '"]';
var element = document.querySelector(selector);
if (element) {
var metrics = getComputedStyle(element);
size[0] = parseInt(metrics.width, 10);
size[1] = parseInt(metrics.height, 10);
}
}
/** @type {ol.geom.SimpleGeometry} */
var geometry;
if (!(geometryOrExtent instanceof ol.geom.SimpleGeometry)) {
@@ -690,8 +700,6 @@ ol.View.prototype.fit = function(geometryOrExtent, size, opt_options) {
geometry = geometryOrExtent;
}
var options = opt_options || {};
var padding = options.padding !== undefined ? options.padding : [0, 0, 0, 0];
var constrainResolution = options.constrainResolution !== undefined ?
options.constrainResolution : true;