Animate DragZoom
This commit is contained in:
@@ -2,11 +2,19 @@ goog.provide('ol.interaction.DragZoom');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('ol.events.condition');
|
goog.require('ol.events.condition');
|
||||||
|
goog.require('ol.extent');
|
||||||
goog.require('ol.interaction.DragBox');
|
goog.require('ol.interaction.DragBox');
|
||||||
|
goog.require('ol.interaction.Interaction');
|
||||||
goog.require('ol.style.Stroke');
|
goog.require('ol.style.Stroke');
|
||||||
goog.require('ol.style.Style');
|
goog.require('ol.style.Style');
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @define {number} Timeout duration.
|
||||||
|
*/
|
||||||
|
ol.interaction.DRAGZOOM_ANIMATION_DURATION = 200;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows the user to zoom the map by clicking and dragging on the map,
|
* Allows the user to zoom the map by clicking and dragging on the map,
|
||||||
@@ -47,10 +55,12 @@ goog.inherits(ol.interaction.DragZoom, ol.interaction.DragBox);
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.interaction.DragZoom.prototype.onBoxEnd = function() {
|
ol.interaction.DragZoom.prototype.onBoxEnd = function() {
|
||||||
this.getMap().withFrozenRendering(goog.bind(function() {
|
|
||||||
// FIXME works for View2D only
|
// FIXME works for View2D only
|
||||||
var view = this.getMap().getView().getView2D();
|
var map = this.getMap();
|
||||||
|
var view = map.getView().getView2D();
|
||||||
view.fitExtent(this.getGeometry().getExtent(), this.getMap().getSize());
|
var extent = this.getGeometry().getExtent();
|
||||||
}, this));
|
var center = ol.extent.getCenter(extent);
|
||||||
|
ol.interaction.Interaction.zoom(map, view,
|
||||||
|
view.getResolutionForExtent(extent, map.getSize()),
|
||||||
|
center, ol.interaction.DRAGZOOM_ANIMATION_DURATION);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user