111 lines
3.3 KiB
JavaScript
111 lines
3.3 KiB
JavaScript
goog.provide('ol.interaction');
|
|
|
|
goog.require('ol.Collection');
|
|
goog.require('ol.Kinetic');
|
|
goog.require('ol.interaction.DoubleClickZoom');
|
|
goog.require('ol.interaction.DragPan');
|
|
goog.require('ol.interaction.DragRotate');
|
|
goog.require('ol.interaction.DragZoom');
|
|
goog.require('ol.interaction.KeyboardPan');
|
|
goog.require('ol.interaction.KeyboardZoom');
|
|
goog.require('ol.interaction.MouseWheelZoom');
|
|
goog.require('ol.interaction.TouchPan');
|
|
goog.require('ol.interaction.TouchRotate');
|
|
goog.require('ol.interaction.TouchZoom');
|
|
|
|
|
|
/**
|
|
* This method is a convenience method to create a set of interactions
|
|
* to be used with an {@link ol.Map}. Specific interactions can be excluded by
|
|
* setting the appropriate option to false in the constructor options,
|
|
* but the order of the interactions is fixed. If you want to specify a
|
|
* different order for interactions, you will need to create your own
|
|
* {@link ol.interaction} instances and insert them into an
|
|
* {@link ol.Collection} in the order you want before creating your ol.Map
|
|
* instance.
|
|
* @param {ol.interaction.DefaultsOptions=} opt_options Defaults options.
|
|
* @return {ol.Collection} A collection of interactions to be used with
|
|
* the ol.Map constructor's interactions option.
|
|
* @todo stability experimental
|
|
*/
|
|
ol.interaction.defaults = function(opt_options) {
|
|
|
|
var options = goog.isDef(opt_options) ? opt_options : {};
|
|
|
|
var interactions = new ol.Collection();
|
|
|
|
var kinetic = new ol.Kinetic(-0.005, 0.05, 100);
|
|
|
|
var altShiftDragRotate = goog.isDef(options.altShiftDragRotate) ?
|
|
options.altShiftDragRotate : true;
|
|
if (altShiftDragRotate) {
|
|
interactions.push(new ol.interaction.DragRotate());
|
|
}
|
|
|
|
var doubleClickZoom = goog.isDef(options.doubleClickZoom) ?
|
|
options.doubleClickZoom : true;
|
|
if (doubleClickZoom) {
|
|
interactions.push(new ol.interaction.DoubleClickZoom({
|
|
delta: options.zoomDelta,
|
|
duration: options.zoomDuration
|
|
}));
|
|
}
|
|
|
|
var touchPan = goog.isDef(options.touchPan) ?
|
|
options.touchPan : true;
|
|
if (touchPan) {
|
|
interactions.push(new ol.interaction.TouchPan({
|
|
kinetic: kinetic
|
|
}));
|
|
}
|
|
|
|
var touchRotate = goog.isDef(options.touchRotate) ?
|
|
options.touchRotate : true;
|
|
if (touchRotate) {
|
|
interactions.push(new ol.interaction.TouchRotate());
|
|
}
|
|
|
|
var touchZoom = goog.isDef(options.touchZoom) ?
|
|
options.touchZoom : true;
|
|
if (touchZoom) {
|
|
interactions.push(new ol.interaction.TouchZoom({
|
|
duration: options.zoomDuration
|
|
}));
|
|
}
|
|
|
|
var dragPan = goog.isDef(options.dragPan) ?
|
|
options.dragPan : true;
|
|
if (dragPan) {
|
|
interactions.push(new ol.interaction.DragPan({
|
|
kinetic: kinetic
|
|
}));
|
|
}
|
|
|
|
var keyboard = goog.isDef(options.keyboard) ?
|
|
options.keyboard : true;
|
|
if (keyboard) {
|
|
interactions.push(new ol.interaction.KeyboardPan());
|
|
interactions.push(new ol.interaction.KeyboardZoom({
|
|
delta: options.zoomDelta,
|
|
duration: options.zoomDuration
|
|
}));
|
|
}
|
|
|
|
var mouseWheelZoom = goog.isDef(options.mouseWheelZoom) ?
|
|
options.mouseWheelZoom : true;
|
|
if (mouseWheelZoom) {
|
|
interactions.push(new ol.interaction.MouseWheelZoom({
|
|
duration: options.zoomDuration
|
|
}));
|
|
}
|
|
|
|
var shiftDragZoom = goog.isDef(options.shiftDragZoom) ?
|
|
options.shiftDragZoom : true;
|
|
if (shiftDragZoom) {
|
|
interactions.push(new ol.interaction.DragZoom());
|
|
}
|
|
|
|
return interactions;
|
|
|
|
};
|