Add experimental controls infrastructure, thanks @elemoine

This commit is contained in:
Tom Payne
2012-07-18 13:32:22 +02:00
parent 1af79ede29
commit c6343ed2bc
11 changed files with 214 additions and 381 deletions
+34
View File
@@ -0,0 +1,34 @@
goog.provide('ol.control.DblClickZoom');
goog.require('goog.events.EventType');
goog.require('ol.Control');
goog.require('ol.MapBrowserEvent');
/**
* @constructor
* @extends {ol.Control}
*/
ol.control.DblClickZoom = function() {
goog.base(this);
};
goog.inherits(ol.control.DblClickZoom, ol.Control);
/**
* @inheritDoc
*/
ol.control.DblClickZoom.prototype.handleMapBrowserEvent = function(event) {
if (event.type == goog.events.EventType.DBLCLICK) {
var map = event.map;
map.whileFrozen(function() {
// FIXME compute correct center for zoom
map.setCenter(event.getCoordinate());
var browserEventObject = event.getBrowserEventObject();
var scale = browserEventObject.shiftKey ? 2 : 0.5;
map.setResolution(scale * map.getResolution());
});
event.preventDefault();
}
};