{"version":3,"sources":["../../src/ol/util.js","../../src/ol/AssertionError.js","../../src/ol/CollectionEventType.js","../../src/ol/ObjectEventType.js","../../src/ol/obj.js","../../src/ol/events.js","../../src/ol/Disposable.js","../../src/ol/functions.js","../../../src/ol/events/Event.js","../../../src/ol/events/Target.js","../../../src/ol/events/EventType.js","../../src/ol/Observable.js","../../src/ol/Object.js","../../src/ol/Collection.js","../../src/ol/MapEvent.js","../../src/ol/MapBrowserEvent.js","../../src/ol/webgl.js","../../src/ol/has.js","../../src/ol/MapBrowserEventType.js","../../src/ol/MapBrowserPointerEvent.js","../../../src/ol/pointer/EventType.js","../../../src/ol/pointer/EventSource.js","../../../src/ol/pointer/MouseSource.js","../../../src/ol/pointer/MsSource.js","../../../src/ol/pointer/NativeSource.js","../../../src/ol/pointer/PointerEvent.js","../../src/ol/array.js","../../../src/ol/pointer/TouchSource.js","../../../src/ol/pointer/PointerEventHandler.js","../../src/ol/MapBrowserEventHandler.js","../../src/ol/MapEventType.js","../../src/ol/MapProperty.js","../../../src/ol/render/EventType.js","../../src/ol/TileState.js","../../src/ol/asserts.js","../../../src/ol/structs/PriorityQueue.js","../../src/ol/TileQueue.js","../../../src/ol/tilegrid/common.js","../../src/ol/math.js","../../src/ol/centerconstraint.js","../../src/ol/resolutionconstraint.js","../../src/ol/rotationconstraint.js","../../src/ol/ViewHint.js","../../src/ol/ViewProperty.js","../../src/ol/string.js","../../src/ol/coordinate.js","../../src/ol/easing.js","../../../src/ol/extent/Corner.js","../../../src/ol/extent/Relationship.js","../../src/ol/extent.js","../../../src/ol/geom/GeometryType.js","../../../src/ol/geom/GeometryLayout.js","../../../../src/ol/geom/flat/transform.js","../../src/ol/sphere.js","../../../src/ol/proj/Units.js","../../../src/ol/proj/Projection.js","../../../src/ol/proj/epsg3857.js","../../../src/ol/proj/epsg4326.js","../../../src/ol/proj/projections.js","../../../src/ol/proj/transforms.js","../../src/ol/proj.js","../../src/ol/transform.js","../../../src/ol/geom/Geometry.js","../../../src/ol/geom/SimpleGeometry.js","../../../../src/ol/geom/flat/area.js","../../../../src/ol/geom/flat/closest.js","../../../../src/ol/geom/flat/deflate.js","../../../../src/ol/geom/flat/inflate.js","../../../../src/ol/geom/flat/simplify.js","../../../src/ol/geom/LinearRing.js","../../../src/ol/geom/Point.js","../../../../src/ol/geom/flat/contains.js","../../../../src/ol/geom/flat/interiorpoint.js","../../../../src/ol/geom/flat/segments.js","../../../../src/ol/geom/flat/intersectsextent.js","../../../../src/ol/geom/flat/reverse.js","../../../../src/ol/geom/flat/orient.js","../../../src/ol/geom/Polygon.js","../../src/ol/View.js","../../src/ol/dom.js","../../../src/ol/layer/Property.js","../../../src/ol/layer/Base.js","../../../src/ol/source/State.js","../../../src/ol/layer/Group.js","../../src/ol/size.js","../../src/ol/PluggableMap.js","../../../src/ol/control/Control.js","../../src/ol/css.js","../../../src/ol/layer/Layer.js","../../../src/ol/control/Attribution.js","../../../src/ol/control/Rotate.js","../../../src/ol/control/Zoom.js","../../../src/ol/control/util.js","../../src/ol/Kinetic.js","../../../src/ol/interaction/Property.js","../../../src/ol/interaction/Interaction.js","../../../src/ol/interaction/DoubleClickZoom.js","../../../src/ol/events/condition.js","../../../src/ol/interaction/Pointer.js","../../../src/ol/interaction/DragPan.js","../../../src/ol/interaction/DragRotate.js","../../../src/ol/render/Box.js","../../../src/ol/interaction/DragBox.js","../../../src/ol/interaction/DragZoom.js","../../../src/ol/events/KeyCode.js","../../../src/ol/interaction/KeyboardPan.js","../../../src/ol/interaction/KeyboardZoom.js","../../../src/ol/interaction/MouseWheelZoom.js","../../../src/ol/interaction/PinchRotate.js","../../../src/ol/interaction/PinchZoom.js","../../../src/ol/interaction/DragAndDrop.js","../../../src/ol/interaction/DragRotateAndZoom.js","../../src/ol/Feature.js","../../../src/ol/geom/Circle.js","../../../../src/ol/geom/flat/interpolate.js","../../../../src/ol/geom/flat/length.js","../../../src/ol/geom/LineString.js","../../../src/ol/geom/MultiLineString.js","../../../src/ol/geom/MultiPoint.js","../../../../src/ol/geom/flat/center.js","../../../src/ol/geom/MultiPolygon.js","../../src/ol/LayerType.js","../../../src/ol/layer/VectorRenderType.js","../../src/ol/color.js","../../src/ol/colorlike.js","../../src/ol/ImageState.js","../../../src/ol/structs/LRUCache.js","../../../src/ol/render/canvas.js","../../../src/ol/style/Image.js","../../../src/ol/style/RegularShape.js","../../../src/ol/style/Circle.js","../../../src/ol/style/Fill.js","../../../src/ol/style/Stroke.js","../../../src/ol/style/Style.js","../../../src/ol/layer/Vector.js","../../../src/ol/format/FormatType.js","../../src/ol/featureloader.js","../../src/ol/loadingstrategy.js","../../../src/ol/source/Source.js","../../../src/ol/source/VectorEventType.js","node_modules/quickselect/quickselect.js","node_modules/rbush/index.js","../../../src/ol/structs/RBush.js","../../../src/ol/source/Vector.js","../../../src/ol/interaction/Draw.js","../../../src/ol/interaction/Extent.js","../../../src/ol/interaction/Modify.js","../../../src/ol/interaction/Select.js","../../../src/ol/interaction/Snap.js","../../../src/ol/interaction/Translate.js","../../src/ol/interaction.js","../../../src/ol/reproj/common.js","../../src/ol/ImageBase.js","../../src/ol/ImageCanvas.js","../../../src/ol/render/Event.js","../../../src/ol/render/VectorContext.js","../../../../src/ol/render/canvas/Immediate.js","../../../src/ol/style/IconImageCache.js","../../../src/ol/renderer/Map.js","../../../../src/ol/renderer/canvas/Map.js","../../../src/ol/renderer/Layer.js","../../../../src/ol/renderer/canvas/Layer.js","../../../../src/ol/renderer/canvas/IntermediateCanvas.js","../../../../src/ol/renderer/canvas/ImageLayer.js","../../src/ol/TileRange.js","../../../../src/ol/renderer/canvas/TileLayer.js","../../../src/ol/render/ReplayGroup.js","../../../src/ol/render/ReplayType.js","../../../../src/ol/geom/flat/textpath.js","../../../../src/ol/render/canvas/Instruction.js","../../../src/ol/render/replay.js","../../../../src/ol/render/canvas/Replay.js","../../../../src/ol/render/canvas/ImageReplay.js","../../../../src/ol/render/canvas/LineStringReplay.js","../../../../src/ol/render/canvas/PolygonReplay.js","../../../../src/ol/geom/flat/straightchunk.js","../../../src/ol/style/TextPlacement.js","../../../../src/ol/render/canvas/TextReplay.js","../../../../src/ol/render/canvas/ReplayGroup.js","../../../src/ol/renderer/vector.js","../../../../src/ol/renderer/canvas/VectorLayer.js","../../../src/ol/layer/VectorTileRenderType.js","../../../../src/ol/renderer/canvas/VectorTileLayer.js","../../src/ol/Map.js","../../../src/ol/format/XLink.js","../../src/ol/xml.js","../../../src/ol/format/XML.js","../../../src/ol/format/xsd.js","../../../src/ol/format/OWS.js","../../../src/ol/format/WMTSCapabilities.js","../../../src/ol/layer/TileProperty.js","../../../src/ol/layer/Tile.js","../../src/ol/tilecoord.js","../../src/ol/tileurlfunction.js","../../src/ol/Tile.js","../../src/ol/ImageTile.js","../../src/ol/TileCache.js","../../src/ol/reproj.js","../../../src/ol/reproj/Triangulation.js","../../../src/ol/reproj/Tile.js","../../../src/ol/tilegrid/TileGrid.js","../../src/ol/tilegrid.js","../../../src/ol/source/Tile.js","../../../src/ol/source/TileEventType.js","../../../src/ol/source/UrlTile.js","../../../src/ol/source/TileImage.js","../../../src/ol/source/WMTSRequestEncoding.js","../../../src/ol/tilegrid/WMTS.js","../../src/ol/uri.js","../../../src/ol/source/WMTS.js","../../../src/ol/source/common.js","../../../src/ol/source/WMSServerType.js","../../../src/ol/source/TileWMS.js","node_modules/ol-layerswitcher/dist/ol-layerswitcher.js","index.js"],"names":["const","let","super","arguments","i","length","feature","featureKey","this","ii","t","tt","gipGraphUrl","capabilitiesUrl","cur_or_default_lat","cur_or_default_lon","cur_zoom_level","homeCoords","homeMercator","hiDPI","DEVICE_PIXEL_RATIO","hidpiLayer","tilePixelRatio","gipGraphSource","TileWMS","url","params","serverType","map","Map","layers","target","view","View","center","zoom","layerSwitcher","LayerSwitcher","addControl","fetch","then","response","text","result","WMTSCapabilities","read","options","layer","matrixSet","style","addLayer","TileLayer","title","source","WMTS"],"mappings":"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","file":"VerkehrslageOOEN.ecaef37a.js","sourceRoot":"..","sourcesContent":["/**\n * @module ol/util\n */\n\n/**\n * @return {?} Any return.\n */\nexport function abstract() {\n return /** @type {?} */ ((function() {\n throw new Error('Unimplemented abstract method.');\n })());\n}\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * Usage:\n *\n * function ParentClass(a, b) { }\n * ParentClass.prototype.foo = function(a) { }\n *\n * function ChildClass(a, b, c) {\n * // Call parent constructor\n * ParentClass.call(this, a, b);\n * }\n * inherits(ChildClass, ParentClass);\n *\n * var child = new ChildClass('a', 'b', 'see');\n * child.foo(); // This works.\n *\n * @param {!Function} childCtor Child constructor.\n * @param {!Function} parentCtor Parent constructor.\n * @function module:ol.inherits\n * @deprecated\n * @api\n */\nexport function inherits(childCtor, parentCtor) {\n childCtor.prototype = Object.create(parentCtor.prototype);\n childCtor.prototype.constructor = childCtor;\n}\n\n/**\n * Counter for getUid.\n * @type {number}\n * @private\n */\nlet uidCounter_ = 0;\n\n/**\n * Gets a unique ID for an object. This mutates the object so that further calls\n * with the same object as a parameter returns the same value. Unique IDs are generated\n * as a strictly increasing sequence. Adapted from goog.getUid.\n *\n * @param {Object} obj The object to get the unique ID for.\n * @return {string} The unique ID for the object.\n * @function module:ol.getUid\n * @api\n */\nexport function getUid(obj) {\n return obj.ol_uid || (obj.ol_uid = String(++uidCounter_));\n}\n\n/**\n * OpenLayers version.\n * @type {string}\n */\nexport const VERSION = 'latest';\n","/**\n * @module ol/AssertionError\n */\nimport {VERSION} from './util.js';\n\n/**\n * Error object thrown when an assertion failed. This is an ECMA-262 Error,\n * extended with a `code` property.\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error.\n */\nclass AssertionError extends Error {\n\n /**\n * @param {number} code Error code.\n */\n constructor(code) {\n const path = VERSION === 'latest' ? VERSION : 'v' + VERSION.split('-')[0];\n const message = 'Assertion failed. See https://openlayers.org/en/' + path +\n '/doc/errors/#' + code + ' for details.';\n\n super(message);\n\n /**\n * Error code. The meaning of the code can be found on\n * https://openlayers.org/en/latest/doc/errors/ (replace `latest` with\n * the version found in the OpenLayers script's header comment if a version\n * other than the latest is used).\n * @type {number}\n * @api\n */\n this.code = code;\n\n /**\n * @type {string}\n */\n this.name = 'AssertionError';\n\n // Re-assign message, see https://github.com/Rich-Harris/buble/issues/40\n this.message = message;\n }\n\n}\n\nexport default AssertionError;\n","/**\n * @module ol/CollectionEventType\n */\n\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when an item is added to the collection.\n * @event module:ol/Collection.CollectionEvent#add\n * @api\n */\n ADD: 'add',\n /**\n * Triggered when an item is removed from the collection.\n * @event module:ol/Collection.CollectionEvent#remove\n * @api\n */\n REMOVE: 'remove'\n};\n","/**\n * @module ol/ObjectEventType\n */\n\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when a property is changed.\n * @event module:ol/Object.ObjectEvent#propertychange\n * @api\n */\n PROPERTYCHANGE: 'propertychange'\n};\n","/**\n * @module ol/obj\n */\n\n\n/**\n * Polyfill for Object.assign(). Assigns enumerable and own properties from\n * one or more source objects to a target object.\n * See https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign.\n *\n * @param {!Object} target The target object.\n * @param {...Object} var_sources The source object(s).\n * @return {!Object} The modified target object.\n */\nexport const assign = (typeof Object.assign === 'function') ? Object.assign : function(target, var_sources) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n const output = Object(target);\n for (let i = 1, ii = arguments.length; i < ii; ++i) {\n const source = arguments[i];\n if (source !== undefined && source !== null) {\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n output[key] = source[key];\n }\n }\n }\n }\n return output;\n};\n\n\n/**\n * Removes all properties from an object.\n * @param {Object} object The object to clear.\n */\nexport function clear(object) {\n for (const property in object) {\n delete object[property];\n }\n}\n\n\n/**\n * Get an array of property values from an object.\n * @param {Object} object The object from which to get the values.\n * @return {!Array} The property values.\n * @template K,V\n */\nexport function getValues(object) {\n const values = [];\n for (const property in object) {\n values.push(object[property]);\n }\n return values;\n}\n\n\n/**\n * Determine if an object has any properties.\n * @param {Object} object The object to check.\n * @return {boolean} The object is empty.\n */\nexport function isEmpty(object) {\n let property;\n for (property in object) {\n return false;\n }\n return !property;\n}\n","/**\n * @module ol/events\n */\nimport {clear} from './obj.js';\n\n\n/**\n * Key to use with {@link module:ol/Observable~Observable#unByKey}.\n * @typedef {Object} EventsKey\n * @property {Object} [bindTo]\n * @property {ListenerFunction} [boundListener]\n * @property {boolean} callOnce\n * @property {number} [deleteIndex]\n * @property {ListenerFunction} listener\n * @property {import(\"./events/Target.js\").EventTargetLike} target\n * @property {string} type\n * @api\n */\n\n\n/**\n * Listener function. This function is called with an event object as argument.\n * When the function returns `false`, event propagation will stop.\n *\n * @typedef {function((Event|import(\"./events/Event.js\").default)): (void|boolean)} ListenerFunction\n * @api\n */\n\n\n/**\n * @param {EventsKey} listenerObj Listener object.\n * @return {ListenerFunction} Bound listener.\n */\nexport function bindListener(listenerObj) {\n const boundListener = function(evt) {\n const listener = listenerObj.listener;\n const bindTo = listenerObj.bindTo || listenerObj.target;\n if (listenerObj.callOnce) {\n unlistenByKey(listenerObj);\n }\n return listener.call(bindTo, evt);\n };\n listenerObj.boundListener = boundListener;\n return boundListener;\n}\n\n\n/**\n * Finds the matching {@link module:ol/events~EventsKey} in the given listener\n * array.\n *\n * @param {!Array} listeners Array of listeners.\n * @param {!Function} listener The listener function.\n * @param {Object=} opt_this The `this` value inside the listener.\n * @param {boolean=} opt_setDeleteIndex Set the deleteIndex on the matching\n * listener, for {@link module:ol/events~unlistenByKey}.\n * @return {EventsKey|undefined} The matching listener object.\n */\nexport function findListener(listeners, listener, opt_this, opt_setDeleteIndex) {\n let listenerObj;\n for (let i = 0, ii = listeners.length; i < ii; ++i) {\n listenerObj = listeners[i];\n if (listenerObj.listener === listener &&\n listenerObj.bindTo === opt_this) {\n if (opt_setDeleteIndex) {\n listenerObj.deleteIndex = i;\n }\n return listenerObj;\n }\n }\n return undefined;\n}\n\n\n/**\n * @param {import(\"./events/Target.js\").EventTargetLike} target Target.\n * @param {string} type Type.\n * @return {Array|undefined} Listeners.\n */\nexport function getListeners(target, type) {\n const listenerMap = getListenerMap(target);\n return listenerMap ? listenerMap[type] : undefined;\n}\n\n\n/**\n * Get the lookup of listeners.\n * @param {Object} target Target.\n * @param {boolean=} opt_create If a map should be created if it doesn't exist.\n * @return {!Object>} Map of\n * listeners by event type.\n */\nfunction getListenerMap(target, opt_create) {\n let listenerMap = target.ol_lm;\n if (!listenerMap && opt_create) {\n listenerMap = target.ol_lm = {};\n }\n return listenerMap;\n}\n\n\n/**\n * Remove the listener map from a target.\n * @param {Object} target Target.\n */\nfunction removeListenerMap(target) {\n delete target.ol_lm;\n}\n\n\n/**\n * Clean up all listener objects of the given type. All properties on the\n * listener objects will be removed, and if no listeners remain in the listener\n * map, it will be removed from the target.\n * @param {import(\"./events/Target.js\").EventTargetLike} target Target.\n * @param {string} type Type.\n */\nfunction removeListeners(target, type) {\n const listeners = getListeners(target, type);\n if (listeners) {\n for (let i = 0, ii = listeners.length; i < ii; ++i) {\n /** @type {import(\"./events/Target.js\").default} */ (target).\n removeEventListener(type, listeners[i].boundListener);\n clear(listeners[i]);\n }\n listeners.length = 0;\n const listenerMap = getListenerMap(target);\n if (listenerMap) {\n delete listenerMap[type];\n if (Object.keys(listenerMap).length === 0) {\n removeListenerMap(target);\n }\n }\n }\n}\n\n\n/**\n * Registers an event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` to a `this` object, and returns\n * a key for use with {@link module:ol/events~unlistenByKey}.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object=} opt_this Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @param {boolean=} opt_once If true, add the listener as one-off listener.\n * @return {EventsKey} Unique key for the listener.\n */\nexport function listen(target, type, listener, opt_this, opt_once) {\n const listenerMap = getListenerMap(target, true);\n let listeners = listenerMap[type];\n if (!listeners) {\n listeners = listenerMap[type] = [];\n }\n let listenerObj = findListener(listeners, listener, opt_this, false);\n if (listenerObj) {\n if (!opt_once) {\n // Turn one-off listener into a permanent one.\n listenerObj.callOnce = false;\n }\n } else {\n listenerObj = /** @type {EventsKey} */ ({\n bindTo: opt_this,\n callOnce: !!opt_once,\n listener: listener,\n target: target,\n type: type\n });\n /** @type {import(\"./events/Target.js\").default} */ (target).\n addEventListener(type, bindListener(listenerObj));\n listeners.push(listenerObj);\n }\n\n return listenerObj;\n}\n\n\n/**\n * Registers a one-off event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` as self-unregistering listener\n * to a `this` object, and returns a key for use with\n * {@link module:ol/events~unlistenByKey} in case the listener needs to be\n * unregistered before it is called.\n *\n * When {@link module:ol/events~listen} is called with the same arguments after this\n * function, the self-unregistering listener will be turned into a permanent\n * listener.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object=} opt_this Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @return {EventsKey} Key for unlistenByKey.\n */\nexport function listenOnce(target, type, listener, opt_this) {\n return listen(target, type, listener, opt_this, true);\n}\n\n\n/**\n * Unregisters an event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * To return a listener, this function needs to be called with the exact same\n * arguments that were used for a previous {@link module:ol/events~listen} call.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object=} opt_this Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n */\nexport function unlisten(target, type, listener, opt_this) {\n const listeners = getListeners(target, type);\n if (listeners) {\n const listenerObj = findListener(listeners, listener, opt_this, true);\n if (listenerObj) {\n unlistenByKey(listenerObj);\n }\n }\n}\n\n\n/**\n * Unregisters event listeners on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * The argument passed to this function is the key returned from\n * {@link module:ol/events~listen} or {@link module:ol/events~listenOnce}.\n *\n * @param {EventsKey} key The key.\n */\nexport function unlistenByKey(key) {\n if (key && key.target) {\n /** @type {import(\"./events/Target.js\").default} */ (key.target).\n removeEventListener(key.type, key.boundListener);\n const listeners = getListeners(key.target, key.type);\n if (listeners) {\n const i = 'deleteIndex' in key ? key.deleteIndex : listeners.indexOf(key);\n if (i !== -1) {\n listeners.splice(i, 1);\n }\n if (listeners.length === 0) {\n removeListeners(key.target, key.type);\n }\n }\n clear(key);\n }\n}\n\n\n/**\n * Unregisters all event listeners on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Target.\n */\nexport function unlistenAll(target) {\n const listenerMap = getListenerMap(target);\n if (listenerMap) {\n for (const type in listenerMap) {\n removeListeners(target, type);\n }\n }\n}\n","/**\n * @module ol/Disposable\n */\n\n/**\n * @classdesc\n * Objects that need to clean up after themselves.\n */\nclass Disposable {\n\n constructor() {\n /**\n * The object has already been disposed.\n * @type {boolean}\n * @private\n */\n this.disposed_ = false;\n }\n\n /**\n * Clean up.\n */\n dispose() {\n if (!this.disposed_) {\n this.disposed_ = true;\n this.disposeInternal();\n }\n }\n\n /**\n * Extension point for disposable objects.\n * @protected\n */\n disposeInternal() {}\n}\n\nexport default Disposable;\n","/**\n * @module ol/functions\n */\n\n/**\n * Always returns true.\n * @returns {boolean} true.\n */\nexport function TRUE() {\n return true;\n}\n\n/**\n * Always returns false.\n * @returns {boolean} false.\n */\nexport function FALSE() {\n return false;\n}\n\n/**\n * A reusable function, used e.g. as a default for callbacks.\n *\n * @return {void} Nothing.\n */\nexport function VOID() {}\n","/**\n * @module ol/events/Event\n */\n\n/**\n * @classdesc\n * Stripped down implementation of the W3C DOM Level 2 Event interface.\n * See https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-interface.\n *\n * This implementation only provides `type` and `target` properties, and\n * `stopPropagation` and `preventDefault` methods. It is meant as base class\n * for higher level events defined in the library, and works with\n * {@link module:ol/events/Target~Target}.\n */\nclass Event {\n\n /**\n * @param {string} type Type.\n */\n constructor(type) {\n\n /**\n * @type {boolean}\n */\n this.propagationStopped;\n\n /**\n * The event type.\n * @type {string}\n * @api\n */\n this.type = type;\n\n /**\n * The event target.\n * @type {Object}\n * @api\n */\n this.target = null;\n }\n\n /**\n * Stop event propagation.\n * @api\n */\n preventDefault() {\n this.propagationStopped = true;\n }\n\n /**\n * Stop event propagation.\n * @api\n */\n stopPropagation() {\n this.propagationStopped = true;\n }\n\n}\n\n\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function stopPropagation(evt) {\n evt.stopPropagation();\n}\n\n\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function preventDefault(evt) {\n evt.preventDefault();\n}\n\nexport default Event;\n","/**\n * @module ol/events/Target\n */\nimport Disposable from '../Disposable.js';\nimport {unlistenAll} from '../events.js';\nimport {VOID} from '../functions.js';\nimport Event from './Event.js';\n\n\n/**\n * @typedef {EventTarget|Target} EventTargetLike\n */\n\n\n/**\n * @classdesc\n * A simplified implementation of the W3C DOM Level 2 EventTarget interface.\n * See https://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-EventTarget.\n *\n * There are two important simplifications compared to the specification:\n *\n * 1. The handling of `useCapture` in `addEventListener` and\n * `removeEventListener`. There is no real capture model.\n * 2. The handling of `stopPropagation` and `preventDefault` on `dispatchEvent`.\n * There is no event target hierarchy. When a listener calls\n * `stopPropagation` or `preventDefault` on an event object, it means that no\n * more listeners after this one will be called. Same as when the listener\n * returns false.\n */\nclass Target extends Disposable {\n constructor() {\n\n super();\n\n /**\n * @private\n * @type {!Object}\n */\n this.pendingRemovals_ = {};\n\n /**\n * @private\n * @type {!Object}\n */\n this.dispatching_ = {};\n\n /**\n * @private\n * @type {!Object>}\n */\n this.listeners_ = {};\n\n }\n\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").ListenerFunction} listener Listener.\n */\n addEventListener(type, listener) {\n let listeners = this.listeners_[type];\n if (!listeners) {\n listeners = this.listeners_[type] = [];\n }\n if (listeners.indexOf(listener) === -1) {\n listeners.push(listener);\n }\n }\n\n /**\n * Dispatches an event and calls all listeners listening for events\n * of this type. The event parameter can either be a string or an\n * Object with a `type` property.\n *\n * @param {{type: string,\n * target: (EventTargetLike|undefined),\n * propagationStopped: (boolean|undefined)}|\n * import(\"./Event.js\").default|string} event Event object.\n * @return {boolean|undefined} `false` if anyone called preventDefault on the\n * event object or if any of the listeners returned false.\n * @api\n */\n dispatchEvent(event) {\n const evt = typeof event === 'string' ? new Event(event) : event;\n const type = evt.type;\n evt.target = this;\n const listeners = this.listeners_[type];\n let propagate;\n if (listeners) {\n if (!(type in this.dispatching_)) {\n this.dispatching_[type] = 0;\n this.pendingRemovals_[type] = 0;\n }\n ++this.dispatching_[type];\n for (let i = 0, ii = listeners.length; i < ii; ++i) {\n if (listeners[i].call(this, evt) === false || evt.propagationStopped) {\n propagate = false;\n break;\n }\n }\n --this.dispatching_[type];\n if (this.dispatching_[type] === 0) {\n let pendingRemovals = this.pendingRemovals_[type];\n delete this.pendingRemovals_[type];\n while (pendingRemovals--) {\n this.removeEventListener(type, VOID);\n }\n delete this.dispatching_[type];\n }\n return propagate;\n }\n }\n\n /**\n * @inheritDoc\n */\n disposeInternal() {\n unlistenAll(this);\n }\n\n /**\n * Get the listeners for a specified event type. Listeners are returned in the\n * order that they will be called in.\n *\n * @param {string} type Type.\n * @return {Array} Listeners.\n */\n getListeners(type) {\n return this.listeners_[type];\n }\n\n /**\n * @param {string=} opt_type Type. If not provided,\n * `true` will be returned if this event target has any listeners.\n * @return {boolean} Has listeners.\n */\n hasListener(opt_type) {\n return opt_type ?\n opt_type in this.listeners_ :\n Object.keys(this.listeners_).length > 0;\n }\n\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").ListenerFunction} listener Listener.\n */\n removeEventListener(type, listener) {\n const listeners = this.listeners_[type];\n if (listeners) {\n const index = listeners.indexOf(listener);\n if (type in this.pendingRemovals_) {\n // make listener a no-op, and remove later in #dispatchEvent()\n listeners[index] = VOID;\n ++this.pendingRemovals_[type];\n } else {\n listeners.splice(index, 1);\n if (listeners.length === 0) {\n delete this.listeners_[type];\n }\n }\n }\n }\n}\n\n\nexport default Target;\n","/**\n * @module ol/events/EventType\n */\n\n/**\n * @enum {string}\n * @const\n */\nexport default {\n /**\n * Generic change event. Triggered when the revision counter is increased.\n * @event module:ol/events/Event~Event#change\n * @api\n */\n CHANGE: 'change',\n\n CLEAR: 'clear',\n CONTEXTMENU: 'contextmenu',\n CLICK: 'click',\n DBLCLICK: 'dblclick',\n DRAGENTER: 'dragenter',\n DRAGOVER: 'dragover',\n DROP: 'drop',\n ERROR: 'error',\n KEYDOWN: 'keydown',\n KEYPRESS: 'keypress',\n LOAD: 'load',\n MOUSEDOWN: 'mousedown',\n MOUSEMOVE: 'mousemove',\n MOUSEOUT: 'mouseout',\n MOUSEUP: 'mouseup',\n MOUSEWHEEL: 'mousewheel',\n MSPOINTERDOWN: 'MSPointerDown',\n RESIZE: 'resize',\n TOUCHSTART: 'touchstart',\n TOUCHMOVE: 'touchmove',\n TOUCHEND: 'touchend',\n WHEEL: 'wheel'\n};\n","/**\n * @module ol/Observable\n */\nimport {listen, unlistenByKey, unlisten, listenOnce} from './events.js';\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * An event target providing convenient methods for listener registration\n * and unregistration. A generic `change` event is always available through\n * {@link module:ol/Observable~Observable#changed}.\n *\n * @fires import(\"./events/Event.js\").Event\n * @api\n */\nclass Observable extends EventTarget {\n constructor() {\n\n super();\n\n /**\n * @private\n * @type {number}\n */\n this.revision_ = 0;\n\n }\n\n /**\n * Increases the revision counter and dispatches a 'change' event.\n * @api\n */\n changed() {\n ++this.revision_;\n this.dispatchEvent(EventType.CHANGE);\n }\n\n /**\n * Get the version number for this object. Each time the object is modified,\n * its version number will be incremented.\n * @return {number} Revision.\n * @api\n */\n getRevision() {\n return this.revision_;\n }\n\n /**\n * Listen for a certain type of event.\n * @param {string|Array} type The event type or array of event types.\n * @param {function(?): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\n on(type, listener) {\n if (Array.isArray(type)) {\n const len = type.length;\n const keys = new Array(len);\n for (let i = 0; i < len; ++i) {\n keys[i] = listen(this, type[i], listener);\n }\n return keys;\n } else {\n return listen(this, /** @type {string} */ (type), listener);\n }\n }\n\n /**\n * Listen once for a certain type of event.\n * @param {string|Array} type The event type or array of event types.\n * @param {function(?): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\n once(type, listener) {\n if (Array.isArray(type)) {\n const len = type.length;\n const keys = new Array(len);\n for (let i = 0; i < len; ++i) {\n keys[i] = listenOnce(this, type[i], listener);\n }\n return keys;\n } else {\n return listenOnce(this, /** @type {string} */ (type), listener);\n }\n }\n\n /**\n * Unlisten for a certain type of event.\n * @param {string|Array} type The event type or array of event types.\n * @param {function(?): ?} listener The listener function.\n * @api\n */\n un(type, listener) {\n if (Array.isArray(type)) {\n for (let i = 0, ii = type.length; i < ii; ++i) {\n unlisten(this, type[i], listener);\n }\n return;\n } else {\n unlisten(this, /** @type {string} */ (type), listener);\n }\n }\n}\n\n\n/**\n * Removes an event listener using the key returned by `on()` or `once()`.\n * @param {import(\"./events.js\").EventsKey|Array} key The key returned by `on()`\n * or `once()` (or an array of keys).\n * @api\n */\nexport function unByKey(key) {\n if (Array.isArray(key)) {\n for (let i = 0, ii = key.length; i < ii; ++i) {\n unlistenByKey(key[i]);\n }\n } else {\n unlistenByKey(/** @type {import(\"./events.js\").EventsKey} */ (key));\n }\n}\n\n\nexport default Observable;\n","/**\n * @module ol/Object\n */\nimport {getUid} from './util.js';\nimport ObjectEventType from './ObjectEventType.js';\nimport Observable from './Observable.js';\nimport Event from './events/Event.js';\nimport {assign} from './obj.js';\n\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Object~BaseObject} instances are instances of this type.\n */\nexport class ObjectEvent extends Event {\n\n /**\n * @param {string} type The event type.\n * @param {string} key The property name.\n * @param {*} oldValue The old value for `key`.\n */\n constructor(type, key, oldValue) {\n super(type);\n\n /**\n * The name of the property whose value is changing.\n * @type {string}\n * @api\n */\n this.key = key;\n\n /**\n * The old value. To get the new value use `e.target.get(e.key)` where\n * `e` is the event object.\n * @type {*}\n * @api\n */\n this.oldValue = oldValue;\n\n }\n\n}\n\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Most non-trivial classes inherit from this.\n *\n * This extends {@link module:ol/Observable} with observable\n * properties, where each property is observable as well as the object as a\n * whole.\n *\n * Classes that inherit from this have pre-defined properties, to which you can\n * add your owns. The pre-defined properties are listed in this documentation as\n * 'Observable Properties', and have their own accessors; for example,\n * {@link module:ol/Map~Map} has a `target` property, accessed with\n * `getTarget()` and changed with `setTarget()`. Not all properties are however\n * settable. There are also general-purpose accessors `get()` and `set()`. For\n * example, `get('target')` is equivalent to `getTarget()`.\n *\n * The `set` accessors trigger a change event, and you can monitor this by\n * registering a listener. For example, {@link module:ol/View~View} has a\n * `center` property, so `view.on('change:center', function(evt) {...});` would\n * call the function whenever the value of the center property changes. Within\n * the function, `evt.target` would be the view, so `evt.target.getCenter()`\n * would return the new center.\n *\n * You can add your own observable properties with\n * `object.set('prop', 'value')`, and retrieve that with `object.get('prop')`.\n * You can listen for changes on that property value with\n * `object.on('change:prop', listener)`. You can get a list of all\n * properties with {@link module:ol/Object~BaseObject#getProperties}.\n *\n * Note that the observable properties are separate from standard JS properties.\n * You can, for example, give your map object a title with\n * `map.title='New title'` and with `map.set('title', 'Another title')`. The\n * first will be a `hasOwnProperty`; the second will appear in\n * `getProperties()`. Only the second is observable.\n *\n * Properties can be deleted by using the unset method. E.g.\n * object.unset('foo').\n *\n * @fires ObjectEvent\n * @api\n */\nclass BaseObject extends Observable {\n\n /**\n * @param {Object=} opt_values An object with key-value pairs.\n */\n constructor(opt_values) {\n super();\n\n // Call {@link module:ol/util~getUid} to ensure that the order of objects' ids is\n // the same as the order in which they were created. This also helps to\n // ensure that object properties are always added in the same order, which\n // helps many JavaScript engines generate faster code.\n getUid(this);\n\n /**\n * @private\n * @type {!Object}\n */\n this.values_ = {};\n\n if (opt_values !== undefined) {\n this.setProperties(opt_values);\n }\n }\n\n /**\n * Gets a value.\n * @param {string} key Key name.\n * @return {*} Value.\n * @api\n */\n get(key) {\n let value;\n if (this.values_.hasOwnProperty(key)) {\n value = this.values_[key];\n }\n return value;\n }\n\n /**\n * Get a list of object property names.\n * @return {Array} List of property names.\n * @api\n */\n getKeys() {\n return Object.keys(this.values_);\n }\n\n /**\n * Get an object of all property names and values.\n * @return {Object} Object.\n * @api\n */\n getProperties() {\n return assign({}, this.values_);\n }\n\n /**\n * @param {string} key Key name.\n * @param {*} oldValue Old value.\n */\n notify(key, oldValue) {\n let eventType;\n eventType = getChangeEventType(key);\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n eventType = ObjectEventType.PROPERTYCHANGE;\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n }\n\n /**\n * Sets a value.\n * @param {string} key Key name.\n * @param {*} value Value.\n * @param {boolean=} opt_silent Update without triggering an event.\n * @api\n */\n set(key, value, opt_silent) {\n if (opt_silent) {\n this.values_[key] = value;\n } else {\n const oldValue = this.values_[key];\n this.values_[key] = value;\n if (oldValue !== value) {\n this.notify(key, oldValue);\n }\n }\n }\n\n /**\n * Sets a collection of key-value pairs. Note that this changes any existing\n * properties and adds new ones (it does not remove any existing properties).\n * @param {Object} values Values.\n * @param {boolean=} opt_silent Update without triggering an event.\n * @api\n */\n setProperties(values, opt_silent) {\n for (const key in values) {\n this.set(key, values[key], opt_silent);\n }\n }\n\n /**\n * Unsets a property.\n * @param {string} key Key name.\n * @param {boolean=} opt_silent Unset without triggering an event.\n * @api\n */\n unset(key, opt_silent) {\n if (key in this.values_) {\n const oldValue = this.values_[key];\n delete this.values_[key];\n if (!opt_silent) {\n this.notify(key, oldValue);\n }\n }\n }\n}\n\n\n/**\n * @type {Object}\n */\nconst changeEventTypeCache = {};\n\n\n/**\n * @param {string} key Key name.\n * @return {string} Change name.\n */\nexport function getChangeEventType(key) {\n return changeEventTypeCache.hasOwnProperty(key) ?\n changeEventTypeCache[key] :\n (changeEventTypeCache[key] = 'change:' + key);\n}\n\n\nexport default BaseObject;\n","/**\n * @module ol/Collection\n */\nimport AssertionError from './AssertionError.js';\nimport CollectionEventType from './CollectionEventType.js';\nimport BaseObject from './Object.js';\nimport Event from './events/Event.js';\n\n\n/**\n * @enum {string}\n * @private\n */\nconst Property = {\n LENGTH: 'length'\n};\n\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Collection~Collection} instances are instances of this\n * type.\n */\nexport class CollectionEvent extends Event {\n\n /**\n * @param {CollectionEventType} type Type.\n * @param {*=} opt_element Element.\n */\n constructor(type, opt_element) {\n super(type);\n\n /**\n * The element that is added to or removed from the collection.\n * @type {*}\n * @api\n */\n this.element = opt_element;\n\n }\n\n}\n\n\n/**\n * @typedef {Object} Options\n * @property {boolean} [unique=false] Disallow the same item from being added to\n * the collection twice.\n */\n\n/**\n * @classdesc\n * An expanded version of standard JS Array, adding convenience methods for\n * manipulation. Add and remove changes to the Collection trigger a Collection\n * event. Note that this does not cover changes to the objects _within_ the\n * Collection; they trigger events on the appropriate object, not on the\n * Collection as a whole.\n *\n * @fires CollectionEvent\n *\n * @template T\n * @api\n */\nclass Collection extends BaseObject {\n\n /**\n * @param {Array=} opt_array Array.\n * @param {Options=} opt_options Collection options.\n */\n constructor(opt_array, opt_options) {\n\n super();\n\n const options = opt_options || {};\n\n /**\n * @private\n * @type {boolean}\n */\n this.unique_ = !!options.unique;\n\n /**\n * @private\n * @type {!Array}\n */\n this.array_ = opt_array ? opt_array : [];\n\n if (this.unique_) {\n for (let i = 0, ii = this.array_.length; i < ii; ++i) {\n this.assertUnique_(this.array_[i], i);\n }\n }\n\n this.updateLength_();\n\n }\n\n /**\n * Remove all elements from the collection.\n * @api\n */\n clear() {\n while (this.getLength() > 0) {\n this.pop();\n }\n }\n\n /**\n * Add elements to the collection. This pushes each item in the provided array\n * to the end of the collection.\n * @param {!Array} arr Array.\n * @return {Collection} This collection.\n * @api\n */\n extend(arr) {\n for (let i = 0, ii = arr.length; i < ii; ++i) {\n this.push(arr[i]);\n }\n return this;\n }\n\n /**\n * Iterate over each element, calling the provided callback.\n * @param {function(T, number, Array): *} f The function to call\n * for every element. This function takes 3 arguments (the element, the\n * index and the array). The return value is ignored.\n * @api\n */\n forEach(f) {\n const array = this.array_;\n for (let i = 0, ii = array.length; i < ii; ++i) {\n f(array[i], i, array);\n }\n }\n\n /**\n * Get a reference to the underlying Array object. Warning: if the array\n * is mutated, no events will be dispatched by the collection, and the\n * collection's \"length\" property won't be in sync with the actual length\n * of the array.\n * @return {!Array} Array.\n * @api\n */\n getArray() {\n return this.array_;\n }\n\n /**\n * Get the element at the provided index.\n * @param {number} index Index.\n * @return {T} Element.\n * @api\n */\n item(index) {\n return this.array_[index];\n }\n\n /**\n * Get the length of this collection.\n * @return {number} The length of the array.\n * @observable\n * @api\n */\n getLength() {\n return this.get(Property.LENGTH);\n }\n\n /**\n * Insert an element at the provided index.\n * @param {number} index Index.\n * @param {T} elem Element.\n * @api\n */\n insertAt(index, elem) {\n if (this.unique_) {\n this.assertUnique_(elem);\n }\n this.array_.splice(index, 0, elem);\n this.updateLength_();\n this.dispatchEvent(\n new CollectionEvent(CollectionEventType.ADD, elem));\n }\n\n /**\n * Remove the last element of the collection and return it.\n * Return `undefined` if the collection is empty.\n * @return {T|undefined} Element.\n * @api\n */\n pop() {\n return this.removeAt(this.getLength() - 1);\n }\n\n /**\n * Insert the provided element at the end of the collection.\n * @param {T} elem Element.\n * @return {number} New length of the collection.\n * @api\n */\n push(elem) {\n if (this.unique_) {\n this.assertUnique_(elem);\n }\n const n = this.getLength();\n this.insertAt(n, elem);\n return this.getLength();\n }\n\n /**\n * Remove the first occurrence of an element from the collection.\n * @param {T} elem Element.\n * @return {T|undefined} The removed element or undefined if none found.\n * @api\n */\n remove(elem) {\n const arr = this.array_;\n for (let i = 0, ii = arr.length; i < ii; ++i) {\n if (arr[i] === elem) {\n return this.removeAt(i);\n }\n }\n return undefined;\n }\n\n /**\n * Remove the element at the provided index and return it.\n * Return `undefined` if the collection does not contain this index.\n * @param {number} index Index.\n * @return {T|undefined} Value.\n * @api\n */\n removeAt(index) {\n const prev = this.array_[index];\n this.array_.splice(index, 1);\n this.updateLength_();\n this.dispatchEvent(new CollectionEvent(CollectionEventType.REMOVE, prev));\n return prev;\n }\n\n /**\n * Set the element at the provided index.\n * @param {number} index Index.\n * @param {T} elem Element.\n * @api\n */\n setAt(index, elem) {\n const n = this.getLength();\n if (index < n) {\n if (this.unique_) {\n this.assertUnique_(elem, index);\n }\n const prev = this.array_[index];\n this.array_[index] = elem;\n this.dispatchEvent(\n new CollectionEvent(CollectionEventType.REMOVE, prev));\n this.dispatchEvent(\n new CollectionEvent(CollectionEventType.ADD, elem));\n } else {\n for (let j = n; j < index; ++j) {\n this.insertAt(j, undefined);\n }\n this.insertAt(index, elem);\n }\n }\n\n /**\n * @private\n */\n updateLength_() {\n this.set(Property.LENGTH, this.array_.length);\n }\n\n /**\n * @private\n * @param {T} elem Element.\n * @param {number=} opt_except Optional index to ignore.\n */\n assertUnique_(elem, opt_except) {\n for (let i = 0, ii = this.array_.length; i < ii; ++i) {\n if (this.array_[i] === elem && i !== opt_except) {\n throw new AssertionError(58);\n }\n }\n }\n}\n\n\nexport default Collection;\n","/**\n * @module ol/MapEvent\n */\nimport Event from './events/Event.js';\n\n/**\n * @classdesc\n * Events emitted as map events are instances of this type.\n * See {@link module:ol/PluggableMap~PluggableMap} for which events trigger a map event.\n */\nclass MapEvent extends Event {\n\n /**\n * @param {string} type Event type.\n * @param {import(\"./PluggableMap.js\").default} map Map.\n * @param {?import(\"./PluggableMap.js\").FrameState=} opt_frameState Frame state.\n */\n constructor(type, map, opt_frameState) {\n\n super(type);\n\n /**\n * The map where the event occurred.\n * @type {import(\"./PluggableMap.js\").default}\n * @api\n */\n this.map = map;\n\n /**\n * The frame state at the time of the event.\n * @type {?import(\"./PluggableMap.js\").FrameState}\n * @api\n */\n this.frameState = opt_frameState !== undefined ? opt_frameState : null;\n\n }\n\n}\n\nexport default MapEvent;\n","/**\n * @module ol/MapBrowserEvent\n */\nimport MapEvent from './MapEvent.js';\n\n/**\n * @classdesc\n * Events emitted as map browser events are instances of this type.\n * See {@link module:ol/PluggableMap~PluggableMap} for which events trigger a map browser event.\n */\nclass MapBrowserEvent extends MapEvent {\n\n /**\n * @param {string} type Event type.\n * @param {import(\"./PluggableMap.js\").default} map Map.\n * @param {Event} browserEvent Browser event.\n * @param {boolean=} opt_dragging Is the map currently being dragged?\n * @param {?import(\"./PluggableMap.js\").FrameState=} opt_frameState Frame state.\n */\n constructor(type, map, browserEvent, opt_dragging, opt_frameState) {\n\n super(type, map, opt_frameState);\n\n /**\n * The original browser event.\n * @const\n * @type {Event}\n * @api\n */\n this.originalEvent = browserEvent;\n\n /**\n * The map pixel relative to the viewport corresponding to the original browser event.\n * @type {import(\"./pixel.js\").Pixel}\n * @api\n */\n this.pixel = map.getEventPixel(browserEvent);\n\n /**\n * The coordinate in view projection corresponding to the original browser event.\n * @type {import(\"./coordinate.js\").Coordinate}\n * @api\n */\n this.coordinate = map.getCoordinateFromPixel(this.pixel);\n\n /**\n * Indicates if the map is currently being dragged. Only set for\n * `POINTERDRAG` and `POINTERMOVE` events. Default is `false`.\n *\n * @type {boolean}\n * @api\n */\n this.dragging = opt_dragging !== undefined ? opt_dragging : false;\n\n }\n\n /**\n * Prevents the default browser action.\n * See https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault.\n * @override\n * @api\n */\n preventDefault() {\n super.preventDefault();\n this.originalEvent.preventDefault();\n }\n\n /**\n * Prevents further propagation of the current event.\n * See https://developer.mozilla.org/en-US/docs/Web/API/event.stopPropagation.\n * @override\n * @api\n */\n stopPropagation() {\n super.stopPropagation();\n this.originalEvent.stopPropagation();\n }\n}\n\n\nexport default MapBrowserEvent;\n","/**\n * @module ol/webgl\n */\n\n\n/**\n * Constants taken from goog.webgl\n */\n\n\n/**\n * @const\n * @type {number}\n */\nexport const ONE = 1;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const SRC_ALPHA = 0x0302;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const COLOR_ATTACHMENT0 = 0x8CE0;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const COLOR_BUFFER_BIT = 0x00004000;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const TRIANGLES = 0x0004;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const TRIANGLE_STRIP = 0x0005;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const ONE_MINUS_SRC_ALPHA = 0x0303;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const ARRAY_BUFFER = 0x8892;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const ELEMENT_ARRAY_BUFFER = 0x8893;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const STREAM_DRAW = 0x88E0;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const STATIC_DRAW = 0x88E4;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const DYNAMIC_DRAW = 0x88E8;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const CULL_FACE = 0x0B44;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const BLEND = 0x0BE2;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const STENCIL_TEST = 0x0B90;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const DEPTH_TEST = 0x0B71;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const SCISSOR_TEST = 0x0C11;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const UNSIGNED_BYTE = 0x1401;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const UNSIGNED_SHORT = 0x1403;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const UNSIGNED_INT = 0x1405;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const FLOAT = 0x1406;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const RGBA = 0x1908;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const FRAGMENT_SHADER = 0x8B30;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const VERTEX_SHADER = 0x8B31;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const LINK_STATUS = 0x8B82;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const LINEAR = 0x2601;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const TEXTURE_MAG_FILTER = 0x2800;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const TEXTURE_MIN_FILTER = 0x2801;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const TEXTURE_WRAP_S = 0x2802;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const TEXTURE_WRAP_T = 0x2803;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const TEXTURE_2D = 0x0DE1;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const TEXTURE0 = 0x84C0;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const CLAMP_TO_EDGE = 0x812F;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const COMPILE_STATUS = 0x8B81;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const FRAMEBUFFER = 0x8D40;\n\n\n/** end of goog.webgl constants\n */\n\n\n/**\n * @const\n * @type {Array}\n */\nconst CONTEXT_IDS = [\n 'experimental-webgl',\n 'webgl',\n 'webkit-3d',\n 'moz-webgl'\n];\n\n\n/**\n * @param {HTMLCanvasElement} canvas Canvas.\n * @param {Object=} opt_attributes Attributes.\n * @return {WebGLRenderingContext} WebGL rendering context.\n */\nexport function getContext(canvas, opt_attributes) {\n const ii = CONTEXT_IDS.length;\n for (let i = 0; i < ii; ++i) {\n try {\n const context = canvas.getContext(CONTEXT_IDS[i], opt_attributes);\n if (context) {\n return /** @type {!WebGLRenderingContext} */ (context);\n }\n } catch (e) {\n // pass\n }\n }\n return null;\n}\n\n\n/**\n * Include debuggable shader sources. Default is `true`. This should be set to\n * `false` for production builds.\n * @type {boolean}\n */\nexport const DEBUG = true;\n\n\n/**\n * The maximum supported WebGL texture size in pixels. If WebGL is not\n * supported, the value is set to `undefined`.\n * @type {number|undefined}\n */\nlet MAX_TEXTURE_SIZE; // value is set below\n\n\n/**\n * List of supported WebGL extensions.\n * @type {Array}\n */\nlet EXTENSIONS; // value is set below\n\n\n/**\n * True if both OpenLayers and browser support WebGL.\n * @type {boolean}\n * @api\n */\nlet HAS = false;\n\n//TODO Remove side effects\nif (typeof window !== 'undefined' && 'WebGLRenderingContext' in window) {\n try {\n const canvas = /** @type {HTMLCanvasElement} */ (document.createElement('canvas'));\n const gl = getContext(canvas, {failIfMajorPerformanceCaveat: true});\n if (gl) {\n HAS = true;\n MAX_TEXTURE_SIZE = /** @type {number} */ (gl.getParameter(gl.MAX_TEXTURE_SIZE));\n EXTENSIONS = gl.getSupportedExtensions();\n }\n } catch (e) {\n // pass\n }\n}\n\nexport {HAS, MAX_TEXTURE_SIZE, EXTENSIONS};\n","/**\n * @module ol/has\n */\n\nconst ua = typeof navigator !== 'undefined' ?\n navigator.userAgent.toLowerCase() : '';\n\n/**\n * User agent string says we are dealing with Firefox as browser.\n * @type {boolean}\n */\nexport const FIREFOX = ua.indexOf('firefox') !== -1;\n\n/**\n * User agent string says we are dealing with Safari as browser.\n * @type {boolean}\n */\nexport const SAFARI = ua.indexOf('safari') !== -1 && ua.indexOf('chrom') == -1;\n\n/**\n * User agent string says we are dealing with a WebKit engine.\n * @type {boolean}\n */\nexport const WEBKIT = ua.indexOf('webkit') !== -1 && ua.indexOf('edge') == -1;\n\n/**\n * User agent string says we are dealing with a Mac as platform.\n * @type {boolean}\n */\nexport const MAC = ua.indexOf('macintosh') !== -1;\n\n\n/**\n * The ratio between physical pixels and device-independent pixels\n * (dips) on the device (`window.devicePixelRatio`).\n * @const\n * @type {number}\n * @api\n */\nexport const DEVICE_PIXEL_RATIO = window.devicePixelRatio || 1;\n\n\n/**\n * True if the browser's Canvas implementation implements {get,set}LineDash.\n * @type {boolean}\n */\nexport const CANVAS_LINE_DASH = function() {\n let has = false;\n try {\n has = !!document.createElement('canvas').getContext('2d').setLineDash;\n } catch (e) {\n // pass\n }\n return has;\n}();\n\n\n/**\n * Is HTML5 geolocation supported in the current browser?\n * @const\n * @type {boolean}\n * @api\n */\nexport const GEOLOCATION = 'geolocation' in navigator;\n\n\n/**\n * True if browser supports touch events.\n * @const\n * @type {boolean}\n * @api\n */\nexport const TOUCH = 'ontouchstart' in window;\n\n\n/**\n * True if browser supports pointer events.\n * @const\n * @type {boolean}\n */\nexport const POINTER = 'PointerEvent' in window;\n\n\n/**\n * True if browser supports ms pointer events (IE 10).\n * @const\n * @type {boolean}\n */\nexport const MSPOINTER = !!(navigator.msPointerEnabled);\n\n\nexport {HAS as WEBGL} from './webgl.js';\n","/**\n * @module ol/MapBrowserEventType\n */\nimport EventType from './events/EventType.js';\n\n/**\n * Constants for event names.\n * @enum {string}\n */\nexport default {\n\n /**\n * A true single click with no dragging and no double click. Note that this\n * event is delayed by 250 ms to ensure that it is not a double click.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#singleclick\n * @api\n */\n SINGLECLICK: 'singleclick',\n\n /**\n * A click with no dragging. A double click will fire two of this.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#click\n * @api\n */\n CLICK: EventType.CLICK,\n\n /**\n * A true double click, with no dragging.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#dblclick\n * @api\n */\n DBLCLICK: EventType.DBLCLICK,\n\n /**\n * Triggered when a pointer is dragged.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#pointerdrag\n * @api\n */\n POINTERDRAG: 'pointerdrag',\n\n /**\n * Triggered when a pointer is moved. Note that on touch devices this is\n * triggered when the map is panned, so is not the same as mousemove.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#pointermove\n * @api\n */\n POINTERMOVE: 'pointermove',\n\n POINTERDOWN: 'pointerdown',\n POINTERUP: 'pointerup',\n POINTEROVER: 'pointerover',\n POINTEROUT: 'pointerout',\n POINTERENTER: 'pointerenter',\n POINTERLEAVE: 'pointerleave',\n POINTERCANCEL: 'pointercancel'\n};\n","/**\n * @module ol/MapBrowserPointerEvent\n */\nimport MapBrowserEvent from './MapBrowserEvent.js';\n\nclass MapBrowserPointerEvent extends MapBrowserEvent {\n\n /**\n * @param {string} type Event type.\n * @param {import(\"./PluggableMap.js\").default} map Map.\n * @param {import(\"./pointer/PointerEvent.js\").default} pointerEvent Pointer event.\n * @param {boolean=} opt_dragging Is the map currently being dragged?\n * @param {?import(\"./PluggableMap.js\").FrameState=} opt_frameState Frame state.\n */\n constructor(type, map, pointerEvent, opt_dragging, opt_frameState) {\n\n super(type, map, pointerEvent.originalEvent, opt_dragging, opt_frameState);\n\n /**\n * @const\n * @type {import(\"./pointer/PointerEvent.js\").default}\n */\n this.pointerEvent = pointerEvent;\n\n }\n\n}\n\nexport default MapBrowserPointerEvent;\n","/**\n * @module ol/pointer/EventType\n */\n\n/**\n * Constants for event names.\n * @enum {string}\n */\nexport default {\n POINTERMOVE: 'pointermove',\n POINTERDOWN: 'pointerdown',\n POINTERUP: 'pointerup',\n POINTEROVER: 'pointerover',\n POINTEROUT: 'pointerout',\n POINTERENTER: 'pointerenter',\n POINTERLEAVE: 'pointerleave',\n POINTERCANCEL: 'pointercancel'\n};\n","/**\n * @module ol/pointer/EventSource\n */\n\nclass EventSource {\n\n /**\n * @param {import(\"./PointerEventHandler.js\").default} dispatcher Event handler.\n * @param {!Object} mapping Event mapping.\n */\n constructor(dispatcher, mapping) {\n\n /**\n * @type {import(\"./PointerEventHandler.js\").default}\n */\n this.dispatcher = dispatcher;\n\n /**\n * @private\n * @const\n * @type {!Object}\n */\n this.mapping_ = mapping;\n }\n\n /**\n * List of events supported by this source.\n * @return {Array} Event names\n */\n getEvents() {\n return Object.keys(this.mapping_);\n }\n\n /**\n * Returns the handler that should handle a given event type.\n * @param {string} eventType The event type.\n * @return {function(Event)} Handler\n */\n getHandlerForEvent(eventType) {\n return this.mapping_[eventType];\n }\n\n}\n\nexport default EventSource;\n","/**\n * @module ol/pointer/MouseSource\n */\n\n// Based on https://github.com/Polymer/PointerEvents\n\n// Copyright (c) 2013 The Polymer Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nimport EventSource from './EventSource.js';\n\n\n/**\n * @type {number}\n */\nexport const POINTER_ID = 1;\n\n\n/**\n * @type {string}\n */\nexport const POINTER_TYPE = 'mouse';\n\n\n/**\n * Radius around touchend that swallows mouse events.\n *\n * @type {number}\n */\nconst DEDUP_DIST = 25;\n\n/**\n * Handler for `mousedown`.\n *\n * @this {MouseSource}\n * @param {MouseEvent} inEvent The in event.\n */\nfunction mousedown(inEvent) {\n if (!this.isEventSimulatedFromTouch_(inEvent)) {\n // TODO(dfreedman) workaround for some elements not sending mouseup\n // http://crbug/149091\n if (POINTER_ID.toString() in this.pointerMap) {\n this.cancel(inEvent);\n }\n const e = prepareEvent(inEvent, this.dispatcher);\n this.pointerMap[POINTER_ID.toString()] = inEvent;\n this.dispatcher.down(e, inEvent);\n }\n}\n\n/**\n * Handler for `mousemove`.\n *\n * @this {MouseSource}\n * @param {MouseEvent} inEvent The in event.\n */\nfunction mousemove(inEvent) {\n if (!this.isEventSimulatedFromTouch_(inEvent)) {\n const e = prepareEvent(inEvent, this.dispatcher);\n this.dispatcher.move(e, inEvent);\n }\n}\n\n/**\n * Handler for `mouseup`.\n *\n * @this {MouseSource}\n * @param {MouseEvent} inEvent The in event.\n */\nfunction mouseup(inEvent) {\n if (!this.isEventSimulatedFromTouch_(inEvent)) {\n const p = this.pointerMap[POINTER_ID.toString()];\n\n if (p && p.button === inEvent.button) {\n const e = prepareEvent(inEvent, this.dispatcher);\n this.dispatcher.up(e, inEvent);\n this.cleanupMouse();\n }\n }\n}\n\n/**\n * Handler for `mouseover`.\n *\n * @this {MouseSource}\n * @param {MouseEvent} inEvent The in event.\n */\nfunction mouseover(inEvent) {\n if (!this.isEventSimulatedFromTouch_(inEvent)) {\n const e = prepareEvent(inEvent, this.dispatcher);\n this.dispatcher.enterOver(e, inEvent);\n }\n}\n\n/**\n * Handler for `mouseout`.\n *\n * @this {MouseSource}\n * @param {MouseEvent} inEvent The in event.\n */\nfunction mouseout(inEvent) {\n if (!this.isEventSimulatedFromTouch_(inEvent)) {\n const e = prepareEvent(inEvent, this.dispatcher);\n this.dispatcher.leaveOut(e, inEvent);\n }\n}\n\n\nclass MouseSource extends EventSource {\n\n /**\n * @param {import(\"./PointerEventHandler.js\").default} dispatcher Event handler.\n */\n constructor(dispatcher) {\n const mapping = {\n 'mousedown': mousedown,\n 'mousemove': mousemove,\n 'mouseup': mouseup,\n 'mouseover': mouseover,\n 'mouseout': mouseout\n };\n super(dispatcher, mapping);\n\n /**\n * @const\n * @type {!Object}\n */\n this.pointerMap = dispatcher.pointerMap;\n\n /**\n * @const\n * @type {Array}\n */\n this.lastTouches = [];\n }\n\n /**\n * Detect if a mouse event was simulated from a touch by\n * checking if previously there was a touch event at the\n * same position.\n *\n * FIXME - Known problem with the native Android browser on\n * Samsung GT-I9100 (Android 4.1.2):\n * In case the page is scrolled, this function does not work\n * correctly when a canvas is used (WebGL or canvas renderer).\n * Mouse listeners on canvas elements (for this browser), create\n * two mouse events: One 'good' and one 'bad' one (on other browsers or\n * when a div is used, there is only one event). For the 'bad' one,\n * clientX/clientY and also pageX/pageY are wrong when the page\n * is scrolled. Because of that, this function can not detect if\n * the events were simulated from a touch event. As result, a\n * pointer event at a wrong position is dispatched, which confuses\n * the map interactions.\n * It is unclear, how one can get the correct position for the event\n * or detect that the positions are invalid.\n *\n * @private\n * @param {MouseEvent} inEvent The in event.\n * @return {boolean} True, if the event was generated by a touch.\n */\n isEventSimulatedFromTouch_(inEvent) {\n const lts = this.lastTouches;\n const x = inEvent.clientX;\n const y = inEvent.clientY;\n for (let i = 0, l = lts.length, t; i < l && (t = lts[i]); i++) {\n // simulated mouse events will be swallowed near a primary touchend\n const dx = Math.abs(x - t[0]);\n const dy = Math.abs(y - t[1]);\n if (dx <= DEDUP_DIST && dy <= DEDUP_DIST) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Dispatches a `pointercancel` event.\n *\n * @param {Event} inEvent The in event.\n */\n cancel(inEvent) {\n const e = prepareEvent(inEvent, this.dispatcher);\n this.dispatcher.cancel(e, inEvent);\n this.cleanupMouse();\n }\n\n /**\n * Remove the mouse from the list of active pointers.\n */\n cleanupMouse() {\n delete this.pointerMap[POINTER_ID.toString()];\n }\n}\n\n\n/**\n * Creates a copy of the original event that will be used\n * for the fake pointer event.\n *\n * @param {Event} inEvent The in event.\n * @param {import(\"./PointerEventHandler.js\").default} dispatcher Event handler.\n * @return {Object} The copied event.\n */\nexport function prepareEvent(inEvent, dispatcher) {\n const e = dispatcher.cloneEvent(inEvent, inEvent);\n\n // forward mouse preventDefault\n const pd = e.preventDefault;\n e.preventDefault = function() {\n inEvent.preventDefault();\n pd();\n };\n\n e.pointerId = POINTER_ID;\n e.isPrimary = true;\n e.pointerType = POINTER_TYPE;\n\n return e;\n}\n\n\nexport default MouseSource;\n","/**\n * @module ol/pointer/MsSource\n */\n// Based on https://github.com/Polymer/PointerEvents\n\n// Copyright (c) 2013 The Polymer Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nimport EventSource from './EventSource.js';\n\n\n/**\n * @const\n * @type {Array}\n */\nconst POINTER_TYPES = [\n '',\n 'unavailable',\n 'touch',\n 'pen',\n 'mouse'\n];\n\n/**\n * Handler for `msPointerDown`.\n *\n * @this {MsSource}\n * @param {MSPointerEvent} inEvent The in event.\n */\nfunction msPointerDown(inEvent) {\n this.pointerMap[inEvent.pointerId.toString()] = inEvent;\n const e = this.prepareEvent_(inEvent);\n this.dispatcher.down(e, inEvent);\n}\n\n/**\n * Handler for `msPointerMove`.\n *\n * @this {MsSource}\n * @param {MSPointerEvent} inEvent The in event.\n */\nfunction msPointerMove(inEvent) {\n const e = this.prepareEvent_(inEvent);\n this.dispatcher.move(e, inEvent);\n}\n\n/**\n * Handler for `msPointerUp`.\n *\n * @this {MsSource}\n * @param {MSPointerEvent} inEvent The in event.\n */\nfunction msPointerUp(inEvent) {\n const e = this.prepareEvent_(inEvent);\n this.dispatcher.up(e, inEvent);\n this.cleanup(inEvent.pointerId);\n}\n\n/**\n * Handler for `msPointerOut`.\n *\n * @this {MsSource}\n * @param {MSPointerEvent} inEvent The in event.\n */\nfunction msPointerOut(inEvent) {\n const e = this.prepareEvent_(inEvent);\n this.dispatcher.leaveOut(e, inEvent);\n}\n\n/**\n * Handler for `msPointerOver`.\n *\n * @this {MsSource}\n * @param {MSPointerEvent} inEvent The in event.\n */\nfunction msPointerOver(inEvent) {\n const e = this.prepareEvent_(inEvent);\n this.dispatcher.enterOver(e, inEvent);\n}\n\n/**\n * Handler for `msPointerCancel`.\n *\n * @this {MsSource}\n * @param {MSPointerEvent} inEvent The in event.\n */\nfunction msPointerCancel(inEvent) {\n const e = this.prepareEvent_(inEvent);\n this.dispatcher.cancel(e, inEvent);\n this.cleanup(inEvent.pointerId);\n}\n\n/**\n * Handler for `msLostPointerCapture`.\n *\n * @this {MsSource}\n * @param {MSPointerEvent} inEvent The in event.\n */\nfunction msLostPointerCapture(inEvent) {\n const e = this.dispatcher.makeEvent('lostpointercapture', inEvent, inEvent);\n this.dispatcher.dispatchEvent(e);\n}\n\n/**\n * Handler for `msGotPointerCapture`.\n *\n * @this {MsSource}\n * @param {MSPointerEvent} inEvent The in event.\n */\nfunction msGotPointerCapture(inEvent) {\n const e = this.dispatcher.makeEvent('gotpointercapture', inEvent, inEvent);\n this.dispatcher.dispatchEvent(e);\n}\n\nclass MsSource extends EventSource {\n\n /**\n * @param {import(\"./PointerEventHandler.js\").default} dispatcher Event handler.\n */\n constructor(dispatcher) {\n const mapping = {\n 'MSPointerDown': msPointerDown,\n 'MSPointerMove': msPointerMove,\n 'MSPointerUp': msPointerUp,\n 'MSPointerOut': msPointerOut,\n 'MSPointerOver': msPointerOver,\n 'MSPointerCancel': msPointerCancel,\n 'MSGotPointerCapture': msGotPointerCapture,\n 'MSLostPointerCapture': msLostPointerCapture\n };\n super(dispatcher, mapping);\n\n /**\n * @const\n * @type {!Object}\n */\n this.pointerMap = dispatcher.pointerMap;\n }\n\n /**\n * Creates a copy of the original event that will be used\n * for the fake pointer event.\n *\n * @private\n * @param {MSPointerEvent} inEvent The in event.\n * @return {Object} The copied event.\n */\n prepareEvent_(inEvent) {\n /** @type {MSPointerEvent|Object} */\n let e = inEvent;\n if (typeof inEvent.pointerType === 'number') {\n e = this.dispatcher.cloneEvent(inEvent, inEvent);\n e.pointerType = POINTER_TYPES[inEvent.pointerType];\n }\n\n return e;\n }\n\n /**\n * Remove this pointer from the list of active pointers.\n * @param {number} pointerId Pointer identifier.\n */\n cleanup(pointerId) {\n delete this.pointerMap[pointerId.toString()];\n }\n\n}\n\nexport default MsSource;\n","/**\n * @module ol/pointer/NativeSource\n */\n\n// Based on https://github.com/Polymer/PointerEvents\n\n// Copyright (c) 2013 The Polymer Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nimport EventSource from './EventSource.js';\n\n/**\n * Handler for `pointerdown`.\n *\n * @this {NativeSource}\n * @param {Event} inEvent The in event.\n */\nfunction pointerDown(inEvent) {\n this.dispatcher.fireNativeEvent(inEvent);\n}\n\n/**\n * Handler for `pointermove`.\n *\n * @this {NativeSource}\n * @param {Event} inEvent The in event.\n */\nfunction pointerMove(inEvent) {\n this.dispatcher.fireNativeEvent(inEvent);\n}\n\n/**\n * Handler for `pointerup`.\n *\n * @this {NativeSource}\n * @param {Event} inEvent The in event.\n */\nfunction pointerUp(inEvent) {\n this.dispatcher.fireNativeEvent(inEvent);\n}\n\n/**\n * Handler for `pointerout`.\n *\n * @this {NativeSource}\n * @param {Event} inEvent The in event.\n */\nfunction pointerOut(inEvent) {\n this.dispatcher.fireNativeEvent(inEvent);\n}\n\n/**\n * Handler for `pointerover`.\n *\n * @this {NativeSource}\n * @param {Event} inEvent The in event.\n */\nfunction pointerOver(inEvent) {\n this.dispatcher.fireNativeEvent(inEvent);\n}\n\n/**\n * Handler for `pointercancel`.\n *\n * @this {NativeSource}\n * @param {Event} inEvent The in event.\n */\nfunction pointerCancel(inEvent) {\n this.dispatcher.fireNativeEvent(inEvent);\n}\n\n/**\n * Handler for `lostpointercapture`.\n *\n * @this {NativeSource}\n * @param {Event} inEvent The in event.\n */\nfunction lostPointerCapture(inEvent) {\n this.dispatcher.fireNativeEvent(inEvent);\n}\n\n/**\n * Handler for `gotpointercapture`.\n *\n * @this {NativeSource}\n * @param {Event} inEvent The in event.\n */\nfunction gotPointerCapture(inEvent) {\n this.dispatcher.fireNativeEvent(inEvent);\n}\n\nclass NativeSource extends EventSource {\n\n /**\n * @param {import(\"./PointerEventHandler.js\").default} dispatcher Event handler.\n */\n constructor(dispatcher) {\n const mapping = {\n 'pointerdown': pointerDown,\n 'pointermove': pointerMove,\n 'pointerup': pointerUp,\n 'pointerout': pointerOut,\n 'pointerover': pointerOver,\n 'pointercancel': pointerCancel,\n 'gotpointercapture': gotPointerCapture,\n 'lostpointercapture': lostPointerCapture\n };\n super(dispatcher, mapping);\n }\n\n}\n\nexport default NativeSource;\n","/**\n * @module ol/pointer/PointerEvent\n */\n\n// Based on https://github.com/Polymer/PointerEvents\n\n// Copyright (c) 2013 The Polymer Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nimport _Event from '../events/Event.js';\n\n\n/**\n * Is the `buttons` property supported?\n * @type {boolean}\n */\nlet HAS_BUTTONS = false;\n\n\nclass PointerEvent extends _Event {\n\n /**\n * A class for pointer events.\n *\n * This class is used as an abstraction for mouse events,\n * touch events and even native pointer events.\n *\n * @param {string} type The type of the event to create.\n * @param {Event} originalEvent The event.\n * @param {Object=} opt_eventDict An optional dictionary of\n * initial event properties.\n */\n constructor(type, originalEvent, opt_eventDict) {\n super(type);\n\n /**\n * @const\n * @type {Event}\n */\n this.originalEvent = originalEvent;\n\n const eventDict = opt_eventDict ? opt_eventDict : {};\n\n /**\n * @type {number}\n */\n this.buttons = getButtons(eventDict);\n\n /**\n * @type {number}\n */\n this.pressure = getPressure(eventDict, this.buttons);\n\n // MouseEvent related properties\n\n /**\n * @type {boolean}\n */\n this.bubbles = 'bubbles' in eventDict ? eventDict['bubbles'] : false;\n\n /**\n * @type {boolean}\n */\n this.cancelable = 'cancelable' in eventDict ? eventDict['cancelable'] : false;\n\n /**\n * @type {Object}\n */\n this.view = 'view' in eventDict ? eventDict['view'] : null;\n\n /**\n * @type {number}\n */\n this.detail = 'detail' in eventDict ? eventDict['detail'] : null;\n\n /**\n * @type {number}\n */\n this.screenX = 'screenX' in eventDict ? eventDict['screenX'] : 0;\n\n /**\n * @type {number}\n */\n this.screenY = 'screenY' in eventDict ? eventDict['screenY'] : 0;\n\n /**\n * @type {number}\n */\n this.clientX = 'clientX' in eventDict ? eventDict['clientX'] : 0;\n\n /**\n * @type {number}\n */\n this.clientY = 'clientY' in eventDict ? eventDict['clientY'] : 0;\n\n /**\n * @type {boolean}\n */\n this.ctrlKey = 'ctrlKey' in eventDict ? eventDict['ctrlKey'] : false;\n\n /**\n * @type {boolean}\n */\n this.altKey = 'altKey' in eventDict ? eventDict['altKey'] : false;\n\n /**\n * @type {boolean}\n */\n this.shiftKey = 'shiftKey' in eventDict ? eventDict['shiftKey'] : false;\n\n /**\n * @type {boolean}\n */\n this.metaKey = 'metaKey' in eventDict ? eventDict['metaKey'] : false;\n\n /**\n * @type {number}\n */\n this.button = 'button' in eventDict ? eventDict['button'] : 0;\n\n /**\n * @type {Node}\n */\n this.relatedTarget = 'relatedTarget' in eventDict ?\n eventDict['relatedTarget'] : null;\n\n // PointerEvent related properties\n\n /**\n * @const\n * @type {number}\n */\n this.pointerId = 'pointerId' in eventDict ? eventDict['pointerId'] : 0;\n\n /**\n * @type {number}\n */\n this.width = 'width' in eventDict ? eventDict['width'] : 0;\n\n /**\n * @type {number}\n */\n this.height = 'height' in eventDict ? eventDict['height'] : 0;\n\n /**\n * @type {number}\n */\n this.tiltX = 'tiltX' in eventDict ? eventDict['tiltX'] : 0;\n\n /**\n * @type {number}\n */\n this.tiltY = 'tiltY' in eventDict ? eventDict['tiltY'] : 0;\n\n /**\n * @type {string}\n */\n this.pointerType = 'pointerType' in eventDict ? eventDict['pointerType'] : '';\n\n /**\n * @type {number}\n */\n this.hwTimestamp = 'hwTimestamp' in eventDict ? eventDict['hwTimestamp'] : 0;\n\n /**\n * @type {boolean}\n */\n this.isPrimary = 'isPrimary' in eventDict ? eventDict['isPrimary'] : false;\n\n // keep the semantics of preventDefault\n if (originalEvent.preventDefault) {\n this.preventDefault = function() {\n originalEvent.preventDefault();\n };\n }\n }\n\n}\n\n\n/**\n * @param {Object} eventDict The event dictionary.\n * @return {number} Button indicator.\n */\nfunction getButtons(eventDict) {\n // According to the w3c spec,\n // http://www.w3.org/TR/DOM-Level-3-Events/#events-MouseEvent-button\n // MouseEvent.button == 0 can mean either no mouse button depressed, or the\n // left mouse button depressed.\n //\n // As of now, the only way to distinguish between the two states of\n // MouseEvent.button is by using the deprecated MouseEvent.which property, as\n // this maps mouse buttons to positive integers > 0, and uses 0 to mean that\n // no mouse button is held.\n //\n // MouseEvent.which is derived from MouseEvent.button at MouseEvent creation,\n // but initMouseEvent does not expose an argument with which to set\n // MouseEvent.which. Calling initMouseEvent with a buttonArg of 0 will set\n // MouseEvent.button == 0 and MouseEvent.which == 1, breaking the expectations\n // of app developers.\n //\n // The only way to propagate the correct state of MouseEvent.which and\n // MouseEvent.button to a new MouseEvent.button == 0 and MouseEvent.which == 0\n // is to call initMouseEvent with a buttonArg value of -1.\n //\n // This is fixed with DOM Level 4's use of buttons\n let buttons;\n if (eventDict.buttons || HAS_BUTTONS) {\n buttons = eventDict.buttons;\n } else {\n switch (eventDict.which) {\n case 1: buttons = 1; break;\n case 2: buttons = 4; break;\n case 3: buttons = 2; break;\n default: buttons = 0;\n }\n }\n return buttons;\n}\n\n\n/**\n * @param {Object} eventDict The event dictionary.\n * @param {number} buttons Button indicator.\n * @return {number} The pressure.\n */\nfunction getPressure(eventDict, buttons) {\n // Spec requires that pointers without pressure specified use 0.5 for down\n // state and 0 for up state.\n let pressure = 0;\n if (eventDict.pressure) {\n pressure = eventDict.pressure;\n } else {\n pressure = buttons ? 0.5 : 0;\n }\n return pressure;\n}\n\n\n/**\n * Checks if the `buttons` property is supported.\n */\n(function() {\n try {\n const ev = new MouseEvent('click', {buttons: 1});\n HAS_BUTTONS = ev.buttons === 1;\n } catch (e) {\n // pass\n }\n})();\n\nexport default PointerEvent;\n","/**\n * @module ol/array\n */\n\n\n/**\n * Performs a binary search on the provided sorted list and returns the index of the item if found. If it can't be found it'll return -1.\n * https://github.com/darkskyapp/binary-search\n *\n * @param {Array<*>} haystack Items to search through.\n * @param {*} needle The item to look for.\n * @param {Function=} opt_comparator Comparator function.\n * @return {number} The index of the item if found, -1 if not.\n */\nexport function binarySearch(haystack, needle, opt_comparator) {\n let mid, cmp;\n const comparator = opt_comparator || numberSafeCompareFunction;\n let low = 0;\n let high = haystack.length;\n let found = false;\n\n while (low < high) {\n /* Note that \"(low + high) >>> 1\" may overflow, and results in a typecast\n * to double (which gives the wrong results). */\n mid = low + (high - low >> 1);\n cmp = +comparator(haystack[mid], needle);\n\n if (cmp < 0.0) { /* Too low. */\n low = mid + 1;\n\n } else { /* Key found or too high */\n high = mid;\n found = !cmp;\n }\n }\n\n /* Key not found. */\n return found ? low : ~low;\n}\n\n\n/**\n * Compare function for array sort that is safe for numbers.\n * @param {*} a The first object to be compared.\n * @param {*} b The second object to be compared.\n * @return {number} A negative number, zero, or a positive number as the first\n * argument is less than, equal to, or greater than the second.\n */\nexport function numberSafeCompareFunction(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n}\n\n\n/**\n * Whether the array contains the given object.\n * @param {Array<*>} arr The array to test for the presence of the element.\n * @param {*} obj The object for which to test.\n * @return {boolean} The object is in the array.\n */\nexport function includes(arr, obj) {\n return arr.indexOf(obj) >= 0;\n}\n\n\n/**\n * @param {Array} arr Array.\n * @param {number} target Target.\n * @param {number} direction 0 means return the nearest, > 0\n * means return the largest nearest, < 0 means return the\n * smallest nearest.\n * @return {number} Index.\n */\nexport function linearFindNearest(arr, target, direction) {\n const n = arr.length;\n if (arr[0] <= target) {\n return 0;\n } else if (target <= arr[n - 1]) {\n return n - 1;\n } else {\n let i;\n if (direction > 0) {\n for (i = 1; i < n; ++i) {\n if (arr[i] < target) {\n return i - 1;\n }\n }\n } else if (direction < 0) {\n for (i = 1; i < n; ++i) {\n if (arr[i] <= target) {\n return i;\n }\n }\n } else {\n for (i = 1; i < n; ++i) {\n if (arr[i] == target) {\n return i;\n } else if (arr[i] < target) {\n if (arr[i - 1] - target < target - arr[i]) {\n return i - 1;\n } else {\n return i;\n }\n }\n }\n }\n return n - 1;\n }\n}\n\n\n/**\n * @param {Array<*>} arr Array.\n * @param {number} begin Begin index.\n * @param {number} end End index.\n */\nexport function reverseSubArray(arr, begin, end) {\n while (begin < end) {\n const tmp = arr[begin];\n arr[begin] = arr[end];\n arr[end] = tmp;\n ++begin;\n --end;\n }\n}\n\n\n/**\n * @param {Array} arr The array to modify.\n * @param {!Array|VALUE} data The elements or arrays of elements to add to arr.\n * @template VALUE\n */\nexport function extend(arr, data) {\n const extension = Array.isArray(data) ? data : [data];\n const length = extension.length;\n for (let i = 0; i < length; i++) {\n arr[arr.length] = extension[i];\n }\n}\n\n\n/**\n * @param {Array} arr The array to modify.\n * @param {VALUE} obj The element to remove.\n * @template VALUE\n * @return {boolean} If the element was removed.\n */\nexport function remove(arr, obj) {\n const i = arr.indexOf(obj);\n const found = i > -1;\n if (found) {\n arr.splice(i, 1);\n }\n return found;\n}\n\n\n/**\n * @param {Array} arr The array to search in.\n * @param {function(VALUE, number, ?) : boolean} func The function to compare.\n * @template VALUE\n * @return {VALUE|null} The element found or null.\n */\nexport function find(arr, func) {\n const length = arr.length >>> 0;\n let value;\n\n for (let i = 0; i < length; i++) {\n value = arr[i];\n if (func(value, i, arr)) {\n return value;\n }\n }\n return null;\n}\n\n\n/**\n * @param {Array|Uint8ClampedArray} arr1 The first array to compare.\n * @param {Array|Uint8ClampedArray} arr2 The second array to compare.\n * @return {boolean} Whether the two arrays are equal.\n */\nexport function equals(arr1, arr2) {\n const len1 = arr1.length;\n if (len1 !== arr2.length) {\n return false;\n }\n for (let i = 0; i < len1; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\n\n/**\n * Sort the passed array such that the relative order of equal elements is preverved.\n * See https://en.wikipedia.org/wiki/Sorting_algorithm#Stability for details.\n * @param {Array<*>} arr The array to sort (modifies original).\n * @param {!function(*, *): number} compareFnc Comparison function.\n * @api\n */\nexport function stableSort(arr, compareFnc) {\n const length = arr.length;\n const tmp = Array(arr.length);\n let i;\n for (i = 0; i < length; i++) {\n tmp[i] = {index: i, value: arr[i]};\n }\n tmp.sort(function(a, b) {\n return compareFnc(a.value, b.value) || a.index - b.index;\n });\n for (i = 0; i < arr.length; i++) {\n arr[i] = tmp[i].value;\n }\n}\n\n\n/**\n * @param {Array<*>} arr The array to search in.\n * @param {Function} func Comparison function.\n * @return {number} Return index.\n */\nexport function findIndex(arr, func) {\n let index;\n const found = !arr.every(function(el, idx) {\n index = idx;\n return !func(el, idx, arr);\n });\n return found ? index : -1;\n}\n\n\n/**\n * @param {Array<*>} arr The array to test.\n * @param {Function=} opt_func Comparison function.\n * @param {boolean=} opt_strict Strictly sorted (default false).\n * @return {boolean} Return index.\n */\nexport function isSorted(arr, opt_func, opt_strict) {\n const compare = opt_func || numberSafeCompareFunction;\n return arr.every(function(currentVal, index) {\n if (index === 0) {\n return true;\n }\n const res = compare(arr[index - 1], currentVal);\n return !(res > 0 || opt_strict && res === 0);\n });\n}\n","/**\n * @module ol/pointer/TouchSource\n */\n\n// Based on https://github.com/Polymer/PointerEvents\n\n// Copyright (c) 2013 The Polymer Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nimport {remove} from '../array.js';\nimport EventSource from './EventSource.js';\nimport {POINTER_ID} from './MouseSource.js';\n\n\n/**\n * @type {number}\n */\nconst CLICK_COUNT_TIMEOUT = 200;\n\n/**\n * @type {string}\n */\nconst POINTER_TYPE = 'touch';\n\n/**\n * Handler for `touchstart`, triggers `pointerover`,\n * `pointerenter` and `pointerdown` events.\n *\n * @this {TouchSource}\n * @param {TouchEvent} inEvent The in event.\n */\nfunction touchstart(inEvent) {\n this.vacuumTouches_(inEvent);\n this.setPrimaryTouch_(inEvent.changedTouches[0]);\n this.dedupSynthMouse_(inEvent);\n this.clickCount_++;\n this.processTouches_(inEvent, this.overDown_);\n}\n\n/**\n * Handler for `touchmove`.\n *\n * @this {TouchSource}\n * @param {TouchEvent} inEvent The in event.\n */\nfunction touchmove(inEvent) {\n this.processTouches_(inEvent, this.moveOverOut_);\n}\n\n/**\n * Handler for `touchend`, triggers `pointerup`,\n * `pointerout` and `pointerleave` events.\n *\n * @this {TouchSource}\n * @param {TouchEvent} inEvent The event.\n */\nfunction touchend(inEvent) {\n this.dedupSynthMouse_(inEvent);\n this.processTouches_(inEvent, this.upOut_);\n}\n\n/**\n * Handler for `touchcancel`, triggers `pointercancel`,\n * `pointerout` and `pointerleave` events.\n *\n * @this {TouchSource}\n * @param {TouchEvent} inEvent The in event.\n */\nfunction touchcancel(inEvent) {\n this.processTouches_(inEvent, this.cancelOut_);\n}\n\n\nclass TouchSource extends EventSource {\n\n /**\n * @param {import(\"./PointerEventHandler.js\").default} dispatcher The event handler.\n * @param {import(\"./MouseSource.js\").default} mouseSource Mouse source.\n */\n constructor(dispatcher, mouseSource) {\n const mapping = {\n 'touchstart': touchstart,\n 'touchmove': touchmove,\n 'touchend': touchend,\n 'touchcancel': touchcancel\n };\n super(dispatcher, mapping);\n\n /**\n * @const\n * @type {!Object}\n */\n this.pointerMap = dispatcher.pointerMap;\n\n /**\n * @const\n * @type {import(\"./MouseSource.js\").default}\n */\n this.mouseSource = mouseSource;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.firstTouchId_ = undefined;\n\n /**\n * @private\n * @type {number}\n */\n this.clickCount_ = 0;\n\n /**\n * @private\n * @type {?}\n */\n this.resetId_;\n\n /**\n * Mouse event timeout: This should be long enough to\n * ignore compat mouse events made by touch.\n * @private\n * @type {number}\n */\n this.dedupTimeout_ = 2500;\n }\n\n /**\n * @private\n * @param {Touch} inTouch The in touch.\n * @return {boolean} True, if this is the primary touch.\n */\n isPrimaryTouch_(inTouch) {\n return this.firstTouchId_ === inTouch.identifier;\n }\n\n /**\n * Set primary touch if there are no pointers, or the only pointer is the mouse.\n * @param {Touch} inTouch The in touch.\n * @private\n */\n setPrimaryTouch_(inTouch) {\n const count = Object.keys(this.pointerMap).length;\n if (count === 0 || (count === 1 && POINTER_ID.toString() in this.pointerMap)) {\n this.firstTouchId_ = inTouch.identifier;\n this.cancelResetClickCount_();\n }\n }\n\n /**\n * @private\n * @param {PointerEvent} inPointer The in pointer object.\n */\n removePrimaryPointer_(inPointer) {\n if (inPointer.isPrimary) {\n this.firstTouchId_ = undefined;\n this.resetClickCount_();\n }\n }\n\n /**\n * @private\n */\n resetClickCount_() {\n this.resetId_ = setTimeout(\n this.resetClickCountHandler_.bind(this),\n CLICK_COUNT_TIMEOUT);\n }\n\n /**\n * @private\n */\n resetClickCountHandler_() {\n this.clickCount_ = 0;\n this.resetId_ = undefined;\n }\n\n /**\n * @private\n */\n cancelResetClickCount_() {\n if (this.resetId_ !== undefined) {\n clearTimeout(this.resetId_);\n }\n }\n\n /**\n * @private\n * @param {TouchEvent} browserEvent Browser event\n * @param {Touch} inTouch Touch event\n * @return {PointerEvent} A pointer object.\n */\n touchToPointer_(browserEvent, inTouch) {\n const e = this.dispatcher.cloneEvent(browserEvent, inTouch);\n // Spec specifies that pointerId 1 is reserved for Mouse.\n // Touch identifiers can start at 0.\n // Add 2 to the touch identifier for compatibility.\n e.pointerId = inTouch.identifier + 2;\n // TODO: check if this is necessary?\n //e.target = findTarget(e);\n e.bubbles = true;\n e.cancelable = true;\n e.detail = this.clickCount_;\n e.button = 0;\n e.buttons = 1;\n e.width = inTouch.radiusX || 0;\n e.height = inTouch.radiusY || 0;\n e.pressure = inTouch.force || 0.5;\n e.isPrimary = this.isPrimaryTouch_(inTouch);\n e.pointerType = POINTER_TYPE;\n\n // make sure that the properties that are different for\n // each `Touch` object are not copied from the BrowserEvent object\n e.clientX = inTouch.clientX;\n e.clientY = inTouch.clientY;\n e.screenX = inTouch.screenX;\n e.screenY = inTouch.screenY;\n\n return e;\n }\n\n /**\n * @private\n * @param {TouchEvent} inEvent Touch event\n * @param {function(TouchEvent, PointerEvent)} inFunction In function.\n */\n processTouches_(inEvent, inFunction) {\n const touches = Array.prototype.slice.call(inEvent.changedTouches);\n const count = touches.length;\n function preventDefault() {\n inEvent.preventDefault();\n }\n for (let i = 0; i < count; ++i) {\n const pointer = this.touchToPointer_(inEvent, touches[i]);\n // forward touch preventDefaults\n pointer.preventDefault = preventDefault;\n inFunction.call(this, inEvent, pointer);\n }\n }\n\n /**\n * @private\n * @param {TouchList} touchList The touch list.\n * @param {number} searchId Search identifier.\n * @return {boolean} True, if the `Touch` with the given id is in the list.\n */\n findTouch_(touchList, searchId) {\n const l = touchList.length;\n for (let i = 0; i < l; i++) {\n const touch = touchList[i];\n if (touch.identifier === searchId) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * In some instances, a touchstart can happen without a touchend. This\n * leaves the pointermap in a broken state.\n * Therefore, on every touchstart, we remove the touches that did not fire a\n * touchend event.\n * To keep state globally consistent, we fire a pointercancel for\n * this \"abandoned\" touch\n *\n * @private\n * @param {TouchEvent} inEvent The in event.\n */\n vacuumTouches_(inEvent) {\n const touchList = inEvent.touches;\n // pointerMap.getCount() should be < touchList.length here,\n // as the touchstart has not been processed yet.\n const keys = Object.keys(this.pointerMap);\n const count = keys.length;\n if (count >= touchList.length) {\n const d = [];\n for (let i = 0; i < count; ++i) {\n const key = Number(keys[i]);\n const value = this.pointerMap[key];\n // Never remove pointerId == 1, which is mouse.\n // Touch identifiers are 2 smaller than their pointerId, which is the\n // index in pointermap.\n if (key != POINTER_ID && !this.findTouch_(touchList, key - 2)) {\n d.push(value.out);\n }\n }\n for (let i = 0; i < d.length; ++i) {\n this.cancelOut_(inEvent, d[i]);\n }\n }\n }\n\n /**\n * @private\n * @param {TouchEvent} browserEvent The event.\n * @param {PointerEvent} inPointer The in pointer object.\n */\n overDown_(browserEvent, inPointer) {\n this.pointerMap[inPointer.pointerId] = {\n target: inPointer.target,\n out: inPointer,\n outTarget: inPointer.target\n };\n this.dispatcher.over(inPointer, browserEvent);\n this.dispatcher.enter(inPointer, browserEvent);\n this.dispatcher.down(inPointer, browserEvent);\n }\n\n /**\n * @private\n * @param {TouchEvent} browserEvent The event.\n * @param {PointerEvent} inPointer The in pointer.\n */\n moveOverOut_(browserEvent, inPointer) {\n const event = inPointer;\n const pointer = this.pointerMap[event.pointerId];\n // a finger drifted off the screen, ignore it\n if (!pointer) {\n return;\n }\n const outEvent = pointer.out;\n const outTarget = pointer.outTarget;\n this.dispatcher.move(event, browserEvent);\n if (outEvent && outTarget !== event.target) {\n outEvent.relatedTarget = event.target;\n /** @type {Object} */ (event).relatedTarget = outTarget;\n // recover from retargeting by shadow\n outEvent.target = outTarget;\n if (event.target) {\n this.dispatcher.leaveOut(outEvent, browserEvent);\n this.dispatcher.enterOver(event, browserEvent);\n } else {\n // clean up case when finger leaves the screen\n /** @type {Object} */ (event).target = outTarget;\n /** @type {Object} */ (event).relatedTarget = null;\n this.cancelOut_(browserEvent, event);\n }\n }\n pointer.out = event;\n pointer.outTarget = event.target;\n }\n\n /**\n * @private\n * @param {TouchEvent} browserEvent An event.\n * @param {PointerEvent} inPointer The inPointer object.\n */\n upOut_(browserEvent, inPointer) {\n this.dispatcher.up(inPointer, browserEvent);\n this.dispatcher.out(inPointer, browserEvent);\n this.dispatcher.leave(inPointer, browserEvent);\n this.cleanUpPointer_(inPointer);\n }\n\n /**\n * @private\n * @param {TouchEvent} browserEvent The event.\n * @param {PointerEvent} inPointer The in pointer.\n */\n cancelOut_(browserEvent, inPointer) {\n this.dispatcher.cancel(inPointer, browserEvent);\n this.dispatcher.out(inPointer, browserEvent);\n this.dispatcher.leave(inPointer, browserEvent);\n this.cleanUpPointer_(inPointer);\n }\n\n /**\n * @private\n * @param {PointerEvent} inPointer The inPointer object.\n */\n cleanUpPointer_(inPointer) {\n delete this.pointerMap[inPointer.pointerId];\n this.removePrimaryPointer_(inPointer);\n }\n\n /**\n * Prevent synth mouse events from creating pointer events.\n *\n * @private\n * @param {TouchEvent} inEvent The in event.\n */\n dedupSynthMouse_(inEvent) {\n const lts = this.mouseSource.lastTouches;\n const t = inEvent.changedTouches[0];\n // only the primary finger will synth mouse events\n if (this.isPrimaryTouch_(t)) {\n // remember x/y of last touch\n const lt = [t.clientX, t.clientY];\n lts.push(lt);\n\n setTimeout(function() {\n // remove touch after timeout\n remove(lts, lt);\n }, this.dedupTimeout_);\n }\n }\n}\n\nexport default TouchSource;\n","/**\n * @module ol/pointer/PointerEventHandler\n */\n\n// Based on https://github.com/Polymer/PointerEvents\n\n// Copyright (c) 2013 The Polymer Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nimport {listen, unlisten} from '../events.js';\nimport EventTarget from '../events/Target.js';\nimport {POINTER, MSPOINTER, TOUCH} from '../has.js';\nimport PointerEventType from './EventType.js';\nimport MouseSource, {prepareEvent as prepareMouseEvent} from './MouseSource.js';\nimport MsSource from './MsSource.js';\nimport NativeSource from './NativeSource.js';\nimport PointerEvent from './PointerEvent.js';\nimport TouchSource from './TouchSource.js';\n\n\n/**\n * Properties to copy when cloning an event, with default values.\n * @type {Array}\n */\nconst CLONE_PROPS = [\n // MouseEvent\n ['bubbles', false],\n ['cancelable', false],\n ['view', null],\n ['detail', null],\n ['screenX', 0],\n ['screenY', 0],\n ['clientX', 0],\n ['clientY', 0],\n ['ctrlKey', false],\n ['altKey', false],\n ['shiftKey', false],\n ['metaKey', false],\n ['button', 0],\n ['relatedTarget', null],\n // DOM Level 3\n ['buttons', 0],\n // PointerEvent\n ['pointerId', 0],\n ['width', 0],\n ['height', 0],\n ['pressure', 0],\n ['tiltX', 0],\n ['tiltY', 0],\n ['pointerType', ''],\n ['hwTimestamp', 0],\n ['isPrimary', false],\n // event instance\n ['type', ''],\n ['target', null],\n ['currentTarget', null],\n ['which', 0]\n];\n\n\nclass PointerEventHandler extends EventTarget {\n\n /**\n * @param {Element|HTMLDocument} element Viewport element.\n */\n constructor(element) {\n super();\n\n /**\n * @const\n * @private\n * @type {Element|HTMLDocument}\n */\n this.element_ = element;\n\n /**\n * @const\n * @type {!Object}\n */\n this.pointerMap = {};\n\n /**\n * @type {Object}\n * @private\n */\n this.eventMap_ = {};\n\n /**\n * @type {Array}\n * @private\n */\n this.eventSourceList_ = [];\n\n this.registerSources();\n }\n\n /**\n * Set up the event sources (mouse, touch and native pointers)\n * that generate pointer events.\n */\n registerSources() {\n if (POINTER) {\n this.registerSource('native', new NativeSource(this));\n } else if (MSPOINTER) {\n this.registerSource('ms', new MsSource(this));\n } else {\n const mouseSource = new MouseSource(this);\n this.registerSource('mouse', mouseSource);\n\n if (TOUCH) {\n this.registerSource('touch', new TouchSource(this, mouseSource));\n }\n }\n\n // register events on the viewport element\n this.register_();\n }\n\n /**\n * Add a new event source that will generate pointer events.\n *\n * @param {string} name A name for the event source\n * @param {import(\"./EventSource.js\").default} source The source event.\n */\n registerSource(name, source) {\n const s = source;\n const newEvents = s.getEvents();\n\n if (newEvents) {\n newEvents.forEach(function(e) {\n const handler = s.getHandlerForEvent(e);\n\n if (handler) {\n this.eventMap_[e] = handler.bind(s);\n }\n }.bind(this));\n this.eventSourceList_.push(s);\n }\n }\n\n /**\n * Set up the events for all registered event sources.\n * @private\n */\n register_() {\n const l = this.eventSourceList_.length;\n for (let i = 0; i < l; i++) {\n const eventSource = this.eventSourceList_[i];\n this.addEvents_(eventSource.getEvents());\n }\n }\n\n /**\n * Remove all registered events.\n * @private\n */\n unregister_() {\n const l = this.eventSourceList_.length;\n for (let i = 0; i < l; i++) {\n const eventSource = this.eventSourceList_[i];\n this.removeEvents_(eventSource.getEvents());\n }\n }\n\n /**\n * Calls the right handler for a new event.\n * @private\n * @param {Event} inEvent Browser event.\n */\n eventHandler_(inEvent) {\n const type = inEvent.type;\n const handler = this.eventMap_[type];\n if (handler) {\n handler(inEvent);\n }\n }\n\n /**\n * Setup listeners for the given events.\n * @private\n * @param {Array} events List of events.\n */\n addEvents_(events) {\n events.forEach(function(eventName) {\n listen(this.element_, eventName, this.eventHandler_, this);\n }.bind(this));\n }\n\n /**\n * Unregister listeners for the given events.\n * @private\n * @param {Array} events List of events.\n */\n removeEvents_(events) {\n events.forEach(function(e) {\n unlisten(this.element_, e, this.eventHandler_, this);\n }.bind(this));\n }\n\n /**\n * Returns a snapshot of inEvent, with writable properties.\n *\n * @param {Event} event Browser event.\n * @param {Event|Touch} inEvent An event that contains\n * properties to copy.\n * @return {Object} An object containing shallow copies of\n * `inEvent`'s properties.\n */\n cloneEvent(event, inEvent) {\n const eventCopy = {};\n for (let i = 0, ii = CLONE_PROPS.length; i < ii; i++) {\n const p = CLONE_PROPS[i][0];\n eventCopy[p] = event[p] || inEvent[p] || CLONE_PROPS[i][1];\n }\n\n return eventCopy;\n }\n\n // EVENTS\n\n\n /**\n * Triggers a 'pointerdown' event.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n */\n down(data, event) {\n this.fireEvent(PointerEventType.POINTERDOWN, data, event);\n }\n\n /**\n * Triggers a 'pointermove' event.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n */\n move(data, event) {\n this.fireEvent(PointerEventType.POINTERMOVE, data, event);\n }\n\n /**\n * Triggers a 'pointerup' event.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n */\n up(data, event) {\n this.fireEvent(PointerEventType.POINTERUP, data, event);\n }\n\n /**\n * Triggers a 'pointerenter' event.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n */\n enter(data, event) {\n data.bubbles = false;\n this.fireEvent(PointerEventType.POINTERENTER, data, event);\n }\n\n /**\n * Triggers a 'pointerleave' event.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n */\n leave(data, event) {\n data.bubbles = false;\n this.fireEvent(PointerEventType.POINTERLEAVE, data, event);\n }\n\n /**\n * Triggers a 'pointerover' event.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n */\n over(data, event) {\n data.bubbles = true;\n this.fireEvent(PointerEventType.POINTEROVER, data, event);\n }\n\n /**\n * Triggers a 'pointerout' event.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n */\n out(data, event) {\n data.bubbles = true;\n this.fireEvent(PointerEventType.POINTEROUT, data, event);\n }\n\n /**\n * Triggers a 'pointercancel' event.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n */\n cancel(data, event) {\n this.fireEvent(PointerEventType.POINTERCANCEL, data, event);\n }\n\n /**\n * Triggers a combination of 'pointerout' and 'pointerleave' events.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n */\n leaveOut(data, event) {\n this.out(data, event);\n if (!this.contains_(data.target, data.relatedTarget)) {\n this.leave(data, event);\n }\n }\n\n /**\n * Triggers a combination of 'pointerover' and 'pointerevents' events.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n */\n enterOver(data, event) {\n this.over(data, event);\n if (!this.contains_(data.target, data.relatedTarget)) {\n this.enter(data, event);\n }\n }\n\n /**\n * @private\n * @param {Element} container The container element.\n * @param {Element} contained The contained element.\n * @return {boolean} Returns true if the container element\n * contains the other element.\n */\n contains_(container, contained) {\n if (!container || !contained) {\n return false;\n }\n return container.contains(contained);\n }\n\n // EVENT CREATION AND TRACKING\n /**\n * Creates a new Event of type `inType`, based on the information in\n * `data`.\n *\n * @param {string} inType A string representing the type of event to create.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n * @return {PointerEvent} A PointerEvent of type `inType`.\n */\n makeEvent(inType, data, event) {\n return new PointerEvent(inType, event, data);\n }\n\n /**\n * Make and dispatch an event in one call.\n * @param {string} inType A string representing the type of event.\n * @param {Object} data Pointer event data.\n * @param {Event} event The event.\n */\n fireEvent(inType, data, event) {\n const e = this.makeEvent(inType, data, event);\n this.dispatchEvent(e);\n }\n\n /**\n * Creates a pointer event from a native pointer event\n * and dispatches this event.\n * @param {Event} event A platform event with a target.\n */\n fireNativeEvent(event) {\n const e = this.makeEvent(event.type, event, event);\n this.dispatchEvent(e);\n }\n\n /**\n * Wrap a native mouse event into a pointer event.\n * This proxy method is required for the legacy IE support.\n * @param {string} eventType The pointer event type.\n * @param {Event} event The event.\n * @return {PointerEvent} The wrapped event.\n */\n wrapMouseEvent(eventType, event) {\n const pointerEvent = this.makeEvent(\n eventType, prepareMouseEvent(event, this), event);\n return pointerEvent;\n }\n\n /**\n * @inheritDoc\n */\n disposeInternal() {\n this.unregister_();\n super.disposeInternal();\n }\n}\n\nexport default PointerEventHandler;\n","/**\n * @module ol/MapBrowserEventHandler\n */\nimport {DEVICE_PIXEL_RATIO} from './has.js';\nimport MapBrowserEventType from './MapBrowserEventType.js';\nimport MapBrowserPointerEvent from './MapBrowserPointerEvent.js';\nimport {listen, unlistenByKey} from './events.js';\nimport EventTarget from './events/Target.js';\nimport PointerEventType from './pointer/EventType.js';\nimport PointerEventHandler from './pointer/PointerEventHandler.js';\n\nclass MapBrowserEventHandler extends EventTarget {\n\n /**\n * @param {import(\"./PluggableMap.js\").default} map The map with the viewport to listen to events on.\n * @param {number=} moveTolerance The minimal distance the pointer must travel to trigger a move.\n */\n constructor(map, moveTolerance) {\n\n super();\n\n /**\n * This is the element that we will listen to the real events on.\n * @type {import(\"./PluggableMap.js\").default}\n * @private\n */\n this.map_ = map;\n\n /**\n * @type {any}\n * @private\n */\n this.clickTimeoutId_;\n\n /**\n * @type {boolean}\n * @private\n */\n this.dragging_ = false;\n\n /**\n * @type {!Array}\n * @private\n */\n this.dragListenerKeys_ = [];\n\n /**\n * @type {number}\n * @private\n */\n this.moveTolerance_ = moveTolerance ?\n moveTolerance * DEVICE_PIXEL_RATIO : DEVICE_PIXEL_RATIO;\n\n /**\n * The most recent \"down\" type event (or null if none have occurred).\n * Set on pointerdown.\n * @type {import(\"./pointer/PointerEvent.js\").default}\n * @private\n */\n this.down_ = null;\n\n const element = this.map_.getViewport();\n\n /**\n * @type {number}\n * @private\n */\n this.activePointers_ = 0;\n\n /**\n * @type {!Object}\n * @private\n */\n this.trackedTouches_ = {};\n\n /**\n * Event handler which generates pointer events for\n * the viewport element.\n *\n * @type {PointerEventHandler}\n * @private\n */\n this.pointerEventHandler_ = new PointerEventHandler(element);\n\n /**\n * Event handler which generates pointer events for\n * the document (used when dragging).\n *\n * @type {PointerEventHandler}\n * @private\n */\n this.documentPointerEventHandler_ = null;\n\n /**\n * @type {?import(\"./events.js\").EventsKey}\n * @private\n */\n this.pointerdownListenerKey_ = listen(this.pointerEventHandler_,\n PointerEventType.POINTERDOWN,\n this.handlePointerDown_, this);\n\n /**\n * @type {?import(\"./events.js\").EventsKey}\n * @private\n */\n this.relayedListenerKey_ = listen(this.pointerEventHandler_,\n PointerEventType.POINTERMOVE,\n this.relayEvent_, this);\n\n }\n\n /**\n * @param {import(\"./pointer/PointerEvent.js\").default} pointerEvent Pointer\n * event.\n * @private\n */\n emulateClick_(pointerEvent) {\n let newEvent = new MapBrowserPointerEvent(\n MapBrowserEventType.CLICK, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n if (this.clickTimeoutId_ !== undefined) {\n // double-click\n clearTimeout(this.clickTimeoutId_);\n this.clickTimeoutId_ = undefined;\n newEvent = new MapBrowserPointerEvent(\n MapBrowserEventType.DBLCLICK, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n } else {\n // click\n this.clickTimeoutId_ = setTimeout(function() {\n this.clickTimeoutId_ = undefined;\n const newEvent = new MapBrowserPointerEvent(\n MapBrowserEventType.SINGLECLICK, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n }.bind(this), 250);\n }\n }\n\n /**\n * Keeps track on how many pointers are currently active.\n *\n * @param {import(\"./pointer/PointerEvent.js\").default} pointerEvent Pointer\n * event.\n * @private\n */\n updateActivePointers_(pointerEvent) {\n const event = pointerEvent;\n\n if (event.type == MapBrowserEventType.POINTERUP ||\n event.type == MapBrowserEventType.POINTERCANCEL) {\n delete this.trackedTouches_[event.pointerId];\n } else if (event.type == MapBrowserEventType.POINTERDOWN) {\n this.trackedTouches_[event.pointerId] = true;\n }\n this.activePointers_ = Object.keys(this.trackedTouches_).length;\n }\n\n /**\n * @param {import(\"./pointer/PointerEvent.js\").default} pointerEvent Pointer\n * event.\n * @private\n */\n handlePointerUp_(pointerEvent) {\n this.updateActivePointers_(pointerEvent);\n const newEvent = new MapBrowserPointerEvent(\n MapBrowserEventType.POINTERUP, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n\n // We emulate click events on left mouse button click, touch contact, and pen\n // contact. isMouseActionButton returns true in these cases (evt.button is set\n // to 0).\n // See http://www.w3.org/TR/pointerevents/#button-states\n // We only fire click, singleclick, and doubleclick if nobody has called\n // event.stopPropagation() or event.preventDefault().\n if (!newEvent.propagationStopped && !this.dragging_ && this.isMouseActionButton_(pointerEvent)) {\n this.emulateClick_(this.down_);\n }\n\n if (this.activePointers_ === 0) {\n this.dragListenerKeys_.forEach(unlistenByKey);\n this.dragListenerKeys_.length = 0;\n this.dragging_ = false;\n this.down_ = null;\n this.documentPointerEventHandler_.dispose();\n this.documentPointerEventHandler_ = null;\n }\n }\n\n /**\n * @param {import(\"./pointer/PointerEvent.js\").default} pointerEvent Pointer\n * event.\n * @return {boolean} If the left mouse button was pressed.\n * @private\n */\n isMouseActionButton_(pointerEvent) {\n return pointerEvent.button === 0;\n }\n\n /**\n * @param {import(\"./pointer/PointerEvent.js\").default} pointerEvent Pointer\n * event.\n * @private\n */\n handlePointerDown_(pointerEvent) {\n this.updateActivePointers_(pointerEvent);\n const newEvent = new MapBrowserPointerEvent(\n MapBrowserEventType.POINTERDOWN, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n\n this.down_ = pointerEvent;\n\n if (this.dragListenerKeys_.length === 0) {\n /* Set up a pointer event handler on the `document`,\n * which is required when the pointer is moved outside\n * the viewport when dragging.\n */\n this.documentPointerEventHandler_ =\n new PointerEventHandler(document);\n\n this.dragListenerKeys_.push(\n listen(this.documentPointerEventHandler_,\n MapBrowserEventType.POINTERMOVE,\n this.handlePointerMove_, this),\n listen(this.documentPointerEventHandler_,\n MapBrowserEventType.POINTERUP,\n this.handlePointerUp_, this),\n /* Note that the listener for `pointercancel is set up on\n * `pointerEventHandler_` and not `documentPointerEventHandler_` like\n * the `pointerup` and `pointermove` listeners.\n *\n * The reason for this is the following: `TouchSource.vacuumTouches_()`\n * issues `pointercancel` events, when there was no `touchend` for a\n * `touchstart`. Now, let's say a first `touchstart` is registered on\n * `pointerEventHandler_`. The `documentPointerEventHandler_` is set up.\n * But `documentPointerEventHandler_` doesn't know about the first\n * `touchstart`. If there is no `touchend` for the `touchstart`, we can\n * only receive a `touchcancel` from `pointerEventHandler_`, because it is\n * only registered there.\n */\n listen(this.pointerEventHandler_,\n MapBrowserEventType.POINTERCANCEL,\n this.handlePointerUp_, this)\n );\n }\n }\n\n /**\n * @param {import(\"./pointer/PointerEvent.js\").default} pointerEvent Pointer\n * event.\n * @private\n */\n handlePointerMove_(pointerEvent) {\n // Between pointerdown and pointerup, pointermove events are triggered.\n // To avoid a 'false' touchmove event to be dispatched, we test if the pointer\n // moved a significant distance.\n if (this.isMoving_(pointerEvent)) {\n this.dragging_ = true;\n const newEvent = new MapBrowserPointerEvent(\n MapBrowserEventType.POINTERDRAG, this.map_, pointerEvent,\n this.dragging_);\n this.dispatchEvent(newEvent);\n }\n\n // Some native android browser triggers mousemove events during small period\n // of time. See: https://code.google.com/p/android/issues/detail?id=5491 or\n // https://code.google.com/p/android/issues/detail?id=19827\n // ex: Galaxy Tab P3110 + Android 4.1.1\n pointerEvent.preventDefault();\n }\n\n /**\n * Wrap and relay a pointer event. Note that this requires that the type\n * string for the MapBrowserPointerEvent matches the PointerEvent type.\n * @param {import(\"./pointer/PointerEvent.js\").default} pointerEvent Pointer\n * event.\n * @private\n */\n relayEvent_(pointerEvent) {\n const dragging = !!(this.down_ && this.isMoving_(pointerEvent));\n this.dispatchEvent(new MapBrowserPointerEvent(\n pointerEvent.type, this.map_, pointerEvent, dragging));\n }\n\n /**\n * @param {import(\"./pointer/PointerEvent.js\").default} pointerEvent Pointer\n * event.\n * @return {boolean} Is moving.\n * @private\n */\n isMoving_(pointerEvent) {\n return this.dragging_ ||\n Math.abs(pointerEvent.clientX - this.down_.clientX) > this.moveTolerance_ ||\n Math.abs(pointerEvent.clientY - this.down_.clientY) > this.moveTolerance_;\n }\n\n /**\n * @inheritDoc\n */\n disposeInternal() {\n if (this.relayedListenerKey_) {\n unlistenByKey(this.relayedListenerKey_);\n this.relayedListenerKey_ = null;\n }\n if (this.pointerdownListenerKey_) {\n unlistenByKey(this.pointerdownListenerKey_);\n this.pointerdownListenerKey_ = null;\n }\n\n this.dragListenerKeys_.forEach(unlistenByKey);\n this.dragListenerKeys_.length = 0;\n\n if (this.documentPointerEventHandler_) {\n this.documentPointerEventHandler_.dispose();\n this.documentPointerEventHandler_ = null;\n }\n if (this.pointerEventHandler_) {\n this.pointerEventHandler_.dispose();\n this.pointerEventHandler_ = null;\n }\n super.disposeInternal();\n }\n}\n\n\nexport default MapBrowserEventHandler;\n","/**\n * @module ol/MapEventType\n */\n\n/**\n * @enum {string}\n */\nexport default {\n\n /**\n * Triggered after a map frame is rendered.\n * @event module:ol/MapEvent~MapEvent#postrender\n * @api\n */\n POSTRENDER: 'postrender',\n\n /**\n * Triggered when the map starts moving.\n * @event module:ol/MapEvent~MapEvent#movestart\n * @api\n */\n MOVESTART: 'movestart',\n\n /**\n * Triggered after the map is moved.\n * @event module:ol/MapEvent~MapEvent#moveend\n * @api\n */\n MOVEEND: 'moveend'\n\n};\n","/**\n * @module ol/MapProperty\n */\n\n/**\n * @enum {string}\n */\nexport default {\n LAYERGROUP: 'layergroup',\n SIZE: 'size',\n TARGET: 'target',\n VIEW: 'view'\n};\n","/**\n * @module ol/render/EventType\n */\n\n/**\n * @enum {string}\n */\nexport default {\n /**\n * @event module:ol/render/Event~RenderEvent#postcompose\n * @api\n */\n POSTCOMPOSE: 'postcompose',\n /**\n * @event module:ol/render/Event~RenderEvent#precompose\n * @api\n */\n PRECOMPOSE: 'precompose',\n /**\n * @event module:ol/render/Event~RenderEvent#render\n * @api\n */\n RENDER: 'render',\n /**\n * Triggered when rendering is complete, i.e. all sources and tiles have\n * finished loading for the current viewport, and all tiles are faded in.\n * @event module:ol/render/Event~RenderEvent#rendercomplete\n * @api\n */\n RENDERCOMPLETE: 'rendercomplete'\n};\n","/**\n * @module ol/TileState\n */\n\n/**\n * @enum {number}\n */\nexport default {\n IDLE: 0,\n LOADING: 1,\n LOADED: 2,\n /**\n * Indicates that tile loading failed\n * @type {number}\n */\n ERROR: 3,\n EMPTY: 4,\n ABORT: 5\n};\n","/**\n * @module ol/asserts\n */\nimport AssertionError from './AssertionError.js';\n\n/**\n * @param {*} assertion Assertion we expected to be truthy.\n * @param {number} errorCode Error code.\n */\nexport function assert(assertion, errorCode) {\n if (!assertion) {\n throw new AssertionError(errorCode);\n }\n}\n","/**\n * @module ol/structs/PriorityQueue\n */\nimport {assert} from '../asserts.js';\nimport {clear} from '../obj.js';\n\n\n/**\n * @type {number}\n */\nexport const DROP = Infinity;\n\n\n/**\n * @classdesc\n * Priority queue.\n *\n * The implementation is inspired from the Closure Library's Heap class and\n * Python's heapq module.\n *\n * See http://closure-library.googlecode.com/svn/docs/closure_goog_structs_heap.js.source.html\n * and http://hg.python.org/cpython/file/2.7/Lib/heapq.py.\n *\n * @template T\n */\nclass PriorityQueue {\n\n /**\n * @param {function(T): number} priorityFunction Priority function.\n * @param {function(T): string} keyFunction Key function.\n */\n constructor(priorityFunction, keyFunction) {\n\n /**\n * @type {function(T): number}\n * @private\n */\n this.priorityFunction_ = priorityFunction;\n\n /**\n * @type {function(T): string}\n * @private\n */\n this.keyFunction_ = keyFunction;\n\n /**\n * @type {Array}\n * @private\n */\n this.elements_ = [];\n\n /**\n * @type {Array}\n * @private\n */\n this.priorities_ = [];\n\n /**\n * @type {!Object}\n * @private\n */\n this.queuedElements_ = {};\n\n }\n\n /**\n * FIXME empty description for jsdoc\n */\n clear() {\n this.elements_.length = 0;\n this.priorities_.length = 0;\n clear(this.queuedElements_);\n }\n\n\n /**\n * Remove and return the highest-priority element. O(log N).\n * @return {T} Element.\n */\n dequeue() {\n const elements = this.elements_;\n const priorities = this.priorities_;\n const element = elements[0];\n if (elements.length == 1) {\n elements.length = 0;\n priorities.length = 0;\n } else {\n elements[0] = elements.pop();\n priorities[0] = priorities.pop();\n this.siftUp_(0);\n }\n const elementKey = this.keyFunction_(element);\n delete this.queuedElements_[elementKey];\n return element;\n }\n\n\n /**\n * Enqueue an element. O(log N).\n * @param {T} element Element.\n * @return {boolean} The element was added to the queue.\n */\n enqueue(element) {\n assert(!(this.keyFunction_(element) in this.queuedElements_),\n 31); // Tried to enqueue an `element` that was already added to the queue\n const priority = this.priorityFunction_(element);\n if (priority != DROP) {\n this.elements_.push(element);\n this.priorities_.push(priority);\n this.queuedElements_[this.keyFunction_(element)] = true;\n this.siftDown_(0, this.elements_.length - 1);\n return true;\n }\n return false;\n }\n\n\n /**\n * @return {number} Count.\n */\n getCount() {\n return this.elements_.length;\n }\n\n\n /**\n * Gets the index of the left child of the node at the given index.\n * @param {number} index The index of the node to get the left child for.\n * @return {number} The index of the left child.\n * @private\n */\n getLeftChildIndex_(index) {\n return index * 2 + 1;\n }\n\n\n /**\n * Gets the index of the right child of the node at the given index.\n * @param {number} index The index of the node to get the right child for.\n * @return {number} The index of the right child.\n * @private\n */\n getRightChildIndex_(index) {\n return index * 2 + 2;\n }\n\n\n /**\n * Gets the index of the parent of the node at the given index.\n * @param {number} index The index of the node to get the parent for.\n * @return {number} The index of the parent.\n * @private\n */\n getParentIndex_(index) {\n return (index - 1) >> 1;\n }\n\n\n /**\n * Make this a heap. O(N).\n * @private\n */\n heapify_() {\n let i;\n for (i = (this.elements_.length >> 1) - 1; i >= 0; i--) {\n this.siftUp_(i);\n }\n }\n\n\n /**\n * @return {boolean} Is empty.\n */\n isEmpty() {\n return this.elements_.length === 0;\n }\n\n\n /**\n * @param {string} key Key.\n * @return {boolean} Is key queued.\n */\n isKeyQueued(key) {\n return key in this.queuedElements_;\n }\n\n\n /**\n * @param {T} element Element.\n * @return {boolean} Is queued.\n */\n isQueued(element) {\n return this.isKeyQueued(this.keyFunction_(element));\n }\n\n\n /**\n * @param {number} index The index of the node to move down.\n * @private\n */\n siftUp_(index) {\n const elements = this.elements_;\n const priorities = this.priorities_;\n const count = elements.length;\n const element = elements[index];\n const priority = priorities[index];\n const startIndex = index;\n\n while (index < (count >> 1)) {\n const lIndex = this.getLeftChildIndex_(index);\n const rIndex = this.getRightChildIndex_(index);\n\n const smallerChildIndex = rIndex < count &&\n priorities[rIndex] < priorities[lIndex] ?\n rIndex : lIndex;\n\n elements[index] = elements[smallerChildIndex];\n priorities[index] = priorities[smallerChildIndex];\n index = smallerChildIndex;\n }\n\n elements[index] = element;\n priorities[index] = priority;\n this.siftDown_(startIndex, index);\n }\n\n\n /**\n * @param {number} startIndex The index of the root.\n * @param {number} index The index of the node to move up.\n * @private\n */\n siftDown_(startIndex, index) {\n const elements = this.elements_;\n const priorities = this.priorities_;\n const element = elements[index];\n const priority = priorities[index];\n\n while (index > startIndex) {\n const parentIndex = this.getParentIndex_(index);\n if (priorities[parentIndex] > priority) {\n elements[index] = elements[parentIndex];\n priorities[index] = priorities[parentIndex];\n index = parentIndex;\n } else {\n break;\n }\n }\n elements[index] = element;\n priorities[index] = priority;\n }\n\n\n /**\n * FIXME empty description for jsdoc\n */\n reprioritize() {\n const priorityFunction = this.priorityFunction_;\n const elements = this.elements_;\n const priorities = this.priorities_;\n let index = 0;\n const n = elements.length;\n let element, i, priority;\n for (i = 0; i < n; ++i) {\n element = elements[i];\n priority = priorityFunction(element);\n if (priority == DROP) {\n delete this.queuedElements_[this.keyFunction_(element)];\n } else {\n priorities[index] = priority;\n elements[index++] = element;\n }\n }\n elements.length = index;\n priorities.length = index;\n this.heapify_();\n }\n\n}\n\n\nexport default PriorityQueue;\n","/**\n * @module ol/TileQueue\n */\nimport TileState from './TileState.js';\nimport {listen, unlisten} from './events.js';\nimport EventType from './events/EventType.js';\nimport PriorityQueue from './structs/PriorityQueue.js';\n\n\n/**\n * @typedef {function(import(\"./Tile.js\").default, string, import(\"./coordinate.js\").Coordinate, number): number} PriorityFunction\n */\n\n\nclass TileQueue extends PriorityQueue {\n\n /**\n * @param {PriorityFunction} tilePriorityFunction Tile priority function.\n * @param {function(): ?} tileChangeCallback Function called on each tile change event.\n */\n constructor(tilePriorityFunction, tileChangeCallback) {\n\n super(\n /**\n * @param {Array} element Element.\n * @return {number} Priority.\n */\n function(element) {\n return tilePriorityFunction.apply(null, element);\n },\n /**\n * @param {Array} element Element.\n * @return {string} Key.\n */\n function(element) {\n return (/** @type {import(\"./Tile.js\").default} */ (element[0]).getKey());\n });\n\n /**\n * @private\n * @type {function(): ?}\n */\n this.tileChangeCallback_ = tileChangeCallback;\n\n /**\n * @private\n * @type {number}\n */\n this.tilesLoading_ = 0;\n\n /**\n * @private\n * @type {!Object}\n */\n this.tilesLoadingKeys_ = {};\n\n }\n\n /**\n * @inheritDoc\n */\n enqueue(element) {\n const added = super.enqueue(element);\n if (added) {\n const tile = element[0];\n listen(tile, EventType.CHANGE, this.handleTileChange, this);\n }\n return added;\n }\n\n /**\n * @return {number} Number of tiles loading.\n */\n getTilesLoading() {\n return this.tilesLoading_;\n }\n\n /**\n * @param {import(\"./events/Event.js\").default} event Event.\n * @protected\n */\n handleTileChange(event) {\n const tile = /** @type {import(\"./Tile.js\").default} */ (event.target);\n const state = tile.getState();\n if (state === TileState.LOADED || state === TileState.ERROR ||\n state === TileState.EMPTY || state === TileState.ABORT) {\n unlisten(tile, EventType.CHANGE, this.handleTileChange, this);\n const tileKey = tile.getKey();\n if (tileKey in this.tilesLoadingKeys_) {\n delete this.tilesLoadingKeys_[tileKey];\n --this.tilesLoading_;\n }\n this.tileChangeCallback_();\n }\n }\n\n /**\n * @param {number} maxTotalLoading Maximum number tiles to load simultaneously.\n * @param {number} maxNewLoads Maximum number of new tiles to load.\n */\n loadMoreTiles(maxTotalLoading, maxNewLoads) {\n let newLoads = 0;\n let abortedTiles = false;\n let state, tile, tileKey;\n while (this.tilesLoading_ < maxTotalLoading && newLoads < maxNewLoads &&\n this.getCount() > 0) {\n tile = /** @type {import(\"./Tile.js\").default} */ (this.dequeue()[0]);\n tileKey = tile.getKey();\n state = tile.getState();\n if (state === TileState.ABORT) {\n abortedTiles = true;\n } else if (state === TileState.IDLE && !(tileKey in this.tilesLoadingKeys_)) {\n this.tilesLoadingKeys_[tileKey] = true;\n ++this.tilesLoading_;\n ++newLoads;\n tile.load();\n }\n }\n if (newLoads === 0 && abortedTiles) {\n // Do not stop the render loop when all wanted tiles were aborted due to\n // a small, saturated tile cache.\n this.tileChangeCallback_();\n }\n }\n}\n\n\nexport default TileQueue;\n","/**\n * @module ol/tilegrid/common\n */\n\n/**\n * Default maximum zoom for default tile grids.\n * @type {number}\n */\nexport const DEFAULT_MAX_ZOOM = 42;\n\n/**\n * Default tile size.\n * @type {number}\n */\nexport const DEFAULT_TILE_SIZE = 256;\n","/**\n * @module ol/math\n */\nimport {assert} from './asserts.js';\n\n/**\n * Takes a number and clamps it to within the provided bounds.\n * @param {number} value The input number.\n * @param {number} min The minimum value to return.\n * @param {number} max The maximum value to return.\n * @return {number} The input number if it is within bounds, or the nearest\n * number within the bounds.\n */\nexport function clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\n\n\n/**\n * Return the hyperbolic cosine of a given number. The method will use the\n * native `Math.cosh` function if it is available, otherwise the hyperbolic\n * cosine will be calculated via the reference implementation of the Mozilla\n * developer network.\n *\n * @param {number} x X.\n * @return {number} Hyperbolic cosine of x.\n */\nexport const cosh = (function() {\n // Wrapped in a iife, to save the overhead of checking for the native\n // implementation on every invocation.\n let cosh;\n if ('cosh' in Math) {\n // The environment supports the native Math.cosh function, use it…\n cosh = Math.cosh;\n } else {\n // … else, use the reference implementation of MDN:\n cosh = function(x) {\n const y = /** @type {Math} */ (Math).exp(x);\n return (y + 1 / y) / 2;\n };\n }\n return cosh;\n}());\n\n\n/**\n * @param {number} x X.\n * @return {number} The smallest power of two greater than or equal to x.\n */\nexport function roundUpToPowerOfTwo(x) {\n assert(0 < x, 29); // `x` must be greater than `0`\n return Math.pow(2, Math.ceil(Math.log(x) / Math.LN2));\n}\n\n\n/**\n * Returns the square of the closest distance between the point (x, y) and the\n * line segment (x1, y1) to (x2, y2).\n * @param {number} x X.\n * @param {number} y Y.\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredSegmentDistance(x, y, x1, y1, x2, y2) {\n const dx = x2 - x1;\n const dy = y2 - y1;\n if (dx !== 0 || dy !== 0) {\n const t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n x1 = x2;\n y1 = y2;\n } else if (t > 0) {\n x1 += dx * t;\n y1 += dy * t;\n }\n }\n return squaredDistance(x, y, x1, y1);\n}\n\n\n/**\n * Returns the square of the distance between the points (x1, y1) and (x2, y2).\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredDistance(x1, y1, x2, y2) {\n const dx = x2 - x1;\n const dy = y2 - y1;\n return dx * dx + dy * dy;\n}\n\n\n/**\n * Solves system of linear equations using Gaussian elimination method.\n *\n * @param {Array>} mat Augmented matrix (n x n + 1 column)\n * in row-major order.\n * @return {Array} The resulting vector.\n */\nexport function solveLinearSystem(mat) {\n const n = mat.length;\n\n for (let i = 0; i < n; i++) {\n // Find max in the i-th column (ignoring i - 1 first rows)\n let maxRow = i;\n let maxEl = Math.abs(mat[i][i]);\n for (let r = i + 1; r < n; r++) {\n const absValue = Math.abs(mat[r][i]);\n if (absValue > maxEl) {\n maxEl = absValue;\n maxRow = r;\n }\n }\n\n if (maxEl === 0) {\n return null; // matrix is singular\n }\n\n // Swap max row with i-th (current) row\n const tmp = mat[maxRow];\n mat[maxRow] = mat[i];\n mat[i] = tmp;\n\n // Subtract the i-th row to make all the remaining rows 0 in the i-th column\n for (let j = i + 1; j < n; j++) {\n const coef = -mat[j][i] / mat[i][i];\n for (let k = i; k < n + 1; k++) {\n if (i == k) {\n mat[j][k] = 0;\n } else {\n mat[j][k] += coef * mat[i][k];\n }\n }\n }\n }\n\n // Solve Ax=b for upper triangular matrix A (mat)\n const x = new Array(n);\n for (let l = n - 1; l >= 0; l--) {\n x[l] = mat[l][n] / mat[l][l];\n for (let m = l - 1; m >= 0; m--) {\n mat[m][n] -= mat[m][l] * x[l];\n }\n }\n return x;\n}\n\n\n/**\n * Converts radians to to degrees.\n *\n * @param {number} angleInRadians Angle in radians.\n * @return {number} Angle in degrees.\n */\nexport function toDegrees(angleInRadians) {\n return angleInRadians * 180 / Math.PI;\n}\n\n\n/**\n * Converts degrees to radians.\n *\n * @param {number} angleInDegrees Angle in degrees.\n * @return {number} Angle in radians.\n */\nexport function toRadians(angleInDegrees) {\n return angleInDegrees * Math.PI / 180;\n}\n\n/**\n * Returns the modulo of a / b, depending on the sign of b.\n *\n * @param {number} a Dividend.\n * @param {number} b Divisor.\n * @return {number} Modulo.\n */\nexport function modulo(a, b) {\n const r = a % b;\n return r * b < 0 ? r + b : r;\n}\n\n/**\n * Calculates the linearly interpolated value of x between a and b.\n *\n * @param {number} a Number\n * @param {number} b Number\n * @param {number} x Value to be interpolated.\n * @return {number} Interpolated value.\n */\nexport function lerp(a, b, x) {\n return a + x * (b - a);\n}\n","/**\n * @module ol/centerconstraint\n */\nimport {clamp} from './math.js';\n\n\n/**\n * @typedef {function((import(\"./coordinate.js\").Coordinate|undefined)): (import(\"./coordinate.js\").Coordinate|undefined)} Type\n */\n\n\n/**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @return {Type} The constraint.\n */\nexport function createExtent(extent) {\n return (\n /**\n * @param {import(\"./coordinate.js\").Coordinate=} center Center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center.\n */\n function(center) {\n if (center) {\n return [\n clamp(center[0], extent[0], extent[2]),\n clamp(center[1], extent[1], extent[3])\n ];\n } else {\n return undefined;\n }\n }\n );\n}\n\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate=} center Center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center.\n */\nexport function none(center) {\n return center;\n}\n","/**\n * @module ol/resolutionconstraint\n */\nimport {linearFindNearest} from './array.js';\nimport {clamp} from './math.js';\n\n\n/**\n * @typedef {function((number|undefined), number, number): (number|undefined)} Type\n */\n\n\n/**\n * @param {Array} resolutions Resolutions.\n * @return {Type} Zoom function.\n */\nexport function createSnapToResolutions(resolutions) {\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} delta Delta.\n * @param {number} direction Direction.\n * @return {number|undefined} Resolution.\n */\n function(resolution, delta, direction) {\n if (resolution !== undefined) {\n let z = linearFindNearest(resolutions, resolution, direction);\n z = clamp(z + delta, 0, resolutions.length - 1);\n const index = Math.floor(z);\n if (z != index && index < resolutions.length - 1) {\n const power = resolutions[index] / resolutions[index + 1];\n return resolutions[index] / Math.pow(power, z - index);\n } else {\n return resolutions[index];\n }\n } else {\n return undefined;\n }\n }\n );\n}\n\n\n/**\n * @param {number} power Power.\n * @param {number} maxResolution Maximum resolution.\n * @param {number=} opt_maxLevel Maximum level.\n * @return {Type} Zoom function.\n */\nexport function createSnapToPower(power, maxResolution, opt_maxLevel) {\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} delta Delta.\n * @param {number} direction Direction.\n * @return {number|undefined} Resolution.\n */\n function(resolution, delta, direction) {\n if (resolution !== undefined) {\n const offset = -direction / 2 + 0.5;\n const oldLevel = Math.floor(\n Math.log(maxResolution / resolution) / Math.log(power) + offset);\n let newLevel = Math.max(oldLevel + delta, 0);\n if (opt_maxLevel !== undefined) {\n newLevel = Math.min(newLevel, opt_maxLevel);\n }\n return maxResolution / Math.pow(power, newLevel);\n } else {\n return undefined;\n }\n });\n}\n","/**\n * @module ol/rotationconstraint\n */\nimport {toRadians} from './math.js';\n\n\n/**\n * @typedef {function((number|undefined), number): (number|undefined)} Type\n */\n\n\n/**\n * @param {number|undefined} rotation Rotation.\n * @param {number} delta Delta.\n * @return {number|undefined} Rotation.\n */\nexport function disable(rotation, delta) {\n if (rotation !== undefined) {\n return 0;\n } else {\n return undefined;\n }\n}\n\n\n/**\n * @param {number|undefined} rotation Rotation.\n * @param {number} delta Delta.\n * @return {number|undefined} Rotation.\n */\nexport function none(rotation, delta) {\n if (rotation !== undefined) {\n return rotation + delta;\n } else {\n return undefined;\n }\n}\n\n\n/**\n * @param {number} n N.\n * @return {Type} Rotation constraint.\n */\nexport function createSnapToN(n) {\n const theta = 2 * Math.PI / n;\n return (\n /**\n * @param {number|undefined} rotation Rotation.\n * @param {number} delta Delta.\n * @return {number|undefined} Rotation.\n */\n function(rotation, delta) {\n if (rotation !== undefined) {\n rotation = Math.floor((rotation + delta) / theta + 0.5) * theta;\n return rotation;\n } else {\n return undefined;\n }\n });\n}\n\n\n/**\n * @param {number=} opt_tolerance Tolerance.\n * @return {Type} Rotation constraint.\n */\nexport function createSnapToZero(opt_tolerance) {\n const tolerance = opt_tolerance || toRadians(5);\n return (\n /**\n * @param {number|undefined} rotation Rotation.\n * @param {number} delta Delta.\n * @return {number|undefined} Rotation.\n */\n function(rotation, delta) {\n if (rotation !== undefined) {\n if (Math.abs(rotation + delta) <= tolerance) {\n return 0;\n } else {\n return rotation + delta;\n }\n } else {\n return undefined;\n }\n });\n}\n","/**\n * @module ol/ViewHint\n */\n\n/**\n * @enum {number}\n */\nexport default {\n ANIMATING: 0,\n INTERACTING: 1\n};\n","/**\n * @module ol/ViewProperty\n */\n\n/**\n * @enum {string}\n */\nexport default {\n CENTER: 'center',\n RESOLUTION: 'resolution',\n ROTATION: 'rotation'\n};\n","/**\n * @module ol/string\n */\n\n/**\n * @param {number} number Number to be formatted\n * @param {number} width The desired width\n * @param {number=} opt_precision Precision of the output string (i.e. number of decimal places)\n * @returns {string} Formatted string\n */\nexport function padNumber(number, width, opt_precision) {\n const numberString = opt_precision !== undefined ? number.toFixed(opt_precision) : '' + number;\n let decimal = numberString.indexOf('.');\n decimal = decimal === -1 ? numberString.length : decimal;\n return decimal > width ? numberString : new Array(1 + width - decimal).join('0') + numberString;\n}\n\n\n/**\n * Adapted from https://github.com/omichelsen/compare-versions/blob/master/index.js\n * @param {string|number} v1 First version\n * @param {string|number} v2 Second version\n * @returns {number} Value\n */\nexport function compareVersions(v1, v2) {\n const s1 = ('' + v1).split('.');\n const s2 = ('' + v2).split('.');\n\n for (let i = 0; i < Math.max(s1.length, s2.length); i++) {\n const n1 = parseInt(s1[i] || '0', 10);\n const n2 = parseInt(s2[i] || '0', 10);\n\n if (n1 > n2) {\n return 1;\n }\n if (n2 > n1) {\n return -1;\n }\n }\n\n return 0;\n}\n","/**\n * @module ol/coordinate\n */\nimport {modulo} from './math.js';\nimport {padNumber} from './string.js';\n\n\n/**\n * An array of numbers representing an xy coordinate. Example: `[16, 48]`.\n * @typedef {Array} Coordinate\n * @api\n */\n\n\n/**\n * A function that takes a {@link module:ol/coordinate~Coordinate} and\n * transforms it into a `{string}`.\n *\n * @typedef {function((Coordinate|undefined)): string} CoordinateFormat\n * @api\n */\n\n\n/**\n * Add `delta` to `coordinate`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {add} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * add(coord, [-2, 4]);\n * // coord is now [5.85, 51.983333]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {Coordinate} delta Delta.\n * @return {Coordinate} The input coordinate adjusted by\n * the given delta.\n * @api\n */\nexport function add(coordinate, delta) {\n coordinate[0] += delta[0];\n coordinate[1] += delta[1];\n return coordinate;\n}\n\n\n/**\n * Calculates the point closest to the passed coordinate on the passed circle.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {import(\"./geom/Circle.js\").default} circle The circle.\n * @return {Coordinate} Closest point on the circumference.\n */\nexport function closestOnCircle(coordinate, circle) {\n const r = circle.getRadius();\n const center = circle.getCenter();\n const x0 = center[0];\n const y0 = center[1];\n const x1 = coordinate[0];\n const y1 = coordinate[1];\n\n let dx = x1 - x0;\n const dy = y1 - y0;\n if (dx === 0 && dy === 0) {\n dx = 1;\n }\n const d = Math.sqrt(dx * dx + dy * dy);\n\n const x = x0 + r * dx / d;\n const y = y0 + r * dy / d;\n\n return [x, y];\n}\n\n\n/**\n * Calculates the point closest to the passed coordinate on the passed segment.\n * This is the foot of the perpendicular of the coordinate to the segment when\n * the foot is on the segment, or the closest segment coordinate when the foot\n * is outside the segment.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {Array} segment The two coordinates\n * of the segment.\n * @return {Coordinate} The foot of the perpendicular of\n * the coordinate to the segment.\n */\nexport function closestOnSegment(coordinate, segment) {\n const x0 = coordinate[0];\n const y0 = coordinate[1];\n const start = segment[0];\n const end = segment[1];\n const x1 = start[0];\n const y1 = start[1];\n const x2 = end[0];\n const y2 = end[1];\n const dx = x2 - x1;\n const dy = y2 - y1;\n const along = (dx === 0 && dy === 0) ? 0 :\n ((dx * (x0 - x1)) + (dy * (y0 - y1))) / ((dx * dx + dy * dy) || 0);\n let x, y;\n if (along <= 0) {\n x = x1;\n y = y1;\n } else if (along >= 1) {\n x = x2;\n y = y2;\n } else {\n x = x1 + along * dx;\n y = y1 + along * dy;\n }\n return [x, y];\n}\n\n\n/**\n * Returns a {@link module:ol/coordinate~CoordinateFormat} function that can be\n * used to format\n * a {Coordinate} to a string.\n *\n * Example without specifying the fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var stringifyFunc = createStringXY();\n * var out = stringifyFunc(coord);\n * // out is now '8, 48'\n *\n * Example with explicitly specifying 2 fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var stringifyFunc = createStringXY(2);\n * var out = stringifyFunc(coord);\n * // out is now '7.85, 47.98'\n *\n * @param {number=} opt_fractionDigits The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {CoordinateFormat} Coordinate format.\n * @api\n */\nexport function createStringXY(opt_fractionDigits) {\n return (\n /**\n * @param {Coordinate} coordinate Coordinate.\n * @return {string} String XY.\n */\n function(coordinate) {\n return toStringXY(coordinate, opt_fractionDigits);\n }\n );\n}\n\n\n/**\n * @param {string} hemispheres Hemispheres.\n * @param {number} degrees Degrees.\n * @param {number=} opt_fractionDigits The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} String.\n */\nexport function degreesToStringHDMS(hemispheres, degrees, opt_fractionDigits) {\n const normalizedDegrees = modulo(degrees + 180, 360) - 180;\n const x = Math.abs(3600 * normalizedDegrees);\n const dflPrecision = opt_fractionDigits || 0;\n const precision = Math.pow(10, dflPrecision);\n\n let deg = Math.floor(x / 3600);\n let min = Math.floor((x - deg * 3600) / 60);\n let sec = x - (deg * 3600) - (min * 60);\n sec = Math.ceil(sec * precision) / precision;\n\n if (sec >= 60) {\n sec = 0;\n min += 1;\n }\n\n if (min >= 60) {\n min = 0;\n deg += 1;\n }\n\n return deg + '\\u00b0 ' + padNumber(min, 2) + '\\u2032 ' +\n padNumber(sec, 2, dflPrecision) + '\\u2033' +\n (normalizedDegrees == 0 ? '' : ' ' + hemispheres.charAt(normalizedDegrees < 0 ? 1 : 0));\n}\n\n\n/**\n * Transforms the given {@link module:ol/coordinate~Coordinate} to a string\n * using the given string template. The strings `{x}` and `{y}` in the template\n * will be replaced with the first and second coordinate values respectively.\n *\n * Example without specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var template = 'Coordinate is ({x}|{y}).';\n * var out = format(coord, template);\n * // out is now 'Coordinate is (8|48).'\n *\n * Example explicitly specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var template = 'Coordinate is ({x}|{y}).';\n * var out = format(coord, template, 2);\n * // out is now 'Coordinate is (7.85|47.98).'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {string} template A template string with `{x}` and `{y}` placeholders\n * that will be replaced by first and second coordinate values.\n * @param {number=} opt_fractionDigits The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Formatted coordinate.\n * @api\n */\nexport function format(coordinate, template, opt_fractionDigits) {\n if (coordinate) {\n return template\n .replace('{x}', coordinate[0].toFixed(opt_fractionDigits))\n .replace('{y}', coordinate[1].toFixed(opt_fractionDigits));\n } else {\n return '';\n }\n}\n\n\n/**\n * @param {Coordinate} coordinate1 First coordinate.\n * @param {Coordinate} coordinate2 Second coordinate.\n * @return {boolean} The two coordinates are equal.\n */\nexport function equals(coordinate1, coordinate2) {\n let equals = true;\n for (let i = coordinate1.length - 1; i >= 0; --i) {\n if (coordinate1[i] != coordinate2[i]) {\n equals = false;\n break;\n }\n }\n return equals;\n}\n\n\n/**\n * Rotate `coordinate` by `angle`. `coordinate` is modified in place and\n * returned by the function.\n *\n * Example:\n *\n * import {rotate} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var rotateRadians = Math.PI / 2; // 90 degrees\n * rotate(coord, rotateRadians);\n * // coord is now [-47.983333, 7.85]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} angle Angle in radian.\n * @return {Coordinate} Coordinate.\n * @api\n */\nexport function rotate(coordinate, angle) {\n const cosAngle = Math.cos(angle);\n const sinAngle = Math.sin(angle);\n const x = coordinate[0] * cosAngle - coordinate[1] * sinAngle;\n const y = coordinate[1] * cosAngle + coordinate[0] * sinAngle;\n coordinate[0] = x;\n coordinate[1] = y;\n return coordinate;\n}\n\n\n/**\n * Scale `coordinate` by `scale`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {scale as scaleCoordinate} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var scale = 1.2;\n * scaleCoordinate(coord, scale);\n * // coord is now [9.42, 57.5799996]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} scale Scale factor.\n * @return {Coordinate} Coordinate.\n */\nexport function scale(coordinate, scale) {\n coordinate[0] *= scale;\n coordinate[1] *= scale;\n return coordinate;\n}\n\n\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Squared distance between coord1 and coord2.\n */\nexport function squaredDistance(coord1, coord2) {\n const dx = coord1[0] - coord2[0];\n const dy = coord1[1] - coord2[1];\n return dx * dx + dy * dy;\n}\n\n\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Distance between coord1 and coord2.\n */\nexport function distance(coord1, coord2) {\n return Math.sqrt(squaredDistance(coord1, coord2));\n}\n\n\n/**\n * Calculate the squared distance from a coordinate to a line segment.\n *\n * @param {Coordinate} coordinate Coordinate of the point.\n * @param {Array} segment Line segment (2\n * coordinates).\n * @return {number} Squared distance from the point to the line segment.\n */\nexport function squaredDistanceToSegment(coordinate, segment) {\n return squaredDistance(coordinate,\n closestOnSegment(coordinate, segment));\n}\n\n\n/**\n * Format a geographic coordinate with the hemisphere, degrees, minutes, and\n * seconds.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringHDMS} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringHDMS(coord);\n * // out is now '47° 58′ 60″ N 7° 50′ 60″ E'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringHDMS} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringHDMS(coord, 1);\n * // out is now '47° 58′ 60.0″ N 7° 50′ 60.0″ E'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number=} opt_fractionDigits The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Hemisphere, degrees, minutes and seconds.\n * @api\n */\nexport function toStringHDMS(coordinate, opt_fractionDigits) {\n if (coordinate) {\n return degreesToStringHDMS('NS', coordinate[1], opt_fractionDigits) + ' ' +\n degreesToStringHDMS('EW', coordinate[0], opt_fractionDigits);\n } else {\n return '';\n }\n}\n\n\n/**\n * Format a coordinate as a comma delimited string.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringXY(coord);\n * // out is now '8, 48'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringXY(coord, 1);\n * // out is now '7.8, 48.0'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number=} opt_fractionDigits The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} XY.\n * @api\n */\nexport function toStringXY(coordinate, opt_fractionDigits) {\n return format(coordinate, '{x}, {y}', opt_fractionDigits);\n}\n","/**\n * @module ol/easing\n */\n\n\n/**\n * Start slow and speed up.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeIn(t) {\n return Math.pow(t, 3);\n}\n\n\n/**\n * Start fast and slow down.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeOut(t) {\n return 1 - easeIn(1 - t);\n}\n\n\n/**\n * Start slow, speed up, and then slow down again.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function inAndOut(t) {\n return 3 * t * t - 2 * t * t * t;\n}\n\n\n/**\n * Maintain a constant speed over time.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function linear(t) {\n return t;\n}\n\n\n/**\n * Start slow, speed up, and at the very end slow down again. This has the\n * same general behavior as {@link module:ol/easing~inAndOut}, but the final\n * slowdown is delayed.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function upAndDown(t) {\n if (t < 0.5) {\n return inAndOut(2 * t);\n } else {\n return 1 - inAndOut(2 * (t - 0.5));\n }\n}\n","/**\n * @module ol/extent/Corner\n */\n\n/**\n * Extent corner.\n * @enum {string}\n */\nexport default {\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right'\n};\n","/**\n * @module ol/extent/Relationship\n */\n\n/**\n * Relationship to an extent.\n * @enum {number}\n */\nexport default {\n UNKNOWN: 0,\n INTERSECTING: 1,\n ABOVE: 2,\n RIGHT: 4,\n BELOW: 8,\n LEFT: 16\n};\n","/**\n * @module ol/extent\n */\nimport {assert} from './asserts.js';\nimport Corner from './extent/Corner.js';\nimport Relationship from './extent/Relationship.js';\n\n\n/**\n * An array of numbers representing an extent: `[minx, miny, maxx, maxy]`.\n * @typedef {Array} Extent\n * @api\n */\n\n/**\n * Build an extent that includes all given coordinates.\n *\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Bounding extent.\n * @api\n */\nexport function boundingExtent(coordinates) {\n const extent = createEmpty();\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n\n\n/**\n * @param {Array} xs Xs.\n * @param {Array} ys Ys.\n * @param {Extent=} opt_extent Destination extent.\n * @private\n * @return {Extent} Extent.\n */\nfunction _boundingExtentXYs(xs, ys, opt_extent) {\n const minX = Math.min.apply(null, xs);\n const minY = Math.min.apply(null, ys);\n const maxX = Math.max.apply(null, xs);\n const maxY = Math.max.apply(null, ys);\n return createOrUpdate(minX, minY, maxX, maxY, opt_extent);\n}\n\n\n/**\n * Return extent increased by the provided value.\n * @param {Extent} extent Extent.\n * @param {number} value The amount by which the extent should be buffered.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n * @api\n */\nexport function buffer(extent, value, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0] - value;\n opt_extent[1] = extent[1] - value;\n opt_extent[2] = extent[2] + value;\n opt_extent[3] = extent[3] + value;\n return opt_extent;\n } else {\n return [\n extent[0] - value,\n extent[1] - value,\n extent[2] + value,\n extent[3] + value\n ];\n }\n}\n\n\n/**\n * Creates a clone of an extent.\n *\n * @param {Extent} extent Extent to clone.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} The clone.\n */\nexport function clone(extent, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0];\n opt_extent[1] = extent[1];\n opt_extent[2] = extent[2];\n opt_extent[3] = extent[3];\n return opt_extent;\n } else {\n return extent.slice();\n }\n}\n\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {number} Closest squared distance.\n */\nexport function closestSquaredDistanceXY(extent, x, y) {\n let dx, dy;\n if (x < extent[0]) {\n dx = extent[0] - x;\n } else if (extent[2] < x) {\n dx = x - extent[2];\n } else {\n dx = 0;\n }\n if (y < extent[1]) {\n dy = extent[1] - y;\n } else if (extent[3] < y) {\n dy = y - extent[3];\n } else {\n dy = 0;\n }\n return dx * dx + dy * dy;\n}\n\n\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} The coordinate is contained in the extent.\n * @api\n */\nexport function containsCoordinate(extent, coordinate) {\n return containsXY(extent, coordinate[0], coordinate[1]);\n}\n\n\n/**\n * Check if one extent contains another.\n *\n * An extent is deemed contained if it lies completely within the other extent,\n * including if they share one or more edges.\n *\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The second extent is contained by or on the edge of the\n * first.\n * @api\n */\nexport function containsExtent(extent1, extent2) {\n return extent1[0] <= extent2[0] && extent2[2] <= extent1[2] &&\n extent1[1] <= extent2[1] && extent2[3] <= extent1[3];\n}\n\n\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {number} x X coordinate.\n * @param {number} y Y coordinate.\n * @return {boolean} The x, y values are contained in the extent.\n * @api\n */\nexport function containsXY(extent, x, y) {\n return extent[0] <= x && x <= extent[2] && extent[1] <= y && y <= extent[3];\n}\n\n\n/**\n * Get the relationship between a coordinate and extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate The coordinate.\n * @return {Relationship} The relationship (bitwise compare with\n * import(\"./extent/Relationship.js\").Relationship).\n */\nexport function coordinateRelationship(extent, coordinate) {\n const minX = extent[0];\n const minY = extent[1];\n const maxX = extent[2];\n const maxY = extent[3];\n const x = coordinate[0];\n const y = coordinate[1];\n let relationship = Relationship.UNKNOWN;\n if (x < minX) {\n relationship = relationship | Relationship.LEFT;\n } else if (x > maxX) {\n relationship = relationship | Relationship.RIGHT;\n }\n if (y < minY) {\n relationship = relationship | Relationship.BELOW;\n } else if (y > maxY) {\n relationship = relationship | Relationship.ABOVE;\n }\n if (relationship === Relationship.UNKNOWN) {\n relationship = Relationship.INTERSECTING;\n }\n return relationship;\n}\n\n\n/**\n * Create an empty extent.\n * @return {Extent} Empty extent.\n * @api\n */\nexport function createEmpty() {\n return [Infinity, Infinity, -Infinity, -Infinity];\n}\n\n\n/**\n * Create a new extent or update the provided extent.\n * @param {number} minX Minimum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxX Maximum X.\n * @param {number} maxY Maximum Y.\n * @param {Extent=} opt_extent Destination extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdate(minX, minY, maxX, maxY, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = minX;\n opt_extent[1] = minY;\n opt_extent[2] = maxX;\n opt_extent[3] = maxY;\n return opt_extent;\n } else {\n return [minX, minY, maxX, maxY];\n }\n}\n\n\n/**\n * Create a new empty extent or make the provided one empty.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateEmpty(opt_extent) {\n return createOrUpdate(\n Infinity, Infinity, -Infinity, -Infinity, opt_extent);\n}\n\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinate(coordinate, opt_extent) {\n const x = coordinate[0];\n const y = coordinate[1];\n return createOrUpdate(x, y, x, y, opt_extent);\n}\n\n\n/**\n * @param {Array} coordinates Coordinates.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinates(coordinates, opt_extent) {\n const extent = createOrUpdateEmpty(opt_extent);\n return extendCoordinates(extent, coordinates);\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromFlatCoordinates(flatCoordinates, offset, end, stride, opt_extent) {\n const extent = createOrUpdateEmpty(opt_extent);\n return extendFlatCoordinates(extent, flatCoordinates, offset, end, stride);\n}\n\n/**\n * @param {Array>} rings Rings.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromRings(rings, opt_extent) {\n const extent = createOrUpdateEmpty(opt_extent);\n return extendRings(extent, rings);\n}\n\n\n/**\n * Determine if two extents are equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The two extents are equivalent.\n * @api\n */\nexport function equals(extent1, extent2) {\n return extent1[0] == extent2[0] && extent1[2] == extent2[2] &&\n extent1[1] == extent2[1] && extent1[3] == extent2[3];\n}\n\n\n/**\n * Modify an extent to include another extent.\n * @param {Extent} extent1 The extent to be modified.\n * @param {Extent} extent2 The extent that will be included in the first.\n * @return {Extent} A reference to the first (extended) extent.\n * @api\n */\nexport function extend(extent1, extent2) {\n if (extent2[0] < extent1[0]) {\n extent1[0] = extent2[0];\n }\n if (extent2[2] > extent1[2]) {\n extent1[2] = extent2[2];\n }\n if (extent2[1] < extent1[1]) {\n extent1[1] = extent2[1];\n }\n if (extent2[3] > extent1[3]) {\n extent1[3] = extent2[3];\n }\n return extent1;\n}\n\n\n/**\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n */\nexport function extendCoordinate(extent, coordinate) {\n if (coordinate[0] < extent[0]) {\n extent[0] = coordinate[0];\n }\n if (coordinate[0] > extent[2]) {\n extent[2] = coordinate[0];\n }\n if (coordinate[1] < extent[1]) {\n extent[1] = coordinate[1];\n }\n if (coordinate[1] > extent[3]) {\n extent[3] = coordinate[1];\n }\n}\n\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Extent.\n */\nexport function extendCoordinates(extent, coordinates) {\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {Extent} Extent.\n */\nexport function extendFlatCoordinates(extent, flatCoordinates, offset, end, stride) {\n for (; offset < end; offset += stride) {\n extendXY(extent, flatCoordinates[offset], flatCoordinates[offset + 1]);\n }\n return extent;\n}\n\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array>} rings Rings.\n * @return {Extent} Extent.\n */\nexport function extendRings(extent, rings) {\n for (let i = 0, ii = rings.length; i < ii; ++i) {\n extendCoordinates(extent, rings[i]);\n }\n return extent;\n}\n\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n */\nexport function extendXY(extent, x, y) {\n extent[0] = Math.min(extent[0], x);\n extent[1] = Math.min(extent[1], y);\n extent[2] = Math.max(extent[2], x);\n extent[3] = Math.max(extent[3], y);\n}\n\n\n/**\n * This function calls `callback` for each corner of the extent. If the\n * callback returns a truthy value the function returns that value\n * immediately. Otherwise the function returns `false`.\n * @param {Extent} extent Extent.\n * @param {function(this:T, import(\"./coordinate.js\").Coordinate): S} callback Callback.\n * @param {T=} opt_this Value to use as `this` when executing `callback`.\n * @return {S|boolean} Value.\n * @template S, T\n */\nexport function forEachCorner(extent, callback, opt_this) {\n let val;\n val = callback.call(opt_this, getBottomLeft(extent));\n if (val) {\n return val;\n }\n val = callback.call(opt_this, getBottomRight(extent));\n if (val) {\n return val;\n }\n val = callback.call(opt_this, getTopRight(extent));\n if (val) {\n return val;\n }\n val = callback.call(opt_this, getTopLeft(extent));\n if (val) {\n return val;\n }\n return false;\n}\n\n\n/**\n * Get the size of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Area.\n * @api\n */\nexport function getArea(extent) {\n let area = 0;\n if (!isEmpty(extent)) {\n area = getWidth(extent) * getHeight(extent);\n }\n return area;\n}\n\n\n/**\n * Get the bottom left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom left coordinate.\n * @api\n */\nexport function getBottomLeft(extent) {\n return [extent[0], extent[1]];\n}\n\n\n/**\n * Get the bottom right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom right coordinate.\n * @api\n */\nexport function getBottomRight(extent) {\n return [extent[2], extent[1]];\n}\n\n\n/**\n * Get the center coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Center.\n * @api\n */\nexport function getCenter(extent) {\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\n}\n\n\n/**\n * Get a corner coordinate of an extent.\n * @param {Extent} extent Extent.\n * @param {Corner} corner Corner.\n * @return {import(\"./coordinate.js\").Coordinate} Corner coordinate.\n */\nexport function getCorner(extent, corner) {\n let coordinate;\n if (corner === Corner.BOTTOM_LEFT) {\n coordinate = getBottomLeft(extent);\n } else if (corner === Corner.BOTTOM_RIGHT) {\n coordinate = getBottomRight(extent);\n } else if (corner === Corner.TOP_LEFT) {\n coordinate = getTopLeft(extent);\n } else if (corner === Corner.TOP_RIGHT) {\n coordinate = getTopRight(extent);\n } else {\n assert(false, 13); // Invalid corner\n }\n return coordinate;\n}\n\n\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Enlarged area.\n */\nexport function getEnlargedArea(extent1, extent2) {\n const minX = Math.min(extent1[0], extent2[0]);\n const minY = Math.min(extent1[1], extent2[1]);\n const maxX = Math.max(extent1[2], extent2[2]);\n const maxY = Math.max(extent1[3], extent2[3]);\n return (maxX - minX) * (maxY - minY);\n}\n\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @param {Extent=} opt_extent Destination extent.\n * @return {Extent} Extent.\n */\nexport function getForViewAndSize(center, resolution, rotation, size, opt_extent) {\n const dx = resolution * size[0] / 2;\n const dy = resolution * size[1] / 2;\n const cosRotation = Math.cos(rotation);\n const sinRotation = Math.sin(rotation);\n const xCos = dx * cosRotation;\n const xSin = dx * sinRotation;\n const yCos = dy * cosRotation;\n const ySin = dy * sinRotation;\n const x = center[0];\n const y = center[1];\n const x0 = x - xCos + ySin;\n const x1 = x - xCos - ySin;\n const x2 = x + xCos - ySin;\n const x3 = x + xCos + ySin;\n const y0 = y - xSin - yCos;\n const y1 = y - xSin + yCos;\n const y2 = y + xSin + yCos;\n const y3 = y + xSin - yCos;\n return createOrUpdate(\n Math.min(x0, x1, x2, x3), Math.min(y0, y1, y2, y3),\n Math.max(x0, x1, x2, x3), Math.max(y0, y1, y2, y3),\n opt_extent);\n}\n\n\n/**\n * Get the height of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Height.\n * @api\n */\nexport function getHeight(extent) {\n return extent[3] - extent[1];\n}\n\n\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Intersection area.\n */\nexport function getIntersectionArea(extent1, extent2) {\n const intersection = getIntersection(extent1, extent2);\n return getArea(intersection);\n}\n\n\n/**\n * Get the intersection of two extents.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {Extent=} opt_extent Optional extent to populate with intersection.\n * @return {Extent} Intersecting extent.\n * @api\n */\nexport function getIntersection(extent1, extent2, opt_extent) {\n const intersection = opt_extent ? opt_extent : createEmpty();\n if (intersects(extent1, extent2)) {\n if (extent1[0] > extent2[0]) {\n intersection[0] = extent1[0];\n } else {\n intersection[0] = extent2[0];\n }\n if (extent1[1] > extent2[1]) {\n intersection[1] = extent1[1];\n } else {\n intersection[1] = extent2[1];\n }\n if (extent1[2] < extent2[2]) {\n intersection[2] = extent1[2];\n } else {\n intersection[2] = extent2[2];\n }\n if (extent1[3] < extent2[3]) {\n intersection[3] = extent1[3];\n } else {\n intersection[3] = extent2[3];\n }\n } else {\n createOrUpdateEmpty(intersection);\n }\n return intersection;\n}\n\n\n/**\n * @param {Extent} extent Extent.\n * @return {number} Margin.\n */\nexport function getMargin(extent) {\n return getWidth(extent) + getHeight(extent);\n}\n\n\n/**\n * Get the size (width, height) of an extent.\n * @param {Extent} extent The extent.\n * @return {import(\"./size.js\").Size} The extent size.\n * @api\n */\nexport function getSize(extent) {\n return [extent[2] - extent[0], extent[3] - extent[1]];\n}\n\n\n/**\n * Get the top left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top left coordinate.\n * @api\n */\nexport function getTopLeft(extent) {\n return [extent[0], extent[3]];\n}\n\n\n/**\n * Get the top right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top right coordinate.\n * @api\n */\nexport function getTopRight(extent) {\n return [extent[2], extent[3]];\n}\n\n\n/**\n * Get the width of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Width.\n * @api\n */\nexport function getWidth(extent) {\n return extent[2] - extent[0];\n}\n\n\n/**\n * Determine if one extent intersects another.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent.\n * @return {boolean} The two extents intersect.\n * @api\n */\nexport function intersects(extent1, extent2) {\n return extent1[0] <= extent2[2] &&\n extent1[2] >= extent2[0] &&\n extent1[1] <= extent2[3] &&\n extent1[3] >= extent2[1];\n}\n\n\n/**\n * Determine if an extent is empty.\n * @param {Extent} extent Extent.\n * @return {boolean} Is empty.\n * @api\n */\nexport function isEmpty(extent) {\n return extent[2] < extent[0] || extent[3] < extent[1];\n}\n\n\n/**\n * @param {Extent} extent Extent.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function returnOrUpdate(extent, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0];\n opt_extent[1] = extent[1];\n opt_extent[2] = extent[2];\n opt_extent[3] = extent[3];\n return opt_extent;\n } else {\n return extent;\n }\n}\n\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} value Value.\n */\nexport function scaleFromCenter(extent, value) {\n const deltaX = ((extent[2] - extent[0]) / 2) * (value - 1);\n const deltaY = ((extent[3] - extent[1]) / 2) * (value - 1);\n extent[0] -= deltaX;\n extent[2] += deltaX;\n extent[1] -= deltaY;\n extent[3] += deltaY;\n}\n\n\n/**\n * Determine if the segment between two coordinates intersects (crosses,\n * touches, or is contained by) the provided extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} start Segment start coordinate.\n * @param {import(\"./coordinate.js\").Coordinate} end Segment end coordinate.\n * @return {boolean} The segment intersects the extent.\n */\nexport function intersectsSegment(extent, start, end) {\n let intersects = false;\n const startRel = coordinateRelationship(extent, start);\n const endRel = coordinateRelationship(extent, end);\n if (startRel === Relationship.INTERSECTING ||\n endRel === Relationship.INTERSECTING) {\n intersects = true;\n } else {\n const minX = extent[0];\n const minY = extent[1];\n const maxX = extent[2];\n const maxY = extent[3];\n const startX = start[0];\n const startY = start[1];\n const endX = end[0];\n const endY = end[1];\n const slope = (endY - startY) / (endX - startX);\n let x, y;\n if (!!(endRel & Relationship.ABOVE) &&\n !(startRel & Relationship.ABOVE)) {\n // potentially intersects top\n x = endX - ((endY - maxY) / slope);\n intersects = x >= minX && x <= maxX;\n }\n if (!intersects && !!(endRel & Relationship.RIGHT) &&\n !(startRel & Relationship.RIGHT)) {\n // potentially intersects right\n y = endY - ((endX - maxX) * slope);\n intersects = y >= minY && y <= maxY;\n }\n if (!intersects && !!(endRel & Relationship.BELOW) &&\n !(startRel & Relationship.BELOW)) {\n // potentially intersects bottom\n x = endX - ((endY - minY) / slope);\n intersects = x >= minX && x <= maxX;\n }\n if (!intersects && !!(endRel & Relationship.LEFT) &&\n !(startRel & Relationship.LEFT)) {\n // potentially intersects left\n y = endY - ((endX - minX) * slope);\n intersects = y >= minY && y <= maxY;\n }\n\n }\n return intersects;\n}\n\n\n/**\n * Apply a transform function to the extent.\n * @param {Extent} extent Extent.\n * @param {import(\"./proj.js\").TransformFunction} transformFn Transform function.\n * Called with `[minX, minY, maxX, maxY]` extent coordinates.\n * @param {Extent=} opt_extent Destination extent.\n * @return {Extent} Extent.\n * @api\n */\nexport function applyTransform(extent, transformFn, opt_extent) {\n const coordinates = [\n extent[0], extent[1],\n extent[0], extent[3],\n extent[2], extent[1],\n extent[2], extent[3]\n ];\n transformFn(coordinates, coordinates, 2);\n const xs = [coordinates[0], coordinates[2], coordinates[4], coordinates[6]];\n const ys = [coordinates[1], coordinates[3], coordinates[5], coordinates[7]];\n return _boundingExtentXYs(xs, ys, opt_extent);\n}\n","/**\n * @module ol/geom/GeometryType\n */\n\n/**\n * The geometry type. One of `'Point'`, `'LineString'`, `'LinearRing'`,\n * `'Polygon'`, `'MultiPoint'`, `'MultiLineString'`, `'MultiPolygon'`,\n * `'GeometryCollection'`, `'Circle'`.\n * @enum {string}\n */\nexport default {\n POINT: 'Point',\n LINE_STRING: 'LineString',\n LINEAR_RING: 'LinearRing',\n POLYGON: 'Polygon',\n MULTI_POINT: 'MultiPoint',\n MULTI_LINE_STRING: 'MultiLineString',\n MULTI_POLYGON: 'MultiPolygon',\n GEOMETRY_COLLECTION: 'GeometryCollection',\n CIRCLE: 'Circle'\n};\n","/**\n * @module ol/geom/GeometryLayout\n */\n\n/**\n * The coordinate layout for geometries, indicating whether a 3rd or 4th z ('Z')\n * or measure ('M') coordinate is available. Supported values are `'XY'`,\n * `'XYZ'`, `'XYM'`, `'XYZM'`.\n * @enum {string}\n */\nexport default {\n XY: 'XY',\n XYZ: 'XYZ',\n XYM: 'XYM',\n XYZM: 'XYZM'\n};\n","/**\n * @module ol/geom/flat/transform\n */\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../transform.js\").Transform} transform Transform.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function transform2D(flatCoordinates, offset, end, stride, transform, opt_dest) {\n const dest = opt_dest ? opt_dest : [];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const x = flatCoordinates[j];\n const y = flatCoordinates[j + 1];\n dest[i++] = transform[0] * x + transform[2] * y + transform[4];\n dest[i++] = transform[1] * x + transform[3] * y + transform[5];\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} angle Angle.\n * @param {Array} anchor Rotation anchor point.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function rotate(flatCoordinates, offset, end, stride, angle, anchor, opt_dest) {\n const dest = opt_dest ? opt_dest : [];\n const cos = Math.cos(angle);\n const sin = Math.sin(angle);\n const anchorX = anchor[0];\n const anchorY = anchor[1];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const deltaX = flatCoordinates[j] - anchorX;\n const deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + deltaX * cos - deltaY * sin;\n dest[i++] = anchorY + deltaX * sin + deltaY * cos;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n\n/**\n * Scale the coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} sx Scale factor in the x-direction.\n * @param {number} sy Scale factor in the y-direction.\n * @param {Array} anchor Scale anchor point.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function scale(flatCoordinates, offset, end, stride, sx, sy, anchor, opt_dest) {\n const dest = opt_dest ? opt_dest : [];\n const anchorX = anchor[0];\n const anchorY = anchor[1];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const deltaX = flatCoordinates[j] - anchorX;\n const deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + sx * deltaX;\n dest[i++] = anchorY + sy * deltaY;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function translate(flatCoordinates, offset, end, stride, deltaX, deltaY, opt_dest) {\n const dest = opt_dest ? opt_dest : [];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n dest[i++] = flatCoordinates[j] + deltaX;\n dest[i++] = flatCoordinates[j + 1] + deltaY;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n","/**\n * @license\n * Latitude/longitude spherical geodesy formulae taken from\n * http://www.movable-type.co.uk/scripts/latlong.html\n * Licensed under CC-BY-3.0.\n */\n\n/**\n * @module ol/sphere\n */\nimport {toRadians, toDegrees} from './math.js';\nimport GeometryType from './geom/GeometryType.js';\n\n\n/**\n * Object literal with options for the {@link getLength} or {@link getArea}\n * functions.\n * @typedef {Object} SphereMetricOptions\n * @property {import(\"./proj.js\").ProjectionLike} [projection='EPSG:3857']\n * Projection of the geometry. By default, the geometry is assumed to be in\n * Web Mercator.\n * @property {number} [radius=6371008.8] Sphere radius. By default, the radius of the\n * earth is used (Clarke 1866 Authalic Sphere).\n */\n\n\n/**\n * The mean Earth radius (1/3 * (2a + b)) for the WGS84 ellipsoid.\n * https://en.wikipedia.org/wiki/Earth_radius#Mean_radius\n * @type {number}\n */\nexport const DEFAULT_RADIUS = 6371008.8;\n\n\n/**\n * Get the great circle distance (in meters) between two geographic coordinates.\n * @param {Array} c1 Starting coordinate.\n * @param {Array} c2 Ending coordinate.\n * @param {number=} opt_radius The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {number} The great circle distance between the points (in meters).\n * @api\n */\nexport function getDistance(c1, c2, opt_radius) {\n const radius = opt_radius || DEFAULT_RADIUS;\n const lat1 = toRadians(c1[1]);\n const lat2 = toRadians(c2[1]);\n const deltaLatBy2 = (lat2 - lat1) / 2;\n const deltaLonBy2 = toRadians(c2[0] - c1[0]) / 2;\n const a = Math.sin(deltaLatBy2) * Math.sin(deltaLatBy2) +\n Math.sin(deltaLonBy2) * Math.sin(deltaLonBy2) *\n Math.cos(lat1) * Math.cos(lat2);\n return 2 * radius * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n}\n\n\n/**\n * Get the cumulative great circle length of linestring coordinates (geographic).\n * @param {Array} coordinates Linestring coordinates.\n * @param {number} radius The sphere radius to use.\n * @return {number} The length (in meters).\n */\nfunction getLengthInternal(coordinates, radius) {\n let length = 0;\n for (let i = 0, ii = coordinates.length; i < ii - 1; ++i) {\n length += getDistance(coordinates[i], coordinates[i + 1], radius);\n }\n return length;\n}\n\n\n/**\n * Get the spherical length of a geometry. This length is the sum of the\n * great circle distances between coordinates. For polygons, the length is\n * the sum of all rings. For points, the length is zero. For multi-part\n * geometries, the length is the sum of the length of each part.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions=} opt_options Options for the\n * length calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical length (in meters).\n * @api\n */\nexport function getLength(geometry, opt_options) {\n const options = opt_options || {};\n const radius = options.radius || DEFAULT_RADIUS;\n const projection = options.projection || 'EPSG:3857';\n const type = geometry.getType();\n if (type !== GeometryType.GEOMETRY_COLLECTION) {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n let length = 0;\n let coordinates, coords, i, ii, j, jj;\n switch (type) {\n case GeometryType.POINT:\n case GeometryType.MULTI_POINT: {\n break;\n }\n case GeometryType.LINE_STRING:\n case GeometryType.LINEAR_RING: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n length = getLengthInternal(coordinates, radius);\n break;\n }\n case GeometryType.MULTI_LINE_STRING:\n case GeometryType.POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n length += getLengthInternal(coordinates[i], radius);\n }\n break;\n }\n case GeometryType.MULTI_POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n for (j = 0, jj = coords.length; j < jj; ++j) {\n length += getLengthInternal(coords[j], radius);\n }\n }\n break;\n }\n case GeometryType.GEOMETRY_COLLECTION: {\n const geometries = /** @type {import(\"./geom/GeometryCollection.js\").default} */ (geometry).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n length += getLength(geometries[i], opt_options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return length;\n}\n\n\n/**\n * Returns the spherical area for a list of coordinates.\n *\n * [Reference](https://trs-new.jpl.nasa.gov/handle/2014/40409)\n * Robert. G. Chamberlain and William H. Duquette, \"Some Algorithms for\n * Polygons on a Sphere\", JPL Publication 07-03, Jet Propulsion\n * Laboratory, Pasadena, CA, June 2007\n *\n * @param {Array} coordinates List of coordinates of a linear\n * ring. If the ring is oriented clockwise, the area will be positive,\n * otherwise it will be negative.\n * @param {number} radius The sphere radius.\n * @return {number} Area (in square meters).\n */\nfunction getAreaInternal(coordinates, radius) {\n let area = 0;\n const len = coordinates.length;\n let x1 = coordinates[len - 1][0];\n let y1 = coordinates[len - 1][1];\n for (let i = 0; i < len; i++) {\n const x2 = coordinates[i][0];\n const y2 = coordinates[i][1];\n area += toRadians(x2 - x1) *\n (2 + Math.sin(toRadians(y1)) +\n Math.sin(toRadians(y2)));\n x1 = x2;\n y1 = y2;\n }\n return area * radius * radius / 2.0;\n}\n\n\n/**\n * Get the spherical area of a geometry. This is the area (in meters) assuming\n * that polygon edges are segments of great circles on a sphere.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions=} opt_options Options for the area\n * calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical area (in square meters).\n * @api\n */\nexport function getArea(geometry, opt_options) {\n const options = opt_options || {};\n const radius = options.radius || DEFAULT_RADIUS;\n const projection = options.projection || 'EPSG:3857';\n const type = geometry.getType();\n if (type !== GeometryType.GEOMETRY_COLLECTION) {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n let area = 0;\n let coordinates, coords, i, ii, j, jj;\n switch (type) {\n case GeometryType.POINT:\n case GeometryType.MULTI_POINT:\n case GeometryType.LINE_STRING:\n case GeometryType.MULTI_LINE_STRING:\n case GeometryType.LINEAR_RING: {\n break;\n }\n case GeometryType.POLYGON: {\n coordinates = /** @type {import(\"./geom/Polygon.js\").default} */ (geometry).getCoordinates();\n area = Math.abs(getAreaInternal(coordinates[0], radius));\n for (i = 1, ii = coordinates.length; i < ii; ++i) {\n area -= Math.abs(getAreaInternal(coordinates[i], radius));\n }\n break;\n }\n case GeometryType.MULTI_POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n area += Math.abs(getAreaInternal(coords[0], radius));\n for (j = 1, jj = coords.length; j < jj; ++j) {\n area -= Math.abs(getAreaInternal(coords[j], radius));\n }\n }\n break;\n }\n case GeometryType.GEOMETRY_COLLECTION: {\n const geometries = /** @type {import(\"./geom/GeometryCollection.js\").default} */ (geometry).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n area += getArea(geometries[i], opt_options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return area;\n}\n\n\n/**\n * Returns the coordinate at the given distance and bearing from `c1`.\n *\n * @param {import(\"./coordinate.js\").Coordinate} c1 The origin point (`[lon, lat]` in degrees).\n * @param {number} distance The great-circle distance between the origin\n * point and the target point.\n * @param {number} bearing The bearing (in radians).\n * @param {number=} opt_radius The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {import(\"./coordinate.js\").Coordinate} The target point.\n */\nexport function offset(c1, distance, bearing, opt_radius) {\n const radius = opt_radius || DEFAULT_RADIUS;\n const lat1 = toRadians(c1[1]);\n const lon1 = toRadians(c1[0]);\n const dByR = distance / radius;\n const lat = Math.asin(\n Math.sin(lat1) * Math.cos(dByR) +\n Math.cos(lat1) * Math.sin(dByR) * Math.cos(bearing));\n const lon = lon1 + Math.atan2(\n Math.sin(bearing) * Math.sin(dByR) * Math.cos(lat1),\n Math.cos(dByR) - Math.sin(lat1) * Math.sin(lat));\n return [toDegrees(lon), toDegrees(lat)];\n}\n","/**\n * @module ol/proj/Units\n */\n\n/**\n * Projection units: `'degrees'`, `'ft'`, `'m'`, `'pixels'`, `'tile-pixels'` or\n * `'us-ft'`.\n * @enum {string}\n */\nconst Units = {\n DEGREES: 'degrees',\n FEET: 'ft',\n METERS: 'm',\n PIXELS: 'pixels',\n TILE_PIXELS: 'tile-pixels',\n USFEET: 'us-ft'\n};\n\n\n/**\n * Meters per unit lookup table.\n * @const\n * @type {Object}\n * @api\n */\nexport const METERS_PER_UNIT = {};\n// use the radius of the Normal sphere\nMETERS_PER_UNIT[Units.DEGREES] = 2 * Math.PI * 6370997 / 360;\nMETERS_PER_UNIT[Units.FEET] = 0.3048;\nMETERS_PER_UNIT[Units.METERS] = 1;\nMETERS_PER_UNIT[Units.USFEET] = 1200 / 3937;\n\nexport default Units;\n","/**\n * @module ol/proj/Projection\n */\nimport {METERS_PER_UNIT} from './Units.js';\n\n\n/**\n * @typedef {Object} Options\n * @property {string} code The SRS identifier code, e.g. `EPSG:4326`.\n * @property {import(\"./Units.js\").default|string} [units] Units. Required unless a\n * proj4 projection is defined for `code`.\n * @property {import(\"../extent.js\").Extent} [extent] The validity extent for the SRS.\n * @property {string} [axisOrientation='enu'] The axis orientation as specified in Proj4.\n * @property {boolean} [global=false] Whether the projection is valid for the whole globe.\n * @property {number} [metersPerUnit] The meters per unit for the SRS.\n * If not provided, the `units` are used to get the meters per unit from the {@link module:ol/proj/Units~METERS_PER_UNIT}\n * lookup table.\n * @property {import(\"../extent.js\").Extent} [worldExtent] The world extent for the SRS.\n * @property {function(number, import(\"../coordinate.js\").Coordinate):number} [getPointResolution]\n * Function to determine resolution at a point. The function is called with a\n * `{number}` view resolution and an `{import(\"../coordinate.js\").Coordinate}` as arguments, and returns\n * the `{number}` resolution at the passed coordinate. If this is `undefined`,\n * the default {@link module:ol/proj#getPointResolution} function will be used.\n */\n\n\n/**\n * @classdesc\n * Projection definition class. One of these is created for each projection\n * supported in the application and stored in the {@link module:ol/proj} namespace.\n * You can use these in applications, but this is not required, as API params\n * and options use {@link module:ol/proj~ProjectionLike} which means the simple string\n * code will suffice.\n *\n * You can use {@link module:ol/proj~get} to retrieve the object for a particular\n * projection.\n *\n * The library includes definitions for `EPSG:4326` and `EPSG:3857`, together\n * with the following aliases:\n * * `EPSG:4326`: CRS:84, urn:ogc:def:crs:EPSG:6.6:4326,\n * urn:ogc:def:crs:OGC:1.3:CRS84, urn:ogc:def:crs:OGC:2:84,\n * http://www.opengis.net/gml/srs/epsg.xml#4326,\n * urn:x-ogc:def:crs:EPSG:4326\n * * `EPSG:3857`: EPSG:102100, EPSG:102113, EPSG:900913,\n * urn:ogc:def:crs:EPSG:6.18:3:3857,\n * http://www.opengis.net/gml/srs/epsg.xml#3857\n *\n * If you use [proj4js](https://github.com/proj4js/proj4js), aliases can\n * be added using `proj4.defs()`. After all required projection definitions are\n * added, call the {@link module:ol/proj/proj4~register} function.\n *\n * @api\n */\nclass Projection {\n\n /**\n * @param {Options} options Projection options.\n */\n constructor(options) {\n /**\n * @private\n * @type {string}\n */\n this.code_ = options.code;\n\n /**\n * Units of projected coordinates. When set to `TILE_PIXELS`, a\n * `this.extent_` and `this.worldExtent_` must be configured properly for each\n * tile.\n * @private\n * @type {import(\"./Units.js\").default}\n */\n this.units_ = /** @type {import(\"./Units.js\").default} */ (options.units);\n\n /**\n * Validity extent of the projection in projected coordinates. For projections\n * with `TILE_PIXELS` units, this is the extent of the tile in\n * tile pixel space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.extent_ = options.extent !== undefined ? options.extent : null;\n\n /**\n * Extent of the world in EPSG:4326. For projections with\n * `TILE_PIXELS` units, this is the extent of the tile in\n * projected coordinate space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.worldExtent_ = options.worldExtent !== undefined ?\n options.worldExtent : null;\n\n /**\n * @private\n * @type {string}\n */\n this.axisOrientation_ = options.axisOrientation !== undefined ?\n options.axisOrientation : 'enu';\n\n /**\n * @private\n * @type {boolean}\n */\n this.global_ = options.global !== undefined ? options.global : false;\n\n /**\n * @private\n * @type {boolean}\n */\n this.canWrapX_ = !!(this.global_ && this.extent_);\n\n /**\n * @private\n * @type {function(number, import(\"../coordinate.js\").Coordinate):number|undefined}\n */\n this.getPointResolutionFunc_ = options.getPointResolution;\n\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n this.defaultTileGrid_ = null;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.metersPerUnit_ = options.metersPerUnit;\n }\n\n /**\n * @return {boolean} The projection is suitable for wrapping the x-axis\n */\n canWrapX() {\n return this.canWrapX_;\n }\n\n /**\n * Get the code for this projection, e.g. 'EPSG:4326'.\n * @return {string} Code.\n * @api\n */\n getCode() {\n return this.code_;\n }\n\n /**\n * Get the validity extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n getExtent() {\n return this.extent_;\n }\n\n /**\n * Get the units of this projection.\n * @return {import(\"./Units.js\").default} Units.\n * @api\n */\n getUnits() {\n return this.units_;\n }\n\n /**\n * Get the amount of meters per unit of this projection. If the projection is\n * not configured with `metersPerUnit` or a units identifier, the return is\n * `undefined`.\n * @return {number|undefined} Meters.\n * @api\n */\n getMetersPerUnit() {\n return this.metersPerUnit_ || METERS_PER_UNIT[this.units_];\n }\n\n /**\n * Get the world extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n getWorldExtent() {\n return this.worldExtent_;\n }\n\n /**\n * Get the axis orientation of this projection.\n * Example values are:\n * enu - the default easting, northing, elevation.\n * neu - northing, easting, up - useful for \"lat/long\" geographic coordinates,\n * or south orientated transverse mercator.\n * wnu - westing, northing, up - some planetary coordinate systems have\n * \"west positive\" coordinate systems\n * @return {string} Axis orientation.\n * @api\n */\n getAxisOrientation() {\n return this.axisOrientation_;\n }\n\n /**\n * Is this projection a global projection which spans the whole world?\n * @return {boolean} Whether the projection is global.\n * @api\n */\n isGlobal() {\n return this.global_;\n }\n\n /**\n * Set if the projection is a global projection which spans the whole world\n * @param {boolean} global Whether the projection is global.\n * @api\n */\n setGlobal(global) {\n this.global_ = global;\n this.canWrapX_ = !!(global && this.extent_);\n }\n\n /**\n * @return {import(\"../tilegrid/TileGrid.js\").default} The default tile grid.\n */\n getDefaultTileGrid() {\n return this.defaultTileGrid_;\n }\n\n /**\n * @param {import(\"../tilegrid/TileGrid.js\").default} tileGrid The default tile grid.\n */\n setDefaultTileGrid(tileGrid) {\n this.defaultTileGrid_ = tileGrid;\n }\n\n /**\n * Set the validity extent for this projection.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n setExtent(extent) {\n this.extent_ = extent;\n this.canWrapX_ = !!(this.global_ && extent);\n }\n\n /**\n * Set the world extent for this projection.\n * @param {import(\"../extent.js\").Extent} worldExtent World extent\n * [minlon, minlat, maxlon, maxlat].\n * @api\n */\n setWorldExtent(worldExtent) {\n this.worldExtent_ = worldExtent;\n }\n\n /**\n * Set the getPointResolution function (see {@link module:ol/proj~getPointResolution}\n * for this projection.\n * @param {function(number, import(\"../coordinate.js\").Coordinate):number} func Function\n * @api\n */\n setGetPointResolution(func) {\n this.getPointResolutionFunc_ = func;\n }\n\n /**\n * Get the custom point resolution function for this projection (if set).\n * @return {function(number, import(\"../coordinate.js\").Coordinate):number|undefined} The custom point\n * resolution function (if set).\n */\n getPointResolutionFunc() {\n return this.getPointResolutionFunc_;\n }\n}\n\nexport default Projection;\n","/**\n * @module ol/proj/epsg3857\n */\nimport {cosh} from '../math.js';\nimport Projection from './Projection.js';\nimport Units from './Units.js';\n\n\n/**\n * Radius of WGS84 sphere\n *\n * @const\n * @type {number}\n */\nexport const RADIUS = 6378137;\n\n\n/**\n * @const\n * @type {number}\n */\nexport const HALF_SIZE = Math.PI * RADIUS;\n\n\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const EXTENT = [\n -HALF_SIZE, -HALF_SIZE,\n HALF_SIZE, HALF_SIZE\n];\n\n\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const WORLD_EXTENT = [-180, -85, 180, 85];\n\n\n/**\n * @classdesc\n * Projection object for web/spherical Mercator (EPSG:3857).\n */\nclass EPSG3857Projection extends Projection {\n\n /**\n * @param {string} code Code.\n */\n constructor(code) {\n super({\n code: code,\n units: Units.METERS,\n extent: EXTENT,\n global: true,\n worldExtent: WORLD_EXTENT,\n getPointResolution: function(resolution, point) {\n return resolution / cosh(point[1] / RADIUS);\n }\n });\n\n }\n\n}\n\n\n/**\n * Projections equal to EPSG:3857.\n *\n * @const\n * @type {Array}\n */\nexport const PROJECTIONS = [\n new EPSG3857Projection('EPSG:3857'),\n new EPSG3857Projection('EPSG:102100'),\n new EPSG3857Projection('EPSG:102113'),\n new EPSG3857Projection('EPSG:900913'),\n new EPSG3857Projection('urn:ogc:def:crs:EPSG:6.18:3:3857'),\n new EPSG3857Projection('urn:ogc:def:crs:EPSG::3857'),\n new EPSG3857Projection('http://www.opengis.net/gml/srs/epsg.xml#3857')\n];\n\n\n/**\n * Transformation from EPSG:4326 to EPSG:3857.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array=} opt_output Output array of coordinate values.\n * @param {number=} opt_dimension Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function fromEPSG4326(input, opt_output, opt_dimension) {\n const length = input.length;\n const dimension = opt_dimension > 1 ? opt_dimension : 2;\n let output = opt_output;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n } else {\n output = new Array(length);\n }\n }\n const halfSize = HALF_SIZE;\n for (let i = 0; i < length; i += dimension) {\n output[i] = halfSize * input[i] / 180;\n let y = RADIUS *\n Math.log(Math.tan(Math.PI * (input[i + 1] + 90) / 360));\n if (y > halfSize) {\n y = halfSize;\n } else if (y < -halfSize) {\n y = -halfSize;\n }\n output[i + 1] = y;\n }\n return output;\n}\n\n\n/**\n * Transformation from EPSG:3857 to EPSG:4326.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array=} opt_output Output array of coordinate values.\n * @param {number=} opt_dimension Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function toEPSG4326(input, opt_output, opt_dimension) {\n const length = input.length;\n const dimension = opt_dimension > 1 ? opt_dimension : 2;\n let output = opt_output;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n } else {\n output = new Array(length);\n }\n }\n for (let i = 0; i < length; i += dimension) {\n output[i] = 180 * input[i] / HALF_SIZE;\n output[i + 1] = 360 * Math.atan(\n Math.exp(input[i + 1] / RADIUS)) / Math.PI - 90;\n }\n return output;\n}\n","/**\n * @module ol/proj/epsg4326\n */\nimport Projection from './Projection.js';\nimport Units from './Units.js';\n\n\n/**\n * Semi-major radius of the WGS84 ellipsoid.\n *\n * @const\n * @type {number}\n */\nexport const RADIUS = 6378137;\n\n\n/**\n * Extent of the EPSG:4326 projection which is the whole world.\n *\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const EXTENT = [-180, -90, 180, 90];\n\n\n/**\n * @const\n * @type {number}\n */\nexport const METERS_PER_UNIT = Math.PI * RADIUS / 180;\n\n\n/**\n * @classdesc\n * Projection object for WGS84 geographic coordinates (EPSG:4326).\n *\n * Note that OpenLayers does not strictly comply with the EPSG definition.\n * The EPSG registry defines 4326 as a CRS for Latitude,Longitude (y,x).\n * OpenLayers treats EPSG:4326 as a pseudo-projection, with x,y coordinates.\n */\nclass EPSG4326Projection extends Projection {\n\n /**\n * @param {string} code Code.\n * @param {string=} opt_axisOrientation Axis orientation.\n */\n constructor(code, opt_axisOrientation) {\n super({\n code: code,\n units: Units.DEGREES,\n extent: EXTENT,\n axisOrientation: opt_axisOrientation,\n global: true,\n metersPerUnit: METERS_PER_UNIT,\n worldExtent: EXTENT\n });\n\n }\n\n}\n\n\n/**\n * Projections equal to EPSG:4326.\n *\n * @const\n * @type {Array}\n */\nexport const PROJECTIONS = [\n new EPSG4326Projection('CRS:84'),\n new EPSG4326Projection('EPSG:4326', 'neu'),\n new EPSG4326Projection('urn:ogc:def:crs:EPSG::4326', 'neu'),\n new EPSG4326Projection('urn:ogc:def:crs:EPSG:6.6:4326', 'neu'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:1.3:CRS84'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:2:84'),\n new EPSG4326Projection('http://www.opengis.net/gml/srs/epsg.xml#4326', 'neu'),\n new EPSG4326Projection('urn:x-ogc:def:crs:EPSG:4326', 'neu')\n];\n","/**\n * @module ol/proj/projections\n */\n\n\n/**\n * @type {Object}\n */\nlet cache = {};\n\n\n/**\n * Clear the projections cache.\n */\nexport function clear() {\n cache = {};\n}\n\n\n/**\n * Get a cached projection by code.\n * @param {string} code The code for the projection.\n * @return {import(\"./Projection.js\").default} The projection (if cached).\n */\nexport function get(code) {\n return cache[code] || null;\n}\n\n\n/**\n * Add a projection to the cache.\n * @param {string} code The projection code.\n * @param {import(\"./Projection.js\").default} projection The projection to cache.\n */\nexport function add(code, projection) {\n cache[code] = projection;\n}\n","/**\n * @module ol/proj/transforms\n */\nimport {isEmpty} from '../obj.js';\n\n\n/**\n * @private\n * @type {!Object>}\n */\nlet transforms = {};\n\n\n/**\n * Clear the transform cache.\n */\nexport function clear() {\n transforms = {};\n}\n\n\n/**\n * Registers a conversion function to convert coordinates from the source\n * projection to the destination projection.\n *\n * @param {import(\"./Projection.js\").default} source Source.\n * @param {import(\"./Projection.js\").default} destination Destination.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform.\n */\nexport function add(source, destination, transformFn) {\n const sourceCode = source.getCode();\n const destinationCode = destination.getCode();\n if (!(sourceCode in transforms)) {\n transforms[sourceCode] = {};\n }\n transforms[sourceCode][destinationCode] = transformFn;\n}\n\n\n/**\n * Unregisters the conversion function to convert coordinates from the source\n * projection to the destination projection. This method is used to clean up\n * cached transforms during testing.\n *\n * @param {import(\"./Projection.js\").default} source Source projection.\n * @param {import(\"./Projection.js\").default} destination Destination projection.\n * @return {import(\"../proj.js\").TransformFunction} transformFn The unregistered transform.\n */\nexport function remove(source, destination) {\n const sourceCode = source.getCode();\n const destinationCode = destination.getCode();\n const transform = transforms[sourceCode][destinationCode];\n delete transforms[sourceCode][destinationCode];\n if (isEmpty(transforms[sourceCode])) {\n delete transforms[sourceCode];\n }\n return transform;\n}\n\n\n/**\n * Get a transform given a source code and a destination code.\n * @param {string} sourceCode The code for the source projection.\n * @param {string} destinationCode The code for the destination projection.\n * @return {import(\"../proj.js\").TransformFunction|undefined} The transform function (if found).\n */\nexport function get(sourceCode, destinationCode) {\n let transform;\n if (sourceCode in transforms && destinationCode in transforms[sourceCode]) {\n transform = transforms[sourceCode][destinationCode];\n }\n return transform;\n}\n","/**\n * @module ol/proj\n */\n\n/**\n * The ol/proj module stores:\n * * a list of {@link module:ol/proj/Projection}\n * objects, one for each projection supported by the application\n * * a list of transform functions needed to convert coordinates in one projection\n * into another.\n *\n * The static functions are the methods used to maintain these.\n * Each transform function can handle not only simple coordinate pairs, but also\n * large arrays of coordinates such as vector geometries.\n *\n * When loaded, the library adds projection objects for EPSG:4326 (WGS84\n * geographic coordinates) and EPSG:3857 (Web or Spherical Mercator, as used\n * for example by Bing Maps or OpenStreetMap), together with the relevant\n * transform functions.\n *\n * Additional transforms may be added by using the http://proj4js.org/\n * library (version 2.2 or later). You can use the full build supplied by\n * Proj4js, or create a custom build to support those projections you need; see\n * the Proj4js website for how to do this. You also need the Proj4js definitions\n * for the required projections. These definitions can be obtained from\n * https://epsg.io/, and are a JS function, so can be loaded in a script\n * tag (as in the examples) or pasted into your application.\n *\n * After all required projection definitions are added to proj4's registry (by\n * using `proj4.defs()`), simply call `register(proj4)` from the `ol/proj/proj4`\n * package. Existing transforms are not changed by this function. See\n * examples/wms-image-custom-proj for an example of this.\n *\n * Additional projection definitions can be registered with `proj4.defs()` any\n * time. Just make sure to call `register(proj4)` again; for example, with user-supplied data where you don't\n * know in advance what projections are needed, you can initially load minimal\n * support and then load whichever are requested.\n *\n * Note that Proj4js does not support projection extents. If you want to add\n * one for creating default tile grids, you can add it after the Projection\n * object has been created with `setExtent`, for example,\n * `get('EPSG:1234').setExtent(extent)`.\n *\n * In addition to Proj4js support, any transform functions can be added with\n * {@link module:ol/proj~addCoordinateTransforms}. To use this, you must first create\n * a {@link module:ol/proj/Projection} object for the new projection and add it with\n * {@link module:ol/proj~addProjection}. You can then add the forward and inverse\n * functions with {@link module:ol/proj~addCoordinateTransforms}. See\n * examples/wms-custom-proj for an example of this.\n *\n * Note that if no transforms are needed and you only need to define the\n * projection, just add a {@link module:ol/proj/Projection} with\n * {@link module:ol/proj~addProjection}. See examples/wms-no-proj for an example of\n * this.\n */\nimport {getDistance} from './sphere.js';\nimport {applyTransform} from './extent.js';\nimport {modulo} from './math.js';\nimport {toEPSG4326, fromEPSG4326, PROJECTIONS as EPSG3857_PROJECTIONS} from './proj/epsg3857.js';\nimport {PROJECTIONS as EPSG4326_PROJECTIONS} from './proj/epsg4326.js';\nimport Projection from './proj/Projection.js';\nimport Units, {METERS_PER_UNIT} from './proj/Units.js';\nimport * as projections from './proj/projections.js';\nimport {add as addTransformFunc, clear as clearTransformFuncs, get as getTransformFunc} from './proj/transforms.js';\n\n\n/**\n * A projection as {@link module:ol/proj/Projection}, SRS identifier\n * string or undefined.\n * @typedef {Projection|string|undefined} ProjectionLike\n * @api\n */\n\n\n/**\n * A transform function accepts an array of input coordinate values, an optional\n * output array, and an optional dimension (default should be 2). The function\n * transforms the input coordinate values, populates the output array, and\n * returns the output array.\n *\n * @typedef {function(Array, Array=, number=): Array} TransformFunction\n * @api\n */\n\n\nexport {METERS_PER_UNIT};\n\nexport {Projection};\n\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array=} opt_output Output array of coordinate values.\n * @param {number=} opt_dimension Dimension.\n * @return {Array} Output coordinate array (new array, same coordinate\n * values).\n */\nexport function cloneTransform(input, opt_output, opt_dimension) {\n let output;\n if (opt_output !== undefined) {\n for (let i = 0, ii = input.length; i < ii; ++i) {\n opt_output[i] = input[i];\n }\n output = opt_output;\n } else {\n output = input.slice();\n }\n return output;\n}\n\n\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array=} opt_output Output array of coordinate values.\n * @param {number=} opt_dimension Dimension.\n * @return {Array} Input coordinate array (same array as input).\n */\nexport function identityTransform(input, opt_output, opt_dimension) {\n if (opt_output !== undefined && input !== opt_output) {\n for (let i = 0, ii = input.length; i < ii; ++i) {\n opt_output[i] = input[i];\n }\n input = opt_output;\n }\n return input;\n}\n\n\n/**\n * Add a Projection object to the list of supported projections that can be\n * looked up by their code.\n *\n * @param {Projection} projection Projection instance.\n * @api\n */\nexport function addProjection(projection) {\n projections.add(projection.getCode(), projection);\n addTransformFunc(projection, projection, cloneTransform);\n}\n\n\n/**\n * @param {Array} projections Projections.\n */\nexport function addProjections(projections) {\n projections.forEach(addProjection);\n}\n\n\n/**\n * Fetches a Projection object for the code specified.\n *\n * @param {ProjectionLike} projectionLike Either a code string which is\n * a combination of authority and identifier such as \"EPSG:4326\", or an\n * existing projection object, or undefined.\n * @return {Projection} Projection object, or null if not in list.\n * @api\n */\nexport function get(projectionLike) {\n return typeof projectionLike === 'string' ?\n projections.get(/** @type {string} */ (projectionLike)) :\n (/** @type {Projection} */ (projectionLike) || null);\n}\n\n\n/**\n * Get the resolution of the point in degrees or distance units.\n * For projections with degrees as the unit this will simply return the\n * provided resolution. For other projections the point resolution is\n * by default estimated by transforming the 'point' pixel to EPSG:4326,\n * measuring its width and height on the normal sphere,\n * and taking the average of the width and height.\n * A custom function can be provided for a specific projection, either\n * by setting the `getPointResolution` option in the\n * {@link module:ol/proj/Projection~Projection} constructor or by using\n * {@link module:ol/proj/Projection~Projection#setGetPointResolution} to change an existing\n * projection object.\n * @param {ProjectionLike} projection The projection.\n * @param {number} resolution Nominal resolution in projection units.\n * @param {import(\"./coordinate.js\").Coordinate} point Point to find adjusted resolution at.\n * @param {Units=} opt_units Units to get the point resolution in.\n * Default is the projection's units.\n * @return {number} Point resolution.\n * @api\n */\nexport function getPointResolution(projection, resolution, point, opt_units) {\n projection = get(projection);\n let pointResolution;\n const getter = projection.getPointResolutionFunc();\n if (getter) {\n pointResolution = getter(resolution, point);\n } else {\n const units = projection.getUnits();\n if (units == Units.DEGREES && !opt_units || opt_units == Units.DEGREES) {\n pointResolution = resolution;\n } else {\n // Estimate point resolution by transforming the center pixel to EPSG:4326,\n // measuring its width and height on the normal sphere, and taking the\n // average of the width and height.\n const toEPSG4326 = getTransformFromProjections(projection, get('EPSG:4326'));\n let vertices = [\n point[0] - resolution / 2, point[1],\n point[0] + resolution / 2, point[1],\n point[0], point[1] - resolution / 2,\n point[0], point[1] + resolution / 2\n ];\n vertices = toEPSG4326(vertices, vertices, 2);\n const width = getDistance(vertices.slice(0, 2), vertices.slice(2, 4));\n const height = getDistance(vertices.slice(4, 6), vertices.slice(6, 8));\n pointResolution = (width + height) / 2;\n const metersPerUnit = opt_units ?\n METERS_PER_UNIT[opt_units] :\n projection.getMetersPerUnit();\n if (metersPerUnit !== undefined) {\n pointResolution /= metersPerUnit;\n }\n }\n }\n return pointResolution;\n}\n\n\n/**\n * Registers transformation functions that don't alter coordinates. Those allow\n * to transform between projections with equal meaning.\n *\n * @param {Array} projections Projections.\n * @api\n */\nexport function addEquivalentProjections(projections) {\n addProjections(projections);\n projections.forEach(function(source) {\n projections.forEach(function(destination) {\n if (source !== destination) {\n addTransformFunc(source, destination, cloneTransform);\n }\n });\n });\n}\n\n\n/**\n * Registers transformation functions to convert coordinates in any projection\n * in projection1 to any projection in projection2.\n *\n * @param {Array} projections1 Projections with equal\n * meaning.\n * @param {Array} projections2 Projections with equal\n * meaning.\n * @param {TransformFunction} forwardTransform Transformation from any\n * projection in projection1 to any projection in projection2.\n * @param {TransformFunction} inverseTransform Transform from any projection\n * in projection2 to any projection in projection1..\n */\nexport function addEquivalentTransforms(projections1, projections2, forwardTransform, inverseTransform) {\n projections1.forEach(function(projection1) {\n projections2.forEach(function(projection2) {\n addTransformFunc(projection1, projection2, forwardTransform);\n addTransformFunc(projection2, projection1, inverseTransform);\n });\n });\n}\n\n\n/**\n * Clear all cached projections and transforms.\n */\nexport function clearAllProjections() {\n projections.clear();\n clearTransformFuncs();\n}\n\n\n/**\n * @param {Projection|string|undefined} projection Projection.\n * @param {string} defaultCode Default code.\n * @return {Projection} Projection.\n */\nexport function createProjection(projection, defaultCode) {\n if (!projection) {\n return get(defaultCode);\n } else if (typeof projection === 'string') {\n return get(projection);\n } else {\n return (\n /** @type {Projection} */ (projection)\n );\n }\n}\n\n\n/**\n * Creates a {@link module:ol/proj~TransformFunction} from a simple 2D coordinate transform\n * function.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} coordTransform Coordinate\n * transform.\n * @return {TransformFunction} Transform function.\n */\nexport function createTransformFromCoordinateTransform(coordTransform) {\n return (\n /**\n * @param {Array} input Input.\n * @param {Array=} opt_output Output.\n * @param {number=} opt_dimension Dimension.\n * @return {Array} Output.\n */\n function(input, opt_output, opt_dimension) {\n const length = input.length;\n const dimension = opt_dimension !== undefined ? opt_dimension : 2;\n const output = opt_output !== undefined ? opt_output : new Array(length);\n for (let i = 0; i < length; i += dimension) {\n const point = coordTransform([input[i], input[i + 1]]);\n output[i] = point[0];\n output[i + 1] = point[1];\n for (let j = dimension - 1; j >= 2; --j) {\n output[i + j] = input[i + j];\n }\n }\n return output;\n });\n}\n\n\n/**\n * Registers coordinate transform functions to convert coordinates between the\n * source projection and the destination projection.\n * The forward and inverse functions convert coordinate pairs; this function\n * converts these into the functions used internally which also handle\n * extents and coordinate arrays.\n *\n * @param {ProjectionLike} source Source projection.\n * @param {ProjectionLike} destination Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} forward The forward transform\n * function (that is, from the source projection to the destination\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} inverse The inverse transform\n * function (that is, from the destination projection to the source\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @api\n */\nexport function addCoordinateTransforms(source, destination, forward, inverse) {\n const sourceProj = get(source);\n const destProj = get(destination);\n addTransformFunc(sourceProj, destProj, createTransformFromCoordinateTransform(forward));\n addTransformFunc(destProj, sourceProj, createTransformFromCoordinateTransform(inverse));\n}\n\n\n/**\n * Transforms a coordinate from longitude/latitude to a different projection.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate as longitude and latitude, i.e.\n * an array with longitude as 1st and latitude as 2nd element.\n * @param {ProjectionLike=} opt_projection Target projection. The\n * default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate projected to the target projection.\n * @api\n */\nexport function fromLonLat(coordinate, opt_projection) {\n return transform(coordinate, 'EPSG:4326',\n opt_projection !== undefined ? opt_projection : 'EPSG:3857');\n}\n\n\n/**\n * Transforms a coordinate to longitude/latitude.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Projected coordinate.\n * @param {ProjectionLike=} opt_projection Projection of the coordinate.\n * The default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate as longitude and latitude, i.e. an array\n * with longitude as 1st and latitude as 2nd element.\n * @api\n */\nexport function toLonLat(coordinate, opt_projection) {\n const lonLat = transform(coordinate,\n opt_projection !== undefined ? opt_projection : 'EPSG:3857', 'EPSG:4326');\n const lon = lonLat[0];\n if (lon < -180 || lon > 180) {\n lonLat[0] = modulo(lon + 180, 360) - 180;\n }\n return lonLat;\n}\n\n\n/**\n * Checks if two projections are the same, that is every coordinate in one\n * projection does represent the same geographic point as the same coordinate in\n * the other projection.\n *\n * @param {Projection} projection1 Projection 1.\n * @param {Projection} projection2 Projection 2.\n * @return {boolean} Equivalent.\n * @api\n */\nexport function equivalent(projection1, projection2) {\n if (projection1 === projection2) {\n return true;\n }\n const equalUnits = projection1.getUnits() === projection2.getUnits();\n if (projection1.getCode() === projection2.getCode()) {\n return equalUnits;\n } else {\n const transformFunc = getTransformFromProjections(projection1, projection2);\n return transformFunc === cloneTransform && equalUnits;\n }\n}\n\n\n/**\n * Searches in the list of transform functions for the function for converting\n * coordinates from the source projection to the destination projection.\n *\n * @param {Projection} sourceProjection Source Projection object.\n * @param {Projection} destinationProjection Destination Projection\n * object.\n * @return {TransformFunction} Transform function.\n */\nexport function getTransformFromProjections(sourceProjection, destinationProjection) {\n const sourceCode = sourceProjection.getCode();\n const destinationCode = destinationProjection.getCode();\n let transformFunc = getTransformFunc(sourceCode, destinationCode);\n if (!transformFunc) {\n transformFunc = identityTransform;\n }\n return transformFunc;\n}\n\n\n/**\n * Given the projection-like objects, searches for a transformation\n * function to convert a coordinates array from the source projection to the\n * destination projection.\n *\n * @param {ProjectionLike} source Source.\n * @param {ProjectionLike} destination Destination.\n * @return {TransformFunction} Transform function.\n * @api\n */\nexport function getTransform(source, destination) {\n const sourceProjection = get(source);\n const destinationProjection = get(destination);\n return getTransformFromProjections(sourceProjection, destinationProjection);\n}\n\n\n/**\n * Transforms a coordinate from source projection to destination projection.\n * This returns a new coordinate (and does not modify the original).\n *\n * See {@link module:ol/proj~transformExtent} for extent transformation.\n * See the transform method of {@link module:ol/geom/Geometry~Geometry} and its\n * subclasses for geometry transforms.\n *\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n * @api\n */\nexport function transform(coordinate, source, destination) {\n const transformFunc = getTransform(source, destination);\n return transformFunc(coordinate, undefined, coordinate.length);\n}\n\n\n/**\n * Transforms an extent from source projection to destination projection. This\n * returns a new extent (and does not modify the original).\n *\n * @param {import(\"./extent.js\").Extent} extent The extent to transform.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @return {import(\"./extent.js\").Extent} The transformed extent.\n * @api\n */\nexport function transformExtent(extent, source, destination) {\n const transformFunc = getTransform(source, destination);\n return applyTransform(extent, transformFunc);\n}\n\n\n/**\n * Transforms the given point to the destination projection.\n *\n * @param {import(\"./coordinate.js\").Coordinate} point Point.\n * @param {Projection} sourceProjection Source projection.\n * @param {Projection} destinationProjection Destination projection.\n * @return {import(\"./coordinate.js\").Coordinate} Point.\n */\nexport function transformWithProjections(point, sourceProjection, destinationProjection) {\n const transformFunc = getTransformFromProjections(sourceProjection, destinationProjection);\n return transformFunc(point);\n}\n\n/**\n * Add transforms to and from EPSG:4326 and EPSG:3857. This function is called\n * by when this module is executed and should only need to be called again after\n * `clearAllProjections()` is called (e.g. in tests).\n */\nexport function addCommon() {\n // Add transformations that don't alter coordinates to convert within set of\n // projections with equal meaning.\n addEquivalentProjections(EPSG3857_PROJECTIONS);\n addEquivalentProjections(EPSG4326_PROJECTIONS);\n // Add transformations to convert EPSG:4326 like coordinates to EPSG:3857 like\n // coordinates and back.\n addEquivalentTransforms(EPSG4326_PROJECTIONS, EPSG3857_PROJECTIONS, fromEPSG4326, toEPSG4326);\n}\n\naddCommon();\n","/**\n * @module ol/transform\n */\nimport {assert} from './asserts.js';\n\n\n/**\n * An array representing an affine 2d transformation for use with\n * {@link module:ol/transform} functions. The array has 6 elements.\n * @typedef {!Array} Transform\n */\n\n\n/**\n * Collection of affine 2d transformation functions. The functions work on an\n * array of 6 elements. The element order is compatible with the [SVGMatrix\n * interface](https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix) and is\n * a subset (elements a to f) of a 3×3 matrix:\n * ```\n * [ a c e ]\n * [ b d f ]\n * [ 0 0 1 ]\n * ```\n */\n\n\n/**\n * @private\n * @type {Transform}\n */\nconst tmp_ = new Array(6);\n\n\n/**\n * Create an identity transform.\n * @return {!Transform} Identity transform.\n */\nexport function create() {\n return [1, 0, 0, 1, 0, 0];\n}\n\n\n/**\n * Resets the given transform to an identity transform.\n * @param {!Transform} transform Transform.\n * @return {!Transform} Transform.\n */\nexport function reset(transform) {\n return set(transform, 1, 0, 0, 1, 0, 0);\n}\n\n\n/**\n * Multiply the underlying matrices of two transforms and return the result in\n * the first transform.\n * @param {!Transform} transform1 Transform parameters of matrix 1.\n * @param {!Transform} transform2 Transform parameters of matrix 2.\n * @return {!Transform} transform1 multiplied with transform2.\n */\nexport function multiply(transform1, transform2) {\n const a1 = transform1[0];\n const b1 = transform1[1];\n const c1 = transform1[2];\n const d1 = transform1[3];\n const e1 = transform1[4];\n const f1 = transform1[5];\n const a2 = transform2[0];\n const b2 = transform2[1];\n const c2 = transform2[2];\n const d2 = transform2[3];\n const e2 = transform2[4];\n const f2 = transform2[5];\n\n transform1[0] = a1 * a2 + c1 * b2;\n transform1[1] = b1 * a2 + d1 * b2;\n transform1[2] = a1 * c2 + c1 * d2;\n transform1[3] = b1 * c2 + d1 * d2;\n transform1[4] = a1 * e2 + c1 * f2 + e1;\n transform1[5] = b1 * e2 + d1 * f2 + f1;\n\n return transform1;\n}\n\n/**\n * Set the transform components a-f on a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} a The a component of the transform.\n * @param {number} b The b component of the transform.\n * @param {number} c The c component of the transform.\n * @param {number} d The d component of the transform.\n * @param {number} e The e component of the transform.\n * @param {number} f The f component of the transform.\n * @return {!Transform} Matrix with transform applied.\n */\nexport function set(transform, a, b, c, d, e, f) {\n transform[0] = a;\n transform[1] = b;\n transform[2] = c;\n transform[3] = d;\n transform[4] = e;\n transform[5] = f;\n return transform;\n}\n\n\n/**\n * Set transform on one matrix from another matrix.\n * @param {!Transform} transform1 Matrix to set transform to.\n * @param {!Transform} transform2 Matrix to set transform from.\n * @return {!Transform} transform1 with transform from transform2 applied.\n */\nexport function setFromArray(transform1, transform2) {\n transform1[0] = transform2[0];\n transform1[1] = transform2[1];\n transform1[2] = transform2[2];\n transform1[3] = transform2[3];\n transform1[4] = transform2[4];\n transform1[5] = transform2[5];\n return transform1;\n}\n\n\n/**\n * Transforms the given coordinate with the given transform returning the\n * resulting, transformed coordinate. The coordinate will be modified in-place.\n *\n * @param {Transform} transform The transformation.\n * @param {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} coordinate The coordinate to transform.\n * @return {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} return coordinate so that operations can be\n * chained together.\n */\nexport function apply(transform, coordinate) {\n const x = coordinate[0];\n const y = coordinate[1];\n coordinate[0] = transform[0] * x + transform[2] * y + transform[4];\n coordinate[1] = transform[1] * x + transform[3] * y + transform[5];\n return coordinate;\n}\n\n\n/**\n * Applies rotation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} angle Angle in radians.\n * @return {!Transform} The rotated transform.\n */\nexport function rotate(transform, angle) {\n const cos = Math.cos(angle);\n const sin = Math.sin(angle);\n return multiply(transform, set(tmp_, cos, sin, -sin, cos, 0, 0));\n}\n\n\n/**\n * Applies scale to a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scaled transform.\n */\nexport function scale(transform, x, y) {\n return multiply(transform, set(tmp_, x, 0, 0, y, 0, 0));\n}\n\n\n/**\n * Applies translation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} dx Translation x.\n * @param {number} dy Translation y.\n * @return {!Transform} The translated transform.\n */\nexport function translate(transform, dx, dy) {\n return multiply(transform, set(tmp_, 1, 0, 0, 1, dx, dy));\n}\n\n\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative).\n * @param {!Transform} transform The transform (will be modified in place).\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {!Transform} The composite transform.\n */\nexport function compose(transform, dx1, dy1, sx, sy, angle, dx2, dy2) {\n const sin = Math.sin(angle);\n const cos = Math.cos(angle);\n transform[0] = sx * cos;\n transform[1] = sy * sin;\n transform[2] = -sx * sin;\n transform[3] = sy * cos;\n transform[4] = dx2 * sx * cos - dy2 * sx * sin + dx1;\n transform[5] = dx2 * sy * sin + dy2 * sy * cos + dy1;\n return transform;\n}\n\n\n/**\n * Invert the given transform.\n * @param {!Transform} transform Transform.\n * @return {!Transform} Inverse of the transform.\n */\nexport function invert(transform) {\n const det = determinant(transform);\n assert(det !== 0, 32); // Transformation matrix cannot be inverted\n\n const a = transform[0];\n const b = transform[1];\n const c = transform[2];\n const d = transform[3];\n const e = transform[4];\n const f = transform[5];\n\n transform[0] = d / det;\n transform[1] = -b / det;\n transform[2] = -c / det;\n transform[3] = a / det;\n transform[4] = (c * f - d * e) / det;\n transform[5] = -(a * f - b * e) / det;\n\n return transform;\n}\n\n\n/**\n * Returns the determinant of the given matrix.\n * @param {!Transform} mat Matrix.\n * @return {number} Determinant.\n */\nexport function determinant(mat) {\n return mat[0] * mat[3] - mat[1] * mat[2];\n}\n","/**\n * @module ol/geom/Geometry\n */\nimport {abstract} from '../util.js';\nimport BaseObject from '../Object.js';\nimport {createEmpty, getHeight, returnOrUpdate} from '../extent.js';\nimport {transform2D} from './flat/transform.js';\nimport {get as getProjection, getTransform} from '../proj.js';\nimport Units from '../proj/Units.js';\nimport {create as createTransform, compose as composeTransform} from '../transform.js';\n\n\n/**\n * @type {import(\"../transform.js\").Transform}\n */\nconst tmpTransform = createTransform();\n\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Base class for vector geometries.\n *\n * To get notified of changes to the geometry, register a listener for the\n * generic `change` event on your geometry instance.\n *\n * @abstract\n * @api\n */\nclass Geometry extends BaseObject {\n constructor() {\n\n super();\n\n /**\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.extent_ = createEmpty();\n\n /**\n * @private\n * @type {number}\n */\n this.extentRevision_ = -1;\n\n /**\n * @protected\n * @type {Object}\n */\n this.simplifiedGeometryCache = {};\n\n /**\n * @protected\n * @type {number}\n */\n this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n\n /**\n * @protected\n * @type {number}\n */\n this.simplifiedGeometryRevision = 0;\n\n }\n\n /**\n * Make a complete copy of the geometry.\n * @abstract\n * @return {!Geometry} Clone.\n */\n clone() {\n return abstract();\n }\n\n /**\n * @abstract\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n return abstract();\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n containsXY(x, y) {\n return false;\n }\n\n /**\n * Return the closest point of the geometry to the passed point as\n * {@link module:ol/coordinate~Coordinate coordinate}.\n * @param {import(\"../coordinate.js\").Coordinate} point Point.\n * @param {import(\"../coordinate.js\").Coordinate=} opt_closestPoint Closest point.\n * @return {import(\"../coordinate.js\").Coordinate} Closest point.\n * @api\n */\n getClosestPoint(point, opt_closestPoint) {\n const closestPoint = opt_closestPoint ? opt_closestPoint : [NaN, NaN];\n this.closestPointXY(point[0], point[1], closestPoint, Infinity);\n return closestPoint;\n }\n\n /**\n * Returns true if this geometry includes the specified coordinate. If the\n * coordinate is on the boundary of the geometry, returns false.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains coordinate.\n * @api\n */\n intersectsCoordinate(coordinate) {\n return this.containsXY(coordinate[0], coordinate[1]);\n }\n\n /**\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n computeExtent(extent) {\n return abstract();\n }\n\n /**\n * Get the extent of the geometry.\n * @param {import(\"../extent.js\").Extent=} opt_extent Extent.\n * @return {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n getExtent(opt_extent) {\n if (this.extentRevision_ != this.getRevision()) {\n this.extent_ = this.computeExtent(this.extent_);\n this.extentRevision_ = this.getRevision();\n }\n return returnOrUpdate(this.extent_, opt_extent);\n }\n\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} angle Rotation angle in radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n rotate(angle, anchor) {\n abstract();\n }\n\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number=} opt_sy The scaling factor in the y-direction (defaults to\n * sx).\n * @param {import(\"../coordinate.js\").Coordinate=} opt_anchor The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n scale(sx, opt_sy, opt_anchor) {\n abstract();\n }\n\n /**\n * Create a simplified version of this geometry. For linestrings, this uses\n * the the {@link\n * https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm\n * Douglas Peucker} algorithm. For polygons, a quantization-based\n * simplification is used to preserve topology.\n * @param {number} tolerance The tolerance distance for simplification.\n * @return {Geometry} A new, simplified version of the original geometry.\n * @api\n */\n simplify(tolerance) {\n return this.getSimplifiedGeometry(tolerance * tolerance);\n }\n\n /**\n * Create a simplified version of this geometry using the Douglas Peucker\n * algorithm.\n * See https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @return {Geometry} Simplified geometry.\n */\n getSimplifiedGeometry(squaredTolerance) {\n return abstract();\n }\n\n /**\n * Get the type of this geometry.\n * @abstract\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n */\n getType() {\n return abstract();\n }\n\n /**\n * Apply a transform function to each coordinate of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @abstract\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform.\n */\n applyTransform(transformFn) {\n abstract();\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n */\n intersectsExtent(extent) {\n return abstract();\n }\n\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @abstract\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n translate(deltaX, deltaY) {\n abstract();\n }\n\n /**\n * Transform each coordinate of the geometry from one coordinate reference\n * system to another. The geometry is modified in place.\n * For example, a line will be transformed to a line and a circle to a circle.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n *\n * @param {import(\"../proj.js\").ProjectionLike} source The current projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @param {import(\"../proj.js\").ProjectionLike} destination The desired projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @return {Geometry} This geometry. Note that original geometry is\n * modified in place.\n * @api\n */\n transform(source, destination) {\n /** @type {import(\"../proj/Projection.js\").default} */\n const sourceProj = getProjection(source);\n const transformFn = sourceProj.getUnits() == Units.TILE_PIXELS ?\n function(inCoordinates, outCoordinates, stride) {\n const pixelExtent = sourceProj.getExtent();\n const projectedExtent = sourceProj.getWorldExtent();\n const scale = getHeight(projectedExtent) / getHeight(pixelExtent);\n composeTransform(tmpTransform,\n projectedExtent[0], projectedExtent[3],\n scale, -scale, 0,\n 0, 0);\n transform2D(inCoordinates, 0, inCoordinates.length, stride,\n tmpTransform, outCoordinates);\n return getTransform(sourceProj, destination)(inCoordinates, outCoordinates, stride);\n } :\n getTransform(sourceProj, destination);\n this.applyTransform(transformFn);\n return this;\n }\n\n}\n\n\nexport default Geometry;\n","/**\n * @module ol/geom/SimpleGeometry\n */\nimport {abstract} from '../util.js';\nimport {createOrUpdateFromFlatCoordinates, getCenter} from '../extent.js';\nimport Geometry from './Geometry.js';\nimport GeometryLayout from './GeometryLayout.js';\nimport {rotate, scale, translate, transform2D} from './flat/transform.js';\nimport {clear} from '../obj.js';\n\n/**\n * @classdesc\n * Abstract base class; only used for creating subclasses; do not instantiate\n * in apps, as cannot be rendered.\n *\n * @abstract\n * @api\n */\nclass SimpleGeometry extends Geometry {\n constructor() {\n\n super();\n\n /**\n * @protected\n * @type {GeometryLayout}\n */\n this.layout = GeometryLayout.XY;\n\n /**\n * @protected\n * @type {number}\n */\n this.stride = 2;\n\n /**\n * @protected\n * @type {Array}\n */\n this.flatCoordinates = null;\n\n }\n\n /**\n * @inheritDoc\n */\n computeExtent(extent) {\n return createOrUpdateFromFlatCoordinates(this.flatCoordinates,\n 0, this.flatCoordinates.length, this.stride, extent);\n }\n\n /**\n * @abstract\n * @return {Array} Coordinates.\n */\n getCoordinates() {\n return abstract();\n }\n\n /**\n * Return the first coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} First coordinate.\n * @api\n */\n getFirstCoordinate() {\n return this.flatCoordinates.slice(0, this.stride);\n }\n\n /**\n * @return {Array} Flat coordinates.\n */\n getFlatCoordinates() {\n return this.flatCoordinates;\n }\n\n /**\n * Return the last coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} Last point.\n * @api\n */\n getLastCoordinate() {\n return this.flatCoordinates.slice(this.flatCoordinates.length - this.stride);\n }\n\n /**\n * Return the {@link module:ol/geom/GeometryLayout layout} of the geometry.\n * @return {GeometryLayout} Layout.\n * @api\n */\n getLayout() {\n return this.layout;\n }\n\n /**\n * @inheritDoc\n */\n getSimplifiedGeometry(squaredTolerance) {\n if (this.simplifiedGeometryRevision != this.getRevision()) {\n clear(this.simplifiedGeometryCache);\n this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n this.simplifiedGeometryRevision = this.getRevision();\n }\n // If squaredTolerance is negative or if we know that simplification will not\n // have any effect then just return this.\n if (squaredTolerance < 0 ||\n (this.simplifiedGeometryMaxMinSquaredTolerance !== 0 &&\n squaredTolerance <= this.simplifiedGeometryMaxMinSquaredTolerance)) {\n return this;\n }\n const key = squaredTolerance.toString();\n if (this.simplifiedGeometryCache.hasOwnProperty(key)) {\n return this.simplifiedGeometryCache[key];\n } else {\n const simplifiedGeometry =\n this.getSimplifiedGeometryInternal(squaredTolerance);\n const simplifiedFlatCoordinates = simplifiedGeometry.getFlatCoordinates();\n if (simplifiedFlatCoordinates.length < this.flatCoordinates.length) {\n this.simplifiedGeometryCache[key] = simplifiedGeometry;\n return simplifiedGeometry;\n } else {\n // Simplification did not actually remove any coordinates. We now know\n // that any calls to getSimplifiedGeometry with a squaredTolerance less\n // than or equal to the current squaredTolerance will also not have any\n // effect. This allows us to short circuit simplification (saving CPU\n // cycles) and prevents the cache of simplified geometries from filling\n // up with useless identical copies of this geometry (saving memory).\n this.simplifiedGeometryMaxMinSquaredTolerance = squaredTolerance;\n return this;\n }\n }\n }\n\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n * @protected\n */\n getSimplifiedGeometryInternal(squaredTolerance) {\n return this;\n }\n\n /**\n * @return {number} Stride.\n */\n getStride() {\n return this.stride;\n }\n\n /**\n * @param {GeometryLayout} layout Layout.\n * @param {Array} flatCoordinates Flat coordinates.\n */\n setFlatCoordinates(layout, flatCoordinates) {\n this.stride = getStrideForLayout(layout);\n this.layout = layout;\n this.flatCoordinates = flatCoordinates;\n }\n\n /**\n * @abstract\n * @param {!Array} coordinates Coordinates.\n * @param {GeometryLayout=} opt_layout Layout.\n */\n setCoordinates(coordinates, opt_layout) {\n abstract();\n }\n\n /**\n * @param {GeometryLayout|undefined} layout Layout.\n * @param {Array} coordinates Coordinates.\n * @param {number} nesting Nesting.\n * @protected\n */\n setLayout(layout, coordinates, nesting) {\n /** @type {number} */\n let stride;\n if (layout) {\n stride = getStrideForLayout(layout);\n } else {\n for (let i = 0; i < nesting; ++i) {\n if (coordinates.length === 0) {\n this.layout = GeometryLayout.XY;\n this.stride = 2;\n return;\n } else {\n coordinates = /** @type {Array} */ (coordinates[0]);\n }\n }\n stride = coordinates.length;\n layout = getLayoutForStride(stride);\n }\n this.layout = layout;\n this.stride = stride;\n }\n\n /**\n * @inheritDoc\n * @api\n */\n applyTransform(transformFn) {\n if (this.flatCoordinates) {\n transformFn(this.flatCoordinates, this.flatCoordinates, this.stride);\n this.changed();\n }\n }\n\n /**\n * @inheritDoc\n * @api\n */\n rotate(angle, anchor) {\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n rotate(\n flatCoordinates, 0, flatCoordinates.length,\n stride, angle, anchor, flatCoordinates);\n this.changed();\n }\n }\n\n /**\n * @inheritDoc\n * @api\n */\n scale(sx, opt_sy, opt_anchor) {\n let sy = opt_sy;\n if (sy === undefined) {\n sy = sx;\n }\n let anchor = opt_anchor;\n if (!anchor) {\n anchor = getCenter(this.getExtent());\n }\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n scale(\n flatCoordinates, 0, flatCoordinates.length,\n stride, sx, sy, anchor, flatCoordinates);\n this.changed();\n }\n }\n\n /**\n * @inheritDoc\n * @api\n */\n translate(deltaX, deltaY) {\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n translate(\n flatCoordinates, 0, flatCoordinates.length, stride,\n deltaX, deltaY, flatCoordinates);\n this.changed();\n }\n }\n}\n\n\n/**\n * @param {number} stride Stride.\n * @return {GeometryLayout} layout Layout.\n */\nfunction getLayoutForStride(stride) {\n let layout;\n if (stride == 2) {\n layout = GeometryLayout.XY;\n } else if (stride == 3) {\n layout = GeometryLayout.XYZ;\n } else if (stride == 4) {\n layout = GeometryLayout.XYZM;\n }\n return (\n /** @type {GeometryLayout} */ (layout)\n );\n}\n\n\n/**\n * @param {GeometryLayout} layout Layout.\n * @return {number} Stride.\n */\nexport function getStrideForLayout(layout) {\n let stride;\n if (layout == GeometryLayout.XY) {\n stride = 2;\n } else if (layout == GeometryLayout.XYZ || layout == GeometryLayout.XYM) {\n stride = 3;\n } else if (layout == GeometryLayout.XYZM) {\n stride = 4;\n }\n return /** @type {number} */ (stride);\n}\n\n\n/**\n * @param {SimpleGeometry} simpleGeometry Simple geometry.\n * @param {import(\"../transform.js\").Transform} transform Transform.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Transformed flat coordinates.\n */\nexport function transformGeom2D(simpleGeometry, transform, opt_dest) {\n const flatCoordinates = simpleGeometry.getFlatCoordinates();\n if (!flatCoordinates) {\n return null;\n } else {\n const stride = simpleGeometry.getStride();\n return transform2D(\n flatCoordinates, 0, flatCoordinates.length, stride,\n transform, opt_dest);\n }\n}\n\nexport default SimpleGeometry;\n","/**\n * @module ol/geom/flat/area\n */\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRing(flatCoordinates, offset, end, stride) {\n let twiceArea = 0;\n let x1 = flatCoordinates[end - stride];\n let y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n twiceArea += y1 * x2 - x1 * y2;\n x1 = x2;\n y1 = y2;\n }\n return twiceArea / 2;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRings(flatCoordinates, offset, ends, stride) {\n let area = 0;\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n area += linearRing(flatCoordinates, offset, end, stride);\n offset = end;\n }\n return area;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRingss(flatCoordinates, offset, endss, stride) {\n let area = 0;\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n area += linearRings(flatCoordinates, offset, ends, stride);\n offset = ends[ends.length - 1];\n }\n return area;\n}\n","/**\n * @module ol/geom/flat/closest\n */\nimport {lerp, squaredDistance as squaredDx} from '../../math.js';\n\n\n/**\n * Returns the point on the 2D line segment flatCoordinates[offset1] to\n * flatCoordinates[offset2] that is closest to the point (x, y). Extra\n * dimensions are linearly interpolated.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset1 Offset 1.\n * @param {number} offset2 Offset 2.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n */\nfunction assignClosest(flatCoordinates, offset1, offset2, stride, x, y, closestPoint) {\n const x1 = flatCoordinates[offset1];\n const y1 = flatCoordinates[offset1 + 1];\n const dx = flatCoordinates[offset2] - x1;\n const dy = flatCoordinates[offset2 + 1] - y1;\n let offset;\n if (dx === 0 && dy === 0) {\n offset = offset1;\n } else {\n const t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n offset = offset2;\n } else if (t > 0) {\n for (let i = 0; i < stride; ++i) {\n closestPoint[i] = lerp(flatCoordinates[offset1 + i],\n flatCoordinates[offset2 + i], t);\n }\n closestPoint.length = stride;\n return;\n } else {\n offset = offset1;\n }\n }\n for (let i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n}\n\n\n/**\n * Return the squared of the largest distance between any pair of consecutive\n * coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function maxSquaredDelta(flatCoordinates, offset, end, stride, max) {\n let x1 = flatCoordinates[offset];\n let y1 = flatCoordinates[offset + 1];\n for (offset += stride; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n const squaredDelta = squaredDx(x1, y1, x2, y2);\n if (squaredDelta > max) {\n max = squaredDelta;\n }\n x1 = x2;\n y1 = y2;\n }\n return max;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function arrayMaxSquaredDelta(flatCoordinates, offset, ends, stride, max) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n max = maxSquaredDelta(\n flatCoordinates, offset, end, stride, max);\n offset = end;\n }\n return max;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function multiArrayMaxSquaredDelta(flatCoordinates, offset, endss, stride, max) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n max = arrayMaxSquaredDelta(\n flatCoordinates, offset, ends, stride, max);\n offset = ends[ends.length - 1];\n }\n return max;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array=} opt_tmpPoint Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestPoint(flatCoordinates, offset, end,\n stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance,\n opt_tmpPoint) {\n if (offset == end) {\n return minSquaredDistance;\n }\n let i, squaredDistance;\n if (maxDelta === 0) {\n // All points are identical, so just test the first point.\n squaredDistance = squaredDx(\n x, y, flatCoordinates[offset], flatCoordinates[offset + 1]);\n if (squaredDistance < minSquaredDistance) {\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n } else {\n return minSquaredDistance;\n }\n }\n const tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n let index = offset + stride;\n while (index < end) {\n assignClosest(\n flatCoordinates, index - stride, index, stride, x, y, tmpPoint);\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n index += stride;\n } else {\n // Skip ahead multiple points, because we know that all the skipped\n // points cannot be any closer than the closest point we have found so\n // far. We know this because we know how close the current point is, how\n // close the closest point we have found so far is, and the maximum\n // distance between consecutive points. For example, if we're currently\n // at distance 10, the best we've found so far is 3, and that the maximum\n // distance between consecutive points is 2, then we'll need to skip at\n // least (10 - 3) / 2 == 3 (rounded down) points to have any chance of\n // finding a closer point. We use Math.max(..., 1) to ensure that we\n // always advance at least one point, to avoid an infinite loop.\n index += stride * Math.max(\n ((Math.sqrt(squaredDistance) -\n Math.sqrt(minSquaredDistance)) / maxDelta) | 0, 1);\n }\n }\n if (isRing) {\n // Check the closing segment.\n assignClosest(\n flatCoordinates, end - stride, offset, stride, x, y, tmpPoint);\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n }\n }\n return minSquaredDistance;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array=} opt_tmpPoint Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestArrayPoint(flatCoordinates, offset, ends,\n stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance,\n opt_tmpPoint) {\n const tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n minSquaredDistance = assignClosestPoint(\n flatCoordinates, offset, end, stride,\n maxDelta, isRing, x, y, closestPoint, minSquaredDistance, tmpPoint);\n offset = end;\n }\n return minSquaredDistance;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array=} opt_tmpPoint Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestMultiArrayPoint(flatCoordinates, offset,\n endss, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance,\n opt_tmpPoint) {\n const tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n minSquaredDistance = assignClosestArrayPoint(\n flatCoordinates, offset, ends, stride,\n maxDelta, isRing, x, y, closestPoint, minSquaredDistance, tmpPoint);\n offset = ends[ends.length - 1];\n }\n return minSquaredDistance;\n}\n","/**\n * @module ol/geom/flat/deflate\n */\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinate(flatCoordinates, offset, coordinate, stride) {\n for (let i = 0, ii = coordinate.length; i < ii; ++i) {\n flatCoordinates[offset++] = coordinate[i];\n }\n return offset;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} coordinates Coordinates.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinates(flatCoordinates, offset, coordinates, stride) {\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n const coordinate = coordinates[i];\n for (let j = 0; j < stride; ++j) {\n flatCoordinates[offset++] = coordinate[j];\n }\n }\n return offset;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} coordinatess Coordinatess.\n * @param {number} stride Stride.\n * @param {Array=} opt_ends Ends.\n * @return {Array} Ends.\n */\nexport function deflateCoordinatesArray(flatCoordinates, offset, coordinatess, stride, opt_ends) {\n const ends = opt_ends ? opt_ends : [];\n let i = 0;\n for (let j = 0, jj = coordinatess.length; j < jj; ++j) {\n const end = deflateCoordinates(\n flatCoordinates, offset, coordinatess[j], stride);\n ends[i++] = end;\n offset = end;\n }\n ends.length = i;\n return ends;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>>} coordinatesss Coordinatesss.\n * @param {number} stride Stride.\n * @param {Array>=} opt_endss Endss.\n * @return {Array>} Endss.\n */\nexport function deflateMultiCoordinatesArray(flatCoordinates, offset, coordinatesss, stride, opt_endss) {\n const endss = opt_endss ? opt_endss : [];\n let i = 0;\n for (let j = 0, jj = coordinatesss.length; j < jj; ++j) {\n const ends = deflateCoordinatesArray(\n flatCoordinates, offset, coordinatesss[j], stride, endss[i]);\n endss[i++] = ends;\n offset = ends[ends.length - 1];\n }\n endss.length = i;\n return endss;\n}\n","/**\n * @module ol/geom/flat/inflate\n */\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Array=} opt_coordinates Coordinates.\n * @return {Array} Coordinates.\n */\nexport function inflateCoordinates(flatCoordinates, offset, end, stride, opt_coordinates) {\n const coordinates = opt_coordinates !== undefined ? opt_coordinates : [];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n coordinates[i++] = flatCoordinates.slice(j, j + stride);\n }\n coordinates.length = i;\n return coordinates;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array>=} opt_coordinatess Coordinatess.\n * @return {Array>} Coordinatess.\n */\nexport function inflateCoordinatesArray(flatCoordinates, offset, ends, stride, opt_coordinatess) {\n const coordinatess = opt_coordinatess !== undefined ? opt_coordinatess : [];\n let i = 0;\n for (let j = 0, jj = ends.length; j < jj; ++j) {\n const end = ends[j];\n coordinatess[i++] = inflateCoordinates(\n flatCoordinates, offset, end, stride, coordinatess[i]);\n offset = end;\n }\n coordinatess.length = i;\n return coordinatess;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array>>=} opt_coordinatesss\n * Coordinatesss.\n * @return {Array>>} Coordinatesss.\n */\nexport function inflateMultiCoordinatesArray(flatCoordinates, offset, endss, stride, opt_coordinatesss) {\n const coordinatesss = opt_coordinatesss !== undefined ? opt_coordinatesss : [];\n let i = 0;\n for (let j = 0, jj = endss.length; j < jj; ++j) {\n const ends = endss[j];\n coordinatesss[i++] = inflateCoordinatesArray(\n flatCoordinates, offset, ends, stride, coordinatesss[i]);\n offset = ends[ends.length - 1];\n }\n coordinatesss.length = i;\n return coordinatesss;\n}\n","/**\n * @module ol/geom/flat/simplify\n */\n// Based on simplify-js https://github.com/mourner/simplify-js\n// Copyright (c) 2012, Vladimir Agafonkin\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are met:\n//\n// 1. Redistributions of source code must retain the above copyright notice,\n// this list of conditions and the following disclaimer.\n//\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n// POSSIBILITY OF SUCH DAMAGE.\n\nimport {squaredSegmentDistance, squaredDistance} from '../../math.js';\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {boolean} highQuality Highest quality.\n * @param {Array=} opt_simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @return {Array} Simplified line string.\n */\nexport function simplifyLineString(flatCoordinates, offset, end,\n stride, squaredTolerance, highQuality, opt_simplifiedFlatCoordinates) {\n const simplifiedFlatCoordinates = opt_simplifiedFlatCoordinates !== undefined ?\n opt_simplifiedFlatCoordinates : [];\n if (!highQuality) {\n end = radialDistance(flatCoordinates, offset, end,\n stride, squaredTolerance,\n simplifiedFlatCoordinates, 0);\n flatCoordinates = simplifiedFlatCoordinates;\n offset = 0;\n stride = 2;\n }\n simplifiedFlatCoordinates.length = douglasPeucker(\n flatCoordinates, offset, end, stride, squaredTolerance,\n simplifiedFlatCoordinates, 0);\n return simplifiedFlatCoordinates;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function douglasPeucker(flatCoordinates, offset, end,\n stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n const n = (end - offset) / stride;\n if (n < 3) {\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n /** @type {Array} */\n const markers = new Array(n);\n markers[0] = 1;\n markers[n - 1] = 1;\n /** @type {Array} */\n const stack = [offset, end - stride];\n let index = 0;\n while (stack.length > 0) {\n const last = stack.pop();\n const first = stack.pop();\n let maxSquaredDistance = 0;\n const x1 = flatCoordinates[first];\n const y1 = flatCoordinates[first + 1];\n const x2 = flatCoordinates[last];\n const y2 = flatCoordinates[last + 1];\n for (let i = first + stride; i < last; i += stride) {\n const x = flatCoordinates[i];\n const y = flatCoordinates[i + 1];\n const squaredDistance = squaredSegmentDistance(\n x, y, x1, y1, x2, y2);\n if (squaredDistance > maxSquaredDistance) {\n index = i;\n maxSquaredDistance = squaredDistance;\n }\n }\n if (maxSquaredDistance > squaredTolerance) {\n markers[(index - offset) / stride] = 1;\n if (first + stride < index) {\n stack.push(first, index);\n }\n if (index + stride < last) {\n stack.push(index, last);\n }\n }\n }\n for (let i = 0; i < n; ++i) {\n if (markers[i]) {\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride + 1];\n }\n }\n return simplifiedOffset;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerArray(flatCoordinates, offset,\n ends, stride, squaredTolerance, simplifiedFlatCoordinates,\n simplifiedOffset, simplifiedEnds) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n simplifiedOffset = douglasPeucker(\n flatCoordinates, offset, end, stride, squaredTolerance,\n simplifiedFlatCoordinates, simplifiedOffset);\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerMultiArray(\n flatCoordinates, offset, endss, stride, squaredTolerance,\n simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n const simplifiedEnds = [];\n simplifiedOffset = douglasPeuckerArray(\n flatCoordinates, offset, ends, stride, squaredTolerance,\n simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds);\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function radialDistance(flatCoordinates, offset, end,\n stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n if (end <= offset + stride) {\n // zero or one point, no simplification possible, so copy and return\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n let x1 = flatCoordinates[offset];\n let y1 = flatCoordinates[offset + 1];\n // copy first point\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n let x2 = x1;\n let y2 = y1;\n for (offset += stride; offset < end; offset += stride) {\n x2 = flatCoordinates[offset];\n y2 = flatCoordinates[offset + 1];\n if (squaredDistance(x1, y1, x2, y2) > squaredTolerance) {\n // copy point at offset\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n }\n }\n if (x2 != x1 || y2 != y1) {\n // copy last point\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n }\n return simplifiedOffset;\n}\n\n\n/**\n * @param {number} value Value.\n * @param {number} tolerance Tolerance.\n * @return {number} Rounded value.\n */\nexport function snap(value, tolerance) {\n return tolerance * Math.round(value / tolerance);\n}\n\n\n/**\n * Simplifies a line string using an algorithm designed by Tim Schaub.\n * Coordinates are snapped to the nearest value in a virtual grid and\n * consecutive duplicate coordinates are discarded. This effectively preserves\n * topology as the simplification of any subsection of a line string is\n * independent of the rest of the line string. This means that, for examples,\n * the common edge between two polygons will be simplified to the same line\n * string independently in both polygons. This implementation uses a single\n * pass over the coordinates and eliminates intermediate collinear points.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function quantize(flatCoordinates, offset, end, stride,\n tolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n // do nothing if the line is empty\n if (offset == end) {\n return simplifiedOffset;\n }\n // snap the first coordinate (P1)\n let x1 = snap(flatCoordinates[offset], tolerance);\n let y1 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // add the first coordinate to the output\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n // find the next coordinate that does not snap to the same value as the first\n // coordinate (P2)\n let x2, y2;\n do {\n x2 = snap(flatCoordinates[offset], tolerance);\n y2 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n if (offset == end) {\n // all coordinates snap to the same value, the line collapses to a point\n // push the last snapped value anyway to ensure that the output contains\n // at least two points\n // FIXME should we really return at least two points anyway?\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n }\n } while (x2 == x1 && y2 == y1);\n while (offset < end) {\n // snap the next coordinate (P3)\n const x3 = snap(flatCoordinates[offset], tolerance);\n const y3 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // skip P3 if it is equal to P2\n if (x3 == x2 && y3 == y2) {\n continue;\n }\n // calculate the delta between P1 and P2\n const dx1 = x2 - x1;\n const dy1 = y2 - y1;\n // calculate the delta between P3 and P1\n const dx2 = x3 - x1;\n const dy2 = y3 - y1;\n // if P1, P2, and P3 are colinear and P3 is further from P1 than P2 is from\n // P1 in the same direction then P2 is on the straight line between P1 and\n // P3\n if ((dx1 * dy2 == dy1 * dx2) &&\n ((dx1 < 0 && dx2 < dx1) || dx1 == dx2 || (dx1 > 0 && dx2 > dx1)) &&\n ((dy1 < 0 && dy2 < dy1) || dy1 == dy2 || (dy1 > 0 && dy2 > dy1))) {\n // discard P2 and set P2 = P3\n x2 = x3;\n y2 = y3;\n continue;\n }\n // either P1, P2, and P3 are not colinear, or they are colinear but P3 is\n // between P3 and P1 or on the opposite half of the line to P2. add P2,\n // and continue with P1 = P2 and P2 = P3\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n x2 = x3;\n y2 = y3;\n }\n // add the last point (P2)\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function quantizeArray(\n flatCoordinates, offset, ends, stride,\n tolerance,\n simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n simplifiedOffset = quantize(\n flatCoordinates, offset, end, stride,\n tolerance,\n simplifiedFlatCoordinates, simplifiedOffset);\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function quantizeMultiArray(\n flatCoordinates, offset, endss, stride,\n tolerance,\n simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n const simplifiedEnds = [];\n simplifiedOffset = quantizeArray(\n flatCoordinates, offset, ends, stride,\n tolerance,\n simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds);\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n","/**\n * @module ol/geom/LinearRing\n */\nimport {closestSquaredDistanceXY} from '../extent.js';\nimport GeometryLayout from './GeometryLayout.js';\nimport GeometryType from './GeometryType.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport {linearRing as linearRingArea} from './flat/area.js';\nimport {assignClosestPoint, maxSquaredDelta} from './flat/closest.js';\nimport {deflateCoordinates} from './flat/deflate.js';\nimport {inflateCoordinates} from './flat/inflate.js';\nimport {douglasPeucker} from './flat/simplify.js';\n\n/**\n * @classdesc\n * Linear ring geometry. Only used as part of polygon; cannot be rendered\n * on its own.\n *\n * @api\n */\nclass LinearRing extends SimpleGeometry {\n\n /**\n * @param {Array|Array} coordinates Coordinates.\n * For internal use, flat coordinates in combination with `opt_layout` are also accepted.\n * @param {GeometryLayout=} opt_layout Layout.\n */\n constructor(coordinates, opt_layout) {\n\n super();\n\n /**\n * @private\n * @type {number}\n */\n this.maxDelta_ = -1;\n\n /**\n * @private\n * @type {number}\n */\n this.maxDeltaRevision_ = -1;\n\n if (opt_layout !== undefined && !Array.isArray(coordinates[0])) {\n this.setFlatCoordinates(opt_layout, /** @type {Array} */ (coordinates));\n } else {\n this.setCoordinates(/** @type {Array} */ (coordinates), opt_layout);\n }\n\n }\n\n /**\n * Make a complete copy of the geometry.\n * @return {!LinearRing} Clone.\n * @override\n * @api\n */\n clone() {\n return new LinearRing(this.flatCoordinates.slice(), this.layout);\n }\n\n /**\n * @inheritDoc\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(maxSquaredDelta(\n this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestPoint(\n this.flatCoordinates, 0, this.flatCoordinates.length, this.stride,\n this.maxDelta_, true, x, y, closestPoint, minSquaredDistance);\n }\n\n /**\n * Return the area of the linear ring on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n getArea() {\n return linearRingArea(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride);\n }\n\n /**\n * Return the coordinates of the linear ring.\n * @return {Array} Coordinates.\n * @override\n * @api\n */\n getCoordinates() {\n return inflateCoordinates(\n this.flatCoordinates, 0, this.flatCoordinates.length, this.stride);\n }\n\n /**\n * @inheritDoc\n */\n getSimplifiedGeometryInternal(squaredTolerance) {\n const simplifiedFlatCoordinates = [];\n simplifiedFlatCoordinates.length = douglasPeucker(\n this.flatCoordinates, 0, this.flatCoordinates.length, this.stride,\n squaredTolerance, simplifiedFlatCoordinates, 0);\n return new LinearRing(simplifiedFlatCoordinates, GeometryLayout.XY);\n }\n\n /**\n * @inheritDoc\n * @api\n */\n getType() {\n return GeometryType.LINEAR_RING;\n }\n\n /**\n * @inheritDoc\n */\n intersectsExtent(extent) {\n return false;\n }\n\n /**\n * Set the coordinates of the linear ring.\n * @param {!Array} coordinates Coordinates.\n * @param {GeometryLayout=} opt_layout Layout.\n * @override\n * @api\n */\n setCoordinates(coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 1);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinates(\n this.flatCoordinates, 0, coordinates, this.stride);\n this.changed();\n }\n}\n\n\nexport default LinearRing;\n","/**\n * @module ol/geom/Point\n */\nimport {createOrUpdateFromCoordinate, containsXY} from '../extent.js';\nimport GeometryType from './GeometryType.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport {deflateCoordinate} from './flat/deflate.js';\nimport {squaredDistance as squaredDx} from '../math.js';\n\n/**\n * @classdesc\n * Point geometry.\n *\n * @api\n */\nclass Point extends SimpleGeometry {\n\n /**\n * @param {import(\"../coordinate.js\").Coordinate} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default=} opt_layout Layout.\n */\n constructor(coordinates, opt_layout) {\n super();\n this.setCoordinates(coordinates, opt_layout);\n }\n\n /**\n * Make a complete copy of the geometry.\n * @return {!Point} Clone.\n * @override\n * @api\n */\n clone() {\n const point = new Point(this.flatCoordinates.slice(), this.layout);\n return point;\n }\n\n /**\n * @inheritDoc\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n const flatCoordinates = this.flatCoordinates;\n const squaredDistance = squaredDx(x, y, flatCoordinates[0], flatCoordinates[1]);\n if (squaredDistance < minSquaredDistance) {\n const stride = this.stride;\n for (let i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n } else {\n return minSquaredDistance;\n }\n }\n\n /**\n * Return the coordinate of the point.\n * @return {import(\"../coordinate.js\").Coordinate} Coordinates.\n * @override\n * @api\n */\n getCoordinates() {\n return !this.flatCoordinates ? [] : this.flatCoordinates.slice();\n }\n\n /**\n * @inheritDoc\n */\n computeExtent(extent) {\n return createOrUpdateFromCoordinate(this.flatCoordinates, extent);\n }\n\n /**\n * @inheritDoc\n * @api\n */\n getType() {\n return GeometryType.POINT;\n }\n\n /**\n * @inheritDoc\n * @api\n */\n intersectsExtent(extent) {\n return containsXY(extent, this.flatCoordinates[0], this.flatCoordinates[1]);\n }\n\n /**\n * @inheritDoc\n * @api\n */\n setCoordinates(coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 0);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinate(\n this.flatCoordinates, 0, coordinates, this.stride);\n this.changed();\n }\n}\n\n\nexport default Point;\n","/**\n * @module ol/geom/flat/contains\n */\nimport {forEachCorner} from '../../extent.js';\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} Contains extent.\n */\nexport function linearRingContainsExtent(flatCoordinates, offset, end, stride, extent) {\n const outside = forEachCorner(extent,\n /**\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains (x, y).\n */\n function(coordinate) {\n return !linearRingContainsXY(flatCoordinates, offset, end, stride, coordinate[0], coordinate[1]);\n });\n return !outside;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingContainsXY(flatCoordinates, offset, end, stride, x, y) {\n // http://geomalgorithms.com/a03-_inclusion.html\n // Copyright 2000 softSurfer, 2012 Dan Sunday\n // This code may be freely used and modified for any purpose\n // providing that this copyright notice is included with it.\n // SoftSurfer makes no warranty for this code, and cannot be held\n // liable for any real or imagined damage resulting from its use.\n // Users of this code must verify correctness for their application.\n let wn = 0;\n let x1 = flatCoordinates[end - stride];\n let y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n if (y1 <= y) {\n if (y2 > y && ((x2 - x1) * (y - y1)) - ((x - x1) * (y2 - y1)) > 0) {\n wn++;\n }\n } else if (y2 <= y && ((x2 - x1) * (y - y1)) - ((x - x1) * (y2 - y1)) < 0) {\n wn--;\n }\n x1 = x2;\n y1 = y2;\n }\n return wn !== 0;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y) {\n if (ends.length === 0) {\n return false;\n }\n if (!linearRingContainsXY(flatCoordinates, offset, ends[0], stride, x, y)) {\n return false;\n }\n for (let i = 1, ii = ends.length; i < ii; ++i) {\n if (linearRingContainsXY(flatCoordinates, ends[i - 1], ends[i], stride, x, y)) {\n return false;\n }\n }\n return true;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingssContainsXY(flatCoordinates, offset, endss, stride, x, y) {\n if (endss.length === 0) {\n return false;\n }\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n","/**\n * @module ol/geom/flat/interiorpoint\n */\nimport {numberSafeCompareFunction} from '../../array.js';\nimport {linearRingsContainsXY} from './contains.js';\n\n\n/**\n * Calculates a point that is likely to lie in the interior of the linear rings.\n * Inspired by JTS's com.vividsolutions.jts.geom.Geometry#getInteriorPoint.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @param {number} flatCentersOffset Flat center offset.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Destination point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointOfArray(flatCoordinates, offset,\n ends, stride, flatCenters, flatCentersOffset, opt_dest) {\n let i, ii, x, x1, x2, y1, y2;\n const y = flatCenters[flatCentersOffset + 1];\n /** @type {Array} */\n const intersections = [];\n // Calculate intersections with the horizontal line\n for (let r = 0, rr = ends.length; r < rr; ++r) {\n const end = ends[r];\n x1 = flatCoordinates[end - stride];\n y1 = flatCoordinates[end - stride + 1];\n for (i = offset; i < end; i += stride) {\n x2 = flatCoordinates[i];\n y2 = flatCoordinates[i + 1];\n if ((y <= y1 && y2 <= y) || (y1 <= y && y <= y2)) {\n x = (y - y1) / (y2 - y1) * (x2 - x1) + x1;\n intersections.push(x);\n }\n x1 = x2;\n y1 = y2;\n }\n }\n // Find the longest segment of the horizontal line that has its center point\n // inside the linear ring.\n let pointX = NaN;\n let maxSegmentLength = -Infinity;\n intersections.sort(numberSafeCompareFunction);\n x1 = intersections[0];\n for (i = 1, ii = intersections.length; i < ii; ++i) {\n x2 = intersections[i];\n const segmentLength = Math.abs(x2 - x1);\n if (segmentLength > maxSegmentLength) {\n x = (x1 + x2) / 2;\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n pointX = x;\n maxSegmentLength = segmentLength;\n }\n }\n x1 = x2;\n }\n if (isNaN(pointX)) {\n // There is no horizontal line that has its center point inside the linear\n // ring. Use the center of the the linear ring's extent.\n pointX = flatCenters[flatCentersOffset];\n }\n if (opt_dest) {\n opt_dest.push(pointX, y, maxSegmentLength);\n return opt_dest;\n } else {\n return [pointX, y, maxSegmentLength];\n }\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @return {Array} Interior points as XYM coordinates, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointsOfMultiArray(flatCoordinates, offset, endss, stride, flatCenters) {\n let interiorPoints = [];\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n interiorPoints = getInteriorPointOfArray(flatCoordinates,\n offset, ends, stride, flatCenters, 2 * i, interiorPoints);\n offset = ends[ends.length - 1];\n }\n return interiorPoints;\n}\n","/**\n * @module ol/geom/flat/segments\n */\n\n\n/**\n * This function calls `callback` for each segment of the flat coordinates\n * array. If the callback returns a truthy value the function returns that\n * value immediately. Otherwise the function returns `false`.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {function(this: S, import(\"../../coordinate.js\").Coordinate, import(\"../../coordinate.js\").Coordinate): T} callback Function\n * called for each segment.\n * @param {S=} opt_this The object to be used as the value of 'this'\n * within callback.\n * @return {T|boolean} Value.\n * @template T,S\n */\nexport function forEach(flatCoordinates, offset, end, stride, callback, opt_this) {\n const point1 = [flatCoordinates[offset], flatCoordinates[offset + 1]];\n const point2 = [];\n let ret;\n for (; (offset + stride) < end; offset += stride) {\n point2[0] = flatCoordinates[offset + stride];\n point2[1] = flatCoordinates[offset + stride + 1];\n ret = callback.call(opt_this, point1, point2);\n if (ret) {\n return ret;\n }\n point1[0] = point2[0];\n point1[1] = point2[1];\n }\n return false;\n}\n","/**\n * @module ol/geom/flat/intersectsextent\n */\nimport {containsExtent, createEmpty, extendFlatCoordinates, intersects, intersectsSegment} from '../../extent.js';\nimport {linearRingContainsXY, linearRingContainsExtent} from './contains.js';\nimport {forEach as forEachSegment} from './segments.js';\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLineString(flatCoordinates, offset, end, stride, extent) {\n const coordinatesExtent = extendFlatCoordinates(\n createEmpty(), flatCoordinates, offset, end, stride);\n if (!intersects(extent, coordinatesExtent)) {\n return false;\n }\n if (containsExtent(extent, coordinatesExtent)) {\n return true;\n }\n if (coordinatesExtent[0] >= extent[0] &&\n coordinatesExtent[2] <= extent[2]) {\n return true;\n }\n if (coordinatesExtent[1] >= extent[1] &&\n coordinatesExtent[3] <= extent[3]) {\n return true;\n }\n return forEachSegment(flatCoordinates, offset, end, stride,\n /**\n * @param {import(\"../../coordinate.js\").Coordinate} point1 Start point.\n * @param {import(\"../../coordinate.js\").Coordinate} point2 End point.\n * @return {boolean} `true` if the segment and the extent intersect,\n * `false` otherwise.\n */\n function(point1, point2) {\n return intersectsSegment(extent, point1, point2);\n });\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLineStringArray(flatCoordinates, offset, ends, stride, extent) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n if (intersectsLineString(\n flatCoordinates, offset, ends[i], stride, extent)) {\n return true;\n }\n offset = ends[i];\n }\n return false;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRing(flatCoordinates, offset, end, stride, extent) {\n if (intersectsLineString(\n flatCoordinates, offset, end, stride, extent)) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[0], extent[1])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[0], extent[3])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[2], extent[1])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[2], extent[3])) {\n return true;\n }\n return false;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRingArray(flatCoordinates, offset, ends, stride, extent) {\n if (!intersectsLinearRing(\n flatCoordinates, offset, ends[0], stride, extent)) {\n return false;\n }\n if (ends.length === 1) {\n return true;\n }\n for (let i = 1, ii = ends.length; i < ii; ++i) {\n if (linearRingContainsExtent(flatCoordinates, ends[i - 1], ends[i], stride, extent)) {\n if (!intersectsLineString(flatCoordinates, ends[i - 1], ends[i], stride, extent)) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRingMultiArray(flatCoordinates, offset, endss, stride, extent) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n if (intersectsLinearRingArray(\n flatCoordinates, offset, ends, stride, extent)) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n","/**\n * @module ol/geom/flat/reverse\n */\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n */\nexport function coordinates(flatCoordinates, offset, end, stride) {\n while (offset < end - stride) {\n for (let i = 0; i < stride; ++i) {\n const tmp = flatCoordinates[offset + i];\n flatCoordinates[offset + i] = flatCoordinates[end - stride + i];\n flatCoordinates[end - stride + i] = tmp;\n }\n offset += stride;\n end -= stride;\n }\n}\n","/**\n * @module ol/geom/flat/orient\n */\nimport {coordinates as reverseCoordinates} from './reverse.js';\n\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {boolean} Is clockwise.\n */\nexport function linearRingIsClockwise(flatCoordinates, offset, end, stride) {\n // http://tinyurl.com/clockwise-method\n // https://github.com/OSGeo/gdal/blob/trunk/gdal/ogr/ogrlinearring.cpp\n let edge = 0;\n let x1 = flatCoordinates[end - stride];\n let y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n edge += (x2 - x1) * (y2 + y1);\n x1 = x2;\n y1 = y2;\n }\n return edge > 0;\n}\n\n\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean=} opt_right Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingIsOriented(flatCoordinates, offset, ends, stride, opt_right) {\n const right = opt_right !== undefined ? opt_right : false;\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n const isClockwise = linearRingIsClockwise(\n flatCoordinates, offset, end, stride);\n if (i === 0) {\n if ((right && isClockwise) || (!right && !isClockwise)) {\n return false;\n }\n } else {\n if ((right && !isClockwise) || (!right && isClockwise)) {\n return false;\n }\n }\n offset = end;\n }\n return true;\n}\n\n\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean=} opt_right Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingsAreOriented(flatCoordinates, offset, endss, stride, opt_right) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n if (!linearRingIsOriented(\n flatCoordinates, offset, endss[i], stride, opt_right)) {\n return false;\n }\n }\n return true;\n}\n\n\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {boolean=} opt_right Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRings(flatCoordinates, offset, ends, stride, opt_right) {\n const right = opt_right !== undefined ? opt_right : false;\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n const isClockwise = linearRingIsClockwise(\n flatCoordinates, offset, end, stride);\n const reverse = i === 0 ?\n (right && isClockwise) || (!right && !isClockwise) :\n (right && !isClockwise) || (!right && isClockwise);\n if (reverse) {\n reverseCoordinates(flatCoordinates, offset, end, stride);\n }\n offset = end;\n }\n return offset;\n}\n\n\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean=} opt_right Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRingsArray(flatCoordinates, offset, endss, stride, opt_right) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n offset = orientLinearRings(\n flatCoordinates, offset, endss[i], stride, opt_right);\n }\n return offset;\n}\n","/**\n * @module ol/geom/Polygon\n */\nimport {extend} from '../array.js';\nimport {closestSquaredDistanceXY, getCenter} from '../extent.js';\nimport GeometryLayout from './GeometryLayout.js';\nimport GeometryType from './GeometryType.js';\nimport LinearRing from './LinearRing.js';\nimport Point from './Point.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport {offset as sphereOffset} from '../sphere.js';\nimport {linearRings as linearRingsArea} from './flat/area.js';\nimport {assignClosestArrayPoint, arrayMaxSquaredDelta} from './flat/closest.js';\nimport {linearRingsContainsXY} from './flat/contains.js';\nimport {deflateCoordinatesArray} from './flat/deflate.js';\nimport {inflateCoordinatesArray} from './flat/inflate.js';\nimport {getInteriorPointOfArray} from './flat/interiorpoint.js';\nimport {intersectsLinearRingArray} from './flat/intersectsextent.js';\nimport {linearRingIsOriented, orientLinearRings} from './flat/orient.js';\nimport {quantizeArray} from './flat/simplify.js';\nimport {modulo} from '../math.js';\n\n/**\n * @classdesc\n * Polygon geometry.\n *\n * @api\n */\nclass Polygon extends SimpleGeometry {\n\n /**\n * @param {!Array>|!Array} coordinates\n * Array of linear rings that define the polygon. The first linear ring of the\n * array defines the outer-boundary or surface of the polygon. Each subsequent\n * linear ring defines a hole in the surface of the polygon. A linear ring is\n * an array of vertices' coordinates where the first coordinate and the last are\n * equivalent. (For internal use, flat coordinates in combination with\n * `opt_layout` and `opt_ends` are also accepted.)\n * @param {GeometryLayout=} opt_layout Layout.\n * @param {Array=} opt_ends Ends (for internal use with flat coordinates).\n */\n constructor(coordinates, opt_layout, opt_ends) {\n\n super();\n\n /**\n * @type {Array}\n * @private\n */\n this.ends_ = [];\n\n /**\n * @private\n * @type {number}\n */\n this.flatInteriorPointRevision_ = -1;\n\n /**\n * @private\n * @type {import(\"../coordinate.js\").Coordinate}\n */\n this.flatInteriorPoint_ = null;\n\n /**\n * @private\n * @type {number}\n */\n this.maxDelta_ = -1;\n\n /**\n * @private\n * @type {number}\n */\n this.maxDeltaRevision_ = -1;\n\n /**\n * @private\n * @type {number}\n */\n this.orientedRevision_ = -1;\n\n /**\n * @private\n * @type {Array}\n */\n this.orientedFlatCoordinates_ = null;\n\n if (opt_layout !== undefined && opt_ends) {\n this.setFlatCoordinates(opt_layout, /** @type {Array} */ (coordinates));\n this.ends_ = opt_ends;\n } else {\n this.setCoordinates(/** @type {Array>} */ (coordinates), opt_layout);\n }\n\n }\n\n /**\n * Append the passed linear ring to this polygon.\n * @param {LinearRing} linearRing Linear ring.\n * @api\n */\n appendLinearRing(linearRing) {\n if (!this.flatCoordinates) {\n this.flatCoordinates = linearRing.getFlatCoordinates().slice();\n } else {\n extend(this.flatCoordinates, linearRing.getFlatCoordinates());\n }\n this.ends_.push(this.flatCoordinates.length);\n this.changed();\n }\n\n /**\n * Make a complete copy of the geometry.\n * @return {!Polygon} Clone.\n * @override\n * @api\n */\n clone() {\n return new Polygon(this.flatCoordinates.slice(), this.layout, this.ends_.slice());\n }\n\n /**\n * @inheritDoc\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(arrayMaxSquaredDelta(\n this.flatCoordinates, 0, this.ends_, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestArrayPoint(\n this.flatCoordinates, 0, this.ends_, this.stride,\n this.maxDelta_, true, x, y, closestPoint, minSquaredDistance);\n }\n\n /**\n * @inheritDoc\n */\n containsXY(x, y) {\n return linearRingsContainsXY(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, x, y);\n }\n\n /**\n * Return the area of the polygon on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n getArea() {\n return linearRingsArea(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride);\n }\n\n /**\n * Get the coordinate array for this geometry. This array has the structure\n * of a GeoJSON coordinate array for polygons.\n *\n * @param {boolean=} opt_right Orient coordinates according to the right-hand\n * rule (counter-clockwise for exterior and clockwise for interior rings).\n * If `false`, coordinates will be oriented according to the left-hand rule\n * (clockwise for exterior and counter-clockwise for interior rings).\n * By default, coordinate orientation will depend on how the geometry was\n * constructed.\n * @return {Array>} Coordinates.\n * @override\n * @api\n */\n getCoordinates(opt_right) {\n let flatCoordinates;\n if (opt_right !== undefined) {\n flatCoordinates = this.getOrientedFlatCoordinates().slice();\n orientLinearRings(\n flatCoordinates, 0, this.ends_, this.stride, opt_right);\n } else {\n flatCoordinates = this.flatCoordinates;\n }\n\n return inflateCoordinatesArray(\n flatCoordinates, 0, this.ends_, this.stride);\n }\n\n /**\n * @return {Array} Ends.\n */\n getEnds() {\n return this.ends_;\n }\n\n /**\n * @return {Array} Interior point.\n */\n getFlatInteriorPoint() {\n if (this.flatInteriorPointRevision_ != this.getRevision()) {\n const flatCenter = getCenter(this.getExtent());\n this.flatInteriorPoint_ = getInteriorPointOfArray(\n this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride,\n flatCenter, 0);\n this.flatInteriorPointRevision_ = this.getRevision();\n }\n return this.flatInteriorPoint_;\n }\n\n /**\n * Return an interior point of the polygon.\n * @return {Point} Interior point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n * @api\n */\n getInteriorPoint() {\n return new Point(this.getFlatInteriorPoint(), GeometryLayout.XYM);\n }\n\n /**\n * Return the number of rings of the polygon, this includes the exterior\n * ring and any interior rings.\n *\n * @return {number} Number of rings.\n * @api\n */\n getLinearRingCount() {\n return this.ends_.length;\n }\n\n /**\n * Return the Nth linear ring of the polygon geometry. Return `null` if the\n * given index is out of range.\n * The exterior linear ring is available at index `0` and the interior rings\n * at index `1` and beyond.\n *\n * @param {number} index Index.\n * @return {LinearRing} Linear ring.\n * @api\n */\n getLinearRing(index) {\n if (index < 0 || this.ends_.length <= index) {\n return null;\n }\n return new LinearRing(this.flatCoordinates.slice(\n index === 0 ? 0 : this.ends_[index - 1], this.ends_[index]), this.layout);\n }\n\n /**\n * Return the linear rings of the polygon.\n * @return {Array} Linear rings.\n * @api\n */\n getLinearRings() {\n const layout = this.layout;\n const flatCoordinates = this.flatCoordinates;\n const ends = this.ends_;\n const linearRings = [];\n let offset = 0;\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n const linearRing = new LinearRing(flatCoordinates.slice(offset, end), layout);\n linearRings.push(linearRing);\n offset = end;\n }\n return linearRings;\n }\n\n /**\n * @return {Array} Oriented flat coordinates.\n */\n getOrientedFlatCoordinates() {\n if (this.orientedRevision_ != this.getRevision()) {\n const flatCoordinates = this.flatCoordinates;\n if (linearRingIsOriented(\n flatCoordinates, 0, this.ends_, this.stride)) {\n this.orientedFlatCoordinates_ = flatCoordinates;\n } else {\n this.orientedFlatCoordinates_ = flatCoordinates.slice();\n this.orientedFlatCoordinates_.length =\n orientLinearRings(\n this.orientedFlatCoordinates_, 0, this.ends_, this.stride);\n }\n this.orientedRevision_ = this.getRevision();\n }\n return this.orientedFlatCoordinates_;\n }\n\n /**\n * @inheritDoc\n */\n getSimplifiedGeometryInternal(squaredTolerance) {\n const simplifiedFlatCoordinates = [];\n const simplifiedEnds = [];\n simplifiedFlatCoordinates.length = quantizeArray(\n this.flatCoordinates, 0, this.ends_, this.stride,\n Math.sqrt(squaredTolerance),\n simplifiedFlatCoordinates, 0, simplifiedEnds);\n return new Polygon(simplifiedFlatCoordinates, GeometryLayout.XY, simplifiedEnds);\n }\n\n /**\n * @inheritDoc\n * @api\n */\n getType() {\n return GeometryType.POLYGON;\n }\n\n /**\n * @inheritDoc\n * @api\n */\n intersectsExtent(extent) {\n return intersectsLinearRingArray(\n this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, extent);\n }\n\n /**\n * Set the coordinates of the polygon.\n * @param {!Array>} coordinates Coordinates.\n * @param {GeometryLayout=} opt_layout Layout.\n * @override\n * @api\n */\n setCoordinates(coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 2);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n const ends = deflateCoordinatesArray(\n this.flatCoordinates, 0, coordinates, this.stride, this.ends_);\n this.flatCoordinates.length = ends.length === 0 ? 0 : ends[ends.length - 1];\n this.changed();\n }\n}\n\n\nexport default Polygon;\n\n\n/**\n * Create an approximation of a circle on the surface of a sphere.\n * @param {import(\"../coordinate.js\").Coordinate} center Center (`[lon, lat]` in degrees).\n * @param {number} radius The great-circle distance from the center to\n * the polygon vertices.\n * @param {number=} opt_n Optional number of vertices for the resulting\n * polygon. Default is `32`.\n * @param {number=} opt_sphereRadius Optional radius for the sphere (defaults to\n * the Earth's mean radius using the WGS84 ellipsoid).\n * @return {Polygon} The \"circular\" polygon.\n * @api\n */\nexport function circular(center, radius, opt_n, opt_sphereRadius) {\n const n = opt_n ? opt_n : 32;\n /** @type {Array} */\n const flatCoordinates = [];\n for (let i = 0; i < n; ++i) {\n extend(flatCoordinates, sphereOffset(center, radius, 2 * Math.PI * i / n, opt_sphereRadius));\n }\n flatCoordinates.push(flatCoordinates[0], flatCoordinates[1]);\n return new Polygon(flatCoordinates, GeometryLayout.XY, [flatCoordinates.length]);\n}\n\n\n/**\n * Create a polygon from an extent. The layout used is `XY`.\n * @param {import(\"../extent.js\").Extent} extent The extent.\n * @return {Polygon} The polygon.\n * @api\n */\nexport function fromExtent(extent) {\n const minX = extent[0];\n const minY = extent[1];\n const maxX = extent[2];\n const maxY = extent[3];\n const flatCoordinates =\n [minX, minY, minX, maxY, maxX, maxY, maxX, minY, minX, minY];\n return new Polygon(flatCoordinates, GeometryLayout.XY, [flatCoordinates.length]);\n}\n\n\n/**\n * Create a regular polygon from a circle.\n * @param {import(\"./Circle.js\").default} circle Circle geometry.\n * @param {number=} opt_sides Number of sides of the polygon. Default is 32.\n * @param {number=} opt_angle Start angle for the first vertex of the polygon in\n * radians. Default is 0.\n * @return {Polygon} Polygon geometry.\n * @api\n */\nexport function fromCircle(circle, opt_sides, opt_angle) {\n const sides = opt_sides ? opt_sides : 32;\n const stride = circle.getStride();\n const layout = circle.getLayout();\n const center = circle.getCenter();\n const arrayLength = stride * (sides + 1);\n const flatCoordinates = new Array(arrayLength);\n for (let i = 0; i < arrayLength; i += stride) {\n flatCoordinates[i] = 0;\n flatCoordinates[i + 1] = 0;\n for (let j = 2; j < stride; j++) {\n flatCoordinates[i + j] = center[j];\n }\n }\n const ends = [flatCoordinates.length];\n const polygon = new Polygon(flatCoordinates, layout, ends);\n makeRegular(polygon, center, circle.getRadius(), opt_angle);\n return polygon;\n}\n\n\n/**\n * Modify the coordinates of a polygon to make it a regular polygon.\n * @param {Polygon} polygon Polygon geometry.\n * @param {import(\"../coordinate.js\").Coordinate} center Center of the regular polygon.\n * @param {number} radius Radius of the regular polygon.\n * @param {number=} opt_angle Start angle for the first vertex of the polygon in\n * radians. Default is 0.\n */\nexport function makeRegular(polygon, center, radius, opt_angle) {\n const flatCoordinates = polygon.getFlatCoordinates();\n const stride = polygon.getStride();\n const sides = flatCoordinates.length / stride - 1;\n const startAngle = opt_angle ? opt_angle : 0;\n for (let i = 0; i <= sides; ++i) {\n const offset = i * stride;\n const angle = startAngle + (modulo(i, sides) * 2 * Math.PI / sides);\n flatCoordinates[offset] = center[0] + (radius * Math.cos(angle));\n flatCoordinates[offset + 1] = center[1] + (radius * Math.sin(angle));\n }\n polygon.changed();\n}\n","/**\n * @module ol/View\n */\nimport {DEFAULT_TILE_SIZE} from './tilegrid/common.js';\nimport {getUid} from './util.js';\nimport {VOID} from './functions.js';\nimport {createExtent, none as centerNone} from './centerconstraint.js';\nimport BaseObject from './Object.js';\nimport {createSnapToResolutions, createSnapToPower} from './resolutionconstraint.js';\nimport {createSnapToZero, createSnapToN, none as rotationNone, disable} from './rotationconstraint.js';\nimport ViewHint from './ViewHint.js';\nimport ViewProperty from './ViewProperty.js';\nimport {linearFindNearest} from './array.js';\nimport {assert} from './asserts.js';\nimport {add as addCoordinate, rotate as rotateCoordinate, equals as coordinatesEqual} from './coordinate.js';\nimport {inAndOut} from './easing.js';\nimport {getForViewAndSize, getCenter, getHeight, getWidth, isEmpty} from './extent.js';\nimport GeometryType from './geom/GeometryType.js';\nimport {fromExtent as polygonFromExtent} from './geom/Polygon.js';\nimport {clamp, modulo} from './math.js';\nimport {assign} from './obj.js';\nimport {createProjection, METERS_PER_UNIT} from './proj.js';\nimport Units from './proj/Units.js';\n\n\n/**\n * An animation configuration\n *\n * @typedef {Object} Animation\n * @property {import(\"./coordinate.js\").Coordinate} [sourceCenter]\n * @property {import(\"./coordinate.js\").Coordinate} [targetCenter]\n * @property {number} [sourceResolution]\n * @property {number} [targetResolution]\n * @property {number} [sourceRotation]\n * @property {number} [targetRotation]\n * @property {import(\"./coordinate.js\").Coordinate} [anchor]\n * @property {number} start\n * @property {number} duration\n * @property {boolean} complete\n * @property {function(number):number} easing\n * @property {function(boolean)} callback\n */\n\n\n/**\n * @typedef {Object} Constraints\n * @property {import(\"./centerconstraint.js\").Type} center\n * @property {import(\"./resolutionconstraint.js\").Type} resolution\n * @property {import(\"./rotationconstraint.js\").Type} rotation\n */\n\n\n/**\n * @typedef {Object} FitOptions\n * @property {import(\"./size.js\").Size} [size] The size in pixels of the box to fit\n * the extent into. Default is the current size of the first map in the DOM that\n * uses this view, or `[100, 100]` if no such map is found.\n * @property {!Array} [padding=[0, 0, 0, 0]] Padding (in pixels) to be\n * cleared inside the view. Values in the array are top, right, bottom and left\n * padding.\n * @property {boolean} [constrainResolution=true] Constrain the resolution.\n * @property {boolean} [nearest=false] If `constrainResolution` is `true`, get\n * the nearest extent instead of the closest that actually fits the view.\n * @property {number} [minResolution=0] Minimum resolution that we zoom to.\n * @property {number} [maxZoom] Maximum zoom level that we zoom to. If\n * `minResolution` is given, this property is ignored.\n * @property {number} [duration] The duration of the animation in milliseconds.\n * By default, there is no animation to the target extent.\n * @property {function(number):number} [easing] The easing function used during\n * the animation (defaults to {@link module:ol/easing~inAndOut}).\n * The function will be called for each frame with a number representing a\n * fraction of the animation's duration. The function should return a number\n * between 0 and 1 representing the progress toward the destination state.\n * @property {function(boolean)} [callback] Function called when the view is in\n * its final position. The callback will be called with `true` if the animation\n * series completed on its own or `false` if it was cancelled.\n */\n\n\n/**\n * @typedef {Object} ViewOptions\n * @property {import(\"./coordinate.js\").Coordinate} [center] The initial center for\n * the view. The coordinate system for the center is specified with the\n * `projection` option. Layer sources will not be fetched if this is not set,\n * but the center can be set later with {@link #setCenter}.\n * @property {boolean|number} [constrainRotation=true] Rotation constraint.\n * `false` means no constraint. `true` means no constraint, but snap to zero\n * near zero. A number constrains the rotation to that number of values. For\n * example, `4` will constrain the rotation to 0, 90, 180, and 270 degrees.\n * @property {boolean} [enableRotation=true] Enable rotation.\n * If `false`, a rotation constraint that always sets the rotation to zero is\n * used. The `constrainRotation` option has no effect if `enableRotation` is\n * `false`.\n * @property {import(\"./extent.js\").Extent} [extent] The extent that constrains the\n * center, in other words, center cannot be set outside this extent.\n * @property {number} [maxResolution] The maximum resolution used to determine\n * the resolution constraint. It is used together with `minResolution` (or\n * `maxZoom`) and `zoomFactor`. If unspecified it is calculated in such a way\n * that the projection's validity extent fits in a 256x256 px tile. If the\n * projection is Spherical Mercator (the default) then `maxResolution` defaults\n * to `40075016.68557849 / 256 = 156543.03392804097`.\n * @property {number} [minResolution] The minimum resolution used to determine\n * the resolution constraint. It is used together with `maxResolution` (or\n * `minZoom`) and `zoomFactor`. If unspecified it is calculated assuming 29\n * zoom levels (with a factor of 2). If the projection is Spherical Mercator\n * (the default) then `minResolution` defaults to\n * `40075016.68557849 / 256 / Math.pow(2, 28) = 0.0005831682455839253`.\n * @property {number} [maxZoom=28] The maximum zoom level used to determine the\n * resolution constraint. It is used together with `minZoom` (or\n * `maxResolution`) and `zoomFactor`. Note that if `minResolution` is also\n * provided, it is given precedence over `maxZoom`.\n * @property {number} [minZoom=0] The minimum zoom level used to determine the\n * resolution constraint. It is used together with `maxZoom` (or\n * `minResolution`) and `zoomFactor`. Note that if `maxResolution` is also\n * provided, it is given precedence over `minZoom`.\n * @property {import(\"./proj.js\").ProjectionLike} [projection='EPSG:3857'] The\n * projection. The default is Spherical Mercator.\n * @property {number} [resolution] The initial resolution for the view. The\n * units are `projection` units per pixel (e.g. meters per pixel). An\n * alternative to setting this is to set `zoom`. Layer sources will not be\n * fetched if neither this nor `zoom` are defined, but they can be set later\n * with {@link #setZoom} or {@link #setResolution}.\n * @property {Array} [resolutions] Resolutions to determine the\n * resolution constraint. If set the `maxResolution`, `minResolution`,\n * `minZoom`, `maxZoom`, and `zoomFactor` options are ignored.\n * @property {number} [rotation=0] The initial rotation for the view in radians\n * (positive rotation clockwise, 0 means North).\n * @property {number} [zoom] Only used if `resolution` is not defined. Zoom\n * level used to calculate the initial resolution for the view. The initial\n * resolution is determined using the {@link #constrainResolution} method.\n * @property {number} [zoomFactor=2] The zoom factor used to determine the\n * resolution constraint.\n */\n\n\n/**\n * @typedef {Object} AnimationOptions\n * @property {import(\"./coordinate.js\").Coordinate} [center] The center of the view at the end of\n * the animation.\n * @property {number} [zoom] The zoom level of the view at the end of the\n * animation. This takes precedence over `resolution`.\n * @property {number} [resolution] The resolution of the view at the end\n * of the animation. If `zoom` is also provided, this option will be ignored.\n * @property {number} [rotation] The rotation of the view at the end of\n * the animation.\n * @property {import(\"./coordinate.js\").Coordinate} [anchor] Optional anchor to remained fixed\n * during a rotation or resolution animation.\n * @property {number} [duration=1000] The duration of the animation in milliseconds.\n * @property {function(number):number} [easing] The easing function used\n * during the animation (defaults to {@link module:ol/easing~inAndOut}).\n * The function will be called for each frame with a number representing a\n * fraction of the animation's duration. The function should return a number\n * between 0 and 1 representing the progress toward the destination state.\n */\n\n\n/**\n * @typedef {Object} State\n * @property {import(\"./coordinate.js\").Coordinate} center\n * @property {import(\"./proj/Projection.js\").default} projection\n * @property {number} resolution\n * @property {number} rotation\n * @property {number} zoom\n */\n\n\n/**\n * Default min zoom level for the map view.\n * @type {number}\n */\nconst DEFAULT_MIN_ZOOM = 0;\n\n\n/**\n * @classdesc\n * A View object represents a simple 2D view of the map.\n *\n * This is the object to act upon to change the center, resolution,\n * and rotation of the map.\n *\n * ### The view states\n *\n * An View is determined by three states: `center`, `resolution`,\n * and `rotation`. Each state has a corresponding getter and setter, e.g.\n * `getCenter` and `setCenter` for the `center` state.\n *\n * An View has a `projection`. The projection determines the\n * coordinate system of the center, and its units determine the units of the\n * resolution (projection units per pixel). The default projection is\n * Spherical Mercator (EPSG:3857).\n *\n * ### The constraints\n *\n * `setCenter`, `setResolution` and `setRotation` can be used to change the\n * states of the view. Any value can be passed to the setters. And the value\n * that is passed to a setter will effectively be the value set in the view,\n * and returned by the corresponding getter.\n *\n * But a View object also has a *resolution constraint*, a\n * *rotation constraint* and a *center constraint*.\n *\n * As said above, no constraints are applied when the setters are used to set\n * new states for the view. Applying constraints is done explicitly through\n * the use of the `constrain*` functions (`constrainResolution` and\n * `constrainRotation` and `constrainCenter`).\n *\n * The main users of the constraints are the interactions and the\n * controls. For example, double-clicking on the map changes the view to\n * the \"next\" resolution. And releasing the fingers after pinch-zooming\n * snaps to the closest resolution (with an animation).\n *\n * The *resolution constraint* snaps to specific resolutions. It is\n * determined by the following options: `resolutions`, `maxResolution`,\n * `maxZoom`, and `zoomFactor`. If `resolutions` is set, the other three\n * options are ignored. See documentation for each option for more\n * information.\n *\n * The *rotation constraint* snaps to specific angles. It is determined\n * by the following options: `enableRotation` and `constrainRotation`.\n * By default the rotation value is snapped to zero when approaching the\n * horizontal.\n *\n * The *center constraint* is determined by the `extent` option. By\n * default the center is not constrained at all.\n *\n * @api\n */\nclass View extends BaseObject {\n\n /**\n * @param {ViewOptions=} opt_options View options.\n */\n constructor(opt_options) {\n super();\n\n const options = assign({}, opt_options);\n\n /**\n * @private\n * @type {Array}\n */\n this.hints_ = [0, 0];\n\n /**\n * @private\n * @type {Array>}\n */\n this.animations_ = [];\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.updateAnimationKey_;\n\n this.updateAnimations_ = this.updateAnimations_.bind(this);\n\n /**\n * @private\n * @const\n * @type {import(\"./proj/Projection.js\").default}\n */\n this.projection_ = createProjection(options.projection, 'EPSG:3857');\n\n this.applyOptions_(options);\n }\n\n /**\n * Set up the view with the given options.\n * @param {ViewOptions} options View options.\n */\n applyOptions_(options) {\n\n /**\n * @type {Object}\n */\n const properties = {};\n properties[ViewProperty.CENTER] = options.center !== undefined ?\n options.center : null;\n\n const resolutionConstraintInfo = createResolutionConstraint(options);\n\n /**\n * @private\n * @type {number}\n */\n this.maxResolution_ = resolutionConstraintInfo.maxResolution;\n\n /**\n * @private\n * @type {number}\n */\n this.minResolution_ = resolutionConstraintInfo.minResolution;\n\n /**\n * @private\n * @type {number}\n */\n this.zoomFactor_ = resolutionConstraintInfo.zoomFactor;\n\n /**\n * @private\n * @type {Array|undefined}\n */\n this.resolutions_ = options.resolutions;\n\n /**\n * @private\n * @type {number}\n */\n this.minZoom_ = resolutionConstraintInfo.minZoom;\n\n const centerConstraint = createCenterConstraint(options);\n const resolutionConstraint = resolutionConstraintInfo.constraint;\n const rotationConstraint = createRotationConstraint(options);\n\n /**\n * @private\n * @type {Constraints}\n */\n this.constraints_ = {\n center: centerConstraint,\n resolution: resolutionConstraint,\n rotation: rotationConstraint\n };\n\n if (options.resolution !== undefined) {\n properties[ViewProperty.RESOLUTION] = options.resolution;\n } else if (options.zoom !== undefined) {\n properties[ViewProperty.RESOLUTION] = this.constrainResolution(\n this.maxResolution_, options.zoom - this.minZoom_);\n\n if (this.resolutions_) { // in case map zoom is out of min/max zoom range\n properties[ViewProperty.RESOLUTION] = clamp(\n Number(this.getResolution() || properties[ViewProperty.RESOLUTION]),\n this.minResolution_, this.maxResolution_);\n }\n }\n properties[ViewProperty.ROTATION] = options.rotation !== undefined ? options.rotation : 0;\n this.setProperties(properties);\n\n /**\n * @private\n * @type {ViewOptions}\n */\n this.options_ = options;\n\n }\n\n /**\n * Get an updated version of the view options used to construct the view. The\n * current resolution (or zoom), center, and rotation are applied to any stored\n * options. The provided options can be used to apply new min/max zoom or\n * resolution limits.\n * @param {ViewOptions} newOptions New options to be applied.\n * @return {ViewOptions} New options updated with the current view state.\n */\n getUpdatedOptions_(newOptions) {\n const options = assign({}, this.options_);\n\n // preserve resolution (or zoom)\n if (options.resolution !== undefined) {\n options.resolution = this.getResolution();\n } else {\n options.zoom = this.getZoom();\n }\n\n // preserve center\n options.center = this.getCenter();\n\n // preserve rotation\n options.rotation = this.getRotation();\n\n return assign({}, options, newOptions);\n }\n\n /**\n * Animate the view. The view's center, zoom (or resolution), and rotation\n * can be animated for smooth transitions between view states. For example,\n * to animate the view to a new zoom level:\n *\n * view.animate({zoom: view.getZoom() + 1});\n *\n * By default, the animation lasts one second and uses in-and-out easing. You\n * can customize this behavior by including `duration` (in milliseconds) and\n * `easing` options (see {@link module:ol/easing}).\n *\n * To chain together multiple animations, call the method with multiple\n * animation objects. For example, to first zoom and then pan:\n *\n * view.animate({zoom: 10}, {center: [0, 0]});\n *\n * If you provide a function as the last argument to the animate method, it\n * will get called at the end of an animation series. The callback will be\n * called with `true` if the animation series completed on its own or `false`\n * if it was cancelled.\n *\n * Animations are cancelled by user interactions (e.g. dragging the map) or by\n * calling `view.setCenter()`, `view.setResolution()`, or `view.setRotation()`\n * (or another method that calls one of these).\n *\n * @param {...(AnimationOptions|function(boolean))} var_args Animation\n * options. Multiple animations can be run in series by passing multiple\n * options objects. To run multiple animations in parallel, call the method\n * multiple times. An optional callback can be provided as a final\n * argument. The callback will be called with a boolean indicating whether\n * the animation completed without being cancelled.\n * @api\n */\n animate(var_args) {\n let animationCount = arguments.length;\n let callback;\n if (animationCount > 1 && typeof arguments[animationCount - 1] === 'function') {\n callback = arguments[animationCount - 1];\n --animationCount;\n }\n if (!this.isDef()) {\n // if view properties are not yet set, shortcut to the final state\n const state = arguments[animationCount - 1];\n if (state.center) {\n this.setCenter(state.center);\n }\n if (state.zoom !== undefined) {\n this.setZoom(state.zoom);\n }\n if (state.rotation !== undefined) {\n this.setRotation(state.rotation);\n }\n if (callback) {\n animationCallback(callback, true);\n }\n return;\n }\n let start = Date.now();\n let center = this.getCenter().slice();\n let resolution = this.getResolution();\n let rotation = this.getRotation();\n const series = [];\n for (let i = 0; i < animationCount; ++i) {\n const options = /** @type {AnimationOptions} */ (arguments[i]);\n\n const animation = /** @type {Animation} */ ({\n start: start,\n complete: false,\n anchor: options.anchor,\n duration: options.duration !== undefined ? options.duration : 1000,\n easing: options.easing || inAndOut\n });\n\n if (options.center) {\n animation.sourceCenter = center;\n animation.targetCenter = options.center;\n center = animation.targetCenter;\n }\n\n if (options.zoom !== undefined) {\n animation.sourceResolution = resolution;\n animation.targetResolution = this.constrainResolution(\n this.maxResolution_, options.zoom - this.minZoom_, 0);\n resolution = animation.targetResolution;\n } else if (options.resolution) {\n animation.sourceResolution = resolution;\n animation.targetResolution = options.resolution;\n resolution = animation.targetResolution;\n }\n\n if (options.rotation !== undefined) {\n animation.sourceRotation = rotation;\n const delta = modulo(options.rotation - rotation + Math.PI, 2 * Math.PI) - Math.PI;\n animation.targetRotation = rotation + delta;\n rotation = animation.targetRotation;\n }\n\n animation.callback = callback;\n\n // check if animation is a no-op\n if (isNoopAnimation(animation)) {\n animation.complete = true;\n // we still push it onto the series for callback handling\n } else {\n start += animation.duration;\n }\n series.push(animation);\n }\n this.animations_.push(series);\n this.setHint(ViewHint.ANIMATING, 1);\n this.updateAnimations_();\n }\n\n /**\n * Determine if the view is being animated.\n * @return {boolean} The view is being animated.\n * @api\n */\n getAnimating() {\n return this.hints_[ViewHint.ANIMATING] > 0;\n }\n\n /**\n * Determine if the user is interacting with the view, such as panning or zooming.\n * @return {boolean} The view is being interacted with.\n * @api\n */\n getInteracting() {\n return this.hints_[ViewHint.INTERACTING] > 0;\n }\n\n /**\n * Cancel any ongoing animations.\n * @api\n */\n cancelAnimations() {\n this.setHint(ViewHint.ANIMATING, -this.hints_[ViewHint.ANIMATING]);\n for (let i = 0, ii = this.animations_.length; i < ii; ++i) {\n const series = this.animations_[i];\n if (series[0].callback) {\n animationCallback(series[0].callback, false);\n }\n }\n this.animations_.length = 0;\n }\n\n /**\n * Update all animations.\n */\n updateAnimations_() {\n if (this.updateAnimationKey_ !== undefined) {\n cancelAnimationFrame(this.updateAnimationKey_);\n this.updateAnimationKey_ = undefined;\n }\n if (!this.getAnimating()) {\n return;\n }\n const now = Date.now();\n let more = false;\n for (let i = this.animations_.length - 1; i >= 0; --i) {\n const series = this.animations_[i];\n let seriesComplete = true;\n for (let j = 0, jj = series.length; j < jj; ++j) {\n const animation = series[j];\n if (animation.complete) {\n continue;\n }\n const elapsed = now - animation.start;\n let fraction = animation.duration > 0 ? elapsed / animation.duration : 1;\n if (fraction >= 1) {\n animation.complete = true;\n fraction = 1;\n } else {\n seriesComplete = false;\n }\n const progress = animation.easing(fraction);\n if (animation.sourceCenter) {\n const x0 = animation.sourceCenter[0];\n const y0 = animation.sourceCenter[1];\n const x1 = animation.targetCenter[0];\n const y1 = animation.targetCenter[1];\n const x = x0 + progress * (x1 - x0);\n const y = y0 + progress * (y1 - y0);\n this.set(ViewProperty.CENTER, [x, y]);\n }\n if (animation.sourceResolution && animation.targetResolution) {\n const resolution = progress === 1 ?\n animation.targetResolution :\n animation.sourceResolution + progress * (animation.targetResolution - animation.sourceResolution);\n if (animation.anchor) {\n this.set(ViewProperty.CENTER,\n this.calculateCenterZoom(resolution, animation.anchor));\n }\n this.set(ViewProperty.RESOLUTION, resolution);\n }\n if (animation.sourceRotation !== undefined && animation.targetRotation !== undefined) {\n const rotation = progress === 1 ?\n modulo(animation.targetRotation + Math.PI, 2 * Math.PI) - Math.PI :\n animation.sourceRotation + progress * (animation.targetRotation - animation.sourceRotation);\n if (animation.anchor) {\n this.set(ViewProperty.CENTER,\n this.calculateCenterRotate(rotation, animation.anchor));\n }\n this.set(ViewProperty.ROTATION, rotation);\n }\n more = true;\n if (!animation.complete) {\n break;\n }\n }\n if (seriesComplete) {\n this.animations_[i] = null;\n this.setHint(ViewHint.ANIMATING, -1);\n const callback = series[0].callback;\n if (callback) {\n animationCallback(callback, true);\n }\n }\n }\n // prune completed series\n this.animations_ = this.animations_.filter(Boolean);\n if (more && this.updateAnimationKey_ === undefined) {\n this.updateAnimationKey_ = requestAnimationFrame(this.updateAnimations_);\n }\n }\n\n /**\n * @param {number} rotation Target rotation.\n * @param {import(\"./coordinate.js\").Coordinate} anchor Rotation anchor.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center for rotation and anchor.\n */\n calculateCenterRotate(rotation, anchor) {\n let center;\n const currentCenter = this.getCenter();\n if (currentCenter !== undefined) {\n center = [currentCenter[0] - anchor[0], currentCenter[1] - anchor[1]];\n rotateCoordinate(center, rotation - this.getRotation());\n addCoordinate(center, anchor);\n }\n return center;\n }\n\n /**\n * @param {number} resolution Target resolution.\n * @param {import(\"./coordinate.js\").Coordinate} anchor Zoom anchor.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center for resolution and anchor.\n */\n calculateCenterZoom(resolution, anchor) {\n let center;\n const currentCenter = this.getCenter();\n const currentResolution = this.getResolution();\n if (currentCenter !== undefined && currentResolution !== undefined) {\n const x = anchor[0] - resolution * (anchor[0] - currentCenter[0]) / currentResolution;\n const y = anchor[1] - resolution * (anchor[1] - currentCenter[1]) / currentResolution;\n center = [x, y];\n }\n return center;\n }\n\n /**\n * @private\n * @return {import(\"./size.js\").Size} Viewport size or `[100, 100]` when no viewport is found.\n */\n getSizeFromViewport_() {\n const size = [100, 100];\n const selector = '.ol-viewport[data-view=\"' + getUid(this) + '\"]';\n const element = document.querySelector(selector);\n if (element) {\n const metrics = getComputedStyle(element);\n size[0] = parseInt(metrics.width, 10);\n size[1] = parseInt(metrics.height, 10);\n }\n return size;\n }\n\n /**\n * Get the constrained center of this view.\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center Center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Constrained center.\n * @api\n */\n constrainCenter(center) {\n return this.constraints_.center(center);\n }\n\n /**\n * Get the constrained resolution of this view.\n * @param {number|undefined} resolution Resolution.\n * @param {number=} opt_delta Delta. Default is `0`.\n * @param {number=} opt_direction Direction. Default is `0`.\n * @return {number|undefined} Constrained resolution.\n * @api\n */\n constrainResolution(resolution, opt_delta, opt_direction) {\n const delta = opt_delta || 0;\n const direction = opt_direction || 0;\n return this.constraints_.resolution(resolution, delta, direction);\n }\n\n /**\n * Get the constrained rotation of this view.\n * @param {number|undefined} rotation Rotation.\n * @param {number=} opt_delta Delta. Default is `0`.\n * @return {number|undefined} Constrained rotation.\n * @api\n */\n constrainRotation(rotation, opt_delta) {\n const delta = opt_delta || 0;\n return this.constraints_.rotation(rotation, delta);\n }\n\n /**\n * Get the view center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} The center of the view.\n * @observable\n * @api\n */\n getCenter() {\n return (\n /** @type {import(\"./coordinate.js\").Coordinate|undefined} */ (this.get(ViewProperty.CENTER))\n );\n }\n\n /**\n * @return {Constraints} Constraints.\n */\n getConstraints() {\n return this.constraints_;\n }\n\n /**\n * @param {Array=} opt_hints Destination array.\n * @return {Array} Hint.\n */\n getHints(opt_hints) {\n if (opt_hints !== undefined) {\n opt_hints[0] = this.hints_[0];\n opt_hints[1] = this.hints_[1];\n return opt_hints;\n } else {\n return this.hints_.slice();\n }\n }\n\n /**\n * Calculate the extent for the current view state and the passed size.\n * The size is the pixel dimensions of the box into which the calculated extent\n * should fit. In most cases you want to get the extent of the entire map,\n * that is `map.getSize()`.\n * @param {import(\"./size.js\").Size=} opt_size Box pixel size. If not provided, the size of the\n * first map that uses this view will be used.\n * @return {import(\"./extent.js\").Extent} Extent.\n * @api\n */\n calculateExtent(opt_size) {\n const size = opt_size || this.getSizeFromViewport_();\n const center = /** @type {!import(\"./coordinate.js\").Coordinate} */ (this.getCenter());\n assert(center, 1); // The view center is not defined\n const resolution = /** @type {!number} */ (this.getResolution());\n assert(resolution !== undefined, 2); // The view resolution is not defined\n const rotation = /** @type {!number} */ (this.getRotation());\n assert(rotation !== undefined, 3); // The view rotation is not defined\n\n return getForViewAndSize(center, resolution, rotation, size);\n }\n\n /**\n * Get the maximum resolution of the view.\n * @return {number} The maximum resolution of the view.\n * @api\n */\n getMaxResolution() {\n return this.maxResolution_;\n }\n\n /**\n * Get the minimum resolution of the view.\n * @return {number} The minimum resolution of the view.\n * @api\n */\n getMinResolution() {\n return this.minResolution_;\n }\n\n /**\n * Get the maximum zoom level for the view.\n * @return {number} The maximum zoom level.\n * @api\n */\n getMaxZoom() {\n return /** @type {number} */ (this.getZoomForResolution(this.minResolution_));\n }\n\n /**\n * Set a new maximum zoom level for the view.\n * @param {number} zoom The maximum zoom level.\n * @api\n */\n setMaxZoom(zoom) {\n this.applyOptions_(this.getUpdatedOptions_({maxZoom: zoom}));\n }\n\n /**\n * Get the minimum zoom level for the view.\n * @return {number} The minimum zoom level.\n * @api\n */\n getMinZoom() {\n return /** @type {number} */ (this.getZoomForResolution(this.maxResolution_));\n }\n\n /**\n * Set a new minimum zoom level for the view.\n * @param {number} zoom The minimum zoom level.\n * @api\n */\n setMinZoom(zoom) {\n this.applyOptions_(this.getUpdatedOptions_({minZoom: zoom}));\n }\n\n /**\n * Get the view projection.\n * @return {import(\"./proj/Projection.js\").default} The projection of the view.\n * @api\n */\n getProjection() {\n return this.projection_;\n }\n\n /**\n * Get the view resolution.\n * @return {number|undefined} The resolution of the view.\n * @observable\n * @api\n */\n getResolution() {\n return /** @type {number|undefined} */ (this.get(ViewProperty.RESOLUTION));\n }\n\n /**\n * Get the resolutions for the view. This returns the array of resolutions\n * passed to the constructor of the View, or undefined if none were given.\n * @return {Array|undefined} The resolutions of the view.\n * @api\n */\n getResolutions() {\n return this.resolutions_;\n }\n\n /**\n * Get the resolution for a provided extent (in map units) and size (in pixels).\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {import(\"./size.js\").Size=} opt_size Box pixel size.\n * @return {number} The resolution at which the provided extent will render at\n * the given size.\n * @api\n */\n getResolutionForExtent(extent, opt_size) {\n const size = opt_size || this.getSizeFromViewport_();\n const xResolution = getWidth(extent) / size[0];\n const yResolution = getHeight(extent) / size[1];\n return Math.max(xResolution, yResolution);\n }\n\n /**\n * Return a function that returns a value between 0 and 1 for a\n * resolution. Exponential scaling is assumed.\n * @param {number=} opt_power Power.\n * @return {function(number): number} Resolution for value function.\n */\n getResolutionForValueFunction(opt_power) {\n const power = opt_power || 2;\n const maxResolution = this.maxResolution_;\n const minResolution = this.minResolution_;\n const max = Math.log(maxResolution / minResolution) / Math.log(power);\n return (\n /**\n * @param {number} value Value.\n * @return {number} Resolution.\n */\n function(value) {\n const resolution = maxResolution / Math.pow(power, value * max);\n return resolution;\n });\n }\n\n /**\n * Get the view rotation.\n * @return {number} The rotation of the view in radians.\n * @observable\n * @api\n */\n getRotation() {\n return /** @type {number} */ (this.get(ViewProperty.ROTATION));\n }\n\n /**\n * Return a function that returns a resolution for a value between\n * 0 and 1. Exponential scaling is assumed.\n * @param {number=} opt_power Power.\n * @return {function(number): number} Value for resolution function.\n */\n getValueForResolutionFunction(opt_power) {\n const power = opt_power || 2;\n const maxResolution = this.maxResolution_;\n const minResolution = this.minResolution_;\n const max = Math.log(maxResolution / minResolution) / Math.log(power);\n return (\n /**\n * @param {number} resolution Resolution.\n * @return {number} Value.\n */\n function(resolution) {\n const value = (Math.log(maxResolution / resolution) / Math.log(power)) / max;\n return value;\n });\n }\n\n /**\n * @param {number} pixelRatio Pixel ratio for center rounding.\n * @return {State} View state.\n */\n getState(pixelRatio) {\n const center = /** @type {import(\"./coordinate.js\").Coordinate} */ (this.getCenter());\n const projection = this.getProjection();\n const resolution = /** @type {number} */ (this.getResolution());\n const pixelResolution = resolution / pixelRatio;\n const rotation = this.getRotation();\n return (\n /** @type {State} */ ({\n center: [\n Math.round(center[0] / pixelResolution) * pixelResolution,\n Math.round(center[1] / pixelResolution) * pixelResolution\n ],\n projection: projection !== undefined ? projection : null,\n resolution: resolution,\n rotation: rotation,\n zoom: this.getZoom()\n })\n );\n }\n\n /**\n * Get the current zoom level. If you configured your view with a resolutions\n * array (this is rare), this method may return non-integer zoom levels (so\n * the zoom level is not safe to use as an index into a resolutions array).\n * @return {number|undefined} Zoom.\n * @api\n */\n getZoom() {\n let zoom;\n const resolution = this.getResolution();\n if (resolution !== undefined) {\n zoom = this.getZoomForResolution(resolution);\n }\n return zoom;\n }\n\n /**\n * Get the zoom level for a resolution.\n * @param {number} resolution The resolution.\n * @return {number|undefined} The zoom level for the provided resolution.\n * @api\n */\n getZoomForResolution(resolution) {\n let offset = this.minZoom_ || 0;\n let max, zoomFactor;\n if (this.resolutions_) {\n const nearest = linearFindNearest(this.resolutions_, resolution, 1);\n offset = nearest;\n max = this.resolutions_[nearest];\n if (nearest == this.resolutions_.length - 1) {\n zoomFactor = 2;\n } else {\n zoomFactor = max / this.resolutions_[nearest + 1];\n }\n } else {\n max = this.maxResolution_;\n zoomFactor = this.zoomFactor_;\n }\n return offset + Math.log(max / resolution) / Math.log(zoomFactor);\n }\n\n /**\n * Get the resolution for a zoom level.\n * @param {number} zoom Zoom level.\n * @return {number} The view resolution for the provided zoom level.\n * @api\n */\n getResolutionForZoom(zoom) {\n return /** @type {number} */ (this.constrainResolution(\n this.maxResolution_, zoom - this.minZoom_, 0));\n }\n\n /**\n * Fit the given geometry or extent based on the given map size and border.\n * The size is pixel dimensions of the box to fit the extent into.\n * In most cases you will want to use the map size, that is `map.getSize()`.\n * Takes care of the map angle.\n * @param {import(\"./geom/SimpleGeometry.js\").default|import(\"./extent.js\").Extent} geometryOrExtent The geometry or\n * extent to fit the view to.\n * @param {FitOptions=} opt_options Options.\n * @api\n */\n fit(geometryOrExtent, opt_options) {\n const options = opt_options || {};\n let size = options.size;\n if (!size) {\n size = this.getSizeFromViewport_();\n }\n /** @type {import(\"./geom/SimpleGeometry.js\").default} */\n let geometry;\n assert(Array.isArray(geometryOrExtent) || typeof /** @type {?} */ (geometryOrExtent).getSimplifiedGeometry === 'function',\n 24); // Invalid extent or geometry provided as `geometry`\n if (Array.isArray(geometryOrExtent)) {\n assert(!isEmpty(geometryOrExtent),\n 25); // Cannot fit empty extent provided as `geometry`\n geometry = polygonFromExtent(geometryOrExtent);\n } else if (geometryOrExtent.getType() === GeometryType.CIRCLE) {\n geometryOrExtent = geometryOrExtent.getExtent();\n geometry = polygonFromExtent(geometryOrExtent);\n geometry.rotate(this.getRotation(), getCenter(geometryOrExtent));\n } else {\n geometry = geometryOrExtent;\n }\n\n const padding = options.padding !== undefined ? options.padding : [0, 0, 0, 0];\n const constrainResolution = options.constrainResolution !== undefined ?\n options.constrainResolution : true;\n const nearest = options.nearest !== undefined ? options.nearest : false;\n let minResolution;\n if (options.minResolution !== undefined) {\n minResolution = options.minResolution;\n } else if (options.maxZoom !== undefined) {\n minResolution = this.constrainResolution(\n this.maxResolution_, options.maxZoom - this.minZoom_, 0);\n } else {\n minResolution = 0;\n }\n const coords = geometry.getFlatCoordinates();\n\n // calculate rotated extent\n const rotation = this.getRotation();\n const cosAngle = Math.cos(-rotation);\n let sinAngle = Math.sin(-rotation);\n let minRotX = +Infinity;\n let minRotY = +Infinity;\n let maxRotX = -Infinity;\n let maxRotY = -Infinity;\n const stride = geometry.getStride();\n for (let i = 0, ii = coords.length; i < ii; i += stride) {\n const rotX = coords[i] * cosAngle - coords[i + 1] * sinAngle;\n const rotY = coords[i] * sinAngle + coords[i + 1] * cosAngle;\n minRotX = Math.min(minRotX, rotX);\n minRotY = Math.min(minRotY, rotY);\n maxRotX = Math.max(maxRotX, rotX);\n maxRotY = Math.max(maxRotY, rotY);\n }\n\n // calculate resolution\n let resolution = this.getResolutionForExtent(\n [minRotX, minRotY, maxRotX, maxRotY],\n [size[0] - padding[1] - padding[3], size[1] - padding[0] - padding[2]]);\n resolution = isNaN(resolution) ? minResolution :\n Math.max(resolution, minResolution);\n if (constrainResolution) {\n let constrainedResolution = this.constrainResolution(resolution, 0, 0);\n if (!nearest && constrainedResolution < resolution) {\n constrainedResolution = this.constrainResolution(\n constrainedResolution, -1, 0);\n }\n resolution = constrainedResolution;\n }\n\n // calculate center\n sinAngle = -sinAngle; // go back to original rotation\n let centerRotX = (minRotX + maxRotX) / 2;\n let centerRotY = (minRotY + maxRotY) / 2;\n centerRotX += (padding[1] - padding[3]) / 2 * resolution;\n centerRotY += (padding[0] - padding[2]) / 2 * resolution;\n const centerX = centerRotX * cosAngle - centerRotY * sinAngle;\n const centerY = centerRotY * cosAngle + centerRotX * sinAngle;\n const center = [centerX, centerY];\n const callback = options.callback ? options.callback : VOID;\n\n if (options.duration !== undefined) {\n this.animate({\n resolution: resolution,\n center: center,\n duration: options.duration,\n easing: options.easing\n }, callback);\n } else {\n this.setResolution(resolution);\n this.setCenter(center);\n animationCallback(callback, true);\n }\n }\n\n /**\n * Center on coordinate and view position.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"./size.js\").Size} size Box pixel size.\n * @param {import(\"./pixel.js\").Pixel} position Position on the view to center on.\n * @api\n */\n centerOn(coordinate, size, position) {\n // calculate rotated position\n const rotation = this.getRotation();\n const cosAngle = Math.cos(-rotation);\n let sinAngle = Math.sin(-rotation);\n let rotX = coordinate[0] * cosAngle - coordinate[1] * sinAngle;\n let rotY = coordinate[1] * cosAngle + coordinate[0] * sinAngle;\n const resolution = this.getResolution();\n rotX += (size[0] / 2 - position[0]) * resolution;\n rotY += (position[1] - size[1] / 2) * resolution;\n\n // go back to original angle\n sinAngle = -sinAngle; // go back to original rotation\n const centerX = rotX * cosAngle - rotY * sinAngle;\n const centerY = rotY * cosAngle + rotX * sinAngle;\n\n this.setCenter([centerX, centerY]);\n }\n\n /**\n * @return {boolean} Is defined.\n */\n isDef() {\n return !!this.getCenter() && this.getResolution() !== undefined;\n }\n\n /**\n * Rotate the view around a given coordinate.\n * @param {number} rotation New rotation value for the view.\n * @param {import(\"./coordinate.js\").Coordinate=} opt_anchor The rotation center.\n * @api\n */\n rotate(rotation, opt_anchor) {\n if (opt_anchor !== undefined) {\n const center = this.calculateCenterRotate(rotation, opt_anchor);\n this.setCenter(center);\n }\n this.setRotation(rotation);\n }\n\n /**\n * Set the center of the current view.\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center The center of the view.\n * @observable\n * @api\n */\n setCenter(center) {\n this.set(ViewProperty.CENTER, center);\n if (this.getAnimating()) {\n this.cancelAnimations();\n }\n }\n\n /**\n * @param {ViewHint} hint Hint.\n * @param {number} delta Delta.\n * @return {number} New value.\n */\n setHint(hint, delta) {\n this.hints_[hint] += delta;\n this.changed();\n return this.hints_[hint];\n }\n\n /**\n * Set the resolution for this view.\n * @param {number|undefined} resolution The resolution of the view.\n * @observable\n * @api\n */\n setResolution(resolution) {\n this.set(ViewProperty.RESOLUTION, resolution);\n if (this.getAnimating()) {\n this.cancelAnimations();\n }\n }\n\n /**\n * Set the rotation for this view.\n * @param {number} rotation The rotation of the view in radians.\n * @observable\n * @api\n */\n setRotation(rotation) {\n this.set(ViewProperty.ROTATION, rotation);\n if (this.getAnimating()) {\n this.cancelAnimations();\n }\n }\n\n /**\n * Zoom to a specific zoom level.\n * @param {number} zoom Zoom level.\n * @api\n */\n setZoom(zoom) {\n this.setResolution(this.getResolutionForZoom(zoom));\n }\n}\n\n\n/**\n * @param {Function} callback Callback.\n * @param {*} returnValue Return value.\n */\nfunction animationCallback(callback, returnValue) {\n setTimeout(function() {\n callback(returnValue);\n }, 0);\n}\n\n\n/**\n * @param {ViewOptions} options View options.\n * @return {import(\"./centerconstraint.js\").Type} The constraint.\n */\nexport function createCenterConstraint(options) {\n if (options.extent !== undefined) {\n return createExtent(options.extent);\n } else {\n return centerNone;\n }\n}\n\n\n/**\n * @param {ViewOptions} options View options.\n * @return {{constraint: import(\"./resolutionconstraint.js\").Type, maxResolution: number,\n * minResolution: number, minZoom: number, zoomFactor: number}} The constraint.\n */\nexport function createResolutionConstraint(options) {\n let resolutionConstraint;\n let maxResolution;\n let minResolution;\n\n // TODO: move these to be ol constants\n // see https://github.com/openlayers/openlayers/issues/2076\n const defaultMaxZoom = 28;\n const defaultZoomFactor = 2;\n\n let minZoom = options.minZoom !== undefined ?\n options.minZoom : DEFAULT_MIN_ZOOM;\n\n let maxZoom = options.maxZoom !== undefined ?\n options.maxZoom : defaultMaxZoom;\n\n const zoomFactor = options.zoomFactor !== undefined ?\n options.zoomFactor : defaultZoomFactor;\n\n if (options.resolutions !== undefined) {\n const resolutions = options.resolutions;\n maxResolution = resolutions[minZoom];\n minResolution = resolutions[maxZoom] !== undefined ?\n resolutions[maxZoom] : resolutions[resolutions.length - 1];\n resolutionConstraint = createSnapToResolutions(\n resolutions);\n } else {\n // calculate the default min and max resolution\n const projection = createProjection(options.projection, 'EPSG:3857');\n const extent = projection.getExtent();\n const size = !extent ?\n // use an extent that can fit the whole world if need be\n 360 * METERS_PER_UNIT[Units.DEGREES] /\n projection.getMetersPerUnit() :\n Math.max(getWidth(extent), getHeight(extent));\n\n const defaultMaxResolution = size / DEFAULT_TILE_SIZE / Math.pow(\n defaultZoomFactor, DEFAULT_MIN_ZOOM);\n\n const defaultMinResolution = defaultMaxResolution / Math.pow(\n defaultZoomFactor, defaultMaxZoom - DEFAULT_MIN_ZOOM);\n\n // user provided maxResolution takes precedence\n maxResolution = options.maxResolution;\n if (maxResolution !== undefined) {\n minZoom = 0;\n } else {\n maxResolution = defaultMaxResolution / Math.pow(zoomFactor, minZoom);\n }\n\n // user provided minResolution takes precedence\n minResolution = options.minResolution;\n if (minResolution === undefined) {\n if (options.maxZoom !== undefined) {\n if (options.maxResolution !== undefined) {\n minResolution = maxResolution / Math.pow(zoomFactor, maxZoom);\n } else {\n minResolution = defaultMaxResolution / Math.pow(zoomFactor, maxZoom);\n }\n } else {\n minResolution = defaultMinResolution;\n }\n }\n\n // given discrete zoom levels, minResolution may be different than provided\n maxZoom = minZoom + Math.floor(\n Math.log(maxResolution / minResolution) / Math.log(zoomFactor));\n minResolution = maxResolution / Math.pow(zoomFactor, maxZoom - minZoom);\n\n resolutionConstraint = createSnapToPower(\n zoomFactor, maxResolution, maxZoom - minZoom);\n }\n return {constraint: resolutionConstraint, maxResolution: maxResolution,\n minResolution: minResolution, minZoom: minZoom, zoomFactor: zoomFactor};\n}\n\n\n/**\n * @param {ViewOptions} options View options.\n * @return {import(\"./rotationconstraint.js\").Type} Rotation constraint.\n */\nexport function createRotationConstraint(options) {\n const enableRotation = options.enableRotation !== undefined ?\n options.enableRotation : true;\n if (enableRotation) {\n const constrainRotation = options.constrainRotation;\n if (constrainRotation === undefined || constrainRotation === true) {\n return createSnapToZero();\n } else if (constrainRotation === false) {\n return rotationNone;\n } else if (typeof constrainRotation === 'number') {\n return createSnapToN(constrainRotation);\n } else {\n return rotationNone;\n }\n } else {\n return disable;\n }\n}\n\n\n/**\n * Determine if an animation involves no view change.\n * @param {Animation} animation The animation.\n * @return {boolean} The animation involves no view change.\n */\nexport function isNoopAnimation(animation) {\n if (animation.sourceCenter && animation.targetCenter) {\n if (!coordinatesEqual(animation.sourceCenter, animation.targetCenter)) {\n return false;\n }\n }\n if (animation.sourceResolution !== animation.targetResolution) {\n return false;\n }\n if (animation.sourceRotation !== animation.targetRotation) {\n return false;\n }\n return true;\n}\n\nexport default View;\n","/**\n * @module ol/dom\n */\n\n\n/**\n * Create an html canvas element and returns its 2d context.\n * @param {number=} opt_width Canvas width.\n * @param {number=} opt_height Canvas height.\n * @return {CanvasRenderingContext2D} The context.\n */\nexport function createCanvasContext2D(opt_width, opt_height) {\n const canvas = /** @type {HTMLCanvasElement} */ (document.createElement('canvas'));\n if (opt_width) {\n canvas.width = opt_width;\n }\n if (opt_height) {\n canvas.height = opt_height;\n }\n return /** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d'));\n}\n\n\n/**\n * Get the current computed width for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerWidth(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The width.\n */\nexport function outerWidth(element) {\n let width = element.offsetWidth;\n const style = getComputedStyle(element);\n width += parseInt(style.marginLeft, 10) + parseInt(style.marginRight, 10);\n\n return width;\n}\n\n\n/**\n * Get the current computed height for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerHeight(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The height.\n */\nexport function outerHeight(element) {\n let height = element.offsetHeight;\n const style = getComputedStyle(element);\n height += parseInt(style.marginTop, 10) + parseInt(style.marginBottom, 10);\n\n return height;\n}\n\n/**\n * @param {Node} newNode Node to replace old node\n * @param {Node} oldNode The node to be replaced\n */\nexport function replaceNode(newNode, oldNode) {\n const parent = oldNode.parentNode;\n if (parent) {\n parent.replaceChild(newNode, oldNode);\n }\n}\n\n/**\n * @param {Node} node The node to remove.\n * @returns {Node} The node that was removed or null.\n */\nexport function removeNode(node) {\n return node && node.parentNode ? node.parentNode.removeChild(node) : null;\n}\n\n/**\n * @param {Node} node The node to remove the children from.\n */\nexport function removeChildren(node) {\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n}\n","/**\n * @module ol/layer/Property\n */\n\n/**\n * @enum {string}\n */\nexport default {\n OPACITY: 'opacity',\n VISIBLE: 'visible',\n EXTENT: 'extent',\n Z_INDEX: 'zIndex',\n MAX_RESOLUTION: 'maxResolution',\n MIN_RESOLUTION: 'minResolution',\n SOURCE: 'source'\n};\n","/**\n * @module ol/layer/Base\n */\nimport {abstract} from '../util.js';\nimport BaseObject from '../Object.js';\nimport LayerProperty from './Property.js';\nimport {clamp} from '../math.js';\nimport {assign} from '../obj.js';\n\n\n/**\n * @typedef {Object} Options\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n */\n\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Note that with {@link module:ol/layer/Base} and all its subclasses, any property set in\n * the options is set as a {@link module:ol/Object} property on the layer object, so\n * is observable, and has get/set accessors.\n *\n * @api\n */\nclass BaseLayer extends BaseObject {\n /**\n * @param {Options} options Layer options.\n */\n constructor(options) {\n\n super();\n\n /**\n * @type {Object}\n */\n const properties = assign({}, options);\n properties[LayerProperty.OPACITY] =\n options.opacity !== undefined ? options.opacity : 1;\n properties[LayerProperty.VISIBLE] =\n options.visible !== undefined ? options.visible : true;\n properties[LayerProperty.Z_INDEX] = options.zIndex;\n properties[LayerProperty.MAX_RESOLUTION] =\n options.maxResolution !== undefined ? options.maxResolution : Infinity;\n properties[LayerProperty.MIN_RESOLUTION] =\n options.minResolution !== undefined ? options.minResolution : 0;\n\n this.setProperties(properties);\n\n /**\n * @type {import(\"./Layer.js\").State}\n * @private\n */\n this.state_ = null;\n\n /**\n * The layer type.\n * @type {import(\"../LayerType.js\").default}\n * @protected;\n */\n this.type;\n\n }\n\n /**\n * Get the layer type (used when creating a layer renderer).\n * @return {import(\"../LayerType.js\").default} The layer type.\n */\n getType() {\n return this.type;\n }\n\n /**\n * @return {import(\"./Layer.js\").State} Layer state.\n */\n getLayerState() {\n /** @type {import(\"./Layer.js\").State} */\n const state = this.state_ || /** @type {?} */ ({\n layer: this,\n managed: true\n });\n state.opacity = clamp(this.getOpacity(), 0, 1);\n state.sourceState = this.getSourceState();\n state.visible = this.getVisible();\n state.extent = this.getExtent();\n state.zIndex = this.getZIndex() || 0;\n state.maxResolution = this.getMaxResolution();\n state.minResolution = Math.max(this.getMinResolution(), 0);\n this.state_ = state;\n\n return state;\n }\n\n /**\n * @abstract\n * @param {Array=} opt_array Array of layers (to be\n * modified in place).\n * @return {Array} Array of layers.\n */\n getLayersArray(opt_array) {\n return abstract();\n }\n\n /**\n * @abstract\n * @param {Array=} opt_states Optional list of layer\n * states (to be modified in place).\n * @return {Array} List of layer states.\n */\n getLayerStatesArray(opt_states) {\n return abstract();\n }\n\n /**\n * Return the {@link module:ol/extent~Extent extent} of the layer or `undefined` if it\n * will be visible regardless of extent.\n * @return {import(\"../extent.js\").Extent|undefined} The layer extent.\n * @observable\n * @api\n */\n getExtent() {\n return (\n /** @type {import(\"../extent.js\").Extent|undefined} */ (this.get(LayerProperty.EXTENT))\n );\n }\n\n /**\n * Return the maximum resolution of the layer.\n * @return {number} The maximum resolution of the layer.\n * @observable\n * @api\n */\n getMaxResolution() {\n return /** @type {number} */ (this.get(LayerProperty.MAX_RESOLUTION));\n }\n\n /**\n * Return the minimum resolution of the layer.\n * @return {number} The minimum resolution of the layer.\n * @observable\n * @api\n */\n getMinResolution() {\n return /** @type {number} */ (this.get(LayerProperty.MIN_RESOLUTION));\n }\n\n /**\n * Return the opacity of the layer (between 0 and 1).\n * @return {number} The opacity of the layer.\n * @observable\n * @api\n */\n getOpacity() {\n return /** @type {number} */ (this.get(LayerProperty.OPACITY));\n }\n\n /**\n * @abstract\n * @return {import(\"../source/State.js\").default} Source state.\n */\n getSourceState() {\n return abstract();\n }\n\n /**\n * Return the visibility of the layer (`true` or `false`).\n * @return {boolean} The visibility of the layer.\n * @observable\n * @api\n */\n getVisible() {\n return /** @type {boolean} */ (this.get(LayerProperty.VISIBLE));\n }\n\n /**\n * Return the Z-index of the layer, which is used to order layers before\n * rendering. The default Z-index is 0.\n * @return {number} The Z-index of the layer.\n * @observable\n * @api\n */\n getZIndex() {\n return /** @type {number} */ (this.get(LayerProperty.Z_INDEX));\n }\n\n /**\n * Set the extent at which the layer is visible. If `undefined`, the layer\n * will be visible at all extents.\n * @param {import(\"../extent.js\").Extent|undefined} extent The extent of the layer.\n * @observable\n * @api\n */\n setExtent(extent) {\n this.set(LayerProperty.EXTENT, extent);\n }\n\n /**\n * Set the maximum resolution at which the layer is visible.\n * @param {number} maxResolution The maximum resolution of the layer.\n * @observable\n * @api\n */\n setMaxResolution(maxResolution) {\n this.set(LayerProperty.MAX_RESOLUTION, maxResolution);\n }\n\n /**\n * Set the minimum resolution at which the layer is visible.\n * @param {number} minResolution The minimum resolution of the layer.\n * @observable\n * @api\n */\n setMinResolution(minResolution) {\n this.set(LayerProperty.MIN_RESOLUTION, minResolution);\n }\n\n /**\n * Set the opacity of the layer, allowed values range from 0 to 1.\n * @param {number} opacity The opacity of the layer.\n * @observable\n * @api\n */\n setOpacity(opacity) {\n this.set(LayerProperty.OPACITY, opacity);\n }\n\n /**\n * Set the visibility of the layer (`true` or `false`).\n * @param {boolean} visible The visibility of the layer.\n * @observable\n * @api\n */\n setVisible(visible) {\n this.set(LayerProperty.VISIBLE, visible);\n }\n\n /**\n * Set Z-index of the layer, which is used to order layers before rendering.\n * The default Z-index is 0.\n * @param {number} zindex The z-index of the layer.\n * @observable\n * @api\n */\n setZIndex(zindex) {\n this.set(LayerProperty.Z_INDEX, zindex);\n }\n}\n\n\nexport default BaseLayer;\n","/**\n * @module ol/source/State\n */\n\n/**\n * @enum {string}\n * State of the source, one of 'undefined', 'loading', 'ready' or 'error'.\n */\nexport default {\n UNDEFINED: 'undefined',\n LOADING: 'loading',\n READY: 'ready',\n ERROR: 'error'\n};\n","/**\n * @module ol/layer/Group\n */\nimport {getUid} from '../util.js';\nimport Collection from '../Collection.js';\nimport CollectionEventType from '../CollectionEventType.js';\nimport {getChangeEventType} from '../Object.js';\nimport ObjectEventType from '../ObjectEventType.js';\nimport {assert} from '../asserts.js';\nimport {listen, unlistenByKey} from '../events.js';\nimport EventType from '../events/EventType.js';\nimport {getIntersection} from '../extent.js';\nimport BaseLayer from './Base.js';\nimport {assign, clear} from '../obj.js';\nimport SourceState from '../source/State.js';\n\n\n/**\n * @typedef {Object} Options\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {Array|import(\"../Collection.js\").default} [layers] Child layers.\n */\n\n\n/**\n * @enum {string}\n * @private\n */\nconst Property = {\n LAYERS: 'layers'\n};\n\n\n/**\n * @classdesc\n * A {@link module:ol/Collection~Collection} of layers that are handled together.\n *\n * A generic `change` event is triggered when the group/Collection changes.\n *\n * @api\n */\nclass LayerGroup extends BaseLayer {\n /**\n * @param {Options=} opt_options Layer options.\n */\n constructor(opt_options) {\n\n const options = opt_options || {};\n const baseOptions = /** @type {Options} */ (assign({}, options));\n delete baseOptions.layers;\n\n let layers = options.layers;\n\n super(baseOptions);\n\n /**\n * @private\n * @type {Array}\n */\n this.layersListenerKeys_ = [];\n\n /**\n * @private\n * @type {Object>}\n */\n this.listenerKeys_ = {};\n\n listen(this,\n getChangeEventType(Property.LAYERS),\n this.handleLayersChanged_, this);\n\n if (layers) {\n if (Array.isArray(layers)) {\n layers = new Collection(layers.slice(), {unique: true});\n } else {\n assert(typeof /** @type {?} */ (layers).getArray === 'function',\n 43); // Expected `layers` to be an array or a `Collection`\n }\n } else {\n layers = new Collection(undefined, {unique: true});\n }\n\n this.setLayers(layers);\n\n }\n\n /**\n * @private\n */\n handleLayerChange_() {\n this.changed();\n }\n\n /**\n * @private\n */\n handleLayersChanged_() {\n this.layersListenerKeys_.forEach(unlistenByKey);\n this.layersListenerKeys_.length = 0;\n\n const layers = this.getLayers();\n this.layersListenerKeys_.push(\n listen(layers, CollectionEventType.ADD, this.handleLayersAdd_, this),\n listen(layers, CollectionEventType.REMOVE, this.handleLayersRemove_, this)\n );\n\n for (const id in this.listenerKeys_) {\n this.listenerKeys_[id].forEach(unlistenByKey);\n }\n clear(this.listenerKeys_);\n\n const layersArray = layers.getArray();\n for (let i = 0, ii = layersArray.length; i < ii; i++) {\n const layer = layersArray[i];\n this.listenerKeys_[getUid(layer)] = [\n listen(layer, ObjectEventType.PROPERTYCHANGE, this.handleLayerChange_, this),\n listen(layer, EventType.CHANGE, this.handleLayerChange_, this)\n ];\n }\n\n this.changed();\n }\n\n /**\n * @param {import(\"../Collection.js\").CollectionEvent} collectionEvent CollectionEvent.\n * @private\n */\n handleLayersAdd_(collectionEvent) {\n const layer = /** @type {import(\"./Base.js\").default} */ (collectionEvent.element);\n this.listenerKeys_[getUid(layer)] = [\n listen(layer, ObjectEventType.PROPERTYCHANGE, this.handleLayerChange_, this),\n listen(layer, EventType.CHANGE, this.handleLayerChange_, this)\n ];\n this.changed();\n }\n\n /**\n * @param {import(\"../Collection.js\").CollectionEvent} collectionEvent CollectionEvent.\n * @private\n */\n handleLayersRemove_(collectionEvent) {\n const layer = /** @type {import(\"./Base.js\").default} */ (collectionEvent.element);\n const key = getUid(layer);\n this.listenerKeys_[key].forEach(unlistenByKey);\n delete this.listenerKeys_[key];\n this.changed();\n }\n\n /**\n * Returns the {@link module:ol/Collection collection} of {@link module:ol/layer/Layer~Layer layers}\n * in this group.\n * @return {!import(\"../Collection.js\").default} Collection of\n * {@link module:ol/layer/Base layers} that are part of this group.\n * @observable\n * @api\n */\n getLayers() {\n return (\n /** @type {!import(\"../Collection.js\").default} */ (this.get(Property.LAYERS))\n );\n }\n\n /**\n * Set the {@link module:ol/Collection collection} of {@link module:ol/layer/Layer~Layer layers}\n * in this group.\n * @param {!import(\"../Collection.js\").default} layers Collection of\n * {@link module:ol/layer/Base layers} that are part of this group.\n * @observable\n * @api\n */\n setLayers(layers) {\n this.set(Property.LAYERS, layers);\n }\n\n /**\n * @inheritDoc\n */\n getLayersArray(opt_array) {\n const array = opt_array !== undefined ? opt_array : [];\n this.getLayers().forEach(function(layer) {\n layer.getLayersArray(array);\n });\n return array;\n }\n\n /**\n * @inheritDoc\n */\n getLayerStatesArray(opt_states) {\n const states = opt_states !== undefined ? opt_states : [];\n\n const pos = states.length;\n\n this.getLayers().forEach(function(layer) {\n layer.getLayerStatesArray(states);\n });\n\n const ownLayerState = this.getLayerState();\n for (let i = pos, ii = states.length; i < ii; i++) {\n const layerState = states[i];\n layerState.opacity *= ownLayerState.opacity;\n layerState.visible = layerState.visible && ownLayerState.visible;\n layerState.maxResolution = Math.min(\n layerState.maxResolution, ownLayerState.maxResolution);\n layerState.minResolution = Math.max(\n layerState.minResolution, ownLayerState.minResolution);\n if (ownLayerState.extent !== undefined) {\n if (layerState.extent !== undefined) {\n layerState.extent = getIntersection(layerState.extent, ownLayerState.extent);\n } else {\n layerState.extent = ownLayerState.extent;\n }\n }\n }\n\n return states;\n }\n\n /**\n * @inheritDoc\n */\n getSourceState() {\n return SourceState.READY;\n }\n}\n\n\nexport default LayerGroup;\n","/**\n * @module ol/size\n */\n\n\n/**\n * An array of numbers representing a size: `[width, height]`.\n * @typedef {Array} Size\n * @api\n */\n\n\n/**\n * Returns a buffered size.\n * @param {Size} size Size.\n * @param {number} num The amount by which to buffer.\n * @param {Size=} opt_size Optional reusable size array.\n * @return {Size} The buffered size.\n */\nexport function buffer(size, num, opt_size) {\n if (opt_size === undefined) {\n opt_size = [0, 0];\n }\n opt_size[0] = size[0] + 2 * num;\n opt_size[1] = size[1] + 2 * num;\n return opt_size;\n}\n\n\n/**\n * Determines if a size has a positive area.\n * @param {Size} size The size to test.\n * @return {boolean} The size has a positive area.\n */\nexport function hasArea(size) {\n return size[0] > 0 && size[1] > 0;\n}\n\n\n/**\n * Returns a size scaled by a ratio. The result will be an array of integers.\n * @param {Size} size Size.\n * @param {number} ratio Ratio.\n * @param {Size=} opt_size Optional reusable size array.\n * @return {Size} The scaled size.\n */\nexport function scale(size, ratio, opt_size) {\n if (opt_size === undefined) {\n opt_size = [0, 0];\n }\n opt_size[0] = (size[0] * ratio + 0.5) | 0;\n opt_size[1] = (size[1] * ratio + 0.5) | 0;\n return opt_size;\n}\n\n\n/**\n * Returns an `Size` array for the passed in number (meaning: square) or\n * `Size` array.\n * (meaning: non-square),\n * @param {number|Size} size Width and height.\n * @param {Size=} opt_size Optional reusable size array.\n * @return {Size} Size.\n * @api\n */\nexport function toSize(size, opt_size) {\n if (Array.isArray(size)) {\n return size;\n } else {\n if (opt_size === undefined) {\n opt_size = [size, size];\n } else {\n opt_size[0] = opt_size[1] = /** @type {number} */ (size);\n }\n return opt_size;\n }\n}\n","/**\n * @module ol/PluggableMap\n */\nimport {getUid} from './util.js';\nimport Collection from './Collection.js';\nimport CollectionEventType from './CollectionEventType.js';\nimport MapBrowserEvent from './MapBrowserEvent.js';\nimport MapBrowserEventHandler from './MapBrowserEventHandler.js';\nimport MapBrowserEventType from './MapBrowserEventType.js';\nimport MapEvent from './MapEvent.js';\nimport MapEventType from './MapEventType.js';\nimport MapProperty from './MapProperty.js';\nimport RenderEventType from './render/EventType.js';\nimport BaseObject, {getChangeEventType} from './Object.js';\nimport ObjectEventType from './ObjectEventType.js';\nimport TileQueue from './TileQueue.js';\nimport View from './View.js';\nimport ViewHint from './ViewHint.js';\nimport {assert} from './asserts.js';\nimport {removeNode} from './dom.js';\nimport {listen, unlistenByKey, unlisten} from './events.js';\nimport {stopPropagation} from './events/Event.js';\nimport EventType from './events/EventType.js';\nimport {createEmpty, clone, createOrUpdateEmpty, equals, getForViewAndSize, isEmpty} from './extent.js';\nimport {TRUE} from './functions.js';\nimport {DEVICE_PIXEL_RATIO, TOUCH} from './has.js';\nimport LayerGroup from './layer/Group.js';\nimport {hasArea} from './size.js';\nimport {DROP} from './structs/PriorityQueue.js';\nimport {create as createTransform, apply as applyTransform} from './transform.js';\n\n\n/**\n * State of the current frame. Only `pixelRatio`, `time` and `viewState` should\n * be used in applications.\n * @typedef {Object} FrameState\n * @property {number} pixelRatio The pixel ratio of the frame.\n * @property {number} time The time when rendering of the frame was requested.\n * @property {import(\"./View.js\").State} viewState The state of the current view.\n * @property {boolean} animate\n * @property {import(\"./transform.js\").Transform} coordinateToPixelTransform\n * @property {null|import(\"./extent.js\").Extent} extent\n * @property {import(\"./coordinate.js\").Coordinate} focus\n * @property {number} index\n * @property {Object} layerStates\n * @property {Array} layerStatesArray\n * @property {import(\"./transform.js\").Transform} pixelToCoordinateTransform\n * @property {Array} postRenderFunctions\n * @property {import(\"./size.js\").Size} size\n * @property {!Object} skippedFeatureUids\n * @property {TileQueue} tileQueue\n * @property {Object>} usedTiles\n * @property {Array} viewHints\n * @property {!Object>} wantedTiles\n */\n\n\n/**\n * @typedef {function(PluggableMap, ?FrameState): boolean} PostRenderFunction\n */\n\n\n/**\n * @typedef {Object} AtPixelOptions\n * @property {undefined|function(import(\"./layer/Layer.js\").default): boolean} layerFilter Layer filter\n * function. The filter function will receive one argument, the\n * {@link module:ol/layer/Layer layer-candidate} and it should return a boolean value.\n * Only layers which are visible and for which this function returns `true`\n * will be tested for features. By default, all visible layers will be tested.\n * @property {number} [hitTolerance=0] Hit-detection tolerance in pixels. Pixels\n * inside the radius around the given position will be checked for features. This only\n * works for the canvas renderer and not for WebGL.\n */\n\n\n/**\n * @typedef {Object} MapOptionsInternal\n * @property {Collection} [controls]\n * @property {Collection} [interactions]\n * @property {HTMLElement|Document} keyboardEventTarget\n * @property {Collection} overlays\n * @property {Object} values\n */\n\n\n/**\n * Object literal with config options for the map.\n * @typedef {Object} MapOptions\n * @property {Collection|Array} [controls]\n * Controls initially added to the map. If not specified,\n * {@link module:ol/control~defaults} is used.\n * @property {number} [pixelRatio=window.devicePixelRatio] The ratio between\n * physical pixels and device-independent pixels (dips) on the device.\n * @property {Collection|Array} [interactions]\n * Interactions that are initially added to the map. If not specified,\n * {@link module:ol/interaction~defaults} is used.\n * @property {HTMLElement|Document|string} [keyboardEventTarget] The element to\n * listen to keyboard events on. This determines when the `KeyboardPan` and\n * `KeyboardZoom` interactions trigger. For example, if this option is set to\n * `document` the keyboard interactions will always trigger. If this option is\n * not specified, the element the library listens to keyboard events on is the\n * map target (i.e. the user-provided div for the map). If this is not\n * `document`, the target element needs to be focused for key events to be\n * emitted, requiring that the target element has a `tabindex` attribute.\n * @property {Array|Collection|LayerGroup} [layers]\n * Layers. If this is not defined, a map with no layers will be rendered. Note\n * that layers are rendered in the order supplied, so if you want, for example,\n * a vector layer to appear on top of a tile layer, it must come after the tile\n * layer.\n * @property {number} [maxTilesLoading=16] Maximum number tiles to load\n * simultaneously.\n * @property {boolean} [loadTilesWhileAnimating=false] When set to `true`, tiles\n * will be loaded during animations. This may improve the user experience, but\n * can also make animations stutter on devices with slow memory.\n * @property {boolean} [loadTilesWhileInteracting=false] When set to `true`,\n * tiles will be loaded while interacting with the map. This may improve the\n * user experience, but can also make map panning and zooming choppy on devices\n * with slow memory.\n * @property {number} [moveTolerance=1] The minimum distance in pixels the\n * cursor must move to be detected as a map move event instead of a click.\n * Increasing this value can make it easier to click on the map.\n * @property {Collection|Array} [overlays]\n * Overlays initially added to the map. By default, no overlays are added.\n * @property {HTMLElement|string} [target] The container for the map, either the\n * element itself or the `id` of the element. If not specified at construction\n * time, {@link module:ol/Map~Map#setTarget} must be called for the map to be\n * rendered.\n * @property {View} [view] The map's view. No layer sources will be\n * fetched unless this is specified at construction time or through\n * {@link module:ol/Map~Map#setView}.\n */\n\n\n/**\n * @fires import(\"./MapBrowserEvent.js\").MapBrowserEvent\n * @fires import(\"./MapEvent.js\").MapEvent\n * @fires module:ol/render/Event~RenderEvent#postcompose\n * @fires module:ol/render/Event~RenderEvent#precompose\n * @fires module:ol/render/Event~RenderEvent#rendercomplete\n * @api\n */\nclass PluggableMap extends BaseObject {\n\n /**\n * @param {MapOptions} options Map options.\n */\n constructor(options) {\n\n super();\n\n const optionsInternal = createOptionsInternal(options);\n\n /**\n * @type {number}\n * @private\n */\n this.maxTilesLoading_ = options.maxTilesLoading !== undefined ? options.maxTilesLoading : 16;\n\n /**\n * @type {boolean}\n * @private\n */\n this.loadTilesWhileAnimating_ =\n options.loadTilesWhileAnimating !== undefined ?\n options.loadTilesWhileAnimating : false;\n\n /**\n * @type {boolean}\n * @private\n */\n this.loadTilesWhileInteracting_ =\n options.loadTilesWhileInteracting !== undefined ?\n options.loadTilesWhileInteracting : false;\n\n /**\n * @private\n * @type {number}\n */\n this.pixelRatio_ = options.pixelRatio !== undefined ?\n options.pixelRatio : DEVICE_PIXEL_RATIO;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.animationDelayKey_;\n\n /**\n * @private\n */\n this.animationDelay_ = function() {\n this.animationDelayKey_ = undefined;\n this.renderFrame_.call(this, Date.now());\n }.bind(this);\n\n /**\n * @private\n * @type {import(\"./transform.js\").Transform}\n */\n this.coordinateToPixelTransform_ = createTransform();\n\n /**\n * @private\n * @type {import(\"./transform.js\").Transform}\n */\n this.pixelToCoordinateTransform_ = createTransform();\n\n /**\n * @private\n * @type {number}\n */\n this.frameIndex_ = 0;\n\n /**\n * @private\n * @type {?FrameState}\n */\n this.frameState_ = null;\n\n /**\n * The extent at the previous 'moveend' event.\n * @private\n * @type {import(\"./extent.js\").Extent}\n */\n this.previousExtent_ = null;\n\n /**\n * @private\n * @type {?import(\"./events.js\").EventsKey}\n */\n this.viewPropertyListenerKey_ = null;\n\n /**\n * @private\n * @type {?import(\"./events.js\").EventsKey}\n */\n this.viewChangeListenerKey_ = null;\n\n /**\n * @private\n * @type {Array}\n */\n this.layerGroupPropertyListenerKeys_ = null;\n\n /**\n * @private\n * @type {!HTMLElement}\n */\n this.viewport_ = document.createElement('div');\n this.viewport_.className = 'ol-viewport' + (TOUCH ? ' ol-touch' : '');\n this.viewport_.style.position = 'relative';\n this.viewport_.style.overflow = 'hidden';\n this.viewport_.style.width = '100%';\n this.viewport_.style.height = '100%';\n // prevent page zoom on IE >= 10 browsers\n this.viewport_.style.msTouchAction = 'none';\n this.viewport_.style.touchAction = 'none';\n\n /**\n * @private\n * @type {!HTMLElement}\n */\n this.overlayContainer_ = document.createElement('div');\n this.overlayContainer_.className = 'ol-overlaycontainer';\n this.viewport_.appendChild(this.overlayContainer_);\n\n /**\n * @private\n * @type {!HTMLElement}\n */\n this.overlayContainerStopEvent_ = document.createElement('div');\n this.overlayContainerStopEvent_.className = 'ol-overlaycontainer-stopevent';\n const overlayEvents = [\n EventType.CLICK,\n EventType.DBLCLICK,\n EventType.MOUSEDOWN,\n EventType.TOUCHSTART,\n EventType.MSPOINTERDOWN,\n MapBrowserEventType.POINTERDOWN,\n EventType.MOUSEWHEEL,\n EventType.WHEEL\n ];\n for (let i = 0, ii = overlayEvents.length; i < ii; ++i) {\n listen(this.overlayContainerStopEvent_, overlayEvents[i], stopPropagation);\n }\n this.viewport_.appendChild(this.overlayContainerStopEvent_);\n\n /**\n * @private\n * @type {MapBrowserEventHandler}\n */\n this.mapBrowserEventHandler_ = new MapBrowserEventHandler(this, options.moveTolerance);\n for (const key in MapBrowserEventType) {\n listen(this.mapBrowserEventHandler_, MapBrowserEventType[key],\n this.handleMapBrowserEvent, this);\n }\n\n /**\n * @private\n * @type {HTMLElement|Document}\n */\n this.keyboardEventTarget_ = optionsInternal.keyboardEventTarget;\n\n /**\n * @private\n * @type {Array}\n */\n this.keyHandlerKeys_ = null;\n\n listen(this.viewport_, EventType.CONTEXTMENU, this.handleBrowserEvent, this);\n listen(this.viewport_, EventType.WHEEL, this.handleBrowserEvent, this);\n listen(this.viewport_, EventType.MOUSEWHEEL, this.handleBrowserEvent, this);\n\n /**\n * @type {Collection}\n * @protected\n */\n this.controls = optionsInternal.controls || new Collection();\n\n /**\n * @type {Collection}\n * @protected\n */\n this.interactions = optionsInternal.interactions || new Collection();\n\n /**\n * @type {Collection}\n * @private\n */\n this.overlays_ = optionsInternal.overlays;\n\n /**\n * A lookup of overlays by id.\n * @private\n * @type {Object}\n */\n this.overlayIdIndex_ = {};\n\n /**\n * @type {import(\"./renderer/Map.js\").default}\n * @private\n */\n this.renderer_ = this.createRenderer();\n\n /**\n * @type {function(Event)|undefined}\n * @private\n */\n this.handleResize_;\n\n /**\n * @private\n * @type {import(\"./coordinate.js\").Coordinate}\n */\n this.focus_ = null;\n\n /**\n * @private\n * @type {!Array}\n */\n this.postRenderFunctions_ = [];\n\n /**\n * @private\n * @type {TileQueue}\n */\n this.tileQueue_ = new TileQueue(\n this.getTilePriority.bind(this),\n this.handleTileChange_.bind(this));\n\n /**\n * Uids of features to skip at rendering time.\n * @type {Object}\n * @private\n */\n this.skippedFeatureUids_ = {};\n\n listen(\n this, getChangeEventType(MapProperty.LAYERGROUP),\n this.handleLayerGroupChanged_, this);\n listen(this, getChangeEventType(MapProperty.VIEW),\n this.handleViewChanged_, this);\n listen(this, getChangeEventType(MapProperty.SIZE),\n this.handleSizeChanged_, this);\n listen(this, getChangeEventType(MapProperty.TARGET),\n this.handleTargetChanged_, this);\n\n // setProperties will trigger the rendering of the map if the map\n // is \"defined\" already.\n this.setProperties(optionsInternal.values);\n\n this.controls.forEach(\n /**\n * @param {import(\"./control/Control.js\").default} control Control.\n * @this {PluggableMap}\n */\n (function(control) {\n control.setMap(this);\n }).bind(this));\n\n listen(this.controls, CollectionEventType.ADD,\n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function(event) {\n event.element.setMap(this);\n }, this);\n\n listen(this.controls, CollectionEventType.REMOVE,\n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function(event) {\n event.element.setMap(null);\n }, this);\n\n this.interactions.forEach(\n /**\n * @param {import(\"./interaction/Interaction.js\").default} interaction Interaction.\n * @this {PluggableMap}\n */\n (function(interaction) {\n interaction.setMap(this);\n }).bind(this));\n\n listen(this.interactions, CollectionEventType.ADD,\n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function(event) {\n event.element.setMap(this);\n }, this);\n\n listen(this.interactions, CollectionEventType.REMOVE,\n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function(event) {\n event.element.setMap(null);\n }, this);\n\n this.overlays_.forEach(this.addOverlayInternal_.bind(this));\n\n listen(this.overlays_, CollectionEventType.ADD,\n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function(event) {\n this.addOverlayInternal_(/** @type {import(\"./Overlay.js\").default} */ (event.element));\n }, this);\n\n listen(this.overlays_, CollectionEventType.REMOVE,\n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function(event) {\n const overlay = /** @type {import(\"./Overlay.js\").default} */ (event.element);\n const id = overlay.getId();\n if (id !== undefined) {\n delete this.overlayIdIndex_[id.toString()];\n }\n event.element.setMap(null);\n }, this);\n\n }\n\n /**\n * @abstract\n * @return {import(\"./renderer/Map.js\").default} The map renderer\n */\n createRenderer() {\n throw new Error('Use a map type that has a createRenderer method');\n }\n\n /**\n * Add the given control to the map.\n * @param {import(\"./control/Control.js\").default} control Control.\n * @api\n */\n addControl(control) {\n this.getControls().push(control);\n }\n\n /**\n * Add the given interaction to the map.\n * @param {import(\"./interaction/Interaction.js\").default} interaction Interaction to add.\n * @api\n */\n addInteraction(interaction) {\n this.getInteractions().push(interaction);\n }\n\n /**\n * Adds the given layer to the top of this map. If you want to add a layer\n * elsewhere in the stack, use `getLayers()` and the methods available on\n * {@link module:ol/Collection~Collection}.\n * @param {import(\"./layer/Base.js\").default} layer Layer.\n * @api\n */\n addLayer(layer) {\n const layers = this.getLayerGroup().getLayers();\n layers.push(layer);\n }\n\n /**\n * Add the given overlay to the map.\n * @param {import(\"./Overlay.js\").default} overlay Overlay.\n * @api\n */\n addOverlay(overlay) {\n this.getOverlays().push(overlay);\n }\n\n /**\n * This deals with map's overlay collection changes.\n * @param {import(\"./Overlay.js\").default} overlay Overlay.\n * @private\n */\n addOverlayInternal_(overlay) {\n const id = overlay.getId();\n if (id !== undefined) {\n this.overlayIdIndex_[id.toString()] = overlay;\n }\n overlay.setMap(this);\n }\n\n /**\n *\n * @inheritDoc\n */\n disposeInternal() {\n this.mapBrowserEventHandler_.dispose();\n unlisten(this.viewport_, EventType.CONTEXTMENU, this.handleBrowserEvent, this);\n unlisten(this.viewport_, EventType.WHEEL, this.handleBrowserEvent, this);\n unlisten(this.viewport_, EventType.MOUSEWHEEL, this.handleBrowserEvent, this);\n if (this.handleResize_ !== undefined) {\n removeEventListener(EventType.RESIZE, this.handleResize_, false);\n this.handleResize_ = undefined;\n }\n if (this.animationDelayKey_) {\n cancelAnimationFrame(this.animationDelayKey_);\n this.animationDelayKey_ = undefined;\n }\n this.setTarget(null);\n super.disposeInternal();\n }\n\n /**\n * Detect features that intersect a pixel on the viewport, and execute a\n * callback with each intersecting feature. Layers included in the detection can\n * be configured through the `layerFilter` option in `opt_options`.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {function(this: S, import(\"./Feature.js\").FeatureLike,\n * import(\"./layer/Layer.js\").default): T} callback Feature callback. The callback will be\n * called with two arguments. The first argument is one\n * {@link module:ol/Feature feature} or\n * {@link module:ol/render/Feature render feature} at the pixel, the second is\n * the {@link module:ol/layer/Layer layer} of the feature and will be null for\n * unmanaged layers. To stop detection, callback functions can return a\n * truthy value.\n * @param {AtPixelOptions=} opt_options Optional options.\n * @return {T|undefined} Callback result, i.e. the return value of last\n * callback execution, or the first truthy callback return value.\n * @template S,T\n * @api\n */\n forEachFeatureAtPixel(pixel, callback, opt_options) {\n if (!this.frameState_) {\n return;\n }\n const coordinate = this.getCoordinateFromPixel(pixel);\n opt_options = opt_options !== undefined ? opt_options :\n /** @type {AtPixelOptions} */ ({});\n const hitTolerance = opt_options.hitTolerance !== undefined ?\n opt_options.hitTolerance * this.frameState_.pixelRatio : 0;\n const layerFilter = opt_options.layerFilter !== undefined ?\n opt_options.layerFilter : TRUE;\n return this.renderer_.forEachFeatureAtCoordinate(\n coordinate, this.frameState_, hitTolerance, callback, null,\n layerFilter, null);\n }\n\n /**\n * Get all features that intersect a pixel on the viewport.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {AtPixelOptions=} opt_options Optional options.\n * @return {Array} The detected features or\n * `null` if none were found.\n * @api\n */\n getFeaturesAtPixel(pixel, opt_options) {\n let features = null;\n this.forEachFeatureAtPixel(pixel, function(feature) {\n if (!features) {\n features = [];\n }\n features.push(feature);\n }, opt_options);\n return features;\n }\n\n /**\n * Detect layers that have a color value at a pixel on the viewport, and\n * execute a callback with each matching layer. Layers included in the\n * detection can be configured through `opt_layerFilter`.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {function(this: S, import(\"./layer/Layer.js\").default, (Uint8ClampedArray|Uint8Array)): T} callback\n * Layer callback. This callback will receive two arguments: first is the\n * {@link module:ol/layer/Layer layer}, second argument is an array representing\n * [R, G, B, A] pixel values (0 - 255) and will be `null` for layer types\n * that do not currently support this argument. To stop detection, callback\n * functions can return a truthy value.\n * @param {AtPixelOptions=} opt_options Configuration options.\n * @return {T|undefined} Callback result, i.e. the return value of last\n * callback execution, or the first truthy callback return value.\n * @template S,T\n * @api\n */\n forEachLayerAtPixel(pixel, callback, opt_options) {\n if (!this.frameState_) {\n return;\n }\n const options = opt_options || /** @type {AtPixelOptions} */ ({});\n const hitTolerance = options.hitTolerance !== undefined ?\n opt_options.hitTolerance * this.frameState_.pixelRatio : 0;\n const layerFilter = options.layerFilter || TRUE;\n return this.renderer_.forEachLayerAtPixel(\n pixel, this.frameState_, hitTolerance, callback, null, layerFilter, null);\n }\n\n /**\n * Detect if features intersect a pixel on the viewport. Layers included in the\n * detection can be configured through `opt_layerFilter`.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {AtPixelOptions=} opt_options Optional options.\n * @return {boolean} Is there a feature at the given pixel?\n * @template U\n * @api\n */\n hasFeatureAtPixel(pixel, opt_options) {\n if (!this.frameState_) {\n return false;\n }\n const coordinate = this.getCoordinateFromPixel(pixel);\n opt_options = opt_options !== undefined ? opt_options :\n /** @type {AtPixelOptions} */ ({});\n const layerFilter = opt_options.layerFilter !== undefined ? opt_options.layerFilter : TRUE;\n const hitTolerance = opt_options.hitTolerance !== undefined ?\n opt_options.hitTolerance * this.frameState_.pixelRatio : 0;\n return this.renderer_.hasFeatureAtCoordinate(\n coordinate, this.frameState_, hitTolerance, layerFilter, null);\n }\n\n /**\n * Returns the coordinate in view projection for a browser event.\n * @param {Event} event Event.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n * @api\n */\n getEventCoordinate(event) {\n return this.getCoordinateFromPixel(this.getEventPixel(event));\n }\n\n /**\n * Returns the map pixel position for a browser event relative to the viewport.\n * @param {Event|TouchEvent} event Event.\n * @return {import(\"./pixel.js\").Pixel} Pixel.\n * @api\n */\n getEventPixel(event) {\n const viewportPosition = this.viewport_.getBoundingClientRect();\n const eventPosition = 'changedTouches' in event ?\n /** @type {TouchEvent} */ (event).changedTouches[0] :\n /** @type {MouseEvent} */ (event);\n\n return [\n eventPosition.clientX - viewportPosition.left,\n eventPosition.clientY - viewportPosition.top\n ];\n }\n\n /**\n * Get the target in which this map is rendered.\n * Note that this returns what is entered as an option or in setTarget:\n * if that was an element, it returns an element; if a string, it returns that.\n * @return {HTMLElement|string|undefined} The Element or id of the Element that the\n * map is rendered in.\n * @observable\n * @api\n */\n getTarget() {\n return /** @type {HTMLElement|string|undefined} */ (this.get(MapProperty.TARGET));\n }\n\n /**\n * Get the DOM element into which this map is rendered. In contrast to\n * `getTarget` this method always return an `Element`, or `null` if the\n * map has no target.\n * @return {HTMLElement} The element that the map is rendered in.\n * @api\n */\n getTargetElement() {\n const target = this.getTarget();\n if (target !== undefined) {\n return typeof target === 'string' ? document.getElementById(target) : target;\n } else {\n return null;\n }\n }\n\n /**\n * Get the coordinate for a given pixel. This returns a coordinate in the\n * map view projection.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel position in the map viewport.\n * @return {import(\"./coordinate.js\").Coordinate} The coordinate for the pixel position.\n * @api\n */\n getCoordinateFromPixel(pixel) {\n const frameState = this.frameState_;\n if (!frameState) {\n return null;\n } else {\n return applyTransform(frameState.pixelToCoordinateTransform, pixel.slice());\n }\n }\n\n /**\n * Get the map controls. Modifying this collection changes the controls\n * associated with the map.\n * @return {Collection} Controls.\n * @api\n */\n getControls() {\n return this.controls;\n }\n\n /**\n * Get the map overlays. Modifying this collection changes the overlays\n * associated with the map.\n * @return {Collection} Overlays.\n * @api\n */\n getOverlays() {\n return this.overlays_;\n }\n\n /**\n * Get an overlay by its identifier (the value returned by overlay.getId()).\n * Note that the index treats string and numeric identifiers as the same. So\n * `map.getOverlayById(2)` will return an overlay with id `'2'` or `2`.\n * @param {string|number} id Overlay identifier.\n * @return {import(\"./Overlay.js\").default} Overlay.\n * @api\n */\n getOverlayById(id) {\n const overlay = this.overlayIdIndex_[id.toString()];\n return overlay !== undefined ? overlay : null;\n }\n\n /**\n * Get the map interactions. Modifying this collection changes the interactions\n * associated with the map.\n *\n * Interactions are used for e.g. pan, zoom and rotate.\n * @return {Collection} Interactions.\n * @api\n */\n getInteractions() {\n return this.interactions;\n }\n\n /**\n * Get the layergroup associated with this map.\n * @return {LayerGroup} A layer group containing the layers in this map.\n * @observable\n * @api\n */\n getLayerGroup() {\n return (\n /** @type {LayerGroup} */ (this.get(MapProperty.LAYERGROUP))\n );\n }\n\n /**\n * Get the collection of layers associated with this map.\n * @return {!Collection} Layers.\n * @api\n */\n getLayers() {\n const layers = this.getLayerGroup().getLayers();\n return layers;\n }\n\n /**\n * Get the pixel for a coordinate. This takes a coordinate in the map view\n * projection and returns the corresponding pixel.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate A map coordinate.\n * @return {import(\"./pixel.js\").Pixel} A pixel position in the map viewport.\n * @api\n */\n getPixelFromCoordinate(coordinate) {\n const frameState = this.frameState_;\n if (!frameState) {\n return null;\n } else {\n return applyTransform(frameState.coordinateToPixelTransform, coordinate.slice(0, 2));\n }\n }\n\n /**\n * Get the map renderer.\n * @return {import(\"./renderer/Map.js\").default} Renderer\n */\n getRenderer() {\n return this.renderer_;\n }\n\n /**\n * Get the size of this map.\n * @return {import(\"./size.js\").Size|undefined} The size in pixels of the map in the DOM.\n * @observable\n * @api\n */\n getSize() {\n return (\n /** @type {import(\"./size.js\").Size|undefined} */ (this.get(MapProperty.SIZE))\n );\n }\n\n /**\n * Get the view associated with this map. A view manages properties such as\n * center and resolution.\n * @return {View} The view that controls this map.\n * @observable\n * @api\n */\n getView() {\n return (\n /** @type {View} */ (this.get(MapProperty.VIEW))\n );\n }\n\n /**\n * Get the element that serves as the map viewport.\n * @return {HTMLElement} Viewport.\n * @api\n */\n getViewport() {\n return this.viewport_;\n }\n\n /**\n * Get the element that serves as the container for overlays. Elements added to\n * this container will let mousedown and touchstart events through to the map,\n * so clicks and gestures on an overlay will trigger {@link module:ol/MapBrowserEvent~MapBrowserEvent}\n * events.\n * @return {!HTMLElement} The map's overlay container.\n */\n getOverlayContainer() {\n return this.overlayContainer_;\n }\n\n /**\n * Get the element that serves as a container for overlays that don't allow\n * event propagation. Elements added to this container won't let mousedown and\n * touchstart events through to the map, so clicks and gestures on an overlay\n * don't trigger any {@link module:ol/MapBrowserEvent~MapBrowserEvent}.\n * @return {!HTMLElement} The map's overlay container that stops events.\n */\n getOverlayContainerStopEvent() {\n return this.overlayContainerStopEvent_;\n }\n\n /**\n * @param {import(\"./Tile.js\").default} tile Tile.\n * @param {string} tileSourceKey Tile source key.\n * @param {import(\"./coordinate.js\").Coordinate} tileCenter Tile center.\n * @param {number} tileResolution Tile resolution.\n * @return {number} Tile priority.\n */\n getTilePriority(tile, tileSourceKey, tileCenter, tileResolution) {\n // Filter out tiles at higher zoom levels than the current zoom level, or that\n // are outside the visible extent.\n const frameState = this.frameState_;\n if (!frameState || !(tileSourceKey in frameState.wantedTiles)) {\n return DROP;\n }\n if (!frameState.wantedTiles[tileSourceKey][tile.getKey()]) {\n return DROP;\n }\n // Prioritize the highest zoom level tiles closest to the focus.\n // Tiles at higher zoom levels are prioritized using Math.log(tileResolution).\n // Within a zoom level, tiles are prioritized by the distance in pixels\n // between the center of the tile and the focus. The factor of 65536 means\n // that the prioritization should behave as desired for tiles up to\n // 65536 * Math.log(2) = 45426 pixels from the focus.\n const deltaX = tileCenter[0] - frameState.focus[0];\n const deltaY = tileCenter[1] - frameState.focus[1];\n return 65536 * Math.log(tileResolution) +\n Math.sqrt(deltaX * deltaX + deltaY * deltaY) / tileResolution;\n }\n\n /**\n * @param {Event} browserEvent Browser event.\n * @param {string=} opt_type Type.\n */\n handleBrowserEvent(browserEvent, opt_type) {\n const type = opt_type || browserEvent.type;\n const mapBrowserEvent = new MapBrowserEvent(type, this, browserEvent);\n this.handleMapBrowserEvent(mapBrowserEvent);\n }\n\n /**\n * @param {MapBrowserEvent} mapBrowserEvent The event to handle.\n */\n handleMapBrowserEvent(mapBrowserEvent) {\n if (!this.frameState_) {\n // With no view defined, we cannot translate pixels into geographical\n // coordinates so interactions cannot be used.\n return;\n }\n this.focus_ = mapBrowserEvent.coordinate;\n mapBrowserEvent.frameState = this.frameState_;\n const interactionsArray = this.getInteractions().getArray();\n if (this.dispatchEvent(mapBrowserEvent) !== false) {\n for (let i = interactionsArray.length - 1; i >= 0; i--) {\n const interaction = interactionsArray[i];\n if (!interaction.getActive()) {\n continue;\n }\n const cont = interaction.handleEvent(mapBrowserEvent);\n if (!cont) {\n break;\n }\n }\n }\n }\n\n /**\n * @protected\n */\n handlePostRender() {\n\n const frameState = this.frameState_;\n\n // Manage the tile queue\n // Image loads are expensive and a limited resource, so try to use them\n // efficiently:\n // * When the view is static we allow a large number of parallel tile loads\n // to complete the frame as quickly as possible.\n // * When animating or interacting, image loads can cause janks, so we reduce\n // the maximum number of loads per frame and limit the number of parallel\n // tile loads to remain reactive to view changes and to reduce the chance of\n // loading tiles that will quickly disappear from view.\n const tileQueue = this.tileQueue_;\n if (!tileQueue.isEmpty()) {\n let maxTotalLoading = this.maxTilesLoading_;\n let maxNewLoads = maxTotalLoading;\n if (frameState) {\n const hints = frameState.viewHints;\n if (hints[ViewHint.ANIMATING]) {\n maxTotalLoading = this.loadTilesWhileAnimating_ ? 8 : 0;\n maxNewLoads = 2;\n }\n if (hints[ViewHint.INTERACTING]) {\n maxTotalLoading = this.loadTilesWhileInteracting_ ? 8 : 0;\n maxNewLoads = 2;\n }\n }\n if (tileQueue.getTilesLoading() < maxTotalLoading) {\n tileQueue.reprioritize(); // FIXME only call if view has changed\n tileQueue.loadMoreTiles(maxTotalLoading, maxNewLoads);\n }\n }\n if (frameState && this.hasListener(RenderEventType.RENDERCOMPLETE) && !frameState.animate &&\n !this.tileQueue_.getTilesLoading() && !getLoading(this.getLayers().getArray())) {\n this.renderer_.dispatchRenderEvent(RenderEventType.RENDERCOMPLETE, frameState);\n }\n\n const postRenderFunctions = this.postRenderFunctions_;\n for (let i = 0, ii = postRenderFunctions.length; i < ii; ++i) {\n postRenderFunctions[i](this, frameState);\n }\n postRenderFunctions.length = 0;\n }\n\n /**\n * @private\n */\n handleSizeChanged_() {\n this.render();\n }\n\n /**\n * @private\n */\n handleTargetChanged_() {\n // target may be undefined, null, a string or an Element.\n // If it's a string we convert it to an Element before proceeding.\n // If it's not now an Element we remove the viewport from the DOM.\n // If it's an Element we append the viewport element to it.\n\n let targetElement;\n if (this.getTarget()) {\n targetElement = this.getTargetElement();\n }\n\n if (this.keyHandlerKeys_) {\n for (let i = 0, ii = this.keyHandlerKeys_.length; i < ii; ++i) {\n unlistenByKey(this.keyHandlerKeys_[i]);\n }\n this.keyHandlerKeys_ = null;\n }\n\n if (!targetElement) {\n this.renderer_.removeLayerRenderers();\n removeNode(this.viewport_);\n if (this.handleResize_ !== undefined) {\n removeEventListener(EventType.RESIZE, this.handleResize_, false);\n this.handleResize_ = undefined;\n }\n } else {\n targetElement.appendChild(this.viewport_);\n\n const keyboardEventTarget = !this.keyboardEventTarget_ ?\n targetElement : this.keyboardEventTarget_;\n this.keyHandlerKeys_ = [\n listen(keyboardEventTarget, EventType.KEYDOWN, this.handleBrowserEvent, this),\n listen(keyboardEventTarget, EventType.KEYPRESS, this.handleBrowserEvent, this)\n ];\n\n if (!this.handleResize_) {\n this.handleResize_ = this.updateSize.bind(this);\n window.addEventListener(EventType.RESIZE, this.handleResize_, false);\n }\n }\n\n this.updateSize();\n // updateSize calls setSize, so no need to call this.render\n // ourselves here.\n }\n\n /**\n * @private\n */\n handleTileChange_() {\n this.render();\n }\n\n /**\n * @private\n */\n handleViewPropertyChanged_() {\n this.render();\n }\n\n /**\n * @private\n */\n handleViewChanged_() {\n if (this.viewPropertyListenerKey_) {\n unlistenByKey(this.viewPropertyListenerKey_);\n this.viewPropertyListenerKey_ = null;\n }\n if (this.viewChangeListenerKey_) {\n unlistenByKey(this.viewChangeListenerKey_);\n this.viewChangeListenerKey_ = null;\n }\n const view = this.getView();\n if (view) {\n this.viewport_.setAttribute('data-view', getUid(view));\n this.viewPropertyListenerKey_ = listen(\n view, ObjectEventType.PROPERTYCHANGE,\n this.handleViewPropertyChanged_, this);\n this.viewChangeListenerKey_ = listen(\n view, EventType.CHANGE,\n this.handleViewPropertyChanged_, this);\n }\n this.render();\n }\n\n /**\n * @private\n */\n handleLayerGroupChanged_() {\n if (this.layerGroupPropertyListenerKeys_) {\n this.layerGroupPropertyListenerKeys_.forEach(unlistenByKey);\n this.layerGroupPropertyListenerKeys_ = null;\n }\n const layerGroup = this.getLayerGroup();\n if (layerGroup) {\n this.layerGroupPropertyListenerKeys_ = [\n listen(\n layerGroup, ObjectEventType.PROPERTYCHANGE,\n this.render, this),\n listen(\n layerGroup, EventType.CHANGE,\n this.render, this)\n ];\n }\n this.render();\n }\n\n /**\n * @return {boolean} Is rendered.\n */\n isRendered() {\n return !!this.frameState_;\n }\n\n /**\n * Requests an immediate render in a synchronous manner.\n * @api\n */\n renderSync() {\n if (this.animationDelayKey_) {\n cancelAnimationFrame(this.animationDelayKey_);\n }\n this.animationDelay_();\n }\n\n /**\n * Request a map rendering (at the next animation frame).\n * @api\n */\n render() {\n if (this.animationDelayKey_ === undefined) {\n this.animationDelayKey_ = requestAnimationFrame(this.animationDelay_);\n }\n }\n\n /**\n * Remove the given control from the map.\n * @param {import(\"./control/Control.js\").default} control Control.\n * @return {import(\"./control/Control.js\").default|undefined} The removed control (or undefined\n * if the control was not found).\n * @api\n */\n removeControl(control) {\n return this.getControls().remove(control);\n }\n\n /**\n * Remove the given interaction from the map.\n * @param {import(\"./interaction/Interaction.js\").default} interaction Interaction to remove.\n * @return {import(\"./interaction/Interaction.js\").default|undefined} The removed interaction (or\n * undefined if the interaction was not found).\n * @api\n */\n removeInteraction(interaction) {\n return this.getInteractions().remove(interaction);\n }\n\n /**\n * Removes the given layer from the map.\n * @param {import(\"./layer/Base.js\").default} layer Layer.\n * @return {import(\"./layer/Base.js\").default|undefined} The removed layer (or undefined if the\n * layer was not found).\n * @api\n */\n removeLayer(layer) {\n const layers = this.getLayerGroup().getLayers();\n return layers.remove(layer);\n }\n\n /**\n * Remove the given overlay from the map.\n * @param {import(\"./Overlay.js\").default} overlay Overlay.\n * @return {import(\"./Overlay.js\").default|undefined} The removed overlay (or undefined\n * if the overlay was not found).\n * @api\n */\n removeOverlay(overlay) {\n return this.getOverlays().remove(overlay);\n }\n\n /**\n * @param {number} time Time.\n * @private\n */\n renderFrame_(time) {\n let viewState;\n\n const size = this.getSize();\n const view = this.getView();\n const extent = createEmpty();\n const previousFrameState = this.frameState_;\n /** @type {?FrameState} */\n let frameState = null;\n if (size !== undefined && hasArea(size) && view && view.isDef()) {\n const viewHints = view.getHints(this.frameState_ ? this.frameState_.viewHints : undefined);\n const layerStatesArray = this.getLayerGroup().getLayerStatesArray();\n const layerStates = {};\n for (let i = 0, ii = layerStatesArray.length; i < ii; ++i) {\n layerStates[getUid(layerStatesArray[i].layer)] = layerStatesArray[i];\n }\n viewState = view.getState(this.pixelRatio_);\n frameState = /** @type {FrameState} */ ({\n animate: false,\n coordinateToPixelTransform: this.coordinateToPixelTransform_,\n extent: extent,\n focus: this.focus_ ? this.focus_ : viewState.center,\n index: this.frameIndex_++,\n layerStates: layerStates,\n layerStatesArray: layerStatesArray,\n pixelRatio: this.pixelRatio_,\n pixelToCoordinateTransform: this.pixelToCoordinateTransform_,\n postRenderFunctions: [],\n size: size,\n skippedFeatureUids: this.skippedFeatureUids_,\n tileQueue: this.tileQueue_,\n time: time,\n usedTiles: {},\n viewState: viewState,\n viewHints: viewHints,\n wantedTiles: {}\n });\n }\n\n if (frameState) {\n frameState.extent = getForViewAndSize(viewState.center,\n viewState.resolution, viewState.rotation, frameState.size, extent);\n }\n\n this.frameState_ = frameState;\n this.renderer_.renderFrame(frameState);\n\n if (frameState) {\n if (frameState.animate) {\n this.render();\n }\n Array.prototype.push.apply(this.postRenderFunctions_, frameState.postRenderFunctions);\n\n if (previousFrameState) {\n const moveStart = !this.previousExtent_ ||\n (!isEmpty(this.previousExtent_) &&\n !equals(frameState.extent, this.previousExtent_));\n if (moveStart) {\n this.dispatchEvent(\n new MapEvent(MapEventType.MOVESTART, this, previousFrameState));\n this.previousExtent_ = createOrUpdateEmpty(this.previousExtent_);\n }\n }\n\n const idle = this.previousExtent_ &&\n !frameState.viewHints[ViewHint.ANIMATING] &&\n !frameState.viewHints[ViewHint.INTERACTING] &&\n !equals(frameState.extent, this.previousExtent_);\n\n if (idle) {\n this.dispatchEvent(new MapEvent(MapEventType.MOVEEND, this, frameState));\n clone(frameState.extent, this.previousExtent_);\n }\n }\n\n this.dispatchEvent(new MapEvent(MapEventType.POSTRENDER, this, frameState));\n\n setTimeout(this.handlePostRender.bind(this), 0);\n\n }\n\n /**\n * Sets the layergroup of this map.\n * @param {LayerGroup} layerGroup A layer group containing the layers in this map.\n * @observable\n * @api\n */\n setLayerGroup(layerGroup) {\n this.set(MapProperty.LAYERGROUP, layerGroup);\n }\n\n /**\n * Set the size of this map.\n * @param {import(\"./size.js\").Size|undefined} size The size in pixels of the map in the DOM.\n * @observable\n * @api\n */\n setSize(size) {\n this.set(MapProperty.SIZE, size);\n }\n\n /**\n * Set the target element to render this map into.\n * @param {HTMLElement|string|undefined} target The Element or id of the Element\n * that the map is rendered in.\n * @observable\n * @api\n */\n setTarget(target) {\n this.set(MapProperty.TARGET, target);\n }\n\n /**\n * Set the view for this map.\n * @param {View} view The view that controls this map.\n * @observable\n * @api\n */\n setView(view) {\n this.set(MapProperty.VIEW, view);\n }\n\n /**\n * @param {import(\"./Feature.js\").default} feature Feature.\n */\n skipFeature(feature) {\n this.skippedFeatureUids_[getUid(feature)] = true;\n this.render();\n }\n\n /**\n * Force a recalculation of the map viewport size. This should be called when\n * third-party code changes the size of the map viewport.\n * @api\n */\n updateSize() {\n const targetElement = this.getTargetElement();\n\n if (!targetElement) {\n this.setSize(undefined);\n } else {\n const computedStyle = getComputedStyle(targetElement);\n this.setSize([\n targetElement.offsetWidth -\n parseFloat(computedStyle['borderLeftWidth']) -\n parseFloat(computedStyle['paddingLeft']) -\n parseFloat(computedStyle['paddingRight']) -\n parseFloat(computedStyle['borderRightWidth']),\n targetElement.offsetHeight -\n parseFloat(computedStyle['borderTopWidth']) -\n parseFloat(computedStyle['paddingTop']) -\n parseFloat(computedStyle['paddingBottom']) -\n parseFloat(computedStyle['borderBottomWidth'])\n ]);\n }\n }\n\n /**\n * @param {import(\"./Feature.js\").default} feature Feature.\n */\n unskipFeature(feature) {\n delete this.skippedFeatureUids_[getUid(feature)];\n this.render();\n }\n}\n\n\n/**\n * @param {MapOptions} options Map options.\n * @return {MapOptionsInternal} Internal map options.\n */\nfunction createOptionsInternal(options) {\n\n /**\n * @type {HTMLElement|Document}\n */\n let keyboardEventTarget = null;\n if (options.keyboardEventTarget !== undefined) {\n keyboardEventTarget = typeof options.keyboardEventTarget === 'string' ?\n document.getElementById(options.keyboardEventTarget) :\n options.keyboardEventTarget;\n }\n\n /**\n * @type {Object}\n */\n const values = {};\n\n const layerGroup = options.layers && typeof /** @type {?} */ (options.layers).getLayers === 'function' ?\n /** @type {LayerGroup} */ (options.layers) : new LayerGroup({layers: /** @type {Collection} */ (options.layers)});\n values[MapProperty.LAYERGROUP] = layerGroup;\n\n values[MapProperty.TARGET] = options.target;\n\n values[MapProperty.VIEW] = options.view !== undefined ?\n options.view : new View();\n\n let controls;\n if (options.controls !== undefined) {\n if (Array.isArray(options.controls)) {\n controls = new Collection(options.controls.slice());\n } else {\n assert(typeof /** @type {?} */ (options.controls).getArray === 'function',\n 47); // Expected `controls` to be an array or an `import(\"./Collection.js\").Collection`\n controls = /** @type {Collection} */ (options.controls);\n }\n }\n\n let interactions;\n if (options.interactions !== undefined) {\n if (Array.isArray(options.interactions)) {\n interactions = new Collection(options.interactions.slice());\n } else {\n assert(typeof /** @type {?} */ (options.interactions).getArray === 'function',\n 48); // Expected `interactions` to be an array or an `import(\"./Collection.js\").Collection`\n interactions = /** @type {Collection} */ (options.interactions);\n }\n }\n\n let overlays;\n if (options.overlays !== undefined) {\n if (Array.isArray(options.overlays)) {\n overlays = new Collection(options.overlays.slice());\n } else {\n assert(typeof /** @type {?} */ (options.overlays).getArray === 'function',\n 49); // Expected `overlays` to be an array or an `import(\"./Collection.js\").Collection`\n overlays = options.overlays;\n }\n } else {\n overlays = new Collection();\n }\n\n return {\n controls: controls,\n interactions: interactions,\n keyboardEventTarget: keyboardEventTarget,\n overlays: overlays,\n values: values\n };\n\n}\nexport default PluggableMap;\n\n/**\n * @param {Array} layers Layers.\n * @return {boolean} Layers have sources that are still loading.\n */\nfunction getLoading(layers) {\n for (let i = 0, ii = layers.length; i < ii; ++i) {\n const layer = layers[i];\n if (typeof /** @type {?} */ (layer).getLayers === 'function') {\n return getLoading(/** @type {LayerGroup} */ (layer).getLayers().getArray());\n } else {\n const source = /** @type {import(\"./layer/Layer.js\").default} */ (\n layer).getSource();\n if (source && source.loading) {\n return true;\n }\n }\n }\n return false;\n}\n","/**\n * @module ol/control/Control\n */\nimport {VOID} from '../functions.js';\nimport MapEventType from '../MapEventType.js';\nimport BaseObject from '../Object.js';\nimport {removeNode} from '../dom.js';\nimport {listen, unlistenByKey} from '../events.js';\n\n\n/**\n * @typedef {Object} Options\n * @property {HTMLElement} [element] The element is the control's\n * container element. This only needs to be specified if you're developing\n * a custom control.\n * @property {function(import(\"../MapEvent.js\").default)} [render] Function called when\n * the control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n * @property {HTMLElement|string} [target] Specify a target if you want\n * the control to be rendered outside of the map's viewport.\n */\n\n\n/**\n * @classdesc\n * A control is a visible widget with a DOM element in a fixed position on the\n * screen. They can involve user input (buttons), or be informational only;\n * the position is determined using CSS. By default these are placed in the\n * container with CSS class name `ol-overlaycontainer-stopevent`, but can use\n * any outside DOM element.\n *\n * This is the base class for controls. You can use it for simple custom\n * controls by creating the element with listeners, creating an instance:\n * ```js\n * var myControl = new Control({element: myElement});\n * ```\n * and then adding this to the map.\n *\n * The main advantage of having this as a control rather than a simple separate\n * DOM element is that preventing propagation is handled for you. Controls\n * will also be objects in a {@link module:ol/Collection~Collection}, so you can use their methods.\n *\n * You can also extend this base for your own control class. See\n * examples/custom-controls for an example of how to do this.\n *\n * @api\n */\nclass Control extends BaseObject {\n\n /**\n * @param {Options} options Control options.\n */\n constructor(options) {\n\n super();\n\n /**\n * @protected\n * @type {HTMLElement}\n */\n this.element = options.element ? options.element : null;\n\n /**\n * @private\n * @type {HTMLElement}\n */\n this.target_ = null;\n\n /**\n * @private\n * @type {import(\"../PluggableMap.js\").default}\n */\n this.map_ = null;\n\n /**\n * @protected\n * @type {!Array}\n */\n this.listenerKeys = [];\n\n /**\n * @type {function(import(\"../MapEvent.js\").default)}\n */\n this.render = options.render ? options.render : VOID;\n\n if (options.target) {\n this.setTarget(options.target);\n }\n\n }\n\n /**\n * @inheritDoc\n */\n disposeInternal() {\n removeNode(this.element);\n super.disposeInternal();\n }\n\n /**\n * Get the map associated with this control.\n * @return {import(\"../PluggableMap.js\").default} Map.\n * @api\n */\n getMap() {\n return this.map_;\n }\n\n /**\n * Remove the control from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default} map Map.\n * @api\n */\n setMap(map) {\n if (this.map_) {\n removeNode(this.element);\n }\n for (let i = 0, ii = this.listenerKeys.length; i < ii; ++i) {\n unlistenByKey(this.listenerKeys[i]);\n }\n this.listenerKeys.length = 0;\n this.map_ = map;\n if (this.map_) {\n const target = this.target_ ?\n this.target_ : map.getOverlayContainerStopEvent();\n target.appendChild(this.element);\n if (this.render !== VOID) {\n this.listenerKeys.push(listen(map,\n MapEventType.POSTRENDER, this.render, this));\n }\n map.render();\n }\n }\n\n /**\n * This function is used to set a target element for the control. It has no\n * effect if it is called after the control has been added to the map (i.e.\n * after `setMap` is called on the control). If no `target` is set in the\n * options passed to the control constructor and if `setTarget` is not called\n * then the control is added to the map's overlay container.\n * @param {HTMLElement|string} target Target.\n * @api\n */\n setTarget(target) {\n this.target_ = typeof target === 'string' ?\n document.getElementById(target) :\n target;\n }\n}\n\n\nexport default Control;\n","/**\n * @module ol/css\n */\n\n\n/**\n * The CSS class for hidden feature.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_HIDDEN = 'ol-hidden';\n\n\n/**\n * The CSS class that we'll give the DOM elements to have them selectable.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_SELECTABLE = 'ol-selectable';\n\n\n/**\n * The CSS class that we'll give the DOM elements to have them unselectable.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_UNSELECTABLE = 'ol-unselectable';\n\n\n/**\n * The CSS class for unsupported feature.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_UNSUPPORTED = 'ol-unsupported';\n\n\n/**\n * The CSS class for controls.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_CONTROL = 'ol-control';\n\n\n/**\n * The CSS class that we'll give the DOM elements that are collapsed, i.e.\n * to those elements which usually can be expanded.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_COLLAPSED = 'ol-collapsed';\n\n\n/**\n * Get the list of font families from a font spec. Note that this doesn't work\n * for font families that have commas in them.\n * @param {string} The CSS font property.\n * @return {Object} The font families (or null if the input spec is invalid).\n */\nexport const getFontFamilies = (function() {\n let style;\n const cache = {};\n return function(font) {\n if (!style) {\n style = document.createElement('div').style;\n }\n if (!(font in cache)) {\n style.font = font;\n const family = style.fontFamily;\n style.font = '';\n if (!family) {\n return null;\n }\n cache[font] = family.split(/,\\s?/);\n }\n return cache[font];\n };\n})();\n","/**\n * @module ol/layer/Layer\n */\nimport {listen, unlistenByKey} from '../events.js';\nimport EventType from '../events/EventType.js';\nimport {getUid} from '../util.js';\nimport {getChangeEventType} from '../Object.js';\nimport BaseLayer from './Base.js';\nimport LayerProperty from './Property.js';\nimport {assign} from '../obj.js';\nimport RenderEventType from '../render/EventType.js';\nimport SourceState from '../source/State.js';\n\n\n/**\n * @typedef {Object} Options\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {import(\"../source/Source.js\").default} [source] Source for this layer. If not provided to the constructor,\n * the source can be set by calling {@link module:ol/layer/Layer#setSource layer.setSource(source)} after\n * construction.\n * @property {import(\"../PluggableMap.js\").default} [map] Map.\n */\n\n\n/**\n * @typedef {Object} State\n * @property {import(\"./Base.js\").default} layer\n * @property {number} opacity\n * @property {SourceState} sourceState\n * @property {boolean} visible\n * @property {boolean} managed\n * @property {import(\"../extent.js\").Extent} [extent]\n * @property {number} zIndex\n * @property {number} maxResolution\n * @property {number} minResolution\n */\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * A visual representation of raster or vector map data.\n * Layers group together those properties that pertain to how the data is to be\n * displayed, irrespective of the source of that data.\n *\n * Layers are usually added to a map with {@link module:ol/Map#addLayer}. Components\n * like {@link module:ol/interaction/Select~Select} use unmanaged layers\n * internally. These unmanaged layers are associated with the map using\n * {@link module:ol/layer/Layer~Layer#setMap} instead.\n *\n * A generic `change` event is fired when the state of the source changes.\n *\n * @fires import(\"../render/Event.js\").RenderEvent\n */\nclass Layer extends BaseLayer {\n /**\n * @param {Options} options Layer options.\n */\n constructor(options) {\n\n const baseOptions = assign({}, options);\n delete baseOptions.source;\n\n super(baseOptions);\n\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n this.mapPrecomposeKey_ = null;\n\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n this.mapRenderKey_ = null;\n\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n this.sourceChangeKey_ = null;\n\n if (options.map) {\n this.setMap(options.map);\n }\n\n listen(this,\n getChangeEventType(LayerProperty.SOURCE),\n this.handleSourcePropertyChange_, this);\n\n const source = options.source ? options.source : null;\n this.setSource(source);\n }\n\n /**\n * @inheritDoc\n */\n getLayersArray(opt_array) {\n const array = opt_array ? opt_array : [];\n array.push(this);\n return array;\n }\n\n /**\n * @inheritDoc\n */\n getLayerStatesArray(opt_states) {\n const states = opt_states ? opt_states : [];\n states.push(this.getLayerState());\n return states;\n }\n\n /**\n * Get the layer source.\n * @return {import(\"../source/Source.js\").default} The layer source (or `null` if not yet set).\n * @observable\n * @api\n */\n getSource() {\n const source = this.get(LayerProperty.SOURCE);\n return (\n /** @type {import(\"../source/Source.js\").default} */ (source) || null\n );\n }\n\n /**\n * @inheritDoc\n */\n getSourceState() {\n const source = this.getSource();\n return !source ? SourceState.UNDEFINED : source.getState();\n }\n\n /**\n * @private\n */\n handleSourceChange_() {\n this.changed();\n }\n\n /**\n * @private\n */\n handleSourcePropertyChange_() {\n if (this.sourceChangeKey_) {\n unlistenByKey(this.sourceChangeKey_);\n this.sourceChangeKey_ = null;\n }\n const source = this.getSource();\n if (source) {\n this.sourceChangeKey_ = listen(source,\n EventType.CHANGE, this.handleSourceChange_, this);\n }\n this.changed();\n }\n\n /**\n * Sets the layer to be rendered on top of other layers on a map. The map will\n * not manage this layer in its layers collection, and the callback in\n * {@link module:ol/Map#forEachLayerAtPixel} will receive `null` as layer. This\n * is useful for temporary layers. To remove an unmanaged layer from the map,\n * use `#setMap(null)`.\n *\n * To add the layer to a map and have it managed by the map, use\n * {@link module:ol/Map#addLayer} instead.\n * @param {import(\"../PluggableMap.js\").default} map Map.\n * @api\n */\n setMap(map) {\n if (this.mapPrecomposeKey_) {\n unlistenByKey(this.mapPrecomposeKey_);\n this.mapPrecomposeKey_ = null;\n }\n if (!map) {\n this.changed();\n }\n if (this.mapRenderKey_) {\n unlistenByKey(this.mapRenderKey_);\n this.mapRenderKey_ = null;\n }\n if (map) {\n this.mapPrecomposeKey_ = listen(map, RenderEventType.PRECOMPOSE, function(evt) {\n const renderEvent = /** @type {import(\"../render/Event.js\").default} */ (evt);\n const layerState = this.getLayerState();\n layerState.managed = false;\n if (this.getZIndex() === undefined) {\n layerState.zIndex = Infinity;\n }\n renderEvent.frameState.layerStatesArray.push(layerState);\n renderEvent.frameState.layerStates[getUid(this)] = layerState;\n }, this);\n this.mapRenderKey_ = listen(this, EventType.CHANGE, map.render, map);\n this.changed();\n }\n }\n\n /**\n * Set the layer source.\n * @param {import(\"../source/Source.js\").default} source The layer source.\n * @observable\n * @api\n */\n setSource(source) {\n this.set(LayerProperty.SOURCE, source);\n }\n}\n\n\n/**\n * Return `true` if the layer is visible, and if the passed resolution is\n * between the layer's minResolution and maxResolution. The comparison is\n * inclusive for `minResolution` and exclusive for `maxResolution`.\n * @param {State} layerState Layer state.\n * @param {number} resolution Resolution.\n * @return {boolean} The layer is visible at the given resolution.\n */\nexport function visibleAtResolution(layerState, resolution) {\n return layerState.visible && resolution >= layerState.minResolution &&\n resolution < layerState.maxResolution;\n}\n\n\nexport default Layer;\n","/**\n * @module ol/control/Attribution\n */\nimport {equals} from '../array.js';\nimport Control from './Control.js';\nimport {CLASS_CONTROL, CLASS_UNSELECTABLE, CLASS_COLLAPSED} from '../css.js';\nimport {removeChildren, replaceNode} from '../dom.js';\nimport {listen} from '../events.js';\nimport EventType from '../events/EventType.js';\nimport {visibleAtResolution} from '../layer/Layer.js';\n\n\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-attribution'] CSS class name.\n * @property {HTMLElement|string} [target] Specify a target if you\n * want the control to be rendered outside of the map's\n * viewport.\n * @property {boolean} [collapsible] Specify if attributions can\n * be collapsed. If not specified, sources control this behavior with their\n * `attributionsCollapsible` setting.\n * @property {boolean} [collapsed=true] Specify if attributions should\n * be collapsed at startup.\n * @property {string} [tipLabel='Attributions'] Text label to use for the button tip.\n * @property {string} [label='i'] Text label to use for the\n * collapsed attributions button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string|HTMLElement} [collapseLabel='»'] Text label to use\n * for the expanded attributions button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {function(import(\"../MapEvent.js\").default)} [render] Function called when\n * the control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n */\n\n\n/**\n * @classdesc\n * Control to show all the attributions associated with the layer sources\n * in the map. This control is one of the default controls included in maps.\n * By default it will show in the bottom right portion of the map, but this can\n * be changed by using a css selector for `.ol-attribution`.\n *\n * @api\n */\nclass Attribution extends Control {\n\n /**\n * @param {Options=} opt_options Attribution options.\n */\n constructor(opt_options) {\n\n const options = opt_options ? opt_options : {};\n\n super({\n element: document.createElement('div'),\n render: options.render || render,\n target: options.target\n });\n\n /**\n * @private\n * @type {HTMLElement}\n */\n this.ulElement_ = document.createElement('ul');\n\n /**\n * @private\n * @type {boolean}\n */\n this.collapsed_ = options.collapsed !== undefined ? options.collapsed : true;\n\n /**\n * @private\n * @type {boolean}\n */\n this.overrideCollapsible_ = options.collapsible !== undefined;\n\n /**\n * @private\n * @type {boolean}\n */\n this.collapsible_ = options.collapsible !== undefined ?\n options.collapsible : true;\n\n if (!this.collapsible_) {\n this.collapsed_ = false;\n }\n\n const className = options.className !== undefined ? options.className : 'ol-attribution';\n\n const tipLabel = options.tipLabel !== undefined ? options.tipLabel : 'Attributions';\n\n const collapseLabel = options.collapseLabel !== undefined ? options.collapseLabel : '\\u00BB';\n\n if (typeof collapseLabel === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n this.collapseLabel_ = document.createElement('span');\n this.collapseLabel_.textContent = collapseLabel;\n } else {\n this.collapseLabel_ = collapseLabel;\n }\n\n const label = options.label !== undefined ? options.label : 'i';\n\n if (typeof label === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n this.label_ = document.createElement('span');\n this.label_.textContent = label;\n } else {\n this.label_ = label;\n }\n\n\n const activeLabel = (this.collapsible_ && !this.collapsed_) ?\n this.collapseLabel_ : this.label_;\n const button = document.createElement('button');\n button.setAttribute('type', 'button');\n button.title = tipLabel;\n button.appendChild(activeLabel);\n\n listen(button, EventType.CLICK, this.handleClick_, this);\n\n const cssClasses = className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL +\n (this.collapsed_ && this.collapsible_ ? ' ' + CLASS_COLLAPSED : '') +\n (this.collapsible_ ? '' : ' ol-uncollapsible');\n const element = this.element;\n element.className = cssClasses;\n element.appendChild(this.ulElement_);\n element.appendChild(button);\n\n /**\n * A list of currently rendered resolutions.\n * @type {Array}\n * @private\n */\n this.renderedAttributions_ = [];\n\n /**\n * @private\n * @type {boolean}\n */\n this.renderedVisible_ = true;\n\n }\n\n /**\n * Collect a list of visible attributions and set the collapsible state.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {Array} Attributions.\n * @private\n */\n collectSourceAttributions_(frameState) {\n /**\n * Used to determine if an attribution already exists.\n * @type {!Object}\n */\n const lookup = {};\n\n /**\n * A list of visible attributions.\n * @type {Array}\n */\n const visibleAttributions = [];\n\n const layerStatesArray = frameState.layerStatesArray;\n const resolution = frameState.viewState.resolution;\n for (let i = 0, ii = layerStatesArray.length; i < ii; ++i) {\n const layerState = layerStatesArray[i];\n if (!visibleAtResolution(layerState, resolution)) {\n continue;\n }\n\n const source = /** @type {import(\"../layer/Layer.js\").default} */ (layerState.layer).getSource();\n if (!source) {\n continue;\n }\n\n const attributionGetter = source.getAttributions();\n if (!attributionGetter) {\n continue;\n }\n\n const attributions = attributionGetter(frameState);\n if (!attributions) {\n continue;\n }\n\n if (!this.overrideCollapsible_ && source.getAttributionsCollapsible() === false) {\n this.setCollapsible(false);\n }\n\n if (Array.isArray(attributions)) {\n for (let j = 0, jj = attributions.length; j < jj; ++j) {\n if (!(attributions[j] in lookup)) {\n visibleAttributions.push(attributions[j]);\n lookup[attributions[j]] = true;\n }\n }\n } else {\n if (!(attributions in lookup)) {\n visibleAttributions.push(attributions);\n lookup[attributions] = true;\n }\n }\n }\n return visibleAttributions;\n }\n\n /**\n * @private\n * @param {?import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n */\n updateElement_(frameState) {\n if (!frameState) {\n if (this.renderedVisible_) {\n this.element.style.display = 'none';\n this.renderedVisible_ = false;\n }\n return;\n }\n\n const attributions = this.collectSourceAttributions_(frameState);\n\n const visible = attributions.length > 0;\n if (this.renderedVisible_ != visible) {\n this.element.style.display = visible ? '' : 'none';\n this.renderedVisible_ = visible;\n }\n\n if (equals(attributions, this.renderedAttributions_)) {\n return;\n }\n\n removeChildren(this.ulElement_);\n\n // append the attributions\n for (let i = 0, ii = attributions.length; i < ii; ++i) {\n const element = document.createElement('li');\n element.innerHTML = attributions[i];\n this.ulElement_.appendChild(element);\n }\n\n this.renderedAttributions_ = attributions;\n }\n\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n handleClick_(event) {\n event.preventDefault();\n this.handleToggle_();\n }\n\n /**\n * @private\n */\n handleToggle_() {\n this.element.classList.toggle(CLASS_COLLAPSED);\n if (this.collapsed_) {\n replaceNode(this.collapseLabel_, this.label_);\n } else {\n replaceNode(this.label_, this.collapseLabel_);\n }\n this.collapsed_ = !this.collapsed_;\n }\n\n /**\n * Return `true` if the attribution is collapsible, `false` otherwise.\n * @return {boolean} True if the widget is collapsible.\n * @api\n */\n getCollapsible() {\n return this.collapsible_;\n }\n\n /**\n * Set whether the attribution should be collapsible.\n * @param {boolean} collapsible True if the widget is collapsible.\n * @api\n */\n setCollapsible(collapsible) {\n if (this.collapsible_ === collapsible) {\n return;\n }\n this.collapsible_ = collapsible;\n this.element.classList.toggle('ol-uncollapsible');\n if (!collapsible && this.collapsed_) {\n this.handleToggle_();\n }\n }\n\n /**\n * Collapse or expand the attribution according to the passed parameter. Will\n * not do anything if the attribution isn't collapsible or if the current\n * collapsed state is already the one requested.\n * @param {boolean} collapsed True if the widget is collapsed.\n * @api\n */\n setCollapsed(collapsed) {\n if (!this.collapsible_ || this.collapsed_ === collapsed) {\n return;\n }\n this.handleToggle_();\n }\n\n /**\n * Return `true` when the attribution is currently collapsed or `false`\n * otherwise.\n * @return {boolean} True if the widget is collapsed.\n * @api\n */\n getCollapsed() {\n return this.collapsed_;\n }\n}\n\n\n/**\n * Update the attribution element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @this {Attribution}\n * @api\n */\nexport function render(mapEvent) {\n this.updateElement_(mapEvent.frameState);\n}\n\n\nexport default Attribution;\n","/**\n * @module ol/control/Rotate\n */\nimport Control from './Control.js';\nimport {CLASS_CONTROL, CLASS_HIDDEN, CLASS_UNSELECTABLE} from '../css.js';\nimport {easeOut} from '../easing.js';\nimport {listen} from '../events.js';\nimport EventType from '../events/EventType.js';\n\n\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-rotate'] CSS class name.\n * @property {string|HTMLElement} [label='⇧'] Text label to use for the rotate button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [tipLabel='Reset rotation'] Text label to use for the rotate tip.\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {boolean} [autoHide=true] Hide the control when rotation is 0.\n * @property {function(import(\"../MapEvent.js\").default)} [render] Function called when the control should\n * be re-rendered. This is called in a `requestAnimationFrame` callback.\n * @property {function()} [resetNorth] Function called when the control is clicked.\n * This will override the default `resetNorth`.\n * @property {HTMLElement|string} [target] Specify a target if you want the control to be\n * rendered outside of the map's viewport.\n */\n\n\n/**\n * @classdesc\n * A button control to reset rotation to 0.\n * To style this control use css selector `.ol-rotate`. A `.ol-hidden` css\n * selector is added to the button when the rotation is 0.\n *\n * @api\n */\nclass Rotate extends Control {\n\n /**\n * @param {Options=} opt_options Rotate options.\n */\n constructor(opt_options) {\n\n const options = opt_options ? opt_options : {};\n\n super({\n element: document.createElement('div'),\n render: options.render || render,\n target: options.target\n });\n\n const className = options.className !== undefined ? options.className : 'ol-rotate';\n\n const label = options.label !== undefined ? options.label : '\\u21E7';\n\n /**\n * @type {HTMLElement}\n * @private\n */\n this.label_ = null;\n\n if (typeof label === 'string') {\n this.label_ = document.createElement('span');\n this.label_.className = 'ol-compass';\n this.label_.textContent = label;\n } else {\n this.label_ = label;\n this.label_.classList.add('ol-compass');\n }\n\n const tipLabel = options.tipLabel ? options.tipLabel : 'Reset rotation';\n\n const button = document.createElement('button');\n button.className = className + '-reset';\n button.setAttribute('type', 'button');\n button.title = tipLabel;\n button.appendChild(this.label_);\n\n listen(button, EventType.CLICK, this.handleClick_, this);\n\n const cssClasses = className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL;\n const element = this.element;\n element.className = cssClasses;\n element.appendChild(button);\n\n this.callResetNorth_ = options.resetNorth ? options.resetNorth : undefined;\n\n /**\n * @type {number}\n * @private\n */\n this.duration_ = options.duration !== undefined ? options.duration : 250;\n\n /**\n * @type {boolean}\n * @private\n */\n this.autoHide_ = options.autoHide !== undefined ? options.autoHide : true;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.rotation_ = undefined;\n\n if (this.autoHide_) {\n this.element.classList.add(CLASS_HIDDEN);\n }\n\n }\n\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n handleClick_(event) {\n event.preventDefault();\n if (this.callResetNorth_ !== undefined) {\n this.callResetNorth_();\n } else {\n this.resetNorth_();\n }\n }\n\n /**\n * @private\n */\n resetNorth_() {\n const map = this.getMap();\n const view = map.getView();\n if (!view) {\n // the map does not have a view, so we can't act\n // upon it\n return;\n }\n if (view.getRotation() !== undefined) {\n if (this.duration_ > 0) {\n view.animate({\n rotation: 0,\n duration: this.duration_,\n easing: easeOut\n });\n } else {\n view.setRotation(0);\n }\n }\n }\n}\n\n\n/**\n * Update the rotate control element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @this {Rotate}\n * @api\n */\nexport function render(mapEvent) {\n const frameState = mapEvent.frameState;\n if (!frameState) {\n return;\n }\n const rotation = frameState.viewState.rotation;\n if (rotation != this.rotation_) {\n const transform = 'rotate(' + rotation + 'rad)';\n if (this.autoHide_) {\n const contains = this.element.classList.contains(CLASS_HIDDEN);\n if (!contains && rotation === 0) {\n this.element.classList.add(CLASS_HIDDEN);\n } else if (contains && rotation !== 0) {\n this.element.classList.remove(CLASS_HIDDEN);\n }\n }\n this.label_.style.msTransform = transform;\n this.label_.style.webkitTransform = transform;\n this.label_.style.transform = transform;\n }\n this.rotation_ = rotation;\n}\n\nexport default Rotate;\n","/**\n * @module ol/control/Zoom\n */\nimport {listen} from '../events.js';\nimport EventType from '../events/EventType.js';\nimport Control from './Control.js';\nimport {CLASS_CONTROL, CLASS_UNSELECTABLE} from '../css.js';\nimport {easeOut} from '../easing.js';\n\n\n/**\n * @typedef {Object} Options\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {string} [className='ol-zoom'] CSS class name.\n * @property {string|HTMLElement} [zoomInLabel='+'] Text label to use for the zoom-in\n * button. Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string|HTMLElement} [zoomOutLabel='-'] Text label to use for the zoom-out button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [zoomInTipLabel='Zoom in'] Text label to use for the button tip.\n * @property {string} [zoomOutTipLabel='Zoom out'] Text label to use for the button tip.\n * @property {number} [delta=1] The zoom delta applied on each click.\n * @property {HTMLElement|string} [target] Specify a target if you want the control to be\n * rendered outside of the map's viewport.\n */\n\n\n/**\n * @classdesc\n * A control with 2 buttons, one for zoom in and one for zoom out.\n * This control is one of the default controls of a map. To style this control\n * use css selectors `.ol-zoom-in` and `.ol-zoom-out`.\n *\n * @api\n */\nclass Zoom extends Control {\n\n /**\n * @param {Options=} opt_options Zoom options.\n */\n constructor(opt_options) {\n\n const options = opt_options ? opt_options : {};\n\n super({\n element: document.createElement('div'),\n target: options.target\n });\n\n const className = options.className !== undefined ? options.className : 'ol-zoom';\n\n const delta = options.delta !== undefined ? options.delta : 1;\n\n const zoomInLabel = options.zoomInLabel !== undefined ? options.zoomInLabel : '+';\n const zoomOutLabel = options.zoomOutLabel !== undefined ? options.zoomOutLabel : '\\u2212';\n\n const zoomInTipLabel = options.zoomInTipLabel !== undefined ?\n options.zoomInTipLabel : 'Zoom in';\n const zoomOutTipLabel = options.zoomOutTipLabel !== undefined ?\n options.zoomOutTipLabel : 'Zoom out';\n\n const inElement = document.createElement('button');\n inElement.className = className + '-in';\n inElement.setAttribute('type', 'button');\n inElement.title = zoomInTipLabel;\n inElement.appendChild(\n typeof zoomInLabel === 'string' ? document.createTextNode(zoomInLabel) : zoomInLabel\n );\n\n listen(inElement, EventType.CLICK, this.handleClick_.bind(this, delta));\n\n const outElement = document.createElement('button');\n outElement.className = className + '-out';\n outElement.setAttribute('type', 'button');\n outElement.title = zoomOutTipLabel;\n outElement.appendChild(\n typeof zoomOutLabel === 'string' ? document.createTextNode(zoomOutLabel) : zoomOutLabel\n );\n\n listen(outElement, EventType.CLICK, this.handleClick_.bind(this, -delta));\n\n const cssClasses = className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL;\n const element = this.element;\n element.className = cssClasses;\n element.appendChild(inElement);\n element.appendChild(outElement);\n\n /**\n * @type {number}\n * @private\n */\n this.duration_ = options.duration !== undefined ? options.duration : 250;\n\n }\n\n /**\n * @param {number} delta Zoom delta.\n * @param {MouseEvent} event The event to handle\n * @private\n */\n handleClick_(delta, event) {\n event.preventDefault();\n this.zoomByDelta_(delta);\n }\n\n /**\n * @param {number} delta Zoom delta.\n * @private\n */\n zoomByDelta_(delta) {\n const map = this.getMap();\n const view = map.getView();\n if (!view) {\n // the map does not have a view, so we can't act\n // upon it\n return;\n }\n const currentResolution = view.getResolution();\n if (currentResolution) {\n const newResolution = view.constrainResolution(currentResolution, delta);\n if (this.duration_ > 0) {\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n view.animate({\n resolution: newResolution,\n duration: this.duration_,\n easing: easeOut\n });\n } else {\n view.setResolution(newResolution);\n }\n }\n }\n}\n\n\nexport default Zoom;\n","/**\n * @module ol/control/util\n */\nimport Collection from '../Collection.js';\nimport Attribution from './Attribution.js';\nimport Rotate from './Rotate.js';\nimport Zoom from './Zoom.js';\n\n\n/**\n * @typedef {Object} DefaultsOptions\n * @property {boolean} [attribution=true] Include\n * {@link module:ol/control/Attribution~Attribution}.\n * @property {import(\"./Attribution.js\").Options} [attributionOptions]\n * Options for {@link module:ol/control/Attribution~Attribution}.\n * @property {boolean} [rotate=true] Include\n * {@link module:ol/control/Rotate~Rotate}.\n * @property {import(\"./Rotate.js\").Options} [rotateOptions] Options\n * for {@link module:ol/control/Rotate~Rotate}.\n * @property {boolean} [zoom] Include {@link module:ol/control/Zoom~Zoom}.\n * @property {import(\"./Zoom.js\").Options} [zoomOptions] Options for\n * {@link module:ol/control/Zoom~Zoom}.\n * @api\n */\n\n\n/**\n * Set of controls included in maps by default. Unless configured otherwise,\n * this returns a collection containing an instance of each of the following\n * controls:\n * * {@link module:ol/control/Zoom~Zoom}\n * * {@link module:ol/control/Rotate~Rotate}\n * * {@link module:ol/control/Attribution~Attribution}\n *\n * @param {DefaultsOptions=} opt_options\n * Defaults options.\n * @return {Collection}\n * Controls.\n * @function module:ol/control.defaults\n * @api\n */\nexport function defaults(opt_options) {\n\n const options = opt_options ? opt_options : {};\n\n const controls = new Collection();\n\n const zoomControl = options.zoom !== undefined ? options.zoom : true;\n if (zoomControl) {\n controls.push(new Zoom(options.zoomOptions));\n }\n\n const rotateControl = options.rotate !== undefined ? options.rotate : true;\n if (rotateControl) {\n controls.push(new Rotate(options.rotateOptions));\n }\n\n const attributionControl = options.attribution !== undefined ?\n options.attribution : true;\n if (attributionControl) {\n controls.push(new Attribution(options.attributionOptions));\n }\n\n return controls;\n}\n","/**\n * @module ol/Kinetic\n */\n\n/**\n * @classdesc\n * Implementation of inertial deceleration for map movement.\n *\n * @api\n */\nclass Kinetic {\n\n /**\n * @param {number} decay Rate of decay (must be negative).\n * @param {number} minVelocity Minimum velocity (pixels/millisecond).\n * @param {number} delay Delay to consider to calculate the kinetic\n * initial values (milliseconds).\n */\n constructor(decay, minVelocity, delay) {\n\n /**\n * @private\n * @type {number}\n */\n this.decay_ = decay;\n\n /**\n * @private\n * @type {number}\n */\n this.minVelocity_ = minVelocity;\n\n /**\n * @private\n * @type {number}\n */\n this.delay_ = delay;\n\n /**\n * @private\n * @type {Array}\n */\n this.points_ = [];\n\n /**\n * @private\n * @type {number}\n */\n this.angle_ = 0;\n\n /**\n * @private\n * @type {number}\n */\n this.initialVelocity_ = 0;\n }\n\n /**\n * FIXME empty description for jsdoc\n */\n begin() {\n this.points_.length = 0;\n this.angle_ = 0;\n this.initialVelocity_ = 0;\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n */\n update(x, y) {\n this.points_.push(x, y, Date.now());\n }\n\n /**\n * @return {boolean} Whether we should do kinetic animation.\n */\n end() {\n if (this.points_.length < 6) {\n // at least 2 points are required (i.e. there must be at least 6 elements\n // in the array)\n return false;\n }\n const delay = Date.now() - this.delay_;\n const lastIndex = this.points_.length - 3;\n if (this.points_[lastIndex + 2] < delay) {\n // the last tracked point is too old, which means that the user stopped\n // panning before releasing the map\n return false;\n }\n\n // get the first point which still falls into the delay time\n let firstIndex = lastIndex - 3;\n while (firstIndex > 0 && this.points_[firstIndex + 2] > delay) {\n firstIndex -= 3;\n }\n\n const duration = this.points_[lastIndex + 2] - this.points_[firstIndex + 2];\n // we don't want a duration of 0 (divide by zero)\n // we also make sure the user panned for a duration of at least one frame\n // (1/60s) to compute sane displacement values\n if (duration < 1000 / 60) {\n return false;\n }\n\n const dx = this.points_[lastIndex] - this.points_[firstIndex];\n const dy = this.points_[lastIndex + 1] - this.points_[firstIndex + 1];\n this.angle_ = Math.atan2(dy, dx);\n this.initialVelocity_ = Math.sqrt(dx * dx + dy * dy) / duration;\n return this.initialVelocity_ > this.minVelocity_;\n }\n\n /**\n * @return {number} Total distance travelled (pixels).\n */\n getDistance() {\n return (this.minVelocity_ - this.initialVelocity_) / this.decay_;\n }\n\n /**\n * @return {number} Angle of the kinetic panning animation (radians).\n */\n getAngle() {\n return this.angle_;\n }\n}\n\nexport default Kinetic;\n","/**\n * @module ol/interaction/Property\n */\n\n/**\n * @enum {string}\n */\nexport default {\n ACTIVE: 'active'\n};\n","/**\n * @module ol/interaction/Interaction\n */\nimport BaseObject from '../Object.js';\nimport {easeOut, linear} from '../easing.js';\nimport InteractionProperty from './Property.js';\nimport {clamp} from '../math.js';\n\n\n/**\n * Object literal with config options for interactions.\n * @typedef {Object} InteractionOptions\n * @property {function(import(\"../MapBrowserEvent.js\").default):boolean} handleEvent\n * Method called by the map to notify the interaction that a browser event was\n * dispatched to the map. If the function returns a falsy value, propagation of\n * the event to other interactions in the map's interactions chain will be\n * prevented (this includes functions with no explicit return).\n */\n\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * User actions that change the state of the map. Some are similar to controls,\n * but are not associated with a DOM element.\n * For example, {@link module:ol/interaction/KeyboardZoom~KeyboardZoom} is\n * functionally the same as {@link module:ol/control/Zoom~Zoom}, but triggered\n * by a keyboard event not a button element event.\n * Although interactions do not have a DOM element, some of them do render\n * vectors and so are visible on the screen.\n * @api\n */\nclass Interaction extends BaseObject {\n /**\n * @param {InteractionOptions} options Options.\n */\n constructor(options) {\n super();\n\n if (options.handleEvent) {\n this.handleEvent = options.handleEvent;\n }\n\n /**\n * @private\n * @type {import(\"../PluggableMap.js\").default}\n */\n this.map_ = null;\n\n this.setActive(true);\n }\n\n /**\n * Return whether the interaction is currently active.\n * @return {boolean} `true` if the interaction is active, `false` otherwise.\n * @observable\n * @api\n */\n getActive() {\n return /** @type {boolean} */ (this.get(InteractionProperty.ACTIVE));\n }\n\n /**\n * Get the map associated with this interaction.\n * @return {import(\"../PluggableMap.js\").default} Map.\n * @api\n */\n getMap() {\n return this.map_;\n }\n\n /**\n * Handles the {@link module:ol/MapBrowserEvent map browser event}.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @api\n */\n handleEvent(mapBrowserEvent) {\n return true;\n }\n\n /**\n * Activate or deactivate the interaction.\n * @param {boolean} active Active.\n * @observable\n * @api\n */\n setActive(active) {\n this.set(InteractionProperty.ACTIVE, active);\n }\n\n /**\n * Remove the interaction from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default} map Map.\n */\n setMap(map) {\n this.map_ = map;\n }\n}\n\n\n/**\n * @param {import(\"../View.js\").default} view View.\n * @param {import(\"../coordinate.js\").Coordinate} delta Delta.\n * @param {number=} opt_duration Duration.\n */\nexport function pan(view, delta, opt_duration) {\n const currentCenter = view.getCenter();\n if (currentCenter) {\n const center = view.constrainCenter(\n [currentCenter[0] + delta[0], currentCenter[1] + delta[1]]);\n if (opt_duration) {\n view.animate({\n duration: opt_duration,\n easing: linear,\n center: center\n });\n } else {\n view.setCenter(center);\n }\n }\n}\n\n\n/**\n * @param {import(\"../View.js\").default} view View.\n * @param {number|undefined} rotation Rotation.\n * @param {import(\"../coordinate.js\").Coordinate=} opt_anchor Anchor coordinate.\n * @param {number=} opt_duration Duration.\n */\nexport function rotate(view, rotation, opt_anchor, opt_duration) {\n rotation = view.constrainRotation(rotation, 0);\n rotateWithoutConstraints(view, rotation, opt_anchor, opt_duration);\n}\n\n\n/**\n * @param {import(\"../View.js\").default} view View.\n * @param {number|undefined} rotation Rotation.\n * @param {import(\"../coordinate.js\").Coordinate=} opt_anchor Anchor coordinate.\n * @param {number=} opt_duration Duration.\n */\nexport function rotateWithoutConstraints(view, rotation, opt_anchor, opt_duration) {\n if (rotation !== undefined) {\n const currentRotation = view.getRotation();\n const currentCenter = view.getCenter();\n if (currentRotation !== undefined && currentCenter && opt_duration > 0) {\n view.animate({\n rotation: rotation,\n anchor: opt_anchor,\n duration: opt_duration,\n easing: easeOut\n });\n } else {\n view.rotate(rotation, opt_anchor);\n }\n }\n}\n\n\n/**\n * @param {import(\"../View.js\").default} view View.\n * @param {number|undefined} resolution Resolution to go to.\n * @param {import(\"../coordinate.js\").Coordinate=} opt_anchor Anchor coordinate.\n * @param {number=} opt_duration Duration.\n * @param {number=} opt_direction Zooming direction; > 0 indicates\n * zooming out, in which case the constraints system will select\n * the largest nearest resolution; < 0 indicates zooming in, in\n * which case the constraints system will select the smallest\n * nearest resolution; == 0 indicates that the zooming direction\n * is unknown/not relevant, in which case the constraints system\n * will select the nearest resolution. If not defined 0 is\n * assumed.\n */\nexport function zoom(view, resolution, opt_anchor, opt_duration, opt_direction) {\n resolution = view.constrainResolution(resolution, 0, opt_direction);\n zoomWithoutConstraints(view, resolution, opt_anchor, opt_duration);\n}\n\n\n/**\n * @param {import(\"../View.js\").default} view View.\n * @param {number} delta Delta from previous zoom level.\n * @param {import(\"../coordinate.js\").Coordinate=} opt_anchor Anchor coordinate.\n * @param {number=} opt_duration Duration.\n */\nexport function zoomByDelta(view, delta, opt_anchor, opt_duration) {\n const currentResolution = view.getResolution();\n let resolution = view.constrainResolution(currentResolution, delta, 0);\n\n if (resolution !== undefined) {\n const resolutions = view.getResolutions();\n resolution = clamp(\n resolution,\n view.getMinResolution() || resolutions[resolutions.length - 1],\n view.getMaxResolution() || resolutions[0]);\n }\n\n // If we have a constraint on center, we need to change the anchor so that the\n // new center is within the extent. We first calculate the new center, apply\n // the constraint to it, and then calculate back the anchor\n if (opt_anchor && resolution !== undefined && resolution !== currentResolution) {\n const currentCenter = view.getCenter();\n let center = view.calculateCenterZoom(resolution, opt_anchor);\n center = view.constrainCenter(center);\n\n opt_anchor = [\n (resolution * currentCenter[0] - currentResolution * center[0]) /\n (resolution - currentResolution),\n (resolution * currentCenter[1] - currentResolution * center[1]) /\n (resolution - currentResolution)\n ];\n }\n\n zoomWithoutConstraints(view, resolution, opt_anchor, opt_duration);\n}\n\n\n/**\n * @param {import(\"../View.js\").default} view View.\n * @param {number|undefined} resolution Resolution to go to.\n * @param {import(\"../coordinate.js\").Coordinate=} opt_anchor Anchor coordinate.\n * @param {number=} opt_duration Duration.\n */\nexport function zoomWithoutConstraints(view, resolution, opt_anchor, opt_duration) {\n if (resolution) {\n const currentResolution = view.getResolution();\n const currentCenter = view.getCenter();\n if (currentResolution !== undefined && currentCenter &&\n resolution !== currentResolution && opt_duration) {\n view.animate({\n resolution: resolution,\n anchor: opt_anchor,\n duration: opt_duration,\n easing: easeOut\n });\n } else {\n if (opt_anchor) {\n const center = view.calculateCenterZoom(resolution, opt_anchor);\n view.setCenter(center);\n }\n view.setResolution(resolution);\n }\n }\n}\n\nexport default Interaction;\n","/**\n * @module ol/interaction/DoubleClickZoom\n */\nimport MapBrowserEventType from '../MapBrowserEventType.js';\nimport Interaction, {zoomByDelta} from './Interaction.js';\n\n\n/**\n * @typedef {Object} Options\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {number} [delta=1] The zoom delta applied on each double click.\n */\n\n\n/**\n * @classdesc\n * Allows the user to zoom by double-clicking on the map.\n * @api\n */\nclass DoubleClickZoom extends Interaction {\n\n /**\n * @param {Options=} opt_options Options.\n */\n constructor(opt_options) {\n super({\n handleEvent: handleEvent\n });\n\n const options = opt_options ? opt_options : {};\n\n /**\n * @private\n * @type {number}\n */\n this.delta_ = options.delta ? options.delta : 1;\n\n /**\n * @private\n * @type {number}\n */\n this.duration_ = options.duration !== undefined ? options.duration : 250;\n\n }\n\n}\n\n\n/**\n * Handles the {@link module:ol/MapBrowserEvent map browser event} (if it was a\n * doubleclick) and eventually zooms the map.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @this {DoubleClickZoom}\n */\nfunction handleEvent(mapBrowserEvent) {\n let stopEvent = false;\n if (mapBrowserEvent.type == MapBrowserEventType.DBLCLICK) {\n const browserEvent = /** @type {MouseEvent} */ (mapBrowserEvent.originalEvent);\n const map = mapBrowserEvent.map;\n const anchor = mapBrowserEvent.coordinate;\n const delta = browserEvent.shiftKey ? -this.delta_ : this.delta_;\n const view = map.getView();\n zoomByDelta(view, delta, anchor, this.duration_);\n mapBrowserEvent.preventDefault();\n stopEvent = true;\n }\n return !stopEvent;\n}\n\nexport default DoubleClickZoom;\n","/**\n * @module ol/events/condition\n */\nimport MapBrowserEventType from '../MapBrowserEventType.js';\nimport {assert} from '../asserts.js';\nimport {TRUE, FALSE} from '../functions.js';\nimport {WEBKIT, MAC} from '../has.js';\n\n\n/**\n * A function that takes an {@link module:ol/MapBrowserEvent} and returns a\n * `{boolean}`. If the condition is met, true should be returned.\n *\n * @typedef {function(this: ?, import(\"../MapBrowserEvent.js\").default): boolean} Condition\n */\n\n\n/**\n * Return `true` if only the alt-key is pressed, `false` otherwise (e.g. when\n * additionally the shift-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the alt key is pressed.\n * @api\n */\nexport const altKeyOnly = function(mapBrowserEvent) {\n const originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (\n originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n !originalEvent.shiftKey);\n};\n\n\n/**\n * Return `true` if only the alt-key and shift-key is pressed, `false` otherwise\n * (e.g. when additionally the platform-modifier-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the alt and shift keys are pressed.\n * @api\n */\nexport const altShiftKeysOnly = function(mapBrowserEvent) {\n const originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (\n originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n originalEvent.shiftKey);\n};\n\n\n/**\n * Return `true` if the map has the focus. This condition requires a map target\n * element with a `tabindex` attribute, e.g. `
`.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} event Map browser event.\n * @return {boolean} The map has the focus.\n * @api\n */\nexport const focus = function(event) {\n return event.target.getTargetElement() === document.activeElement;\n};\n\n\n/**\n * Return always true.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True.\n * @api\n */\nexport const always = TRUE;\n\n\n/**\n * Return `true` if the event is a `click` event, `false` otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event is a map `click` event.\n * @api\n */\nexport const click = function(mapBrowserEvent) {\n return mapBrowserEvent.type == MapBrowserEventType.CLICK;\n};\n\n\n/**\n * Return `true` if the event has an \"action\"-producing mouse button.\n *\n * By definition, this includes left-click on windows/linux, and left-click\n * without the ctrl key on Macs.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} The result.\n */\nexport const mouseActionButton = function(mapBrowserEvent) {\n const originalEvent = /** @type {MouseEvent} */ (mapBrowserEvent.originalEvent);\n return originalEvent.button == 0 &&\n !(WEBKIT && MAC && originalEvent.ctrlKey);\n};\n\n\n/**\n * Return always false.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} False.\n * @api\n */\nexport const never = FALSE;\n\n\n/**\n * Return `true` if the browser event is a `pointermove` event, `false`\n * otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the browser event is a `pointermove` event.\n * @api\n */\nexport const pointerMove = function(mapBrowserEvent) {\n return mapBrowserEvent.type == 'pointermove';\n};\n\n\n/**\n * Return `true` if the event is a map `singleclick` event, `false` otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event is a map `singleclick` event.\n * @api\n */\nexport const singleClick = function(mapBrowserEvent) {\n return mapBrowserEvent.type == MapBrowserEventType.SINGLECLICK;\n};\n\n\n/**\n * Return `true` if the event is a map `dblclick` event, `false` otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event is a map `dblclick` event.\n * @api\n */\nexport const doubleClick = function(mapBrowserEvent) {\n return mapBrowserEvent.type == MapBrowserEventType.DBLCLICK;\n};\n\n\n/**\n * Return `true` if no modifier key (alt-, shift- or platform-modifier-key) is\n * pressed.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True only if there no modifier keys are pressed.\n * @api\n */\nexport const noModifierKeys = function(mapBrowserEvent) {\n const originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (\n !originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n !originalEvent.shiftKey);\n};\n\n\n/**\n * Return `true` if only the platform-modifier-key (the meta-key on Mac,\n * ctrl-key otherwise) is pressed, `false` otherwise (e.g. when additionally\n * the shift-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the platform modifier key is pressed.\n * @api\n */\nexport const platformModifierKeyOnly = function(mapBrowserEvent) {\n const originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return !originalEvent.altKey &&\n (MAC ? originalEvent.metaKey : originalEvent.ctrlKey) &&\n !originalEvent.shiftKey;\n};\n\n\n/**\n * Return `true` if only the shift-key is pressed, `false` otherwise (e.g. when\n * additionally the alt-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the shift key is pressed.\n * @api\n */\nexport const shiftKeyOnly = function(mapBrowserEvent) {\n const originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (\n !originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n originalEvent.shiftKey);\n};\n\n\n/**\n * Return `true` if the target element is not editable, i.e. not a ``-,\n * `