You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.1 KiB
61 lines
2.1 KiB
/**
|
|
* @module ol/control/defaults
|
|
*/
|
|
import Attribution from './Attribution.js';
|
|
import Collection from '../Collection.js';
|
|
import Rotate from './Rotate.js';
|
|
import Zoom from './Zoom.js';
|
|
|
|
/**
|
|
* @typedef {Object} DefaultsOptions
|
|
* @property {boolean} [attribution=true] Include
|
|
* {@link module:ol/control/Attribution~Attribution}.
|
|
* @property {import("./Attribution.js").Options} [attributionOptions]
|
|
* Options for {@link module:ol/control/Attribution~Attribution}.
|
|
* @property {boolean} [rotate=true] Include
|
|
* {@link module:ol/control/Rotate~Rotate}.
|
|
* @property {import("./Rotate.js").Options} [rotateOptions] Options
|
|
* for {@link module:ol/control/Rotate~Rotate}.
|
|
* @property {boolean} [zoom] Include {@link module:ol/control/Zoom~Zoom}.
|
|
* @property {import("./Zoom.js").Options} [zoomOptions] Options for
|
|
* {@link module:ol/control/Zoom~Zoom}.
|
|
*/
|
|
|
|
/**
|
|
* Set of controls included in maps by default. Unless configured otherwise,
|
|
* this returns a collection containing an instance of each of the following
|
|
* controls:
|
|
* * {@link module:ol/control/Zoom~Zoom}
|
|
* * {@link module:ol/control/Rotate~Rotate}
|
|
* * {@link module:ol/control/Attribution~Attribution}
|
|
*
|
|
* @param {DefaultsOptions} [options] Options for the default controls.
|
|
* @return {Collection<import("./Control.js").default>} A collection of controls
|
|
* to be used with the {@link module:ol/Map~Map} constructor's `controls` option.
|
|
* @api
|
|
*/
|
|
export function defaults(options) {
|
|
options = options ? options : {};
|
|
|
|
/** @type {Collection<import("./Control.js").default>} */
|
|
const controls = new Collection();
|
|
|
|
const zoomControl = options.zoom !== undefined ? options.zoom : true;
|
|
if (zoomControl) {
|
|
controls.push(new Zoom(options.zoomOptions));
|
|
}
|
|
|
|
const rotateControl = options.rotate !== undefined ? options.rotate : true;
|
|
if (rotateControl) {
|
|
controls.push(new Rotate(options.rotateOptions));
|
|
}
|
|
|
|
const attributionControl =
|
|
options.attribution !== undefined ? options.attribution : true;
|
|
if (attributionControl) {
|
|
controls.push(new Attribution(options.attributionOptions));
|
|
}
|
|
|
|
return controls;
|
|
}
|