UNPKG

openlayers-test

Version:

Build tools and sources for developing OpenLayers based mapping applications

2,208 lines (1,717 loc) 143 kB
/** * @type {Object} */ var olx; /* typedefs for object literals provided by applications */ /** * @typedef {{html: string, * tileRanges: (Object.<string, Array.<ol.TileRange>>|undefined)}} * @api */ olx.AttributionOptions; /** * HTML markup for this attribution. * @type {string} * @api stable */ olx.AttributionOptions.prototype.html; /** * @typedef {{loadTilesWhileAnimating: (boolean|undefined), * loadTilesWhileInteracting: (boolean|undefined)}} * @api */ olx.DeviceOptions; /** * When set to false, no tiles will be loaded while animating, which improves * responsiveness on devices with slow memory. Default is `true`. * @type {boolean|undefined} * @api */ olx.DeviceOptions.prototype.loadTilesWhileAnimating; /** * When set to false, no tiles will be loaded while interacting, which improves * responsiveness on devices with slow memory. Default is `true`. * @type {boolean|undefined} * @api */ olx.DeviceOptions.prototype.loadTilesWhileInteracting; /** * @typedef {{tracking: (boolean|undefined)}} * @api */ olx.DeviceOrientationOptions; /** * Start tracking. Default is `false`. * @type {boolean|undefined} * @api */ olx.DeviceOrientationOptions.prototype.tracking; /** * @typedef {{tracking: (boolean|undefined), * trackingOptions: (GeolocationPositionOptions|undefined), * projection: ol.proj.ProjectionLike}} * @api */ olx.GeolocationOptions; /** * Start Tracking. Default is `false`. * @type {boolean|undefined} * @api stable */ olx.GeolocationOptions.prototype.tracking; /** * Tracking options. See * {@link http://www.w3.org/TR/geolocation-API/#position_options_interface}. * @type {GeolocationPositionOptions|undefined} * @api stable */ olx.GeolocationOptions.prototype.trackingOptions; /** * The projection the position is reported in. * @type {ol.proj.ProjectionLike} * @api stable */ olx.GeolocationOptions.prototype.projection; /** * Object literal with config options for the map logo. * @typedef {{href: (string), src: (string)}} * @api */ olx.LogoOptions; /** * Link url for the logo. Will be followed when the logo is clicked. * @type {string} * @api */ olx.LogoOptions.prototype.href; /** * Image src for the logo * @type {string} * @api */ olx.LogoOptions.prototype.src; /** * @typedef {{map: (ol.Map|undefined), * maxLines: (number|undefined), * strokeStyle: (ol.style.Stroke|undefined), * targetSize: (number|undefined)}} * @api */ olx.GraticuleOptions; /** * Reference to an `ol.Map` object. * @type {ol.Map|undefined} * @api */ olx.GraticuleOptions.prototype.map; /** * 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. * @type {number|undefined} * @api */ olx.GraticuleOptions.prototype.maxLines; /** * 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. * * @type {ol.style.Stroke|undefined} * @api */ olx.GraticuleOptions.prototype.strokeStyle; /** * The target size of the graticule cells, in pixels. Default * value is 100 pixels. * @type {number|undefined} * @api */ olx.GraticuleOptions.prototype.targetSize; /** * Object literal with config options for interactions. * @typedef {{handleEvent: function(ol.MapBrowserEvent):boolean}} * @api */ olx.interaction.InteractionOptions; /** * Method called by the map to notify the interaction that a browser event was * dispatched to the map. The function may return `false` to prevent the * propagation of the event to other interactions in the map's interactions * chain. Required. * @type {function(ol.MapBrowserEvent):boolean} * @api */ olx.interaction.InteractionOptions.prototype.handleEvent; /** * Object literal with config options for the map. * @typedef {{controls: (ol.Collection.<ol.control.Control>|Array.<ol.control.Control>|undefined), * deviceOptions: (olx.DeviceOptions|undefined), * pixelRatio: (number|undefined), * interactions: (ol.Collection.<ol.interaction.Interaction>|Array.<ol.interaction.Interaction>|undefined), * keyboardEventTarget: (Element|Document|string|undefined), * layers: (Array.<ol.layer.Base>|ol.Collection.<ol.layer.Base>|undefined), * logo: (boolean|string|olx.LogoOptions|undefined), * overlays: (ol.Collection.<ol.Overlay>|Array.<ol.Overlay>|undefined), * renderer: (ol.RendererType|Array.<ol.RendererType|string>|string|undefined), * target: (Element|string|undefined), * view: (ol.View|undefined)}} * @api */ olx.MapOptions; /** * Controls initially added to the map. If not specified, * {@link ol.control.defaults ol.control.defaults()} is used. * @type {ol.Collection.<ol.control.Control>|Array.<ol.control.Control>|undefined} * @api stable */ olx.MapOptions.prototype.controls; /** * Device options for the map. * @type {olx.DeviceOptions|undefined} * @api */ olx.MapOptions.prototype.deviceOptions; /** * The ratio between physical pixels and device-independent pixels (dips) on the * device. If `undefined` then it gets set by using `window.devicePixelRatio`. * @type {number|undefined} * @api */ olx.MapOptions.prototype.pixelRatio; /** * Interactions that are initially added to the map. If not specified, * {@link ol.interaction.defaults ol.interaction.defaults()} is used. * @type {ol.Collection.<ol.interaction.Interaction>|Array.<ol.interaction.Interaction>|undefined} * @api stable */ olx.MapOptions.prototype.interactions; /** * 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. * @type {Element|Document|string|undefined} * @api */ olx.MapOptions.prototype.keyboardEventTarget; /** * Layers. If this is not defined, a map with no layers will be rendered. * @type {Array.<ol.layer.Base>|ol.Collection.<ol.layer.Base>|undefined} * @api stable */ olx.MapOptions.prototype.layers; /** * 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. To disable the map logo, set * the option to `false`. By default, the OpenLayers 3 logo is shown. * @type {boolean|string|olx.LogoOptions|undefined} * @api stable */ olx.MapOptions.prototype.logo; /** * Overlays initially added to the map. By default, no overlays are added. * @type {ol.Collection.<ol.Overlay>|Array.<ol.Overlay>|undefined} * @api stable */ olx.MapOptions.prototype.overlays; /** * Renderer. By default, Canvas, DOM and WebGL renderers are tested for support * in that order, and the first supported used. Specify a * {@link ol.RendererType} here to use a specific renderer. * Note that at present only the Canvas renderer supports vector data. * @type {ol.RendererType|Array.<ol.RendererType|string>|string|undefined} * @api stable */ olx.MapOptions.prototype.renderer; /** * 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. * @type {Element|string|undefined} * @api stable */ olx.MapOptions.prototype.target; /** * The map's view. No layer sources will be fetched unless this is specified at * construction time or through {@link ol.Map#setView}. * @type {ol.View|undefined} * @api stable */ olx.MapOptions.prototype.view; /** * Object literal with config options for the overlay. * @typedef {{element: (Element|undefined), * offset: (Array.<number>|undefined), * position: (ol.Coordinate|undefined), * positioning: (ol.OverlayPositioning|string|undefined), * stopEvent: (boolean|undefined), * insertFirst: (boolean|undefined)}} * @api stable */ olx.OverlayOptions; /** * The overlay element. * @type {Element|undefined} * @api stable */ olx.OverlayOptions.prototype.element; /** * Offsets in pixels used when positioning the overlay. The fist 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]`. * @type {Array.<number>|undefined} * @api stable */ olx.OverlayOptions.prototype.offset; /** * The overlay position in map projection. * @type {ol.Coordinate|undefined} * @api stable */ olx.OverlayOptions.prototype.position; /** * 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'`. * @type {ol.OverlayPositioning|string|undefined} * @api stable */ olx.OverlayOptions.prototype.positioning; /** * 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`. * @type {boolean|undefined} * @api stable */ olx.OverlayOptions.prototype.stopEvent; /** * 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. * @type {boolean|undefined} * @api stable */ olx.OverlayOptions.prototype.insertFirst; /** * Object literal with config options for the projection. * @typedef {{code: string, * units: (ol.proj.Units|string), * extent: (ol.Extent|undefined), * axisOrientation: (string|undefined), * global: (boolean|undefined), * worldExtent: (ol.Extent|undefined)}} * @api */ olx.ProjectionOptions; /** * The SRS identifier code, e.g. `EPSG:4326`. * @type {string} * @api stable */ olx.ProjectionOptions.prototype.code; /** * Units. * @type {ol.proj.Units|string} * @api stable */ olx.ProjectionOptions.prototype.units; /** * The validity extent for the SRS. * @type {ol.Extent|undefined} * @api stable */ olx.ProjectionOptions.prototype.extent; /** * The axis orientation as specified in Proj4. The default is `enu`. * @type {string|undefined} * @api stable */ olx.ProjectionOptions.prototype.axisOrientation; /** * Whether the projection is valid for the whole globe. Default is `false`. * @type {boolean|undefined} * @api stable */ olx.ProjectionOptions.prototype.global; /** * The world extent for the SRS. * @type {ol.Extent|undefined} * @api */ olx.ProjectionOptions.prototype.worldExtent; /** * 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.proj.ProjectionLike, * resolution: (number|undefined), * resolutions: (Array.<number>|undefined), * rotation: (number|undefined), * zoom: (number|undefined), * zoomFactor: (number|undefined)}} * @api */ olx.ViewOptions; /** * 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. * @type {ol.Coordinate|undefined} * @api stable */ olx.ViewOptions.prototype.center; /** * 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`. * @type {boolean|number|undefined} * @api */ olx.ViewOptions.prototype.constrainRotation; /** * 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`. * @type {boolean|undefined} * @api */ olx.ViewOptions.prototype.enableRotation; /** * The extent that constrains the center, in other words, center cannot be set * outside this extent. Default is `undefined`. * @type {ol.Extent|undefined} * @api */ olx.ViewOptions.prototype.extent; /** * 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`. * @type {number|undefined} * @api stable */ olx.ViewOptions.prototype.maxResolution; /** * 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`. * @type {number|undefined} * @api stable */ olx.ViewOptions.prototype.minResolution; /** * 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`. * @type {number|undefined} * @api stable */ olx.ViewOptions.prototype.maxZoom; /** * 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`. * @type {number|undefined} * @api stable */ olx.ViewOptions.prototype.minZoom; /** * The projection. Default is `EPSG:3857` (Spherical Mercator). * @type {ol.proj.ProjectionLike} * @api stable */ olx.ViewOptions.prototype.projection; /** * 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. * @type {number|undefined} * @api stable */ olx.ViewOptions.prototype.resolution; /** * Resolutions to determine the resolution constraint. If set the * `maxResolution`, `minResolution`, `minZoom`, `maxZoom`, and `zoomFactor` * options are ignored. * @type {Array.<number>|undefined} * @api stable */ olx.ViewOptions.prototype.resolutions; /** * The initial rotation for the view in radians (positive rotation clockwise). * Default is `0`. * @type {number|undefined} * @api stable */ olx.ViewOptions.prototype.rotation; /** * 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. * @type {number|undefined} * @api stable */ olx.ViewOptions.prototype.zoom; /** * The zoom factor used to determine the resolution constraint. Default is `2`. * @type {number|undefined} * @api stable */ olx.ViewOptions.prototype.zoomFactor; /** * Namespace. * @type {Object} */ olx.animation; /** * @typedef {{resolution: number, * start: (number|undefined), * duration: (number|undefined), * easing: (function(number):number|undefined)}} * @api */ olx.animation.BounceOptions; /** * The resolution to start the bounce from, typically * `map.getView().getResolution()`. * @type {number} * @api */ olx.animation.BounceOptions.prototype.resolution; /** * The start time of the animation. Default is immediately. * @type {number|undefined} * @api */ olx.animation.BounceOptions.prototype.start; /** * The duration of the animation in milliseconds. Default is `1000`. * @type {number|undefined} * @api */ olx.animation.BounceOptions.prototype.duration; /** * The easing function to use. Can be an {@link ol.easing} or a custom function. * Default is {@link ol.easing.upAndDown}. * @type {function(number):number|undefined} * @api */ olx.animation.BounceOptions.prototype.easing; /** * @typedef {{source: ol.Coordinate, * start: (number|undefined), * duration: (number|undefined), * easing: (function(number):number|undefined)}} * @api */ olx.animation.PanOptions; /** * The location to start panning from, typically `map.getView().getCenter()`. * @type {ol.Coordinate} * @api */ olx.animation.PanOptions.prototype.source; /** * The start time of the animation. Default is immediately. * @type {number|undefined} * @api */ olx.animation.PanOptions.prototype.start; /** * The duration of the animation in milliseconds. Default is `1000`. * @type {number|undefined} * @api */ olx.animation.PanOptions.prototype.duration; /** * The easing function to use. Can be an {@link ol.easing} or a custom function. * Default is {@link ol.easing.inAndOut}. * @type {function(number):number|undefined} * @api */ olx.animation.PanOptions.prototype.easing; /** * @typedef {{rotation: (number|undefined), * anchor: (ol.Coordinate|undefined), * start: (number|undefined), * duration: (number|undefined), * easing: (function(number):number|undefined)}} * @api */ olx.animation.RotateOptions; /** * The rotation value (in radians) to begin rotating from, typically * `map.getView().getRotation()`. If `undefined` then `0` is assumed. * @type {number|undefined} * @api */ olx.animation.RotateOptions.prototype.rotation; /** * The rotation center/anchor. The map rotates around the center of the view * if unspecified. * @type {ol.Coordinate|undefined} * @api */ olx.animation.RotateOptions.prototype.anchor; /** * The start time of the animation. Default is immediately. * @type {number|undefined} * @api */ olx.animation.RotateOptions.prototype.start; /** * The duration of the animation in milliseconds. Default is `1000`. * @type {number|undefined} * @api */ olx.animation.RotateOptions.prototype.duration; /** * The easing function to use. Can be an {@link ol.easing} or a custom function. * Default is {@link ol.easing.inAndOut}. * @type {function(number):number|undefined} * @api */ olx.animation.RotateOptions.prototype.easing; /** * @typedef {{resolution: number, * start: (number|undefined), * duration: (number|undefined), * easing: (function(number):number|undefined)}} * @api */ olx.animation.ZoomOptions; /** * number The resolution to begin zooming from, typically * `map.getView().getResolution()`. * @type {number} * @api */ olx.animation.ZoomOptions.prototype.resolution; /** * The start time of the animation. Default is immediately. * @type {number|undefined} * @api */ olx.animation.ZoomOptions.prototype.start; /** * The duration of the animation in milliseconds. Default is `1000`. * @type {number|undefined} * @api */ olx.animation.ZoomOptions.prototype.duration; /** * The easing function to use. Can be an {@link ol.easing} or a custom function. * Default is {@link ol.easing.inAndOut}. * @type {function(number):number|undefined} * @api */ olx.animation.ZoomOptions.prototype.easing; /** * Namespace. * @type {Object} */ olx.control; /** * @typedef {{className: (string|undefined), * collapsible: (boolean|undefined), * collapsed: (boolean|undefined), * tipLabel: (string|undefined), * label: (string|undefined), * collapseLabel: (string|undefined), * render: (function(ol.MapEvent)|undefined), * target: (Element|undefined)}} * @api */ olx.control.AttributionOptions; /** * CSS class name. Default is `ol-attribution`. * @type {string|undefined} * @api */ olx.control.AttributionOptions.prototype.className; /** * Target. * @type {Element|undefined} * @api */ olx.control.AttributionOptions.prototype.target; /** * Specify if attributions can be collapsed. If you use an OSM source, * should be set to `false` — see * {@link http://www.openstreetmap.org/copyright OSM Copyright} — * Default is `true`. * @type {boolean|undefined} * @api */ olx.control.AttributionOptions.prototype.collapsible; /** * Specify if attributions should be collapsed at startup. Default is `true`. * @type {boolean|undefined} * @api */ olx.control.AttributionOptions.prototype.collapsed; /** * Text label to use for the button tip. Default is `Attributions` * @type {string|undefined} * @api */ olx.control.AttributionOptions.prototype.tipLabel; /** * Text label to use for the collapsed attributions button. Default is `i` * @type {string|undefined} * @api */ olx.control.AttributionOptions.prototype.label; /** * Text label to use for the expanded attributions button. Default is `»` * @type {string|undefined} * @api */ olx.control.AttributionOptions.prototype.collapseLabel; /** * Function called when the control should be re-rendered. This is called * in a requestAnimationFrame callback. * @type {function(ol.MapEvent)|undefined} * @api */ olx.control.AttributionOptions.prototype.render; /** * @typedef {{element: (Element|undefined), * render: (function(ol.MapEvent)|undefined), * target: (Element|string|undefined)}} * @api stable */ olx.control.ControlOptions; /** * The element is the control's container element. This only needs to be * specified if you're developing a custom control. * @type {Element|undefined} * @api stable */ olx.control.ControlOptions.prototype.element; /** * Function called when the control should be re-rendered. This is called * in a requestAnimationFrame callback. * @type {function(ol.MapEvent)|undefined} * @api */ olx.control.ControlOptions.prototype.render; /** * Specify a target if you want the control to be rendered outside of the map's * viewport. * @type {Element|string|undefined} * @api stable */ olx.control.ControlOptions.prototype.target; /** * @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)}} * @api */ olx.control.DefaultsOptions; /** * Attribution. Default is `true`. * @type {boolean|undefined} * @api stable */ olx.control.DefaultsOptions.prototype.attribution; /** * Attribution options. * @type {olx.control.AttributionOptions|undefined} * @api */ olx.control.DefaultsOptions.prototype.attributionOptions; /** * Rotate. Default is `true`. * @type {boolean|undefined} * @api stable */ olx.control.DefaultsOptions.prototype.rotate; /** * Rotate options. * @type {olx.control.RotateOptions|undefined} * @api */ olx.control.DefaultsOptions.prototype.rotateOptions; /** * Zoom. Default is `true`. * @type {boolean|undefined} * @api stable */ olx.control.DefaultsOptions.prototype.zoom; /** * Zoom options. * @type {olx.control.ZoomOptions|undefined} * @api */ olx.control.DefaultsOptions.prototype.zoomOptions; /** * @typedef {{className: (string|undefined), * tipLabel: (string|undefined), * keys: (boolean|undefined), * target: (Element|undefined)}} * @api */ olx.control.FullScreenOptions; /** * CSS class name. Default is `ol-full-screen`. * @type {string|undefined} * @api */ olx.control.FullScreenOptions.prototype.className; /** * Text label to use for the button tip. Default is `Toggle full-screen` * @type {string|undefined} * @api */ olx.control.FullScreenOptions.prototype.tipLabel; /** * Full keyboard access. * @type {boolean|undefined} * @api */ olx.control.FullScreenOptions.prototype.keys; /** * Target. * @type {Element|undefined} * @api */ olx.control.FullScreenOptions.prototype.target; /** * @typedef {{className: (string|undefined), * coordinateFormat: (ol.CoordinateFormatType|undefined), * projection: ol.proj.ProjectionLike, * render: (function(ol.MapEvent)|undefined), * target: (Element|undefined), * undefinedHTML: (string|undefined)}} * @api stable */ olx.control.MousePositionOptions; /** * CSS class name. Default is `ol-mouse-position`. * @type {string|undefined} * @api stable */ olx.control.MousePositionOptions.prototype.className; /** * Coordinate format. * @type {ol.CoordinateFormatType|undefined} * @api stable */ olx.control.MousePositionOptions.prototype.coordinateFormat; /** * Projection. * @type {ol.proj.ProjectionLike} * @api stable */ olx.control.MousePositionOptions.prototype.projection; /** * Function called when the control should be re-rendered. This is called * in a requestAnimationFrame callback. * @type {function(ol.MapEvent)|undefined} * @api */ olx.control.MousePositionOptions.prototype.render; /** * Target. * @type {Element|undefined} * @api stable */ olx.control.MousePositionOptions.prototype.target; /** * Markup for undefined coordinates. Default is `` (empty string). * @type {string|undefined} * @api stable */ olx.control.MousePositionOptions.prototype.undefinedHTML; /** * @typedef {{collapsed: (boolean|undefined), * collapseLabel: (string|undefined), * collapsible: (boolean|undefined), * label: (string|undefined), * layers: (Array.<ol.layer.Layer>|ol.Collection|undefined), * render: (function(ol.MapEvent)|undefined), * target: (Element|undefined), * tipLabel: (string|undefined)}} * @api */ olx.control.OverviewMapOptions; /** * Whether the control should start collapsed or not (expanded). * Default to `true`. * @type {boolean|undefined} * @api */ olx.control.OverviewMapOptions.prototype.collapsed; /** * Text label to use for the expanded overviewmap button. Default is `«` * @type {string|undefined} * @api */ olx.control.OverviewMapOptions.prototype.collapseLabel; /** * Whether the control can be collapsed or not. Default to `true`. * @type {boolean|undefined} * @api */ olx.control.OverviewMapOptions.prototype.collapsible; /** * Text label to use for the collapsed overviewmap button. Default is `»` * @type {string|undefined} * @api */ olx.control.OverviewMapOptions.prototype.label; /** * Layers for the overview map. If not set, then all main map layers are used * instead. * @type {!Array.<ol.layer.Layer>|!ol.Collection|undefined} * @api */ olx.control.OverviewMapOptions.prototype.layers; /** * Function called when the control should be re-rendered. This is called * in a requestAnimationFrame callback. * @type {function(ol.MapEvent)|undefined} * @api */ olx.control.OverviewMapOptions.prototype.render; /** * Specify a target if you want the control to be rendered outside of the map's * viewport. * @type {Element|undefined} * @api */ olx.control.OverviewMapOptions.prototype.target; /** * Text label to use for the button tip. Default is `Overview map` * @type {string|undefined} * @api */ olx.control.OverviewMapOptions.prototype.tipLabel; /** * @typedef {{className: (string|undefined), * minWidth: (number|undefined), * render: (function(ol.MapEvent)|undefined), * target: (Element|undefined), * units: (ol.control.ScaleLineUnits|string|undefined)}} * @api stable */ olx.control.ScaleLineOptions; /** * CSS Class name. Default is `ol-scale-line`. * @type {string|undefined} * @api stable */ olx.control.ScaleLineOptions.prototype.className; /** * Minimum width in pixels. Default is `64`. * @type {number|undefined} * @api stable */ olx.control.ScaleLineOptions.prototype.minWidth; /** * Function called when the control should be re-rendered. This is called * in a requestAnimationFrame callback. * @type {function(ol.MapEvent)|undefined} * @api */ olx.control.ScaleLineOptions.prototype.render; /** * Target. * @type {Element|undefined} * @api stable */ olx.control.ScaleLineOptions.prototype.target; /** * Units. Default is `metric`. * @type {ol.control.ScaleLineUnits|string|undefined} * @api stable */ olx.control.ScaleLineOptions.prototype.units; /** * @typedef {{duration: (number|undefined), * className: (string|undefined), * label: (string|undefined), * tipLabel: (string|undefined), * target: (Element|undefined), * render: (function(ol.MapEvent)|undefined), * autoHide: (boolean|undefined)}} * @api stable */ olx.control.RotateOptions; /** * CSS class name. Default is `ol-rotate`. * @type {string|undefined} * @api stable */ olx.control.RotateOptions.prototype.className; /** * Text label to use for the rotate button. Default is `⇧` * @type {string|undefined} * @api stable */ olx.control.RotateOptions.prototype.label; /** * Text label to use for the rotate tip. Default is `Reset rotation` * @type {string|undefined} * @api stable */ olx.control.RotateOptions.prototype.tipLabel; /** * Animation duration in milliseconds. Default is `250`. * @type {number|undefined} * @api stable */ olx.control.RotateOptions.prototype.duration; /** * Hide the control when rotation is 0. Default is `true`. * @type {boolean|undefined} * @api stable */ olx.control.RotateOptions.prototype.autoHide; /** * Function called when the control should be re-rendered. This is called * in a requestAnimationFrame callback. * @type {function(ol.MapEvent)|undefined} * @api */ olx.control.RotateOptions.prototype.render; /** * Target. * @type {Element|undefined} * @api stable */ olx.control.RotateOptions.prototype.target; /** * @typedef {{duration: (number|undefined), * className: (string|undefined), * zoomInLabel: (string|undefined), * zoomOutLabel: (string|undefined), * zoomInTipLabel: (string|undefined), * zoomOutTipLabel: (string|undefined), * delta: (number|undefined), * target: (Element|undefined)}} * @api stable */ olx.control.ZoomOptions; /** * Animation duration in milliseconds. Default is `250`. * @type {number|undefined} * @api stable */ olx.control.ZoomOptions.prototype.duration; /** * CSS class name. Default is `ol-zoom`. * @type {string|undefined} * @api stable */ olx.control.ZoomOptions.prototype.className; /** * Text label to use for the zoom-in button. Default is `+` * @type {string|undefined} * @api stable */ olx.control.ZoomOptions.prototype.zoomInLabel; /** * Text label to use for the zoom-out button. Default is `-` * @type {string|undefined} * @api stable */ olx.control.ZoomOptions.prototype.zoomOutLabel; /** * Text label to use for the button tip. Default is `Zoom in` * @type {string|undefined} * @api stable */ olx.control.ZoomOptions.prototype.zoomInTipLabel; /** * Text label to use for the button tip. Default is `Zoom out` * @type {string|undefined} * @api stable */ olx.control.ZoomOptions.prototype.zoomOutTipLabel; /** * The zoom delta applied on each click. * @type {number|undefined} * @api stable */ olx.control.ZoomOptions.prototype.delta; /** * Target. * @type {Element|undefined} * @api stable */ olx.control.ZoomOptions.prototype.target; /** * @typedef {{className: (string|undefined), * maxResolution: (number|undefined), * minResolution: (number|undefined), * render: (function(ol.MapEvent)|undefined)}} * @api */ olx.control.ZoomSliderOptions; /** * CSS class name. * @type {string|undefined} * @api stable */ olx.control.ZoomSliderOptions.prototype.className; /** * Maximum resolution. * @type {number|undefined} * @api stable */ olx.control.ZoomSliderOptions.prototype.maxResolution; /** * Minimum resolution. * @type {number|undefined} * @api stable */ olx.control.ZoomSliderOptions.prototype.minResolution; /** * Function called when the control should be re-rendered. This is called * in a requestAnimationFrame callback. * @type {function(ol.MapEvent)|undefined} * @api */ olx.control.ZoomSliderOptions.prototype.render; /** * @typedef {{className: (string|undefined), * target: (Element|undefined), * tipLabel: (string|undefined), * extent: (ol.Extent|undefined)}} * @api stable */ olx.control.ZoomToExtentOptions; /** * Class name. Default is `ol-zoom-extent`. * @type {string|undefined} * @api stable */ olx.control.ZoomToExtentOptions.prototype.className; /** * Target. * @type {Element|undefined} * @api stable */ olx.control.ZoomToExtentOptions.prototype.target; /** * Text label to use for the button tip. Default is `Zoom to extent` * @type {string|undefined} * @api stable */ olx.control.ZoomToExtentOptions.prototype.tipLabel; /** * The extent to zoom to. If undefined the validity extent of the view * projection is used. * @type {ol.Extent|undefined} * @api stable */ olx.control.ZoomToExtentOptions.prototype.extent; /** * Namespace. * @type {Object} */ olx.format; /** * @typedef {{dataProjection: (ol.proj.ProjectionLike|undefined), * featureProjection: (ol.proj.ProjectionLike|undefined)}} * @api */ olx.format.ReadOptions; /** * 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. * @type {ol.proj.ProjectionLike|undefined} * @api stable */ olx.format.ReadOptions.prototype.dataProjection; /** * Projection of the feature geometries created by the format reader. If not * provided, features will be returned in the `dataProjection`. * @type {ol.proj.ProjectionLike|undefined} * @api stable */ olx.format.ReadOptions.prototype.featureProjection; /** * @typedef {{dataProjection: (ol.proj.ProjectionLike|undefined), * featureProjection: ol.proj.ProjectionLike}} * @api */ olx.format.WriteOptions; /** * 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`. * @type {ol.proj.ProjectionLike|undefined} * @api stable */ olx.format.WriteOptions.prototype.dataProjection; /** * Projection of the feature geometries that will be serialized by the format * writer. * @type {ol.proj.ProjectionLike} * @api stable */ olx.format.WriteOptions.prototype.featureProjection; /** * @typedef {{defaultDataProjection: ol.proj.ProjectionLike, * geometryName: (string|undefined)}} * @api */ olx.format.GeoJSONOptions; /** * Default data projection. * @type {ol.proj.ProjectionLike} * @api stable */ olx.format.GeoJSONOptions.prototype.defaultDataProjection; /** * Geometry name to use when creating features. * @type {string|undefined} * @api stable */ olx.format.GeoJSONOptions.prototype.geometryName; /** * @typedef {{factor: (number|undefined)}} * @api */ olx.format.PolylineOptions; /** * The factor by which the coordinates values will be scaled. * Default is `1e5`. * @type {number} * @api stable */ olx.format.PolylineOptions.prototype.factor; /** * @typedef {{defaultDataProjection: ol.proj.ProjectionLike}} * @api */ olx.format.TopoJSONOptions; /** * Default data projection. * @type {ol.proj.ProjectionLike} * @api stable */ olx.format.TopoJSONOptions.prototype.defaultDataProjection; /** * @typedef {{altitudeMode: (ol.format.IGCZ|undefined)}} * @api */ olx.format.IGCOptions; /** * Altitude mode. Possible values are `barometric`, `gps`, and `none`. Default * is `none`. * @type {ol.format.IGCZ|undefined} * @api */ olx.format.IGCOptions.prototype.altitudeMode; /** * @typedef {{extractStyles: (boolean|undefined), * defaultStyle: (Array.<ol.style.Style>|undefined)}} * @api */ olx.format.KMLOptions; /** * Extract styles from the KML. Default is `true`. * @type {boolean|undefined} * @api stable */ olx.format.KMLOptions.prototype.extractStyles; /** * Default style. The default default style is the same as Google Earth. * @type {Array.<ol.style.Style>|undefined} * @api stable */ olx.format.KMLOptions.prototype.defaultStyle; /** * @typedef {{featureNS: string, * featureType: string, * srsName: string, * surface: (boolean|undefined), * curve: (boolean|undefined), * multiCurve: (boolean|undefined), * multiSurface: (boolean|undefined), * schemaLocation: (string|undefined)}} * @api */ olx.format.GMLOptions; /** * Feature namespace. * @type {string} * @api stable */ olx.format.GMLOptions.prototype.featureNS; /** * Feature type to parse. * @type {string} * @api stable */ olx.format.GMLOptions.prototype.featureType; /** * srsName to use when writing geometries. * @type {string} * @api */ olx.format.GMLOptions.prototype.srsName; /** * Write gml:Surface instead of gml:Polygon elements. This also affects the * elements in multi-part geometries. Default is `false`. * @type {boolean|undefined} * @api stable */ olx.format.GMLOptions.prototype.surface; /** * Write gml:Curve instead of gml:LineString elements. This also affects the * elements in multi-part geometries. Default is `false`. * @type {boolean|undefined} * @api stable */ olx.format.GMLOptions.prototype.curve; /** * Write gml:MultiCurve instead of gml:MultiLineString. Since the latter is * deprecated in GML 3, the default is `true`. * @type {boolean|undefined} * @api stable */ olx.format.GMLOptions.prototype.multiCurve; /** * Write gml:multiSurface instead of gml:MultiPolygon. Since the latter is * deprecated in GML 3, the default is `true`. * @type {boolean|undefined} * @api stable */ olx.format.GMLOptions.prototype.multiSurface; /** * Optional schemaLocation to use when writing out the GML, this will override * the default provided. * @type {string|undefined} * @api stable */ olx.format.GMLOptions.prototype.schemaLocation; /** * @typedef {{readExtensions: (function(ol.Feature, Node)|undefined)}} * @api */ olx.format.GPXOptions; /** * 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. * @type {function(ol.Feature, Node)} * @api stable */ olx.format.GPXOptions.prototype.readExtensions; /** * @typedef {{featureNS: string, * featureType: string, * gmlFormat: (ol.format.GMLBase|undefined), * schemaLocation: (string|undefined)}} * @api */ olx.format.WFSOptions; /** * The namespace URI used for features. * @type {string} * @api stable */ olx.format.WFSOptions.prototype.featureNS; /** * The feature type to parse. Only used for read operations. * @type {string} * @api stable */ olx.format.WFSOptions.prototype.featureType; /** * The GML format to use to parse the response. Default is `ol.format.GML3`. * @type {ol.format.GMLBase|undefined} * @api */ olx.format.WFSOptions.prototype.gmlFormat; /** * Optional schemaLocation to use for serialization, this will override the * default. * @type {string|undefined} * @api stable */ olx.format.WFSOptions.prototype.schemaLocation; /** * @typedef {{featureNS: string, * featurePrefix: string, * featureTypes: Array.<string>, * srsName: (string|undefined), * handle: (string|undefined), * outputFormat: (string|undefined), * maxFeatures: (number|undefined), * geometryName: (string|undefined), * bbox: (ol.Extent|undefined)}} * @api */ olx.format.WFSWriteGetFeatureOptions; /** * The namespace URI used for features. * @type {string} * @api stable */ olx.format.WFSWriteGetFeatureOptions.prototype.featureNS; /** * The prefix for the feature namespace. * @type {string} * @api stable */ olx.format.WFSWriteGetFeatureOptions.prototype.featurePrefix; /** * The feature type names. * @type {Array.<string>} * @api stable */ olx.format.WFSWriteGetFeatureOptions.prototype.featureTypes; /** * SRS name. No srsName attribute will be set on geometries when this is not * provided. * @type {string|undefined} * @api */ olx.format.WFSWriteGetFeatureOptions.prototype.srsName; /** * Handle. * @type {string|undefined} * @api stable */ olx.format.WFSWriteGetFeatureOptions.prototype.handle; /** * Output format. * @type {string|undefined} * @api stable */ olx.format.WFSWriteGetFeatureOptions.prototype.outputFormat; /** * Maximum number of features to fetch. * @type {number|undefined} * @api stable */ olx.format.WFSWriteGetFeatureOptions.prototype.maxFeatures; /** * Geometry name to use in a BBOX filter. * @type {string|undefined} * @api */ olx.format.WFSWriteGetFeatureOptions.prototype.geometryName; /** * Extent to use for the BBOX filter. * @type {ol.Extent|undefined} * @api */ olx.format.WFSWriteGetFeatureOptions.prototype.bbox; /** * @typedef {{featureNS: string, * featurePrefix: string, * featureType: string, * srsName: (string|undefined), * handle: (string|undefined), * nativeElements: Array.<Object>, * gmlOptions: (olx.format.GMLOptions|undefined)}} * @api stable */ olx.format.WFSWriteTransactionOptions; /** * The namespace URI used for features. * @type {string} * @api stable */ olx.format.WFSWriteTransactionOptions.prototype.featureNS; /** * The prefix for the feature namespace. * @type {string} * @api stable */ olx.format.WFSWriteTransactionOptions.prototype.featurePrefix; /** * The feature type name. * @type {string} * @api stable */ olx.format.WFSWriteTransactionOptions.prototype.featureType; /** * SRS name. No srsName attribute will be set on geometries when this is not * provided. * @type {string|undefined} * @api */ olx.format.WFSWriteTransactionOptions.prototype.srsName; /** * Handle. * @type {string|undefined} * @api stable */ olx.format.WFSWriteTransactionOptions.prototype.handle; /** * Native elements. Currently not supported. * @type {Array.<Object>} * @api */ olx.format.WFSWriteTransactionOptions.prototype.nativeElements; /** * GML options for the WFS transaction writer. * @type {olx.format.GMLOptions|undefined} * @api stable */ olx.format.WFSWriteTransactionOptions.prototype.gmlOptions; /** * @typedef {{splitCollection: (boolean|undefined)}} * @api */ olx.format.WKTOptions; /** * Whether to split GeometryCollections into * multiple features on reading. Default is `false`. * @type {boolean|undefined} * @api stable */ olx.format.WKTOptions.prototype.splitCollection; /** * Namespace. * @type {Object} */ olx.interaction; /** * Interactions for the map. Default is `true` for all options. * @typedef {{altShiftDragRotate: (boolean|undefined), * doubleClickZoom: (boolean|undefined), * keyboard: (boolean|undefined), * mouseWheelZoom: (boolean|undefined), * shiftDragZoom: (boolean|undefined), * dragPan: (boolean|undefined), * pinchRotate: (boolean|undefined), * pinchZoom: (boolean|undefined), * zoomDelta: (number|undefined), * zoomDuration: (number|undefined)}} * @api */ olx.interaction.DefaultsOptions; /** * Whether Alt-Shift-drag rotate is desired. Default is `true`. * @type {boolean|undefined} * @api */ olx.interaction.DefaultsOptions.prototype.altShiftDragRotate; /** * Whether double click zoom is desired. Default is `true`. * @type {boolean|undefined} * @api */ olx.interaction.DefaultsOptions.prototype.doubleClickZoom; /** * Whether keyboard interaction is desired. Default is `true`. * @type {boolean|undefined} * @api */ olx.interaction.DefaultsOptions.prototype.keyboard; /** * Whether mousewheel zoom is desired. Default is `true`. * @type {boolean|undefined} * @api */ olx.interaction.DefaultsOptions.prototype.mouseWheelZoom; /** * Whether Shift-drag zoom is desired. Default is `true`. * @type {boolean|undefined} * @api */ olx.interaction.DefaultsOptions.prototype.shiftDragZoom; /** * Whether drag pan is desired. Default is `true`. * @type {boolean|undefined} * @api */ olx.interaction.DefaultsOptions.prototype.dragPan; /** * Whether pinch rotate is desired. Default is `true`. * @type {boolean|undefined} * @api */ olx.interaction.DefaultsOptions.prototype.pinchRotate; /** * Whether pinch zoom is desired. Default is `true`. * @type {boolean|undefined} * @api */ olx.interaction.DefaultsOptions.prototype.pinchZoom; /** * Zoom delta. * @type {number|undefined} * @api */ olx.interaction.DefaultsOptions.prototype.zoomDelta; /** * Zoom duration. * @type {number|undefined} * @api */ olx.interaction.DefaultsOptions.prototype.zoomDuration; /** * @typedef {{duration: (number|undefined), * delta: (number|undefined)}} * @api */ olx.interaction.DoubleClickZoomOptions; /** * Animation duration in milliseconds. Default is `250`. * @type {number|undefined} * @api */ olx.interaction.DoubleClickZoomOptions.prototype.duration; /** * The zoom delta applied on each double click, default is `1`. * @type {number|undefined} * @api */ olx.interaction.DoubleClickZoomOptions.prototype.delta; /** * @typedef {{formatConstructors: (Array.<function(new: ol.format.Feature)>|undefined), * projection: ol.proj.ProjectionLike}} * @api */ olx.interaction.DragAndDropOptions; /** * Format constructors. * @type {Array.<function(new: ol.format.Feature)>|undefined} * @api */ olx.interaction.DragAndDropOptions.prototype.formatConstructors; /** * Target projection. By default, the map's view's projection is used. * @type {ol.proj.ProjectionLike} * @api */ olx.interaction.DragAndDropOptions.prototype.projection; /** * @typedef {{condition: (ol.events.ConditionType|undefined), * style: ol.style.Style}} * @api */ olx.interaction.DragBoxOptions; /** * A function that takes an {@link ol.MapBrowserEvent} and returns a boolean * to indicate whether that event should be handled. * Default is {@link ol.events.condition.always}. * @type {ol.events.ConditionType|undefined} * @api */ olx.interaction.DragBoxOptions.prototype.condition; /** * Style for the box. * @type {ol.style.Style} * @api */ olx.interaction.DragBoxOptions.prototype.style; /** * @typedef {{kinetic: (ol.Kinetic|undefined)}} * @api */ olx.interaction.DragPanOptions; /** * Kinetic inertia to apply to the pan. * @type {ol.Kinetic|undefined} * @api */ olx.interaction.DragPanOptions.prototype.kinetic; /** * @typedef {{condition: (ol.events.ConditionType|undefined)}} * @api */ olx.interaction.DragRotateAndZoomOptions; /** * A function that takes an {@link ol.MapBrowserEvent} and returns a boolean * to indicate whether that event should be handled. * Default is {@link ol.events.condition.shiftKeyOnly}. * @type {ol.events.ConditionType|undefined} * @api */ olx.interaction.DragRotateAndZoomOptions.prototype.condition; /** * @typedef {{condition: (ol.events.ConditionType|undefined)}} * @api */ olx.interaction.DragRotateOptions; /** * A function that takes an {@link ol.MapBrowserEvent} and returns a boolean * to indicate whether that event should be handled. * Default is {@link ol.events.condition.altShiftKeysOnly}. * @type {ol.events.ConditionType|undefined} * @api */ olx.interaction.DragRotateOptions.prototype.condition; /** * @typedef {{condition: (ol.events.ConditionType|undefined), * style: ol.style.Style}} * @api */ olx.interaction.DragZoomOptions; /** * A function that takes an {@link ol.MapBrowserEvent} and returns a boolean * to indicate whether that event should be handled. * Default is {@link ol.events.condition.shiftKeyOnly}. * @type {ol.events.ConditionType|undefined} * @api */ olx.interaction.DragZoomOptions.prototype.condition; /** * Style for the box. * @type {ol.style.Style} * @api */ olx.interaction.DragZoomOptions.prototype.style; /** * @typedef {{features: (ol.Collection.<ol.Feature>|undefined), * source: (ol.source.Vector|undefined), * snapTolerance: (number|undefined), * type: ol.geom.GeometryType, * minPointsPerRing: (number|undefined), * style: (ol.style.Style|Array.<ol.style.Style>|ol.style.StyleFunction|undefined), * geometryName: (string|undefined), * condition: (ol.events.ConditionType|undefined)}} * @api */ olx.interactio