/** * @typedef {Object} olx.AttributionOptions * @property {string} html HTML markup for this attribution. * @property {Object.>|undefined} tileRanges * Tile ranges (FOR INTERNAL USE ONLY). * @todo stability experimental */ /** * @typedef {Object} olx.DeviceOptions * @property {boolean|undefined} loadTilesWhileAnimating When set to false, * no tiles will be loaded while animating, which improves responsiveness * on devices with slow memory. Default is `true`. * @property {boolean|undefined} loadTilesWhileInteracting When set to false, * no tiles will be loaded while interacting, which improves responsiveness * on devices with slow memory. Default is `true`. * @todo stability experimental */ /** * @typedef {Object} olx.DeviceOrientationOptions * @property {boolean|undefined} tracking Start tracking. Default is `false`. * @todo stability experimental */ /** * @typedef {Object} olx.GeolocationOptions * @property {boolean|undefined} tracking Start Tracking. Default is `false`. * @property {GeolocationPositionOptions|undefined} trackingOptions Tracking options. * @property {ol.proj.ProjectionLike} projection Projection. * @todo stability experimental */ /** * Object literal with config options for the map. * @typedef {Object} olx.MapOptions * @property {ol.Collection|Array.|undefined} controls * Controls initially added to the map. * @property {olx.DeviceOptions|undefined} deviceOptions * Device options for the map. * @property {number|undefined} pixelRatio The ratio between physical * pixels and device-independent pixels (dips) on the device. If `undefined` * then it gets set by using `window.devicePixelRatio`. * @property {ol.Collection|Array.|undefined} interactions * Interactions that are initially added to the map. * @property {Element|Document|string|undefined} 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. * @property {Array.|ol.Collection|undefined} layers Layers. * @property {boolean|undefined} ol3Logo Show ol3 logo. Default is `true`. * @property {ol.Collection|Array.|undefined} overlays * Overlays initially added to the map. * @property {ol.RendererHint|Array.|string|undefined} renderer Renderer. * @property {Element|string|undefined} target The container for the map. * @property {ol.IView|undefined} view The map's view. Currently * {@link ol.View2D} is available as view. * @todo stability experimental */ /** * Object literal with config options for the overlay. * @typedef {Object} olx.OverlayOptions * @property {Element|undefined} element The overlay element. * @property {ol.Coordinate|undefined} position The overlay position in map * projection. * @property {ol.OverlayPositioning|string|undefined} positioning Positioning. * @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 * (`ol-overlaycontainer-stopevent`). * @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. * @property {number|undefined} offsetX Horizontal offset in pixels. * A positive will shift the overlay right. Default is `0`. * @property {number|undefined} offsetY Vertical offset in pixels. * A positive will shift the overlay down. Default is `0`. * @todo stability experimental */ /** * Object literal with config options for the Proj4js projection. * @typedef {Object} olx.Proj4jsProjectionOptions * @property {string} code The SRS identifier code, e.g. `EPSG:31256`. * @property {ol.Extent|undefined} extent The validity extent for the SRS. * @property {boolean|undefined} global Whether the projection is valid for the * whole globe. Default is `false`. * @todo stability experimental */ /** * Object literal with config options for the projection. * @typedef {Object} olx.ProjectionOptions * @property {string} code The SRS identifier code, e.g. `EPSG:4326`. * @property {ol.proj.Units|string} units Units. * @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`. * @todo stability experimental */ /** * Object literal with config options for the view. * @typedef {Object} olx.View2DOptions * @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. * @property {boolean|number|undefined} constrainRotation Rotation constraint. * `false` means no constraint. `true` means no constraint, but snap to * zero near zero. A number constraints 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`. * @property {boolean|undefined} enableRotation Enable rotation. Default is * `true`. * @property {ol.Extent|undefined} extent The extent that constrains the center, * in other words, center cannot be set outside this extent. * Default is `undefined`. * @property {number|undefined} maxResolution The maximum resolution used to * determine the resolution constraint. It is used together with `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`. * @property {number|undefined} maxZoom The maximum zoom level used to determine * the resolution constraint. It is used together with `maxResolution` and * `zoomFactor`. Default is `28`. * @property {ol.proj.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. * @property {Array.|undefined} resolutions Resolutions to determine the * resolution constraint. If set the `maxResolution`, `maxZoom` and * `zoomFactor` options are ignored. * @property {number|undefined} rotation The initial rotation for the view * in radians (positive rotation clockwise). Default is `0`. * @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.View2D#constrainResolution` method. * @property {number|undefined} zoomFactor The zoom factor used to determine the * resolution constraint. Used together with `maxResolution` and `maxZoom`. * Default is `2`. * @todo stability experimental */ /** * @typedef {Object} olx.animation.BounceOptions * @property {number} resolution The resolution to start the bounce from, typically `map.getView().getResolution()`. * @property {number|undefined} start The start time of the animation. Default is immediately. * @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`. * @property {function(number):number|undefined} easing The easing function to use. Default is `ol.easing.upAndDown` * @todo stability experimental */ /** * @typedef {Object} olx.animation.PanOptions * @property {ol.Coordinate} source The location to start panning from, typically `map.getView().getCenter()`. * @property {number|undefined} start The start time of the animation. Default is immediately. * @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`. * @property {function(number):number|undefined} easing The easing function to use. Default is `ol.easing.inAndOut` * @todo stability experimental */ /** * @typedef {Object} olx.animation.RotateOptions * @property {number} rotation The rotation to apply, in radians. * @property {number|undefined} start The start time of the animation. Default is immediately. * @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`. * @property {function(number):number|undefined} easing The easing function to use. Default is `ol.easing.inAndOut` * @todo stability experimental */ /** * @typedef {Object} olx.animation.ZoomOptions * @property {number} resolution number The resolution to begin zooming from, typically `map.getView().getResolution()`. * @property {number|undefined} start The start time of the animation. Default is immediately. * @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`. * @property {function(number):number|undefined} easing Easing function. * @todo stability experimental */ /** * @typedef {Object} olx.control.AttributionOptions * @property {string|undefined} className CSS class name. Default is `ol-attribution`. * @property {Element|undefined} target Target. * @todo stability experimental */ /** * @typedef {Object} olx.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. * @property {Element|string|undefined} target Specify a target if you want the * control to be rendered outside of the map's viewport. * @todo stability experimental */ /** * @typedef {Object} olx.control.DefaultsOptions * @property {boolean|undefined} attribution Attribution. Default is `true`. * @property {olx.control.AttributionOptions|undefined} attributionOptions * Attribution options. * @property {boolean|undefined} logo Logo. Default is `true`. * @property {olx.control.LogoOptions|undefined} logoOptions Logo options. * @property {boolean|undefined} zoom Zoom. Default is `true`. * @property {olx.control.ZoomOptions|undefined} zoomOptions Zoom options. * @todo stability experimental */ /** * @typedef {Object} olx.control.FullScreenOptions * @property {string|undefined} className CSS class name. Default is `ol-full-screen`. * @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|undefined} target Target. * @todo stability experimental */ /** * @typedef {Object} olx.control.LogoOptions * @property {string|undefined} className CSS class name. Default is `ol-logo`. * @property {Element|undefined} target Target. * @todo stability experimental */ /** * @typedef {Object} olx.control.MousePositionOptions * @property {string|undefined} className CSS class name. Default is `ol-mouse-position`. * @property {ol.CoordinateFormatType|undefined} coordinateFormat Coordinate * format. * @property {ol.proj.ProjectionLike} projection Projection. * @property {Element|undefined} target Target. * @property {string|undefined} undefinedHTML Markup for undefined coordinates. * Default is `` (empty string). * @todo stability experimental */ /** * @typedef {Object} olx.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 {Element|undefined} target Target. * @property {ol.control.ScaleLineUnits|string|undefined} units Units. * Default is `metric`. * @todo stability experimental */ /** * @typedef {Object} olx.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|undefined} zoomInLabel Text label to use for the zoom-in button. Default is `+` * @property {string|undefined} zoomOutLabel Text label to use for the zoom-out button. Default is `-` * @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|undefined} target Target. * @todo stability experimental */ /** * @typedef {Object} olx.control.ZoomSliderOptions * @property {string|undefined} className CSS class name. * @property {number|undefined} maxResolution Maximum resolution. * @property {number|undefined} minResolution Minimum resolution. * @todo stability experimental */ /** * @typedef {Object} olx.control.ZoomToExtentOptions * @property {string|undefined} className Class name. Default is `ol-zoom-extent`. * @property {Element|undefined} target Target. * @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. * @todo stability experimental */ /** * @typedef {Object} olx.format.GeoJSONOptions * @property {ol.proj.ProjectionLike} defaultProjection Default projection. */ /** * @typedef {Object} olx.format.TopoJSONOptions * @property {ol.proj.ProjectionLike} defaultProjection Default projection. */ /** * @typedef {Object} olx.format.IGCOptions * @property {ol.format.IGCZ|undefined} altitudeMode Altitude mode. * Possible values are `barometric`, `gps`, and `none`. Default is `none`. */ /** * @typedef {Object} olx.format.KMLOptions * @property {Array.|undefined} defaultStyle Default style. The default * default style is the same as Google Earth. */ /** * @typedef {Object} olx.format.GMLOptions * @property {string} featureNS Feature namespace. * @property {string} featureType Feature type to parse. * @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´. * @property {boolean|undefined} curve Write gml:Curve instead of * gml:LineString elements. This also affects the elements in multi-part * geometries. Default is `false´. * @property {boolean|undefined} multiCurve Write gml:MultiCurve instead of * gml:MultiLineString. Since the latter is deprecated in GML 3, the * default is `true´. * @property {boolean|undefined} multiSurface Write gml:multiSurface instead * of gml:MultiPolygon. Since the latter is deprecated in GML 3, the * default is `true´. * @property {string|undefined} schemaLocation Optional schemaLocation to use * when writing out the GML, this will override the default provided. */ /** * @typedef {Object} olx.format.WFSOptions * @property {string} featureNS The namespace URI used for features. * @property {string} featureType The feature type to parse. Only used for * read operations. * @property {string|undefined} schemaLocation Optional schemaLocation to use * for serialization, this will override the default. */ /** * @typedef {Object} olx.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. * @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 {ol.Extent|undefined} bbox Extent to use for the BBOX filter. */ /** * @typedef {Object} olx.format.WFSWriteTransactionOptions * @property {string} featureNS The namespace URI used for features. * @property {string} featurePrefix The prefix for the feature namespace. * @property {string} featureType The feature type name. * @property {string|undefined} srsName SRS name. No srsName attribute will be * set on geometries when this is not provided. * @property {string|undefined} handle Handle. * @property {Array.} nativeElements Native elements. Currently not * supported. */ /** * @typedef {Object} olx.interaction.DoubleClickZoomOptions * @property {number|undefined} duration Animation duration in milliseconds. Default is `250`. * @property {number|undefined} delta The zoom delta applied on each double * click, default is `1`. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.DragAndDropOptions * @property {Array.|undefined} formatConstructors * Format constructors. * @property {ol.proj.ProjectionLike} reprojectTo Target projection. By * default, the map's view's projection is used. */ /** * @typedef {Object} olx.interaction.DragPanOptions * @property {ol.Kinetic|undefined} kinetic Kinetic inertia to apply to the pan. * @property {ol.events.ConditionType|undefined} condition A conditional * modifier (i.e. Shift key) that determines if the interaction is active * or not, default is no modifiers. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.DragRotateOptions * @property {ol.events.ConditionType|undefined} condition A conditional * modifier (i.e. Shift key) that determines if the interaction is active * or not, default is both shift and alt keys. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.DragRotateAndZoomOptions * @property {ol.events.ConditionType|undefined} condition A conditional * modifier (i.e. Shift key) that determines if the interaction is active * or not, default is shify key. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.DragBoxOptions * @property {ol.events.ConditionType|undefined} condition A conditional * modifier (i.e. Shift key) that determines if the interaction is active * or not, default is always. * @property {ol.style.Style} style Style for the box. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.DragZoomOptions * @property {ol.events.ConditionType|undefined} condition A conditional * modifier (i.e. Shift key) that determines if the interaction is active * or not, default is shift key. * @property {ol.style.Style} style Style for the box. * @todo stability experimental */ /** * Interactions for the map. Default is `true` for all options. * @typedef {Object} olx.interaction.DefaultsOptions * @property {boolean|undefined} altShiftDragRotate Whether Alt-Shift-drag * rotate is desired. Default is `true`. * @property {boolean|undefined} doubleClickZoom Whether double click zoom is * desired. Default is `true`. * @property {boolean|undefined} dragPan Whether drag-pan is desired. Default is `true`. * @property {boolean|undefined} keyboard Whether keyboard interaction is * desired. Default is `true`. * @property {boolean|undefined} mouseWheelZoom Whether mousewheel zoom is * desired. Default is `true`. * @property {boolean|undefined} shiftDragZoom Whether Shift-drag zoom is * desired. Default is `true`. * @property {boolean|undefined} pan Whether pan is * desired. Default is `true`. * @property {boolean|undefined} rotate Whether rotate is desired. Default is `true`. * @property {boolean|undefined} zoom Whether zoom is desired. Default is `true`. * @property {number|undefined} zoomDelta Zoom delta. * @property {number|undefined} zoomDuration Zoom duration. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.DrawOptions * @property {ol.Collection|undefined} features Destination collection for the drawn features. * @property {ol.source.Vector|undefined} source Destination source for the drawn features. * @property {number|undefined} snapTolerance Pixel distance for snapping to the * drawing finish (default is 12). * @property {ol.geom.GeometryType} type Drawing type ('Point', 'LineString', * 'Polygon', 'MultiPoint', 'MultiLineString', or 'MultiPolygon'). * @property {number|undefined} minPointsPerRing The number of points that must * be drawn before a polygon ring can be finished (default is 3). * @property {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} style * Style for sketch features. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.KeyboardPanOptions * @property {ol.events.ConditionType|undefined} condition A conditional * modifier (i.e. Shift key) that determines if the interaction is active * or not, default is no modifiers. * @property {number|undefined} pixelDelta Pixel The amount to pan on each key * press. Default is `128` pixels. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.KeyboardZoomOptions * @property {number|undefined} duration Animation duration in milliseconds. Default is `100`. * @property {ol.events.ConditionType|undefined} condition A conditional * modifier (i.e. Shift key) that determines if the interaction is active * or not, default is no modifiers. * @property {number|undefined} delta The amount to zoom on each key press. Default is `1`. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.MouseWheelZoomOptions * @property {number|undefined} duration Animation duration in milliseconds. Default is `250`. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.SelectOptions * @property {ol.events.ConditionType|undefined} addCondition A conditional * modifier (e.g. shift key) that determines if the selection is added to * the current selection. By default, a shift-click adds to the current * selection. * @property {ol.events.ConditionType|undefined} condition A conditional * modifier (e.g. shift key) that determines if the interaction is active * (i.e. selection occurs) or not. By default, a click with no modifier keys * toggles the selection. * @property {function(ol.layer.Layer): boolean|undefined} layerFilter Filter * function to restrict selection to a subset of layers. * @property {ol.layer.Layer|undefined} layer Layer. The single layer from which * features should be selected. * @property {Array.|undefined} layers Layers. Zero or more * layers from which features should be selected. * @property {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} style FeatureOverlay style. */ /** * @typedef {Object} olx.interaction.PanOptions * @property {ol.Kinetic|undefined} kinetic Kinetic inertia to apply to the * pan. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.ModifyOptions * @property {number|undefined} pixelTolerance Pixel tolerance for considering * the pointer close enough to a vertex for editing. Default is 20 pixels. * @property {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} style FeatureOverlay style. * @property {ol.Collection} features The features the interaction works on. */ /** * @typedef {Object} olx.interaction.RotateOptions * @property {number|undefined} threshold Minimal angle in radians to start a rotation. * Default is `0.3`. * @todo stability experimental */ /** * @typedef {Object} olx.interaction.ZoomOptions * @property {number|undefined} duration Animation duration in milliseconds. Default is `400`. * @todo stability experimental */ /** * @typedef {Object} olx.layer.BaseOptions * @property {number|undefined} brightness Brightness. Default is `0`. * @property {number|undefined} contrast Contrast. Default is `1`. * @property {number|undefined} hue Hue. Default is `0`. * @property {number|undefined} opacity Opacity (0, 1). Default is `1`. * @property {number|undefined} saturation Saturation. Default is `1`. * @property {boolean|undefined} visible Visibility. Default is `true`. * @property {number|undefined} minResolution The minimum resolution * (inclusive) at which this layer will be visible. * @property {number|undefined} maxResolution The maximum resolution * (exclusive) below which this layer will be visible. * @todo stability experimental */ /** * @typedef {Object} olx.layer.LayerOptions * @property {number|undefined} brightness Brightness. Default is `0`. * @property {number|undefined} contrast Contrast. Default is `1`. * @property {number|undefined} hue Hue. Default is `0`. * @property {number|undefined} opacity Opacity (0, 1). Default is `1`. * @property {number|undefined} saturation Saturation. Default is `1`. * @property {ol.source.Source} source Source for this layer. * @property {boolean|undefined} visible Visibility. Default is `true` (visible). * @property {number|undefined} minResolution The minimum resolution * (inclusive) at which this layer will be visible. * @property {number|undefined} maxResolution The maximum resolution * (exclusive) below which this layer will be visible. * @todo stability experimental */ /** * @typedef {Object} olx.layer.GroupOptions * @property {number|undefined} brightness Brightness. Default is `0`. * @property {number|undefined} contrast Contrast. Default is `1`. * @property {number|undefined} hue Hue. Default is `0`. * @property {number|undefined} opacity Opacity (0, 1). Default is `1`. * @property {number|undefined} saturation Saturation. Default is `1`. * @property {boolean|undefined} visible Visibility. Default is `true`. * @property {number|undefined} minResolution The minimum resolution * (inclusive) at which this layer will be visible. * @property {number|undefined} maxResolution The maximum resolution * (exclusive) below which this layer will be visible. * @property {Array.|ol.Collection|undefined} layers Child layers. * @todo stability experimental */ /** * @typedef {Object} olx.layer.HeatmapOptions * @property {number|undefined} brightness Brightness. * @property {number|undefined} contrast Contrast. * @property {number|undefined} hue Hue. * @property {Array.|undefined} gradient The color gradient of the heatmap, * specified as an array of CSS color strings. Default is `['#00f', '#0ff', '#0f0', '#ff0', '#f00']`. * @property {number|undefined} radius Radius size in pixels. Default is `8`. * @property {number|undefined} blur Blur size in pixels. Default is `15`. * @property {number|undefined} shadow Shadow size in pixels. Default is `250`. * @property {number|undefined} minResolution The minimum resolution * (inclusive) at which this layer will be visible. * @property {number|undefined} maxResolution The maximum resolution * (exclusive) below which this layer will be visible. * @property {number|undefined} opacity Opacity. 0-1. Default is `1`. * @property {number|undefined} saturation Saturation. * @property {ol.source.Vector} source Source. * @property {boolean|undefined} visible Visibility. Default is `true` (visible). * @todo stability experimental */ /** * @typedef {Object} olx.layer.TileOptions * @property {number|undefined} brightness Brightness. Default is `0`. * @property {number|undefined} contrast Contrast. Default is `1`. * @property {number|undefined} hue Hue. Default is `0`. * @property {number|undefined} opacity Opacity (0, 1). Default is `1`. * @property {number|undefined} preload Preload. * @property {number|undefined} saturation Saturation. Default is `1`. * @property {ol.source.Source} source Source for this layer. * @property {boolean|undefined} visible Visibility. Default is `true` (visible). * @property {number|undefined} minResolution The minimum resolution * (inclusive) at which this layer will be visible. * @property {number|undefined} maxResolution The maximum resolution * (exclusive) below which this layer will be visible. * @property {boolean|undefined} useInterimTilesOnError Use interim tiles on * error. Default is `true`. * @todo stability experimental */ /** * @typedef {Object} olx.layer.VectorOptions * @property {number|undefined} brightness Brightness. * @property {number|undefined} contrast Contrast. * @property {number|undefined} hue Hue. * @property {number|undefined} minResolution The minimum resolution * (inclusive) at which this layer will be visible. * @property {number|undefined} maxResolution The maximum resolution * (exclusive) below which this layer will be visible. * @property {number|undefined} opacity Opacity. 0-1. Default is `1`. * @property {number|undefined} saturation Saturation. * @property {ol.source.Vector} source Source. * @property {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} style Layer style. * @property {boolean|undefined} visible Visibility. Default is `true` (visible). * @todo stability experimental */ /** * @typedef {Object} olx.FeatureOverlayOptions * @property {Array.|ol.Collection|undefined} features Features. * @property {ol.Map|undefined} map Map. * @property {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} style Feature style. */ /** * @typedef {Object} olx.source.BingMapsOptions * @property {string|undefined} culture Culture code. Default is `en-us`. * @property {string} key Bing Maps API key. Get yours at * http://bingmapsportal.com/. * @property {string} imagerySet Type of imagery. * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional * function to load a tile given a URL. * @todo stability experimental */ /** * @typedef {Object} olx.source.GeoJSONOptions * @property {Array.|undefined} attributions Attributions. * @property {ol.proj.ProjectionLike} defaultProjection Default projection. * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. * @property {GeoJSONObject|undefined} object Object. * @property {ol.proj.ProjectionLike} projection Destination projection. If * provided, features will be transformed to this projection. If not * provided, features will not be transformed. * @property {string|undefined} text Text. * @property {string|undefined} url URL. * @property {Array.|undefined} urls URLs. */ /** * @typedef {Object} olx.source.GPXOptions * @property {Array.|undefined} attributions Attributions. * @property {Document|undefined} doc Document. * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. * @property {Node|undefined} node Node. * @property {ol.proj.ProjectionLike} projection Destination projection. If * provided, features will be transformed to this projection. If not * provided, features will not be transformed. * @property {string|undefined} text Text. * @property {string|undefined} url URL. * @property {Array.|undefined} urls URLs. */ /** * @typedef {Object} olx.source.TopoJSONOptions * @property {Array.|undefined} attributions Attributions. * @property {ol.proj.ProjectionLike} defaultProjection Default projection. * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. * @property {GeoJSONObject|undefined} object Object. * @property {ol.proj.ProjectionLike} projection Destination projection. If * provided, features will be transformed to this projection. If not * provided, features will not be transformed. * @property {string|undefined} text Text. * @property {string|undefined} url URL. */ /** * @typedef {Object} olx.source.IGCOptions * @property {ol.format.IGCZ|undefined} altitudeMode Altitude mode. * Possible values are `barometric`, `gps`, and `none`. Default is `none`. * @property {ol.proj.ProjectionLike} projection Destination projection. If * provided, features will be transformed to this projection. If not * provided, features will not be transformed. * @property {string|undefined} text Text. * @property {string|undefined} url URL. * @property {Array.|undefined} urls URLs. */ /** * @typedef {Object} olx.source.MapGuideOptions * @property {string|undefined} url The mapagent url. * @property {number|undefined} displayDpi The display resolution. Default is `96`. * @property {number|undefined} metersPerUnit The meters-per-unit value. Default is `1`. * @property {ol.Extent|undefined} extent Extent. * @property {boolean|undefined} hidpi Use the `ol.Map#pixelRatio` value when * requesting the image from the remote server. Default is `true`. * @property {boolean|undefined} useOverlay If `true`, will use * `GETDYNAMICMAPOVERLAYIMAGE`. * @property {ol.proj.ProjectionLike} projection Projection. * @property {number|undefined} ratio Ratio. `1` means image requests are the size * of the map viewport, `2` means twice the size of the map viewport, and so * on. Default is `1`. * @property {Array.|undefined} resolutions Resolutions. If specified, * requests will be made for these resolutions only. * @property {Object|undefined} params Additional parameters. */ /** * @typedef {Object} olx.source.KMLOptions * @property {Array.|undefined} attributions Attributions. * @property {Array.|undefined} defaultStyle Default style. * @property {Document|undefined} doc Document. * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. * @property {Node|undefined} node Node. * @property {ol.proj.ProjectionLike} projection Destination projection. If * provided, features will be transformed to this projection. If not * provided, features will not be transformed. * @property {string|undefined} text Text. * @property {string|undefined} url URL. * @property {Array.|undefined} urls URLs. */ /** * @typedef {Object} olx.source.MapQuestOptions * @property {string} layer Layer. Possible values are `osm`, `sat`, and `hyb`. * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional * function to load a tile given a URL. * @todo stability experimental */ /** * @typedef {Object} olx.source.TileDebugOptions * @property {ol.Extent|undefined} extent Extent. * @property {ol.proj.ProjectionLike} projection Projection. * @property {ol.tilegrid.TileGrid|undefined} tileGrid Tile grid. * @todo stability experimental */ /** * @typedef {Object} olx.source.OSMOptions * @property {Array.|undefined} attributions Attributions. * @property {null|string|undefined} crossOrigin crossOrigin setting for image * requests. Default is `anonymous`. * @property {number|undefined} maxZoom Max zoom. * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional * function to load a tile given a URL. * @property {string|undefined} url URL template. Must include `{x}`, `{y}`, * and `{z}` placeholders. Default is * `//{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png`. * @todo stability experimental */ /** * @typedef {Object} olx.source.OSMXMLOptions * @property {Array.|undefined} attributions Attributions. * @property {Array.|undefined} defaultStyle Default style. * @property {Document|undefined} doc Document. * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. * @property {Node|undefined| node Node. * @property {ol.proj.ProjectionLike} projection Projection. * @property {ol.proj.ProjectionLike} reprojectTo Re-project to. * @property {string|undefined} text Text. * @property {string|undefined} url URL. * @property {Array.|undefined} urls URLs. */ /** * @typedef {Object} olx.source.ImageCanvasOptions * @property {Array.|undefined} attributions Attributions. * @property {ol.CanvasFunctionType} canvasFunction Canvas function. The function * returning the canvas element used by the source as an image. The arguments * passed to the function are: `{ol.Extent}` the image extent, `{number}` the * image resolution, `{number}` the device pixel ratio, `{ol.Size}` the image * size, and `{ol.proj.Projection}` the image projection. The canvas returned * by this function is cached by the source. If the value returned by the * function is later changed then `dispatchChangeEvent` should be called on * the source for the source to invalidate the current cached image. * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. * @property {ol.proj.ProjectionLike} projection Projection. * @property {number|undefined} ratio Ratio. 1 means canvases are the size * of the map viewport, 2 means twice the size of the map viewport, and so * on. Default is `1.5`. * @property {Array.|undefined} resolutions Resolutions. If specified, * new canvases will be created for these resolutions only. * @property {ol.source.State|string|undefined} state Source state. */ /** * @typedef {Object} olx.source.ImageVectorOptions * @property {Array.|undefined} attributions Attributions. * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. * @property {ol.proj.ProjectionLike} projection Projection. * @property {number|undefined} ratio Ratio. 1 means canvases are the size * of the map viewport, 2 means twice the size of the map viewport, and so * on. Default is `1.5`. * @property {Array.|undefined} resolutions Resolutions. If specified, * new canvases will be created for these resolutions only. * @property {ol.source.Vector} source The vector source from which the vector * features drawn in canvas elements are read. * @property {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} style * Style to use when rendering features to the canvas. */ /** * @typedef {Object} olx.source.ImageWMSOptions * @property {Array.|undefined} attributions Attributions. * @property {null|string|undefined} crossOrigin crossOrigin setting for image * requests. * @property {ol.Extent|undefined} extent Extent. * @property {boolean|undefined} hidpi Use the `ol.Map#pixelRatio` value when * requesting the image from the remote server. Default is `true`. * @property {ol.source.wms.ServerType|string|undefined} serverType The type of the remote WMS * server: `mapserver`, `geoserver` or `qgis`. Only needed if `hidpi` is `true`. * Default is `undefined`. * @property {string|undefined} logo Logo. * @property {Object.} params WMS request parameters. At least a * `LAYERS` param is required. `STYLES` is `` by default. `VERSION` is * `1.3.0` by default. `WIDTH`, `HEIGHT`, `BBOX` and `CRS` (`SRS` for WMS * version < 1.3.0) will be set dynamically. * @property {ol.proj.ProjectionLike} projection Projection. * @property {number|undefined} ratio Ratio. `1` means image requests are the size * of the map viewport, `2` means twice the size of the map viewport, and so * on. Default is `1.5`. * @property {Array.|undefined} resolutions Resolutions. If specified, * requests will be made for these resolutions only. * @property {string|undefined} url WMS service URL. * @todo stability experimental */ /** * @typedef {Object} olx.source.StamenOptions * @property {string} layer Layer. * @property {number|undefined} minZoom Minimum zoom. * @property {number|undefined} maxZoom Maximum zoom. * @property {boolean|undefined} opaque Whether the layer is opaque. * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional * function to load a tile given a URL. * @property {string|undefined} url URL template. Must include `{x}`, `{y}`, * and `{z}` placeholders. * @todo stability experimental */ /** * @typedef {Object} olx.source.ImageStaticOptions * @property {Array.|undefined} attributions Attributions. * @property {null|string|undefined} crossOrigin crossOrigin setting for image * requests. * @property {ol.Extent|undefined} extent Extent. * @property {ol.Extent|undefined} imageExtent Extent of the image. * @property {ol.Size|undefined} imageSize Size of the image. * @property {string|undefined} logo Logo. * @property {ol.proj.ProjectionLike} projection Projection. * @property {string} url Url. */ /** * @typedef {Object} olx.source.TileJSONOptions * @property {null|string|undefined} crossOrigin crossOrigin setting for image * requests. * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional * function to load a tile given a URL. * @property {string} url URL to the TileJSON file. * @todo stability experimental */ /** * @typedef {Object} olx.source.TileWMSOptions * @property {Array.|undefined} attributions Attributions. * @property {Object.} params WMS request parameters. At least a * `LAYERS` param is required. `STYLES` is `` by default. `VERSION` is * `1.3.0` by default. `WIDTH`, `HEIGHT`, `BBOX` and `CRS` (`SRS` for WMS * version < 1.3.0) will be set dynamically. * @property {null|string|undefined} crossOrigin crossOrigin setting for image * requests. * @property {ol.Extent|undefined} extent Extent. * @property {number|undefined} gutter The size in pixels of the * gutter around image tiles to ignore. By setting this property to a * non-zero value, images will be requested that are wider and taller than * the tile size by a value of `2 x gutter`. Defaults to zero. Using a * non-zero value allows artifacts of rendering at tile edges to be ignored. If * you control the WMS service it is recommended to address "artifacts at tile * edges" issues by properly configuring the WMS service. For example, MapServer * has a `tile_map_edge_buffer` configuration parameter for this. See * http://mapserver.org/output/tile_mode.html. * @property {boolean|undefined} hidpi Use the `ol.Map#pixelRatio` value when * requesting the image from the remote server. Default is `true`. * @property {string|undefined} logo Logo. * @property {ol.tilegrid.TileGrid|undefined} tileGrid Tile grid. * @property {number|undefined} maxZoom Maximum zoom. * @property {ol.proj.ProjectionLike} projection Projection. * @property {ol.source.wms.ServerType|string|undefined} serverType The type of the remote WMS * server: `mapserver`, `geoserver` or `qgis`. Only needed if `hidpi` is `true`. * Default is `undefined`. * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional * function to load a tile given a URL. * @property {string|undefined} url WMS service URL. * @property {Array.|undefined} urls WMS service urls. Use this instead * of `url` when the WMS supports multiple urls for GetMap requests. * @todo stability experimental */ /** * @typedef {Object} olx.source.VectorOptions * @property {Array.|undefined} attributions Attributions. * @property {ol.Extent|undefined} extent Extent. * @property {Array.|undefined} features Features. * @property {string|undefined} logo Logo. * @property {ol.proj.ProjectionLike} projection Projection. * @property {ol.source.State|string|undefined} state State. */ /** * @typedef {Object} olx.source.VectorFileOptions * @property {ArrayBuffer|undefined} arrayBuffer Array buffer. * @property {Array.|undefined} attributions Attributions. * @property {Document|undefined} doc Document. * @property {ol.Extent|undefined} extent Extent. * @property {ol.format.Feature} format Format. * @property {string|undefined} logo Logo. * @property {Node|undefined} node Node. * @property {Object|undefined} object Object. * @property {ol.proj.ProjectionLike} projection Projection. * @property {string|undefined} text Text. * @property {string|undefined} url URL. * @property {Array.|undefined} urls URLs. */ /** * @typedef {Object} olx.source.WMTSOptions * @property {Array.|undefined} attributions Attributions. * @property {string|null|undefined} crossOrigin crossOrigin setting for image * requests. * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. * @property {ol.tilegrid.WMTS} tileGrid Tile grid. * @property {ol.proj.ProjectionLike} projection Projection. * @property {ol.source.WMTSRequestEncoding|undefined} requestEncoding Request * encoding. * @property {string} layer Layer. * @property {string} style Style. * @property {string|undefined} version WMTS version. Default to `1.0.0`. * @property {string|undefined} format Format. * @property {string} matrixSet Matrix set. * @property {Object|undefined} dimensions Dimensions. * @property {string|undefined} url URL. * @property {number|undefined} maxZoom Maximum zoom. * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional * function to load a tile given a URL. * @property {Array.|undefined} urls Urls. * @todo stability experimental */ /** * @typedef {Object} olx.source.XYZOptions * @property {Array.|undefined} attributions Attributions. * @property {null|string|undefined} crossOrigin Cross origin setting for image * requests. * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. * @property {ol.proj.ProjectionLike} projection Projection. Default is `EPSG:3857`. * @property {number|undefined} maxZoom Optional max zoom level. Default is `18`. * @property {number|undefined} minZoom Unsupported (TODO: remove this). * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional * function to load a tile given a URL. * @property {ol.TileUrlFunctionType|undefined} tileUrlFunction Optional * function to get tile URL given a tile coordinate and the projection. * Required if url or urls are not provided. * @property {string|undefined} url URL template. Must include `{x}`, `{y}`, * and `{z}` placeholders. * @property {Array.|undefined} urls An array of URL templates. * @todo stability experimental */ /** * @typedef {Object} olx.source.ZoomifyOptions * @property {Array.|undefined} attributions Attributions. * @property {null|string|undefined} crossOrigin Cross origin setting for image * requests. * @property {string|undefined} logo Logo. * @property {!string} url Prefix of URL template. * @property {string|undefined} tierSizeCalculation Tier size calculation method: `default` or `truncated`. * @property {ol.Size} size Size of the image. * @todo stability experimental */ /** * @typedef {Object} olx.style.CircleOptions * @property {ol.style.Fill|undefined} fill Fill style. * @property {number} radius Circle radius. * @property {ol.style.Stroke|undefined} stroke Stroke style. */ /** * @typedef {Object} olx.style.FillOptions * @property {ol.Color|string|undefined} color Color. * @todo stability experimental */ /** * @typedef {Object} olx.style.IconOptions * @property {Array.|undefined} anchor Anchor. Default value is `[0.5, 0.5]` * (icon center). * @property {ol.style.IconAnchorOrigin|undefined} anchorOrigin Origin of the anchor: `bottom-left`, `bottom-right`, `top-left` or `top-right`. Default is `top-left`. * @property {ol.style.IconAnchorUnits|undefined} anchorXUnits Units in which the anchor x value is specified. * A value of `'fraction'` indicates the x value is a fraction of the icon. * A value of `'pixels'` indicates the x value in pixels. Default is * `'fraction'`. * @property {ol.style.IconAnchorUnits|undefined} anchorYUnits Units in which the anchor y value is specified. * A value of `'fraction'` indicates the y value is a fraction of the icon. * A value of `'pixels'` indicates the y value in pixels. Default is * `'fraction'`. * @property {null|string|undefined} crossOrigin crossOrigin setting for image. * @property {number|undefined} scale Scale. * @property {boolean|undefined} rotateWithView Whether to rotate the icon with the view. Default is `false`. * @property {number|undefined} rotation Rotation. * @property {ol.Size|undefined} size Icon size in pixel. * @property {string} src Image source URI. */ /** * @typedef {Object} olx.style.StrokeOptions * @property {ol.Color|string|undefined} color Color. * @property {string|undefined} lineCap Line cap style: `butt`, `round`, or `square`. Default is `round`. * @property {string|undefined} lineJoin Line join style: `bevel`, `round`, or `miter`. Default is `round`. * @property {Array.|undefined} lineDash Line dash pattern. Default is `undefined` (no dash). * @property {number|undefined} miterLimit Miter limit. Default is `10`. * @property {number|undefined} width Width. * @todo stability experimental */ /** * @typedef {Object} olx.style.TextOptions * @property {string|undefined} font Font. * @property {number|undefined} offsetX Horizontal text offset in pixels. * A positive will shift the text right. Default is `0`. * @property {number|undefined} offsetY Vertical text offset in pixels. * A positive will shift the text down. Default is `0`. * @property {number|undefined} scale Scale. * @property {number|undefined} rotation Rotation. * @property {string|undefined} text Text. * @property {string|undefined} textAlign Text alignment. * @property {string|undefined} textBaseline Text base line. * @property {ol.style.Fill|undefined} fill Fill style. * @property {ol.style.Stroke|undefined} stroke Stroke style. * @todo stability experimental */ /** * @typedef {Object} olx.style.StyleOptions * @property {ol.style.Fill|undefined} fill Fill style. * @property {ol.style.Image|undefined} image Image style. * @property {ol.style.Stroke|undefined} stroke Stroke style. * @property {ol.style.Text|undefined} text Text style. * @property {number|undefined} zIndex Z index. * @todo stability experimental */ /** * @typedef {Object} olx.tilegrid.TileGridOptions * @property {number|undefined} minZoom Minimum zoom. * @property {ol.Coordinate|undefined} origin Origin. * @property {Array.|undefined} origins Origins. * @property {!Array.} resolutions Resolutions. * @property {number|undefined} tileSize Tile size. * @property {Array.|undefined} tileSizes Tile sizes. * @todo stability experimental */ /** * @typedef {Object} olx.tilegrid.WMTSOptions * @property {ol.Coordinate|undefined} origin Origin. * @property {Array.|undefined} origins Origins. * @property {!Array.} resolutions Resolutions. * @property {!Array.} matrixIds matrix IDs. * @property {number|undefined} tileSize Tile size. * @property {Array.|undefined} tileSizes Tile sizes. * @todo stability experimental */ /** * @typedef {Object} olx.tilegrid.XYZOptions * @property {number} maxZoom Maximum zoom. * @todo stability experimental */ /** * @typedef {Object} olx.tilegrid.ZoomifyOptions * @property {!Array.} resolutions Resolutions. * @todo stability experimental */ /** * @typedef {Object} olx.View2D.fitGeometryOptions * @property {!Array.} padding Padding (in pixels) to be cleared inside the view. Values in the array are top, right, bottom and left padding. Default is `[0, 0, 0, 0]`. * @property {boolean|undefined} constrainResolution Constrain the resolution. Default is `true`. * @property {boolean|undefined} nearest Get the nearest extent. Default is `false`. * @property {number|undefined} minResolution Minimum resolution that we zoom to. Default is `0`. * @todo stability experimental */