Remove the requirement to provide a size to ol.View#fit()
This commit is contained in:
@@ -318,8 +318,6 @@ ol.control.OverviewMap.prototype.resetExtent_ = function() {
|
||||
var view = map.getView();
|
||||
var extent = view.calculateExtent(mapSize);
|
||||
|
||||
var ovmapSize = /** @type {ol.Size} */ (ovmap.getSize());
|
||||
|
||||
var ovview = ovmap.getView();
|
||||
|
||||
// get how many times the current map overview could hold different
|
||||
@@ -329,7 +327,7 @@ ol.control.OverviewMap.prototype.resetExtent_ = function() {
|
||||
ol.OVERVIEWMAP_MAX_RATIO / ol.OVERVIEWMAP_MIN_RATIO) / Math.LN2;
|
||||
var ratio = 1 / (Math.pow(2, steps / 2) * ol.OVERVIEWMAP_MIN_RATIO);
|
||||
ol.extent.scaleFromCenter(extent, ratio);
|
||||
ovview.fit(extent, ovmapSize);
|
||||
ovview.fit(extent);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -73,6 +73,5 @@ ol.control.ZoomToExtent.prototype.handleZoomToExtent_ = function() {
|
||||
var map = this.getMap();
|
||||
var view = map.getView();
|
||||
var extent = !this.extent_ ? view.getProjection().getExtent() : this.extent_;
|
||||
var size = /** @type {ol.Size} */ (map.getSize());
|
||||
view.fit(extent, size);
|
||||
view.fit(extent);
|
||||
};
|
||||
|
||||
@@ -1092,6 +1092,7 @@ ol.Map.prototype.handleViewChanged_ = function() {
|
||||
}
|
||||
var view = this.getView();
|
||||
if (view) {
|
||||
this.viewport_.setAttribute('data-view', ol.getUid(view));
|
||||
this.viewPropertyListenerKey_ = ol.events.listen(
|
||||
view, ol.Object.EventType.PROPERTYCHANGE,
|
||||
this.handleViewPropertyChanged_, this);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user