diff --git a/externs/xol.js b/externs/xol.js
index fcbd0af382..8551bc7e41 100644
--- a/externs/xol.js
+++ b/externs/xol.js
@@ -1,953 +1,336 @@
/**
- * @typedef {{unique: (boolean|undefined)}}
- */
-export let CollectionOptions;
-
-/**
- * @param {CollectionOptions} options TODO: repace this
- *
- * @param {boolean|undefined} options.unique Disallow the same item from being added to the collection twice. Default is
- * false.
- *
- */
-
-
-/**
- * @typedef {{tracking: (boolean|undefined),
- * trackingOptions: (GeolocationPositionOptions|undefined),
- * projection: ol.ProjectionLike}}
- */
-export let GeolocationOptions;
-
-/**
- * @param {GeolocationOptions} options TODO: repace this
- *
- * @param {boolean|undefined} options.tracking Start Tracking. Default is `false`.
- *
- * @param {GeolocationPositionOptions|undefined} options.trackingOptions Tracking options. See
- * {@link http://www.w3.org/TR/geolocation-API/#position_options_interface}.
- *
- * @param {ol.ProjectionLike} options.projection The projection the position is reported in.
- *
- */
-
-
-/**
- * Object literal with config options for the map logo.
- * @typedef {{href: (string), src: (string)}}
- */
-export let LogoOptions;
-
-/**
- * @param {LogoOptions} options TODO: repace this
- *
- * @param {string} options.href Link url for the logo. Will be followed when the logo is clicked.
- *
- * @param {string} options.src Image src for the logo.
- *
- */
-
-
-/**
- * @typedef {{map: (ol.PluggableMap|undefined),
- * maxLines: (number|undefined),
- * strokeStyle: (ol.style.Stroke|undefined),
- * targetSize: (number|undefined),
- * showLabels: (boolean|undefined),
- * lonLabelFormatter: (undefined|function(number):string),
- * latLabelFormatter: (undefined|function(number):string),
- * lonLabelPosition: (number|undefined),
- * latLabelPosition: (number|undefined),
- * lonLabelStyle: (ol.style.Text|undefined),
- * latLabelStyle: (ol.style.Text|undefined)}}
- */
-export let GraticuleOptions;
-
-/**
- * @param {GraticuleOptions} options TODO: repace this
- *
- * @param {ol.PluggableMap|undefined} options.map Reference to an `ol.Map` object.
- *
- * @param {number|undefined} options.maxLines The maximum number of meridians and parallels from the center of the
- * map. The default value is 100, which means that at most 200 meridians
- * and 200 parallels will be displayed. The default value is appropriate
- * for conformal projections like Spherical Mercator. If you increase
- * the value more lines will be drawn and the drawing performance will
- * decrease.
- *
- * @param {ol.style.Stroke|undefined} options.strokeStyle The stroke style to use for drawing the graticule. If not provided, the
- * lines will be drawn with `rgba(0,0,0,0.2)`, a not fully opaque black.
- *
- *
- * @param {number|undefined} options.targetSize The target size of the graticule cells, in pixels. Default
- * value is 100 pixels.
- *
- * @param {boolean|undefined} options.showLabels Render a label with the respective latitude/longitude for each graticule
- * line. Default is false.
- *
- *
- * @param {undefined|function(number):string} options.lonLabelFormatter Label formatter for longitudes. This function is called with the longitude as
- * argument, and should return a formatted string representing the longitude.
- * By default, labels are formatted as degrees, minutes, seconds and hemisphere.
- *
- *
- * @param {undefined|function(number):string} options.latLabelFormatter Label formatter for latitudes. This function is called with the latitude as
- * argument, and should return a formatted string representing the latitude.
- * By default, labels are formatted as degrees, minutes, seconds and hemisphere.
- *
- *
- * @param {number|undefined} options.lonLabelPosition Longitude label position in fractions (0..1) of view extent. 0 means at the
- * bottom of the viewport, 1 means at the top. Default is 0.
- *
- * @param {number|undefined} options.latLabelPosition Latitude label position in fractions (0..1) of view extent. 0 means at the
- * left of the viewport, 1 means at the right. Default is 1.
- *
- * @param {ol.style.Text|undefined} options.lonLabelStyle Longitude label text style. The default is
- * ```js
- * new ol.style.Text({
- * font: '12px Calibri,sans-serif',
- * textBaseline: 'bottom',
- * fill: new ol.style.Fill({
- * color: 'rgba(0,0,0,1)'
- * }),
- * stroke: new ol.style.Stroke({
- * color: 'rgba(255,255,255,1)',
- * width: 3
- * })
- * });
- * ```
- * Note that the default's `textBaseline` configuration will not work well for
- * `lonLabelPosition` configurations that position labels close to the top of
- * the viewport.
- *
- *
- * @param {ol.style.Text|undefined} options.latLabelStyle Latitude label text style. The default is
- * ```js
- * new ol.style.Text({
- * font: '12px Calibri,sans-serif',
- * textAlign: 'end',
- * fill: new ol.style.Fill({
- * color: 'rgba(0,0,0,1)'
- * }),
- * stroke: new ol.style.Stroke({
- * color: 'rgba(255,255,255,1)',
- * width: 3
- * })
- * });
- * ```
- * Note that the default's `textAlign` configuration will not work well for
- * `latLabelPosition` configurations that position labels close to the left of
- * the viewport.
- *
- *
- */
-
-
-/**
- * Object literal with config options for interactions.
- * @typedef {{handleEvent: function(ol.MapBrowserEvent):boolean}}
- */
-export let interaction_InteractionOptions;
-
-/**
- * @param {interaction_InteractionOptions} options TODO: repace this
- *
- * @param {function(ol.MapBrowserEvent):boolean} options.handleEvent Method called by the map to notify the interaction that a browser event was
- * dispatched to the map. If the function returns a falsy value,
- * propagation of the event to other interactions in the map's interactions
- * chain will be prevented (this includes functions with no explicit return). See
- * {@link https://developer.mozilla.org/en-US/docs/Glossary/Falsy}
- *
- */
-
-
-/**
- * Object literal with config options for the map.
- * @typedef {{controls: (ol.Collection.
|Array.|undefined),
- * pixelRatio: (number|undefined),
- * interactions: (ol.Collection.|Array.|undefined),
- * keyboardEventTarget: (Element|Document|string|undefined),
- * layers: (Array.|ol.Collection.|undefined),
- * loadTilesWhileAnimating: (boolean|undefined),
- * loadTilesWhileInteracting: (boolean|undefined),
- * logo: (boolean|string|olx.LogoOptions|Element|undefined),
- * moveTolerance: (number|undefined),
- * overlays: (ol.Collection.|Array.|undefined),
- * renderer: (ol.renderer.Type|Array.|undefined),
- * target: (Element|string|undefined),
- * view: (ol.View|undefined)}}
- */
-export let MapOptions;
-
-/**
- * @param {MapOptions} options TODO: repace this
- *
- * @param {ol.Collection.|Array.|undefined} options.controls Controls initially added to the map. If not specified,
- * {@link ol.control.defaults ol.control.defaults()} is used.
- *
- * @param {number|undefined} options.pixelRatio The ratio between physical pixels and device-independent pixels (dips) on the
- * device. If `undefined` then it gets set by using `window.devicePixelRatio`.
- *
- * @param {ol.Collection.|Array.|undefined} options.interactions Interactions that are initially added to the map. If not specified,
- * {@link ol.interaction.defaults ol.interaction.defaults()} is used.
- *
- * @param {Element|Document|string|undefined} options.keyboardEventTarget The element to listen to keyboard events on. This determines when the
- * `KeyboardPan` and `KeyboardZoom` interactions trigger. For example, if this
- * option is set to `document` the keyboard interactions will always trigger. If
- * this option is not specified, the element the library listens to keyboard
- * events on is the map target (i.e. the user-provided div for the map). If this
- * is not `document` the target element needs to be focused for key events to be
- * emitted, requiring that the target element has a `tabindex` attribute.
- *
- * @param {Array.|ol.Collection.|undefined} options.layers Layers. If this is not defined, a map with no layers will be rendered. Note
- * that layers are rendered in the order supplied, so if you want, for example,
- * a vector layer to appear on top of a tile layer, it must come after the tile
- * layer.
- *
- * @param {boolean|undefined} options.loadTilesWhileAnimating When set to true, tiles will be loaded during animations. This may improve
- * the user experience, but can also make animations stutter on devices with
- * slow memory. Default is `false`.
- *
- * @param {boolean|undefined} options.loadTilesWhileInteracting When set to true, tiles will be loaded while interacting with the map. This
- * may improve the user experience, but can also make map panning and zooming
- * choppy on devices with slow memory. Default is `false`.
- *
- * @param {boolean|string|olx.LogoOptions|Element|undefined} options.logo The map logo. A logo to be displayed on the map at all times. If a string is
- * provided, it will be set as the image source of the logo. If an object is
- * provided, the `src` property should be the URL for an image and the `href`
- * property should be a URL for creating a link. If an element is provided,
- * the element will be used. To disable the map logo, set the option to
- * `false`. By default, the OpenLayers logo is shown.
- *
- * @param {number|undefined} options.moveTolerance The minimum distance in pixels the cursor must move to be detected
- * as a map move event instead of a click. Increasing this value can make it
- * easier to click on the map.
- * Default is `1`.
- *
- * @param {ol.Collection.|Array.|undefined} options.overlays Overlays initially added to the map. By default, no overlays are added.
- *
- * @param {ol.renderer.Type|Array.|undefined} options.renderer Renderer. By default, Canvas and WebGL renderers are tested for support
- * in that order, and the first supported used. Specify a
- * {@link ol.renderer.Type} here to use a specific renderer.
- * Note that the Canvas renderer fully supports vector data, but WebGL can only
- * render Point geometries.
- *
- * @param {Element|string|undefined} options.target The container for the map, either the element itself or the `id` of the
- * element. If not specified at construction time, {@link ol.Map#setTarget}
- * must be called for the map to be rendered.
- *
- * @param {ol.View|undefined} options.view The map's view. No layer sources will be fetched unless this is specified at
- * construction time or through {@link ol.Map#setView}.
- *
- */
-
-
-/**
- * Object literal with options for the {@link ol.Sphere.getLength} or
- * {@link ol.Sphere.getArea} functions.
- * @typedef {{projection: (ol.ProjectionLike|undefined),
- * radius: (number|undefined)}}
- */
-export let SphereMetricOptions;
-
-/**
- * @param {SphereMetricOptions} options TODO: repace this
- *
- * @param {(ol.ProjectionLike|undefined)} options.projection Projection of the geometry. By default, the geometry is assumed to be in
- * EPSG:3857 (Web Mercator).
- *
- * @param {(number|undefined)} options.radius Sphere radius. By default, the radius of the earth is used (Clarke 1866
- * Authalic Sphere).
- *
- */
-
-
-/**
- * Options for tile constructors.
- * @typedef {{transition: (number|undefined)}}
- */
-export let TileOptions;
-
-/**
- * @param {TileOptions} options TODO: repace this
- *
- * @param {number|undefined} options.transition A duration for tile opacity transitions. By default, tiles will render with
+ * @typedef {Object} TileOptions
+ * @property {number|undefined} transition A duration for tile opacity transitions. By default, tiles will render with
* an opacity transition that lasts 250 ms. To change the duration, pass a
* number in milliseconds. A duration of 0 disables the opacity transition.
- *
*/
/**
- * Object literal with options for the {@link ol.Map#forEachFeatureAtPixel} and
- * {@link ol.Map#hasFeatureAtPixel} methods.
- * @typedef {{layerFilter: ((function(ol.layer.Layer): boolean)|undefined),
- * hitTolerance: (number|undefined)}}
- */
-export let AtPixelOptions;
-
-/**
- * @param {AtPixelOptions} options TODO: repace this
- *
- * @param {((function(ol.layer.Layer): boolean)|undefined)} options.layerFilter Layer filter function. The filter function will receive one argument, the
+ * @typedef {Object} AtPixelOptions
+ * @property {((function(ol.layer.Layer): boolean)|undefined)} layerFilter Layer filter function. The filter function will receive one argument, the
* {@link ol.layer.Layer layer-candidate} and it should return a boolean value.
* Only layers which are visible and for which this function returns `true`
* will be tested for features. By default, all visible layers will be tested.
- *
- * @param {number|undefined} options.hitTolerance Hit-detection tolerance in pixels. Pixels inside the radius around the given position
+ * @property {number|undefined} hitTolerance Hit-detection tolerance in pixels. Pixels inside the radius around the given position
* will be checked for features. This only works for the canvas renderer and
* not for WebGL. Default is `0`.
- *
*/
/**
- * Object literal with config options for the overlay.
- * @typedef {{id: (number|string|undefined),
- * element: (Element|undefined),
- * offset: (Array.|undefined),
- * position: (ol.Coordinate|undefined),
- * positioning: (ol.OverlayPositioning|string|undefined),
- * stopEvent: (boolean|undefined),
- * insertFirst: (boolean|undefined),
- * autoPan: (boolean|undefined),
- * autoPanAnimation: (olx.OverlayPanOptions|undefined),
- * autoPanMargin: (number|undefined),
- * className: (string|undefined)}}
- */
-export let OverlayOptions;
-
-/**
- * @param {OverlayOptions} options TODO: repace this
- *
- * @param {number|string|undefined} options.id Set the overlay id. The overlay id can be used with the
+ * @typedef {Object} OverlayOptions
+ * @property {number|string|undefined} id Set the overlay id. The overlay id can be used with the
* {@link ol.Map#getOverlayById} method.
- *
- * @param {Element|undefined} options.element The overlay element.
- *
- * @param {Array.|undefined} options.offset Offsets in pixels used when positioning the overlay. The first element in the
+ * @property {Element|undefined} element The overlay element.
+ * @property {Array.|undefined} offset Offsets in pixels used when positioning the overlay. The first element in the
* array is the horizontal offset. A positive value shifts the overlay right.
* The second element in the array is the vertical offset. A positive value
* shifts the overlay down. Default is `[0, 0]`.
- *
- * @param {ol.Coordinate|undefined} options.position The overlay position in map projection.
- *
- * @param {ol.OverlayPositioning|string|undefined} options.positioning Defines how the overlay is actually positioned with respect to its `position`
+ * @property {ol.Coordinate|undefined} position The overlay position in map projection.
+ * @property {ol.OverlayPositioning|string|undefined} positioning Defines how the overlay is actually positioned with respect to its `position`
* property. Possible values are `'bottom-left'`, `'bottom-center'`,
* `'bottom-right'`, `'center-left'`, `'center-center'`, `'center-right'`,
* `'top-left'`, `'top-center'`, and `'top-right'`. Default is `'top-left'`.
- *
- * @param {boolean|undefined} options.stopEvent Whether event propagation to the map viewport should be stopped. Default is
+ * @property {boolean|undefined} stopEvent Whether event propagation to the map viewport should be stopped. Default is
* `true`. If `true` the overlay is placed in the same container as that of the
* controls (CSS class name `ol-overlaycontainer-stopevent`); if `false` it is
* placed in the container with CSS class name `ol-overlaycontainer`.
- *
- * @param {boolean|undefined} options.insertFirst Whether the overlay is inserted first in the overlay container, or appended.
+ * @property {boolean|undefined} insertFirst Whether the overlay is inserted first in the overlay container, or appended.
* Default is `true`. If the overlay is placed in the same container as that of
* the controls (see the `stopEvent` option) you will probably set `insertFirst`
* to `true` so the overlay is displayed below the controls.
- *
- * @param {boolean|undefined} options.autoPan If set to `true` the map is panned when calling `setPosition`, so that the
+ * @property {boolean|undefined} autoPan If set to `true` the map is panned when calling `setPosition`, so that the
* overlay is entirely visible in the current viewport.
* The default is `false`.
- *
- * @param {olx.OverlayPanOptions|undefined} options.autoPanAnimation The animation options used to pan the overlay into view. This animation
+ * @property {olx.OverlayPanOptions|undefined} autoPanAnimation The animation options used to pan the overlay into view. This animation
* is only used when `autoPan` is enabled. A `duration` and `easing` may be
* provided to customize the animation.
- *
- * @param {number|undefined} options.autoPanMargin The margin (in pixels) between the overlay and the borders of the map when
+ * @property {number|undefined} autoPanMargin The margin (in pixels) between the overlay and the borders of the map when
* autopanning. The default is `20`.
- *
- * @param {string|undefined} options.className CSS class name. Default is `ol-overlay-container ol-selectable`.
- *
+ * @property {string|undefined} className CSS class name. Default is `ol-overlay-container ol-selectable`.
*/
/**
- * @typedef {{
- * duration: (number|undefined),
- * easing: (undefined|function(number):number)
- * }}
- */
-export let OverlayPanOptions;
-
-/**
- * @param {OverlayPanOptions} options TODO: repace this
- *
- * @param {number|undefined} options.duration The duration of the animation in milliseconds. Default is `1000`.
- *
- * @param {undefined|function(number):number} options.easing The easing function to use. Can be an {@link ol.easing} or a custom function.
+ * @typedef {Object} OverlayPanOptions
+ * @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`.
+ * @property {undefined|function(number):number} easing The easing function to use. Can be an {@link ol.easing} or a custom function.
* Default is {@link ol.easing.inAndOut}.
- *
*/
/**
- * Object literal with config options for the projection.
- * @typedef {{code: string,
- * units: (ol.proj.Units|string|undefined),
- * extent: (ol.Extent|undefined),
- * axisOrientation: (string|undefined),
- * global: (boolean|undefined),
- * metersPerUnit: (number|undefined),
- * worldExtent: (ol.Extent|undefined),
- * getPointResolution: (function(number, ol.Coordinate):number|undefined) }}
- */
-export let ProjectionOptions;
-
-/**
- * @param {ProjectionOptions} options TODO: repace this
- *
- * @param {string} options.code The SRS identifier code, e.g. `EPSG:4326`.
- *
- * @param {ol.proj.Units|string|undefined} options.units Units. Required unless a proj4 projection is defined for `code`.
- *
- * @param {ol.Extent|undefined} options.extent The validity extent for the SRS.
- *
- * @param {string|undefined} options.axisOrientation The axis orientation as specified in Proj4. The default is `enu`.
- *
- * @param {boolean|undefined} options.global Whether the projection is valid for the whole globe. Default is `false`.
- *
- * @param {number|undefined} options.metersPerUnit The meters per unit for the SRS. If not provided, the `units` are used to get
+ * @typedef {Object} ProjectionOptions
+ * @property {string} code The SRS identifier code, e.g. `EPSG:4326`.
+ * @property {ol.proj.Units|string|undefined} units Units. Required unless a proj4 projection is defined for `code`.
+ * @property {ol.Extent|undefined} extent The validity extent for the SRS.
+ * @property {string|undefined} axisOrientation The axis orientation as specified in Proj4. The default is `enu`.
+ * @property {boolean|undefined} global Whether the projection is valid for the whole globe. Default is `false`.
+ * @property {number|undefined} metersPerUnit The meters per unit for the SRS. If not provided, the `units` are used to get
* the meters per unit from the {@link ol.proj.METERS_PER_UNIT} lookup table.
- *
- * @param {ol.Extent|undefined} options.worldExtent The world extent for the SRS.
- *
- * @param {(function(number, ol.Coordinate):number|undefined)} options.getPointResolution Function to determine resolution at a point. The function is called with a
+ * @property {ol.Extent|undefined} worldExtent The world extent for the SRS.
+ * @property {(function(number, ol.Coordinate):number|undefined)} getPointResolution Function to determine resolution at a point. The function is called with a
* `{number}` view resolution and an `{ol.Coordinate}` as arguments, and returns
* the `{number}` resolution at the passed coordinate. If this is `undefined`,
* the default {@link ol.proj#getPointResolution} function will be used.
- *
*/
/**
- * Object literal with config options for the view.
- * @typedef {{center: (ol.Coordinate|undefined),
- * constrainRotation: (boolean|number|undefined),
- * enableRotation: (boolean|undefined),
- * extent: (ol.Extent|undefined),
- * minResolution: (number|undefined),
- * maxResolution: (number|undefined),
- * minZoom: (number|undefined),
- * maxZoom: (number|undefined),
- * projection: ol.ProjectionLike,
- * resolution: (number|undefined),
- * resolutions: (Array.|undefined),
- * rotation: (number|undefined),
- * zoom: (number|undefined),
- * zoomFactor: (number|undefined)}}
- */
-export let ViewOptions;
-
-/**
- * @param {ViewOptions} options TODO: repace this
- *
- * @param {ol.Coordinate|undefined} options.center The initial center for the view. The coordinate system for the center is
+ * @typedef {Object} ViewOptions
+ * @property {ol.Coordinate|undefined} center The initial center for the view. The coordinate system for the center is
* specified with the `projection` option. Default is `undefined`, and layer
* sources will not be fetched if this is not set.
- *
- * @param {boolean|number|undefined} options.constrainRotation Rotation constraint. `false` means no constraint. `true` means no constraint,
+ * @property {boolean|number|undefined} constrainRotation Rotation constraint. `false` means no constraint. `true` means no constraint,
* but snap to zero near zero. A number constrains the rotation to that number
* of values. For example, `4` will constrain the rotation to 0, 90, 180, and
* 270 degrees. The default is `true`.
- *
- * @param {boolean|undefined} options.enableRotation Enable rotation. Default is `true`. If `false` a rotation constraint that
+ * @property {boolean|undefined} enableRotation Enable rotation. Default is `true`. If `false` a rotation constraint that
* always sets the rotation to zero is used. The `constrainRotation` option
* has no effect if `enableRotation` is `false`.
- *
- * @param {ol.Extent|undefined} options.extent The extent that constrains the center, in other words, center cannot be set
+ * @property {ol.Extent|undefined} extent The extent that constrains the center, in other words, center cannot be set
* outside this extent. Default is `undefined`.
- *
- * @param {number|undefined} options.maxResolution The maximum resolution used to determine the resolution constraint. It is
+ * @property {number|undefined} maxResolution The maximum resolution used to determine the resolution constraint. It is
* used together with `minResolution` (or `maxZoom`) and `zoomFactor`. If
* unspecified it is calculated in such a way that the projection's validity
* extent fits in a 256x256 px tile. If the projection is Spherical Mercator
* (the default) then `maxResolution` defaults to `40075016.68557849 / 256 =
* 156543.03392804097`.
- *
- * @param {number|undefined} options.minResolution The minimum resolution used to determine the resolution constraint. It is
+ * @property {number|undefined} minResolution The minimum resolution used to determine the resolution constraint. It is
* used together with `maxResolution` (or `minZoom`) and `zoomFactor`. If
* unspecified it is calculated assuming 29 zoom levels (with a factor of 2).
* If the projection is Spherical Mercator (the default) then `minResolution`
* defaults to `40075016.68557849 / 256 / Math.pow(2, 28) =
* 0.0005831682455839253`.
- *
- * @param {number|undefined} options.maxZoom The maximum zoom level used to determine the resolution constraint. It is
+ * @property {number|undefined} maxZoom The maximum zoom level used to determine the resolution constraint. It is
* used together with `minZoom` (or `maxResolution`) and `zoomFactor`. Default
* is `28`. Note that if `minResolution` is also provided, it is given
* precedence over `maxZoom`.
- *
- * @param {number|undefined} options.minZoom The minimum zoom level used to determine the resolution constraint. It is
+ * @property {number|undefined} minZoom The minimum zoom level used to determine the resolution constraint. It is
* used together with `maxZoom` (or `minResolution`) and `zoomFactor`. Default
* is `0`. Note that if `maxResolution` is also provided, it is given
* precedence over `minZoom`.
- *
- * @param {ol.ProjectionLike} options.projection The projection. Default is `EPSG:3857` (Spherical Mercator).
- *
- * @param {number|undefined} options.resolution The initial resolution for the view. The units are `projection` units per
+ * @property {ol.ProjectionLike} projection The projection. Default is `EPSG:3857` (Spherical Mercator).
+ * @property {number|undefined} resolution The initial resolution for the view. The units are `projection` units per
* pixel (e.g. meters per pixel). An alternative to setting this is to set
* `zoom`. Default is `undefined`, and layer sources will not be fetched if
* neither this nor `zoom` are defined.
- *
- * @param {Array.|undefined} options.resolutions Resolutions to determine the resolution constraint. If set the
+ * @property {Array.|undefined} resolutions Resolutions to determine the resolution constraint. If set the
* `maxResolution`, `minResolution`, `minZoom`, `maxZoom`, and `zoomFactor`
* options are ignored.
- *
- * @param {number|undefined} options.rotation The initial rotation for the view in radians (positive rotation clockwise).
+ * @property {number|undefined} rotation The initial rotation for the view in radians (positive rotation clockwise).
* Default is `0`.
- *
- * @param {number|undefined} options.zoom Only used if `resolution` is not defined. Zoom level used to calculate the
+ * @property {number|undefined} zoom Only used if `resolution` is not defined. Zoom level used to calculate the
* initial resolution for the view. The initial resolution is determined using
* the `ol.View#constrainResolution` method.
- *
- * @param {number|undefined} options.zoomFactor The zoom factor used to determine the resolution constraint. Default is `2`.
- *
+ * @property {number|undefined} zoomFactor The zoom factor used to determine the resolution constraint. Default is `2`.
*/
/**
- * @typedef {{
- * center: (ol.Coordinate|undefined),
- * zoom: (number|undefined),
- * resolution: (number|undefined),
- * rotation: (number|undefined),
- * anchor: (ol.Coordinate|undefined),
- * duration: (number|undefined),
- * easing: (undefined|function(number):number)
- * }}
- */
-export let AnimationOptions;
-
-/**
- * @param {AnimationOptions} options TODO: repace this
- *
- * @param {ol.Coordinate|undefined} options.center The center of the view at the end of the animation.
- *
- * @param {number|undefined} options.zoom The zoom level of the view at the end of the animation. This takes
+ * @typedef {Object} AnimationOptions
+ * @property {ol.Coordinate|undefined} center The center of the view at the end of the animation.
+ * @property {number|undefined} zoom The zoom level of the view at the end of the animation. This takes
* precedence over `resolution`.
- *
- * @param {number|undefined} options.resolution The resolution of the view at the end of the animation. If `zoom` is also
+ * @property {number|undefined} resolution The resolution of the view at the end of the animation. If `zoom` is also
* provided, this option will be ignored.
- *
- * @param {number|undefined} options.rotation The rotation of the view at the end of the animation.
- *
- * @param {ol.Coordinate|undefined} options.anchor Optional anchor to remained fixed during a rotation or resolution animation.
- *
- * @param {number|undefined} options.duration The duration of the animation in milliseconds (defaults to `1000`).
- *
- * @param {undefined|function(number):number} options.easing The easing function used during the animation (defaults to {@link ol.easing.inAndOut}).
+ * @property {number|undefined} rotation The rotation of the view at the end of the animation.
+ * @property {ol.Coordinate|undefined} anchor Optional anchor to remained fixed during a rotation or resolution animation.
+ * @property {number|undefined} duration The duration of the animation in milliseconds (defaults to `1000`).
+ * @property {undefined|function(number):number} easing The easing function used during the animation (defaults to {@link ol.easing.inAndOut}).
* The function will be called for each frame with a number representing a
* fraction of the animation's duration. The function should return a number
* between 0 and 1 representing the progress toward the destination state.
- *
*/
/**
- * @typedef {{className: (string|undefined),
- * collapsible: (boolean|undefined),
- * collapsed: (boolean|undefined),
- * tipLabel: (string|undefined),
- * label: (string|Node|undefined),
- * collapseLabel: (string|Node|undefined),
- * render: (function(ol.MapEvent)|undefined),
- * target: (Element|string|undefined)}}
- */
-export let control_AttributionOptions;
-
-/**
- * @param {control_AttributionOptions} options TODO: repace this
- *
- * @param {string|undefined} options.className CSS class name. Default is `ol-attribution`.
- *
- * @param {Element|string|undefined} options.target Specify a target if you want the control to be rendered outside of the map's
+ * @typedef {Object} control_AttributionOptions
+ * @property {string|undefined} className CSS class name. Default is `ol-attribution`.
+ * @property {Element|string|undefined} target Specify a target if you want the control to be rendered outside of the map's
* viewport.
- *
- * @param {boolean|undefined} options.collapsible Specify if attributions can be collapsed. If you use an OSM source,
+ * @property {boolean|undefined} collapsible Specify if attributions can be collapsed. If you use an OSM source,
* should be set to `false` — see
* {@link https://www.openstreetmap.org/copyright OSM Copyright} —
* Default is `true`.
- *
- * @param {boolean|undefined} options.collapsed Specify if attributions should be collapsed at startup. Default is `true`.
- *
- * @param {string|undefined} options.tipLabel Text label to use for the button tip. Default is `Attributions`
- *
- * @param {string|Node|undefined} options.label Text label to use for the collapsed attributions button. Default is `i`.
+ * @property {boolean|undefined} collapsed Specify if attributions should be collapsed at startup. Default is `true`.
+ * @property {string|undefined} tipLabel Text label to use for the button tip. Default is `Attributions`
+ * @property {string|Node|undefined} label Text label to use for the collapsed attributions button. Default is `i`.
* Instead of text, also a Node (e.g. a `span` element) can be used.
- *
- * @param {string|Node|undefined} options.collapseLabel Text label to use for the expanded attributions button. Default is `»`.
+ * @property {string|Node|undefined} collapseLabel Text label to use for the expanded attributions button. Default is `»`.
* Instead of text, also a Node (e.g. a `span` element) can be used.
- *
- * @param {function(ol.MapEvent)|undefined} options.render Function called when the control should be re-rendered. This is called
+ * @property {function(ol.MapEvent)|undefined} render Function called when the control should be re-rendered. This is called
* in a requestAnimationFrame callback.
- *
*/
/**
- * @typedef {{element: (Element|undefined),
- * render: (function(ol.MapEvent)|undefined),
- * target: (Element|string|undefined)}}
- */
-export let control_ControlOptions;
-
-/**
- * @param {control_ControlOptions} options TODO: repace this
- *
- * @param {Element|undefined} options.element The element is the control's container element. This only needs to be
+ * @typedef {Object} control_ControlOptions
+ * @property {Element|undefined} element The element is the control's container element. This only needs to be
* specified if you're developing a custom control.
- *
- * @param {function(ol.MapEvent)|undefined} options.render Function called when the control should be re-rendered. This is called
+ * @property {function(ol.MapEvent)|undefined} render Function called when the control should be re-rendered. This is called
* in a requestAnimationFrame callback.
- *
- * @param {Element|string|undefined} options.target Specify a target if you want the control to be rendered outside of the map's
+ * @property {Element|string|undefined} target Specify a target if you want the control to be rendered outside of the map's
* viewport.
- *
*/
/**
- * @typedef {{attribution: (boolean|undefined),
- * attributionOptions: (olx.control.AttributionOptions|undefined),
- * rotate: (boolean|undefined),
- * rotateOptions: (olx.control.RotateOptions|undefined),
- * zoom: (boolean|undefined),
- * zoomOptions: (olx.control.ZoomOptions|undefined)}}
- */
-export let control_DefaultsOptions;
-
-/**
- * @param {control_DefaultsOptions} options TODO: repace this
- *
- * @param {boolean|undefined} options.attribution Attribution. Default is `true`.
- *
- * @param {olx.control.AttributionOptions|undefined} options.attributionOptions Attribution options.
- *
- * @param {boolean|undefined} options.rotate Rotate. Default is `true`.
- *
- * @param {olx.control.RotateOptions|undefined} options.rotateOptions Rotate options.
- *
- * @param {boolean|undefined} options.zoom Zoom. Default is `true`.
- *
- * @param {olx.control.ZoomOptions|undefined} options.zoomOptions Zoom options.
- *
+ * @typedef {Object} control_DefaultsOptions
+ * @property {boolean|undefined} attribution Attribution. Default is `true`.
+ * @property {olx.control.AttributionOptions|undefined} attributionOptions Attribution options.
+ * @property {boolean|undefined} rotate Rotate. Default is `true`.
+ * @property {olx.control.RotateOptions|undefined} rotateOptions Rotate options.
+ * @property {boolean|undefined} zoom Zoom. Default is `true`.
+ * @property {olx.control.ZoomOptions|undefined} zoomOptions Zoom options.
*/
/**
- * @typedef {{className: (string|undefined),
- * label: (string|Node|undefined),
- * labelActive: (string|Node|undefined),
- * tipLabel: (string|undefined),
- * keys: (boolean|undefined),
- * target: (Element|string|undefined),
- * source: (Element|string|undefined)}}
- */
-export let control_FullScreenOptions;
-
-/**
- * @param {control_FullScreenOptions} options TODO: repace this
- *
- * @param {string|undefined} options.className CSS class name. Default is `ol-full-screen`.
- *
- * @param {string|Node|undefined} options.label Text label to use for the button. Default is `\u2922` (NORTH EAST AND SOUTH WEST ARROW).
+ * @typedef {Object} control_FullScreenOptions
+ * @property {string|undefined} className CSS class name. Default is `ol-full-screen`.
+ * @property {string|Node|undefined} label Text label to use for the button. Default is `\u2922` (NORTH EAST AND SOUTH WEST ARROW).
* Instead of text, also a Node (e.g. a `span` element) can be used.
- *
- * @param {string|Node|undefined} options.labelActive Text label to use for the button when full-screen is active.
+ * @property {string|Node|undefined} labelActive Text label to use for the button when full-screen is active.
* Default is `\u00d7` (a cross).
* Instead of text, also a Node (e.g. a `span` element) can be used.
- *
- * @param {string|undefined} options.tipLabel Text label to use for the button tip. Default is `Toggle full-screen`
- *
- * @param {boolean|undefined} options.keys Full keyboard access.
- *
- * @param {Element|string|undefined} options.target Specify a target if you want the control to be rendered outside of the map's
+ * @property {string|undefined} tipLabel Text label to use for the button tip. Default is `Toggle full-screen`
+ * @property {boolean|undefined} keys Full keyboard access.
+ * @property {Element|string|undefined} target Specify a target if you want the control to be rendered outside of the map's
* viewport.
- *
- * @param {Element|string|undefined} options.source The element to be displayed fullscreen. When not provided, the element containing the map viewport will be displayed fullscreen.
- *
+ * @property {Element|string|undefined} source The element to be displayed fullscreen. When not provided, the element containing the map viewport will be displayed fullscreen.
*/
/**
- * @typedef {{className: (string|undefined),
- * coordinateFormat: (ol.CoordinateFormatType|undefined),
- * projection: ol.ProjectionLike,
- * render: (function(ol.MapEvent)|undefined),
- * target: (Element|string|undefined),
- * undefinedHTML: (string|undefined)}}
- */
-export let control_MousePositionOptions;
-
-/**
- * @param {control_MousePositionOptions} options TODO: repace this
- *
- * @param {string|undefined} options.className CSS class name. Default is `ol-mouse-position`.
- *
- * @param {ol.CoordinateFormatType|undefined} options.coordinateFormat Coordinate format.
- *
- * @param {ol.ProjectionLike} options.projection Projection.
- *
- * @param {function(ol.MapEvent)|undefined} options.render Function called when the control should be re-rendered. This is called
+ * @typedef {Object} control_MousePositionOptions
+ * @property {string|undefined} className CSS class name. Default is `ol-mouse-position`.
+ * @property {ol.CoordinateFormatType|undefined} coordinateFormat Coordinate format.
+ * @property {ol.ProjectionLike} projection Projection.
+ * @property {function(ol.MapEvent)|undefined} render Function called when the control should be re-rendered. This is called
* in a requestAnimationFrame callback.
- *
- * @param {Element|string|undefined} options.target Specify a target if you want the control to be rendered outside of the map's
+ * @property {Element|string|undefined} target Specify a target if you want the control to be rendered outside of the map's
* viewport.
- *
- * @param {string|undefined} options.undefinedHTML Markup for undefined coordinates. Default is `` (empty string).
- *
+ * @property {string|undefined} undefinedHTML Markup for undefined coordinates. Default is `` (empty string).
*/
/**
- * @typedef {{collapsed: (boolean|undefined),
- * collapseLabel: (string|Node|undefined),
- * collapsible: (boolean|undefined),
- * label: (string|Node|undefined),
- * layers: (Array.|ol.Collection.|undefined),
- * render: (function(ol.MapEvent)|undefined),
- * target: (Element|string|undefined),
- * tipLabel: (string|undefined),
- * view: (ol.View|undefined)}}
- */
-export let control_OverviewMapOptions;
-
-/**
- * @param {control_OverviewMapOptions} options TODO: repace this
- *
- * @param {boolean|undefined} options.collapsed Whether the control should start collapsed or not (expanded).
+ * @typedef {Object} control_OverviewMapOptions
+ * @property {boolean|undefined} collapsed Whether the control should start collapsed or not (expanded).
* Default to `true`.
- *
- * @param {string|Node|undefined} options.collapseLabel Text label to use for the expanded overviewmap button. Default is `«`.
+ * @property {string|Node|undefined} collapseLabel Text label to use for the expanded overviewmap button. Default is `«`.
* Instead of text, also a Node (e.g. a `span` element) can be used.
- *
- * @param {boolean|undefined} options.collapsible Whether the control can be collapsed or not. Default to `true`.
- *
- * @param {string|Node|undefined} options.label Text label to use for the collapsed overviewmap button. Default is `»`.
+ * @property {boolean|undefined} collapsible Whether the control can be collapsed or not. Default to `true`.
+ * @property {string|Node|undefined} label Text label to use for the collapsed overviewmap button. Default is `»`.
* Instead of text, also a Node (e.g. a `span` element) can be used.
- *
- * @param {Array.|ol.Collection.|undefined} options.layers Layers for the overview map. If not set, then all main map layers are used
+ * @property {Array.|ol.Collection.|undefined} layers Layers for the overview map. If not set, then all main map layers are used
* instead.
- *
- * @param {function(ol.MapEvent)|undefined} options.render Function called when the control should be re-rendered. This is called
+ * @property {function(ol.MapEvent)|undefined} render Function called when the control should be re-rendered. This is called
* in a requestAnimationFrame callback.
- *
- * @param {Element|string|undefined} options.target Specify a target if you want the control to be rendered outside of the map's
+ * @property {Element|string|undefined} target Specify a target if you want the control to be rendered outside of the map's
* viewport.
- *
- * @param {string|undefined} options.tipLabel Text label to use for the button tip. Default is `Overview map`
- *
- * @param {ol.View|undefined} options.view Custom view for the overview map. If not provided, a default view with
+ * @property {string|undefined} tipLabel Text label to use for the button tip. Default is `Overview map`
+ * @property {ol.View|undefined} view Custom view for the overview map. If not provided, a default view with
* an EPSG:3857 projection will be used.
- *
*/
/**
- * @typedef {{className: (string|undefined),
- * minWidth: (number|undefined),
- * render: (function(ol.MapEvent)|undefined),
- * target: (Element|string|undefined),
- * units: (ol.control.ScaleLineUnits|string|undefined)}}
- */
-export let control_ScaleLineOptions;
-
-/**
- * @param {control_ScaleLineOptions} options TODO: repace this
- *
- * @param {string|undefined} options.className CSS Class name. Default is `ol-scale-line`.
- *
- * @param {number|undefined} options.minWidth Minimum width in pixels. Default is `64`.
- *
- * @param {function(ol.MapEvent)|undefined} options.render Function called when the control should be re-rendered. This is called
+ * @typedef {Object} control_ScaleLineOptions
+ * @property {string|undefined} className CSS Class name. Default is `ol-scale-line`.
+ * @property {number|undefined} minWidth Minimum width in pixels. Default is `64`.
+ * @property {function(ol.MapEvent)|undefined} render Function called when the control should be re-rendered. This is called
* in a requestAnimationFrame callback.
- *
- * @param {Element|string|undefined} options.target Specify a target if you want the control to be rendered outside of the map's
+ * @property {Element|string|undefined} target Specify a target if you want the control to be rendered outside of the map's
* viewport.
- *
- * @param {ol.control.ScaleLineUnits|string|undefined} options.units Units. Default is `metric`.
- *
+ * @property {ol.control.ScaleLineUnits|string|undefined} units Units. Default is `metric`.
*/
/**
- * @typedef {{duration: (number|undefined),
- * className: (string|undefined),
- * label: (string|Element|undefined),
- * tipLabel: (string|undefined),
- * target: (Element|string|undefined),
- * render: (function(ol.MapEvent)|undefined),
- * resetNorth: (function()|undefined),
- * autoHide: (boolean|undefined)}}
- */
-export let control_RotateOptions;
-
-/**
- * @param {control_RotateOptions} options TODO: repace this
- *
- * @param {string|undefined} options.className CSS class name. Default is `ol-rotate`.
- *
- * @param {string|Element|undefined} options.label Text label to use for the rotate button. Default is `⇧`.
+ * @typedef {Object} control_RotateOptions
+ * @property {string|undefined} className CSS class name. Default is `ol-rotate`.
+ * @property {string|Element|undefined} label Text label to use for the rotate button. Default is `⇧`.
* Instead of text, also a Node (e.g. a `span` element) can be used.
- *
- * @param {string|undefined} options.tipLabel Text label to use for the rotate tip. Default is `Reset rotation`
- *
- * @param {number|undefined} options.duration Animation duration in milliseconds. Default is `250`.
- *
- * @param {boolean|undefined} options.autoHide Hide the control when rotation is 0. Default is `true`.
- *
- * @param {function(ol.MapEvent)|undefined} options.render Function called when the control should be re-rendered. This is called
+ * @property {string|undefined} tipLabel Text label to use for the rotate tip. Default is `Reset rotation`
+ * @property {number|undefined} duration Animation duration in milliseconds. Default is `250`.
+ * @property {boolean|undefined} autoHide Hide the control when rotation is 0. Default is `true`.
+ * @property {function(ol.MapEvent)|undefined} render Function called when the control should be re-rendered. This is called
* in a requestAnimationFrame callback.
- *
- * @param {function()|undefined} options.resetNorth Function called when the control is clicked. This will override the
+ * @property {function()|undefined} resetNorth Function called when the control is clicked. This will override the
* default resetNorth.
- *
- * @param {Element|string|undefined} options.target Specify a target if you want the control to be rendered outside of the map's
+ * @property {Element|string|undefined} target Specify a target if you want the control to be rendered outside of the map's
* viewport.
- *
*/
/**
- * @typedef {{duration: (number|undefined),
- * className: (string|undefined),
- * zoomInLabel: (string|Node|undefined),
- * zoomOutLabel: (string|Node|undefined),
- * zoomInTipLabel: (string|undefined),
- * zoomOutTipLabel: (string|undefined),
- * delta: (number|undefined),
- * target: (Element|string|undefined)}}
- */
-export let control_ZoomOptions;
-
-/**
- * @param {control_ZoomOptions} options TODO: repace this
- *
- * @param {number|undefined} options.duration Animation duration in milliseconds. Default is `250`.
- *
- * @param {string|undefined} options.className CSS class name. Default is `ol-zoom`.
- *
- * @param {string|Node|undefined} options.zoomInLabel Text label to use for the zoom-in button. Default is `+`.
+ * @typedef {Object} control_ZoomOptions
+ * @property {number|undefined} duration Animation duration in milliseconds. Default is `250`.
+ * @property {string|undefined} className CSS class name. Default is `ol-zoom`.
+ * @property {string|Node|undefined} zoomInLabel Text label to use for the zoom-in button. Default is `+`.
* Instead of text, also a Node (e.g. a `span` element) can be used.
- *
- * @param {string|Node|undefined} options.zoomOutLabel Text label to use for the zoom-out button. Default is `-`.
+ * @property {string|Node|undefined} zoomOutLabel Text label to use for the zoom-out button. Default is `-`.
* Instead of text, also a Node (e.g. a `span` element) can be used.
- *
- * @param {string|undefined} options.zoomInTipLabel Text label to use for the button tip. Default is `Zoom in`
- *
- * @param {string|undefined} options.zoomOutTipLabel Text label to use for the button tip. Default is `Zoom out`
- *
- * @param {number|undefined} options.delta The zoom delta applied on each click.
- *
- * @param {Element|string|undefined} options.target Specify a target if you want the control to be rendered outside of the map's
+ * @property {string|undefined} zoomInTipLabel Text label to use for the button tip. Default is `Zoom in`
+ * @property {string|undefined} zoomOutTipLabel Text label to use for the button tip. Default is `Zoom out`
+ * @property {number|undefined} delta The zoom delta applied on each click.
+ * @property {Element|string|undefined} target Specify a target if you want the control to be rendered outside of the map's
* viewport.
- *
*/
/**
- * @typedef {{className: (string|undefined),
- * duration: (number|undefined),
- * maxResolution: (number|undefined),
- * minResolution: (number|undefined),
- * render: (function(ol.MapEvent)|undefined)}}
- */
-export let control_ZoomSliderOptions;
-
-/**
- * @param {control_ZoomSliderOptions} options TODO: repace this
- *
- * @param {string|undefined} options.className CSS class name.
- *
- * @param {number|undefined} options.duration Animation duration in milliseconds. Default is `200`.
- *
- * @param {number|undefined} options.maxResolution Maximum resolution.
- *
- * @param {number|undefined} options.minResolution Minimum resolution.
- *
- * @param {function(ol.MapEvent)|undefined} options.render Function called when the control should be re-rendered. This is called
+ * @typedef {Object} control_ZoomSliderOptions
+ * @property {string|undefined} className CSS class name.
+ * @property {number|undefined} duration Animation duration in milliseconds. Default is `200`.
+ * @property {number|undefined} maxResolution Maximum resolution.
+ * @property {number|undefined} minResolution Minimum resolution.
+ * @property {function(ol.MapEvent)|undefined} render Function called when the control should be re-rendered. This is called
* in a requestAnimationFrame callback.
- *
*/
/**
- * @typedef {{className: (string|undefined),
- * target: (Element|string|undefined),
- * label: (string|Node|undefined),
- * tipLabel: (string|undefined),
- * extent: (ol.Extent|undefined)}}
- */
-export let control_ZoomToExtentOptions;
-
-/**
- * @param {control_ZoomToExtentOptions} options TODO: repace this
- *
- * @param {string|undefined} options.className Class name. Default is `ol-zoom-extent`.
- *
- * @param {Element|string|undefined} options.target Specify a target if you want the control to be rendered outside of the map's
+ * @typedef {Object} control_ZoomToExtentOptions
+ * @property {string|undefined} className Class name. Default is `ol-zoom-extent`.
+ * @property {Element|string|undefined} target Specify a target if you want the control to be rendered outside of the map's
* viewport.
- *
- * @param {string|Node|undefined} options.label Text label to use for the button. Default is `E`.
+ * @property {string|Node|undefined} label Text label to use for the button. Default is `E`.
* Instead of text, also a Node (e.g. a `span` element) can be used.
- *
- * @param {string|undefined} options.tipLabel Text label to use for the button tip. Default is `Zoom to extent`
- *
- * @param {ol.Extent|undefined} options.extent The extent to zoom to. If undefined the validity extent of the view
+ * @property {string|undefined} tipLabel Text label to use for the button tip. Default is `Zoom to extent`
+ * @property {ol.Extent|undefined} extent The extent to zoom to. If undefined the validity extent of the view
* projection is used.
- *
*/
/**
- * @typedef {{dataProjection: ol.ProjectionLike,
- * extent: (ol.Extent|undefined),
- * featureProjection: ol.ProjectionLike,
- * rightHanded: (boolean|undefined)}}
- */
-export let format_ReadOptions;
-
-/**
- * @param {format_ReadOptions} options TODO: repace this
- *
- * @param {ol.ProjectionLike} options.dataProjection Projection of the data we are reading. If not provided, the projection will
+ * @typedef {Object} format_ReadOptions
+ * @property {ol.ProjectionLike} dataProjection Projection of the data we are reading. If not provided, the projection will
* be derived from the data (where possible) or the `defaultDataProjection` of
* the format is assigned (where set). If the projection can not be derived from
* the data and if no `defaultDataProjection` is set for a format, the features
* will not be reprojected.
- *
- * @param {ol.Extent} options.extent Tile extent of the tile being read. This is only used and required for
+ * @property {ol.Extent} extent Tile extent of the tile being read. This is only used and required for
* {@link ol.format.MVT}.
- *
- * @param {ol.ProjectionLike} options.featureProjection Projection of the feature geometries created by the format reader. If not
+ * @property {ol.ProjectionLike} featureProjection Projection of the feature geometries created by the format reader. If not
* provided, features will be returned in the `dataProjection`.
- *
*/
/**
- * @typedef {{dataProjection: ol.ProjectionLike,
- * featureProjection: ol.ProjectionLike,
- * rightHanded: (boolean|undefined),
- * decimals: (number|undefined)}}
- */
-export let format_WriteOptions;
-
-/**
- * @param {format_WriteOptions} options TODO: repace this
- *
- * @param {ol.ProjectionLike} options.dataProjection Projection of the data we are writing. If not provided, the
+ * @typedef {Object} format_WriteOptions
+ * @property {ol.ProjectionLike} dataProjection Projection of the data we are writing. If not provided, the
* `defaultDataProjection` of the format is assigned (where set). If no
* `defaultDataProjection` is set for a format, the features will be returned
* in the `featureProjection`.
- *
- * @param {ol.ProjectionLike} options.featureProjection Projection of the feature geometries that will be serialized by the format
+ * @property {ol.ProjectionLike} featureProjection Projection of the feature geometries that will be serialized by the format
* writer. If not provided, geometries are assumed to be in the
* `dataProjection` if that is set; in other words, they are not transformed.
- *
- * @param {boolean|undefined} options.rightHanded When writing geometries, follow the right-hand rule for linear ring
+ * @property {boolean|undefined} rightHanded When writing geometries, follow the right-hand rule for linear ring
* orientation. This means that polygons will have counter-clockwise exterior
* rings and clockwise interior rings. By default, coordinates are serialized
* as they are provided at construction. If `true`, the right-hand rule will
@@ -956,122 +339,64 @@ export let format_WriteOptions;
* formats support this. The GeoJSON format does use this property when writing
* geometries.
*
- *
- * @param {number|undefined} options.decimals Maximum number of decimal places for coordinates. Coordinates are stored
+ * @property {number|undefined} decimals Maximum number of decimal places for coordinates. Coordinates are stored
* internally as floats, but floating-point arithmetic can create coordinates
* with a large number of decimal places, not generally wanted on output.
* Set a number here to round coordinates. Can also be used to ensure that
* coordinates read in can be written back out with the same number of decimals.
* Default is no rounding.
*
- *
*/
/**
- * @typedef {{defaultDataProjection: ol.ProjectionLike,
- * geometryName: (string|undefined),
- * extractGeometryName: (boolean|undefined),
- * featureProjection: ol.ProjectionLike}}
- */
-export let format_GeoJSONOptions;
-
-/**
- * @param {format_GeoJSONOptions} options TODO: repace this
- *
- * @param {ol.ProjectionLike} options.defaultDataProjection Default data projection. Default is `EPSG:4326`.
- *
- * @param {ol.ProjectionLike} options.featureProjection Projection for features read or written by the format. Options passed to
+ * @typedef {Object} format_GeoJSONOptions
+ * @property {ol.ProjectionLike} defaultDataProjection Default data projection. Default is `EPSG:4326`.
+ * @property {ol.ProjectionLike} featureProjection Projection for features read or written by the format. Options passed to
* read or write methods will take precedence.
- *
- * @param {string|undefined} options.geometryName Geometry name to use when creating features.
- *
- * @param {boolean|undefined} options.extractGeometryName Certain GeoJSON providers include the geometry_name field in the feature
+ * @property {string|undefined} geometryName Geometry name to use when creating features.
+ * @property {boolean|undefined} extractGeometryName Certain GeoJSON providers include the geometry_name field in the feature
* geoJSON. If set to `true` the geoJSON reader will look for that field to
* set the geometry name. If both this field is set to `true` and a
* `geometryName` is provided, the `geometryName` will take precedence.
* Default is `false`.
- *
*/
/**
- * @typedef {{geometryName: (string|undefined)}}
- */
-export let format_EsriJSONOptions;
-
-/**
- * @param {format_EsriJSONOptions} options TODO: repace this
- *
- * @param {string|undefined} options.geometryName Geometry name to use when creating features.
- *
+ * @typedef {Object} format_EsriJSONOptions
+ * @property {string|undefined} geometryName Geometry name to use when creating features.
*/
/**
- * @typedef {{featureClass: (function((ol.geom.Geometry|Object.)=)|
- * function(ol.geom.GeometryType,Array.,
- * (Array.|Array.>),Object.)|
- * undefined),
- * geometryName: (string|undefined),
- * layers: (Array.|undefined),
- * layerName: (string|undefined)}}
- */
-export let format_MVTOptions;
-
-/**
- * @param {format_MVTOptions} options TODO: repace this
- *
- * @param {undefined|function((ol.geom.Geometry|Object.)=)| function(ol.geom.GeometryType,Array.,
+ * @typedef {Object} format_MVTOptions
+ * @property {undefined|function((ol.geom.Geometry|Object.)=)| function(ol.geom.GeometryType,Array.,
(Array.|Array.>),Object.,number)}
- options.featureClass Class for features returned by {@link ol.format.MVT#readFeatures}. Set to
+ featureClass Class for features returned by {@link ol.format.MVT#readFeatures}. Set to
* {@link ol.Feature} to get full editing and geometry support at the cost of
* decreased rendering performance. The default is {@link ol.render.Feature},
* which is optimized for rendering and hit detection.
- *
- * @param {string|undefined} options.geometryName Geometry name to use when creating features. Default is 'geometry'.
- *
- * @param {string|undefined} options.layerName Name of the feature attribute that holds the layer name. Default is 'layer'.
- *
- * @param {Array.|undefined} options.layers Layers to read features from. If not provided, features will be read from all
+ * @property {string|undefined} geometryName Geometry name to use when creating features. Default is 'geometry'.
+ * @property {string|undefined} layerName Name of the feature attribute that holds the layer name. Default is 'layer'.
+ * @property {Array.|undefined} layers Layers to read features from. If not provided, features will be read from all
* layers.
- *
*/
/**
- * @typedef {{factor: (number|undefined),
- * geometryLayout: (ol.geom.GeometryLayout|undefined)}}
- */
-export let format_PolylineOptions;
-
-/**
- * @param {format_PolylineOptions} options TODO: repace this
- *
- * @param {number|undefined} options.factor The factor by which the coordinates values will be scaled.
+ * @typedef {Object} format_PolylineOptions
+ * @property {number|undefined} factor The factor by which the coordinates values will be scaled.
* Default is `1e5`.
- *
- * @param {ol.geom.GeometryLayout|undefined} options.geometryLayout Layout of the feature geometries created by the format reader.
+ * @property {ol.geom.GeometryLayout|undefined} geometryLayout Layout of the feature geometries created by the format reader.
* Default is `ol.geom.GeometryLayout.XY`.
- *
*/
/**
- * @typedef {{
- * defaultDataProjection: ol.ProjectionLike,
- * layerName: (string|undefined),
- * layers: (Array.|undefined)
- * }}
- */
-export let format_TopoJSONOptions;
-
-/**
- * @param {format_TopoJSONOptions} options TODO: repace this
- *
- * @param {ol.ProjectionLike} options.defaultDataProjection Default data projection. Default is `EPSG:4326`.
- *
- * @param {string|undefined} options.layerName Set the name of the TopoJSON topology `objects`'s children as feature
+ * @typedef {Object} format_TopoJSONOptions
+ * @property {ol.ProjectionLike} defaultDataProjection Default data projection. Default is `EPSG:4326`.
+ * @property {string|undefined} layerName Set the name of the TopoJSON topology `objects`'s children as feature
* property with the specified name. This means that when set to `'layer'`, a
* topology like
* ```
@@ -1087,804 +412,388 @@ export let format_TopoJSONOptions;
* ```
* will result in features that have a property `'layer'` set to `'example'`.
* When not set, no property will be added to features.
- *
- * @param {Array.|undefined} options.layers Names of the TopoJSON topology's `objects`'s children to read features from.
+ * @property {Array.|undefined} layers Names of the TopoJSON topology's `objects`'s children to read features from.
* If not provided, features will be read from all children.
- *
*/
/**
- * @typedef {{altitudeMode: (ol.format.IGCZ|undefined)}}
- */
-export let format_IGCOptions;
-
-/**
- * @param {format_IGCOptions} options TODO: repace this
- *
- * @param {ol.format.IGCZ|undefined} options.altitudeMode Altitude mode. Possible values are `barometric`, `gps`, and `none`. Default
+ * @typedef {Object} format_IGCOptions
+ * @property {ol.format.IGCZ|undefined} altitudeMode Altitude mode. Possible values are `barometric`, `gps`, and `none`. Default
* is `none`.
- *
*/
/**
- * @typedef {{extractStyles: (boolean|undefined),
- * defaultStyle: (Array.|undefined),
- * showPointNames: (boolean|undefined),
- * writeStyles: (boolean|undefined)}}
- */
-export let format_KMLOptions;
-
-/**
- * @param {format_KMLOptions} options TODO: repace this
- *
- * @param {boolean|undefined} options.extractStyles Extract styles from the KML. Default is `true`.
- *
- * @param {boolean|undefined} options.showPointNames Show names as labels for placemarks which contain points. Default is `true`.
- *
- * @param {Array.|undefined} options.defaultStyle Default style. The default default style is the same as Google Earth.
- *
- * @param {boolean|undefined} options.writeStyles Write styles into KML. Default is `true`.
- *
+ * @typedef {Object} format_KMLOptions
+ * @property {boolean|undefined} extractStyles Extract styles from the KML. Default is `true`.
+ * @property {boolean|undefined} showPointNames Show names as labels for placemarks which contain points. Default is `true`.
+ * @property {Array.|undefined} defaultStyle Default style. The default default style is the same as Google Earth.
+ * @property {boolean|undefined} writeStyles Write styles into KML. Default is `true`.
*/
/**
- * @typedef {{featureNS: (Object.|string|undefined),
- * featureType: (Array.|string|undefined),
- * srsName: string,
- * surface: (boolean|undefined),
- * curve: (boolean|undefined),
- * multiCurve: (boolean|undefined),
- * multiSurface: (boolean|undefined),
- * schemaLocation: (string|undefined)}}
- */
-export let format_GMLOptions;
-
-/**
- * @param {format_GMLOptions} options TODO: repace this
- *
- * @param {Object.|string|undefined} options.featureNS Feature namespace. If not defined will be derived from GML. If multiple
+ * @typedef {Object} format_GMLOptions
+ * @property {Object.|string|undefined} featureNS Feature namespace. If not defined will be derived from GML. If multiple
* feature types have been configured which come from different feature
* namespaces, this will be an object with the keys being the prefixes used
* in the entries of featureType array. The values of the object will be the
* feature namespaces themselves. So for instance there might be a featureType
* item `topp:states` in the `featureType` array and then there will be a key
* `topp` in the featureNS object with value `http://www.openplans.org/topp`.
- *
- * @param {Array.|string|undefined} options.featureType Feature type(s) to parse. If multiple feature types need to be configured
+ * @property {Array.|string|undefined} featureType Feature type(s) to parse. If multiple feature types need to be configured
* which come from different feature namespaces, `featureNS` will be an object
* with the keys being the prefixes used in the entries of featureType array.
* The values of the object will be the feature namespaces themselves.
* So for instance there might be a featureType item `topp:states` and then
* there will be a key named `topp` in the featureNS object with value
* `http://www.openplans.org/topp`.
- *
- * @param {string} options.srsName srsName to use when writing geometries.
- *
- * @param {boolean|undefined} options.surface Write gml:Surface instead of gml:Polygon elements. This also affects the
+ * @property {string} srsName srsName to use when writing geometries.
+ * @property {boolean|undefined} surface Write gml:Surface instead of gml:Polygon elements. This also affects the
* elements in multi-part geometries. Default is `false`.
- *
- * @param {boolean|undefined} options.curve Write gml:Curve instead of gml:LineString elements. This also affects the
+ * @property {boolean|undefined} curve Write gml:Curve instead of gml:LineString elements. This also affects the
* elements in multi-part geometries. Default is `false`.
- *
- * @param {boolean|undefined} options.multiCurve Write gml:MultiCurve instead of gml:MultiLineString. Since the latter is
+ * @property {boolean|undefined} multiCurve Write gml:MultiCurve instead of gml:MultiLineString. Since the latter is
* deprecated in GML 3, the default is `true`.
- *
- * @param {boolean|undefined} options.multiSurface Write gml:multiSurface instead of gml:MultiPolygon. Since the latter is
+ * @property {boolean|undefined} multiSurface Write gml:multiSurface instead of gml:MultiPolygon. Since the latter is
* deprecated in GML 3, the default is `true`.
- *
- * @param {string|undefined} options.schemaLocation Optional schemaLocation to use when writing out the GML, this will override
+ * @property {string|undefined} schemaLocation Optional schemaLocation to use when writing out the GML, this will override
* the default provided.
- *
*/
/**
- * @typedef {{readExtensions: (function(ol.Feature, Node)|undefined)}}
- */
-export let format_GPXOptions;
-
-/**
- * @param {format_GPXOptions} options TODO: repace this
- *
- * @param {function(ol.Feature, Node)|undefined} options.readExtensions Callback function to process `extensions` nodes.
+ * @typedef {Object} format_GPXOptions
+ * @property {function(ol.Feature, Node)|undefined} readExtensions Callback function to process `extensions` nodes.
* To prevent memory leaks, this callback function must
* not store any references to the node. Note that the `extensions`
* node is not allowed in GPX 1.0. Moreover, only `extensions`
* nodes from `wpt`, `rte` and `trk` can be processed, as those are
* directly mapped to a feature.
- *
*/
/**
- * @typedef {{featureNS: (Object.|string|undefined),
- * featureType: (Array.|string|undefined),
- * gmlFormat: (ol.format.GMLBase|undefined),
- * schemaLocation: (string|undefined)}}
- */
-export let format_WFSOptions;
-
-/**
- * @param {format_WFSOptions} options TODO: repace this
- *
- * @param {Object.|string|undefined} options.featureNS The namespace URI used for features.
- *
- * @param {Array.|string|undefined} options.featureType The feature type to parse. Only used for read operations.
- *
- * @param {ol.format.GMLBase|undefined} options.gmlFormat The GML format to use to parse the response. Default is `ol.format.GML3`.
- *
- * @param {string|undefined} options.schemaLocation Optional schemaLocation to use for serialization, this will override the
+ * @typedef {Object} format_WFSOptions
+ * @property {Object.|string|undefined} featureNS The namespace URI used for features.
+ * @property {Array.|string|undefined} featureType The feature type to parse. Only used for read operations.
+ * @property {ol.format.GMLBase|undefined} gmlFormat The GML format to use to parse the response. Default is `ol.format.GML3`.
+ * @property {string|undefined} schemaLocation Optional schemaLocation to use for serialization, this will override the
* default.
- *
*/
/**
- * @typedef {{featureNS: string,
- * featurePrefix: string,
- * featureTypes: Array.,
- * srsName: (string|undefined),
- * handle: (string|undefined),
- * outputFormat: (string|undefined),
- * maxFeatures: (number|undefined),
- * geometryName: (string|undefined),
- * propertyNames: (Array.|undefined),
- * startIndex: (number|undefined),
- * count: (number|undefined),
- * bbox: (ol.Extent|undefined),
- * filter: (ol.format.filter.Filter|undefined),
- * resultType: (string|undefined)}}
- */
-export let format_WFSWriteGetFeatureOptions;
-
-/**
- * @param {format_WFSWriteGetFeatureOptions} options TODO: repace this
- *
- * @param {string} options.featureNS The namespace URI used for features.
- *
- * @param {string} options.featurePrefix The prefix for the feature namespace.
- *
- * @param {Array.} options.featureTypes The feature type names.
- *
- * @param {string|undefined} options.srsName SRS name. No srsName attribute will be set on geometries when this is not
+ * @typedef {Object} format_WFSWriteGetFeatureOptions
+ * @property {string} featureNS The namespace URI used for features.
+ * @property {string} featurePrefix The prefix for the feature namespace.
+ * @property {Array.} featureTypes The feature type names.
+ * @property {string|undefined} srsName SRS name. No srsName attribute will be set on geometries when this is not
* provided.
- *
- * @param {string|undefined} options.handle Handle.
- *
- * @param {string|undefined} options.outputFormat Output format.
- *
- * @param {number|undefined} options.maxFeatures Maximum number of features to fetch.
- *
- * @param {string|undefined} options.geometryName Geometry name to use in a BBOX filter.
- *
- * @param {Array.|undefined} options.propertyNames Optional list of property names to serialize.
- *
- * @param {number|undefined} options.startIndex Start index to use for WFS paging. This is a WFS 2.0 feature backported to
+ * @property {string|undefined} handle Handle.
+ * @property {string|undefined} outputFormat Output format.
+ * @property {number|undefined} maxFeatures Maximum number of features to fetch.
+ * @property {string|undefined} geometryName Geometry name to use in a BBOX filter.
+ * @property {Array.|undefined} propertyNames Optional list of property names to serialize.
+ * @property {number|undefined} startIndex Start index to use for WFS paging. This is a WFS 2.0 feature backported to
* WFS 1.1.0 by some Web Feature Services.
- *
- * @param {number|undefined} options.count Number of features to retrieve when paging. This is a WFS 2.0 feature
+ * @property {number|undefined} count Number of features to retrieve when paging. This is a WFS 2.0 feature
* backported to WFS 1.1.0 by some Web Feature Services. Please note that some
* Web Feature Services have repurposed `maxfeatures` instead.
- *
- * @param {ol.Extent|undefined} options.bbox Extent to use for the BBOX filter.
- *
- * @param {ol.format.filter.Filter|undefined} options.filter Filter condition. See {@link ol.format.filter} for more information.
- *
- * @param {string|undefined} options.resultType Indicates what response should be returned, E.g. `hits` only includes the
+ * @property {ol.Extent|undefined} bbox Extent to use for the BBOX filter.
+ * @property {ol.format.filter.Filter|undefined} filter Filter condition. See {@link ol.format.filter} for more information.
+ * @property {string|undefined} resultType Indicates what response should be returned, E.g. `hits` only includes the
* `numberOfFeatures` attribute in the response and no features.
- *
*/
/**
- * @typedef {{featureNS: string,
- * featurePrefix: string,
- * featureType: string,
- * srsName: (string|undefined),
- * handle: (string|undefined),
- * hasZ: (boolean|undefined),
- * nativeElements: Array.