/**
* @typedef {Object} ol.DeviceOrientationOptions
* @property {boolean|undefined} tracking Tracking.
*/
/**
* @typedef {Object} ol.GeolocationOptions
* @property {boolean|undefined} tracking Tracking.
* @property {GeolocationPositionOptions|undefined} trackingOptions Tracking options.
* @property {ol.ProjectionLike} projection Projection.
*/
/**
* @typedef {Object} ol.GetFeatureInfoOptions
* @property {ol.Pixel} pixel Pixel coordinate relative to the map viewport.
* @property {Array.
|undefined} layers Layers to restrict the
* query to. All map layers will be queried if not provided.
* @property {function(Array.>)} success Callback for
* successful queries. The passed argument is the resulting feature
* information for each layer, with array indices being the same as in the
* passed `layers` array or in the layer collection as returned from
* `ol.Map#getLayers()` if no `layers` were provided.
* @property {function(Object)|undefined} error Callback for unsuccessful
* queries. Note that queries with no matching features trigger the success
* callback, not the error callback.
*/
/**
* @typedef {Object} ol.GetFeaturesOptions
* @property {ol.Pixel} pixel Pixel coordinate relative to the map viewport.
* @property {Array.|undefined} layers Layers to restrict the
* query to. All layers will be queried if not provided.
* @property {function(Array.>)} success Callback
* for successful queries. The passed argument is the resulting features for
* each layer, with array indices being the same as in the passed `layers`
* array or in the layer collection as returned from `ol.Map#getLayers()` if
* no layers were provided.
* @property {function(Object)|undefined} error Callback for unsuccessful
* queries. Note that queries with no matching features trigger the success
* callback, not the error callback.
*/
/**
* Object literal with config options for the map.
* @typedef {Object} ol.MapOptions
* @property {ol.Collection|Array.|undefined} controls
* Controls initially added to the map.
* @property {ol.Collection|undefined} interactions Interactions.
* @property {Array.|ol.Collection|undefined} layers Layers.
* @property {ol.RendererHint|undefined} renderer Renderer.
* @property {Array.|undefined} renderers Renderers.
* @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.
*/
/**
* Object literal with config options for the overlay.
* @typedef {Object} ol.OverlayOptions
* @property {Element|undefined} element The overlay element.
* @property {ol.Map|undefined} map The map to overlay onto.
* @property {ol.Coordinate|undefined} position The overlay position in map
* projection.
* @property {ol.OverlayPositioning|undefined} positioning Positioning.
*/
/**
* Object literal with config options for the Proj4js projection.
* @typedef {Object} ol.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.
*/
/**
* Object literal with config options for the projection.
* @typedef {Object} ol.ProjectionOptions
* @property {string} code The SRS identifier code, e.g. 'EPSG:4326'.
* @property {ol.ProjectionUnits} 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.
*/
/**
* Object literal with config options for the view.
* @typedef {Object} ol.View2DOptions
* @property {ol.Coordinate|undefined} center The initial center for the view.
* The coordinate system for the center is specified with the `projection`
* option.
* @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.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).
* @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).
* @property {number|undefined} zoom 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. It is together with `maxResolution` and `maxZoom`.
* Default is 2.
*/
/**
* @typedef {Object} ol.animation.BounceOptions
* @property {number} resolution Resolution.
* @property {number|undefined} start The start time of the animation. Default is immediately.
* @property {number|undefined} duration The duration of the animation in milliseconds.
* @property {function(number):number|undefined} easing Easing function.
*/
/**
* @typedef {Object} ol.animation.PanOptions
* @property {ol.Coordinate} source Source.
* @property {number|undefined} start The start time of the animation. Default is immediately.
* @property {number|undefined} duration The duration of the animation in milliseconds.
* @property {function(number):number|undefined} easing Easing function.
*/
/**
* @typedef {Object} ol.animation.RotateOptions
* @property {number} rotation Rotation.
* @property {number|undefined} start The start time of the animation. Default is immediately.
* @property {number|undefined} duration The duration of the animation in milliseconds.
* @property {function(number):number|undefined} easing Easing function.
*/
/**
* @typedef {Object} ol.animation.ZoomOptions
* @property {number} resolution number Resolution.
* @property {number|undefined} start The start time of the animation. Default is immediately.
* @property {number|undefined} duration The duration of the animation in milliseconds.
* @property {function(number):number|undefined} easing Easing function.
*/
/**
* @typedef {Object} ol.control.AttributionOptions
* @property {string|undefined} className CSS class name. Default is 'ol-attribution'.
* @property {ol.Map|undefined} map Map.
* @property {Element|undefined} target Target.
*/
/**
* @typedef {Object} ol.control.ControlOptions
* @property {Element|undefined} element Element.
* @property {ol.Map|undefined} map Map.
* @property {Element|undefined} target Target.
*/
/**
* @typedef {Object} ol.control.DefaultsOptions
* @property {boolean|undefined} attribution Attribution.
* @property {ol.control.AttributionOptions|undefined} attributionOptions
* Attribution options.
* @property {boolean|undefined} logo Logo.
* @property {ol.control.LogoOptions|undefined} logoOptions Logo options.
* @property {boolean|undefined} zoom Zoom.
* @property {ol.control.ZoomOptions|undefined} zoomOptions Zoom options.
*/
/**
* @typedef {Object} ol.control.FullScreenOptions
* @property {string|undefined} className CSS class name. Default is 'ol-full-screen'.
* @property {boolean|undefined} keys Full keyboard access.
* @property {ol.Map|undefined} map Map.
* @property {Element|undefined} target Target.
*/
/**
* @typedef {Object} ol.control.LogoOptions
* @property {string|undefined} className CSS class name. Default is 'ol-logo'.
* @property {ol.Map|undefined} map Map.
* @property {Element|undefined} target Target.
*/
/**
* @typedef {Object} ol.control.MousePositionOptions
* @property {string|undefined} className CSS class name. Default is 'ol-mouse-position'.
* @property {ol.CoordinateFormatType|undefined} coordinateFormat Coordinate
* format.
* @property {ol.Map|undefined} map Map.
* @property {ol.ProjectionLike} projection Projection.
* @property {Element|undefined} target Target.
* @property {string|undefined} undefinedHTML Markup for undefined coordinates.
* Default is '' (empty string).
*/
/**
* @typedef {Object} ol.control.ScaleLineOptions
* @property {string|undefined} className CSS Class name. Default is 'ol-scale-line'.
* @property {ol.Map|undefined} map Map.
* @property {number|undefined} minWidth Minimum width in pixels.
* @property {Element|undefined} target Target.
* @property {ol.control.ScaleLineUnits|undefined} units Units.
*/
/**
* @typedef {Object} ol.control.ZoomOptions
* @property {string|undefined} className CSS class name. Default is 'ol-zoom'.
* @property {number|undefined} delta The zoom delta applied on each click.
* @property {ol.Map|undefined} map Map.
* @property {Element|undefined} target Target.
*/
/**
* @typedef {Object} ol.control.ZoomSliderOptions
* @property {string|undefined} className CSS class name.
* @property {ol.Map|undefined} map Map.
* @property {number|undefined} maxResolution Maximum resolution.
* @property {number|undefined} minResolution Minimum resolution.
*/
/**
* @typedef {Object} ol.control.ZoomToExtentOptions
* @property {string|undefined} className Class name.
* @property {ol.Map|undefined} map Map.
* @property {Element|undefined} target Target.
* @property {ol.Extent|undefined} extent The extent to zoom to. If
* undefined the validity extent of the view projection is used.
*/
/**
* @typedef {Object} ol.interaction.DoubleClickZoomOptions
* @property {number|undefined} delta The zoom delta applied on each double
* click.
*/
/**
* @typedef {Object} ol.interaction.DragPanOptions
* @property {ol.Kinetic|undefined} kinetic Kinetic.
* @property {ol.interaction.ConditionType|undefined} condition Conditon.
*/
/**
* @typedef {Object} ol.interaction.DragRotateOptions
* @property {ol.interaction.ConditionType|undefined} condition Condition.
*/
/**
* @typedef {Object} ol.interaction.DragRotateAndZoomOptions
* @property {ol.interaction.ConditionType|undefined} condition Condition.
*/
/**
* @typedef {Object} ol.interaction.DragZoomOptions
* @property {ol.interaction.ConditionType|undefined} condition Condition.
*/
/**
* Interactions for the map. Default is true for all options.
* @typedef {Object} ol.interaction.DefaultsOptions
* @property {boolean|undefined} altShiftDragRotate Whether Alt-Shift-drag
* rotate is desired.
* @property {boolean|undefined} doubleClickZoom Whether double click zoom is
* desired.
* @property {boolean|undefined} dragPan Whether drag-pan is desired.
* @property {boolean|undefined} keyboard Whether keyboard interaction is
* desired.
* @property {boolean|undefined} mouseWheelZoom Whether mousewheel zoom is
* desired.
* @property {boolean|undefined} shiftDragZoom Whether Shift-drag zoom is
* desired.
* @property {boolean|undefined} touchPan Whether touch pan is
* desired.
* @property {boolean|undefined} touchRotate Whether touch rotate is desired.
* @property {boolean|undefined} touchZoom Whether touch zoom is desired.
* @property {number|undefined} zoomDelta Zoom delta.
*/
/**
* @typedef {Object} ol.interaction.KeyboardPanOptions
* @property {ol.interaction.ConditionType|undefined} condition Condition.
* @property {number|undefined} pixelDelta Pixel delta
*/
/**
* @typedef {Object} ol.interaction.KeyboardZoomOptions
* @property {ol.interaction.ConditionType|undefined} condition Condition.
* @property {number|undefined} delta Delta.
*/
/**
* @typedef {Object} ol.interaction.TouchPanOptions
* @property {ol.Kinetic|undefined} kinetic Kinetic.
*/
/**
* @typedef {Object} ol.interaction.TouchRotateOptions
* @property {number|undefined} threshold Minimal angle to start a rotation.
*/
/**
* @typedef {Object} ol.layer.LayerOptions
* @property {number|undefined} brightness Brightness.
* @property {number|undefined} contrast Contrast.
* @property {number|undefined} hue Hue.
* @property {number|undefined} opacity Opacity. 0-1. Default is 1.
* @property {number|undefined} saturation Saturation.
* @property {ol.source.Source} source Source for this layer.
* @property {boolean|undefined} visible Visibility. Default is true (visible).
*/
/**
* @typedef {Object} ol.layer.TileLayerOptions
* @property {number|undefined} brightness Brightness.
* @property {number|undefined} contrast Contrast.
* @property {number|undefined} hue Hue.
* @property {number|undefined} opacity Opacity. 0-1. Default is 1.
* @property {number|undefined} preload Preload.
* @property {number|undefined} saturation Saturation.
* @property {ol.source.Source} source Source for this layer.
* @property {boolean|undefined} visible Visibility. Default is true (visible).
*/
/**
* @typedef {Object} ol.layer.VectorLayerOptions
* @property {function(Array.):string|undefined} transformFeatureInfo
* Function to render an array of
* features into feature info markup. If not provided, a comma separated
* list of the unique ids of the resulting features will be returned.
* @property {number|undefined} opacity Opacity. 0-1. Default is 1.
* @property {ol.source.Source} source Source for this layer.
* @property {ol.style.Style|undefined} style Style.
* @property {boolean|undefined} visible Visibility. Default is true (visible).
*/
/**
* @typedef {Object} ol.parser.KMLOptions
* @property {number|undefined} dimension Create geometries with `dimension`
* dimensions. Default is 3.
* @property {boolean|undefined} extractAttributes Should we extract attributes
* from the KML? Default is `true´.
* @property {boolean|undefined} extractStyles Should we extract styles from the
* KML? Default is `false`.
* @property {number|undefined} maxDepth Maximum depth to follow network links.
* Default is 0, which means we don't follow network links at all.
* @property {Array.|undefined} trackAttributes Track attributes to
* parse.
*/
/**
* @typedef {Object} ol.parser.GMLOptions
* @property {string|undefined} axisOrientation The axis orientation as
* specified in Proj4. The default is 'enu'.
* @property {boolean|undefined} curve Write gml:Curve instead of
* gml:LineString elements. This also affects the elements in multi-part
* geometries. Default is `false´. This only applies to GML version 3.
* @property {boolean|undefined} extractAttributes Should we extract attributes
* from the GML? Default is `true´.
* @property {string|undefined} featureNS The feature namespace. If not set it
* will be automatically configured from the GML.
* @property {Array.|string|undefined} featureType The local
* (without prefix) feature typeName(s).
* @property {string|undefined} geometryName Name of geometry element.
* Defaults to `geometry´. If null, it will be set on when the
* first geometry is parsed.
* @property {boolean|undefined} multiCurve Write gml:MultiCurve instead of
* gml:MultiLineString. Since the latter is deprecated in GML 3, the
* default is `true´. This only applies to GML version 3.
* @property {boolean|undefined} multiSurface Write gml:multiSurface instead
* of gml:MultiPolygon. Since the latter is deprecated in GML 3, the
* default is `true´. This only applies to GML version 3.
* @property {string|undefined} schemaLocation Optional schemaLocation to use
* when writing out the GML, this will override the default provided.
* @property {string|undefined} srsName URI for spatial reference system.
* This is optional for single part geometries and mandatory for
* collections and multis. If set, the srsName attribute will be written
* for all geometries. Default is null.
* @property {boolean|undefined} surface Write gml:Surface instead of
* gml:Polygon elements. This also affects the elements in multi-part
* geometries. Default is `false´. This only applies to GML version 3.
*/
/**
* @typedef {Object} ol.parser.GPXOptions
* @property {string|undefined} creator The creator attribute to be added to
* the written GPX files. Defaults to `OpenLayers´.
* @property {string|undefined} defaultDesc Default description for the
* waypoints/tracks in the case where the feature has no 'description'
* attribute. Default is 'No description available'.
* @property {boolean|undefined} extractAttributes Should we extract attributes
* from the GPX? Default is `true´.
* @property {boolean|undefined} extractWaypoints Extract waypoints from GPX.
* Default is `true´.
* @property {boolean|undefined} extractTracks Extract tracks from GPX.
* Default is `true´.
* @property {boolean|undefined} extractRoutes Extract routes from GPX.
* Default is `true´.
*/
/**
* @typedef {Object} ol.parser.GPXWriteOptions
* @property {Array.|ol.Feature} features The features to write
* out.
* @property {Object|undefined} metadata Metadata key/value pair with keys:
* name, desc and author.
*/
/**
* @typedef {Object} ol.source.BingMapsOptions
* @property {string|undefined} culture Culture.
* @property {string} key Bing Maps API key. Get yours at
* http://bingmapsportal.com/.
* @property {string} style Style.
*/
/**
* @typedef {Object} ol.source.DebugTileSourceOptions
* @property {ol.Extent|undefined} extent Extent.
* @property {ol.ProjectionLike} projection Projection.
* @property {ol.tilegrid.TileGrid|undefined} tileGrid Tile grid.
*/
/**
* @typedef {Object} ol.source.OSMOptions
* @property {ol.Attribution|undefined} attribution Attribution.
* @property {Array.|undefined} attributions Attributions.
* @property {number|undefined} maxZoom Max zoom.
* @property {string|undefined} url URL.
*/
/**
* @typedef {Object} ol.source.SingleImageWMSOptions
* @property {Array.|undefined} attributions Attributions.
* @property {null|string|undefined} crossOrigin crossOrigin setting for image
* requests.
* @property {ol.Extent|undefined} extent Extent.
* @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.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.
* @property {Array.|undefined} resolutions Resolutions. If specified,
* requests will be made for these resolutions only.
* @property {string|undefined} url WMS service url.
*/
/**
* @typedef {Object} ol.source.SourceOptions
* @property {Array.|undefined} attributions Attributions.
* @property {ol.Extent|undefined} extent Extent.
* @property {string|undefined} logo Logo.
* @property {ol.ProjectionLike} projection Projection.
*/
/**
* @typedef {Object} ol.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 {string|undefined} url Url.
*/
/**
* @typedef {Object} ol.source.StaticImageOptions
* @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 {ol.ProjectionLike} projection Projection.
* @property {string|undefined} url Url.
*/
/**
* @typedef {Object} ol.source.TileJSONOptions
* @property {null|string|undefined} crossOrigin crossOriin setting for image
* requests.
* @property {string} url Url.
*/
/**
* @typedef {Object} ol.source.TiledWMSOptions
* @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 {ol.tilegrid.TileGrid|undefined} tileGrid Tile grid.
* @property {number|undefined} maxZoom Maximum zoom.
* @property {ol.ProjectionLike} projection Projection.
* @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.
*/
/**
* @typedef {Object} ol.source.VectorOptions
* @property {Array.|undefined} attributions Attributions.
* @property {Object|string|undefined} data Data to parse.
* @property {ol.Extent|undefined} extent Extent.
* @property {string|undefined} logo Logo.
* @property {ol.parser.Parser} parser Parser instance to parse data
* provided as `data` or fetched from `url`.
* @property {ol.ProjectionLike|undefined} projection Projection. EPSG:4326
* is assumed if not defined. TODO: Get projection from the parser instead
* of assuming EPSG:4326.
* @property {string|undefined} url Server url providing the vector data.
*/
/**
* @typedef {Object} ol.source.VectorSource2Options
* @property {Array.|undefined} attributions Attributions.
* @property {ol.Extent|undefined} extent Extent.
* @property {Array.|undefined}
* lineStringCollections Line string collections.
* @property {Array.|undefined} pointCollections
* Point collections.
* @property {ol.ProjectionLike} projection Projection.
*/
/**
* @typedef {Object} ol.source.WMTSOptions
* @property {Array.|undefined} attributions Attributions.
* @property {string|null|undefined} crossOrigin crossOrigin setting for image
* requeests.
* @property {ol.Extent|undefined} extent Extent.
* @property {ol.tilegrid.WMTS} tileGrid Tile grid.
* @property {ol.ProjectionLike} projection Projection.
* @property {ol.source.WMTSRequestEncoding|undefined} requestEncoding Request
* encoding.
* @property {string} layer Layer.
* @property {string} style Style.
* @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 {Array.|undefined} urls Urls.
*/
/**
* @typedef {Object} ol.style.IconOptions
* @property {string|ol.expr.Expression} url Icon image url.
* @property {number|ol.expr.Expression|undefined} width Width of the icon
* in pixels. Default is the width of the icon image.
* @property {number|ol.expr.Expression|undefined} height Height of the
* icon in pixels. Default is the height of the icon image.
* @property {number|ol.expr.Expression|undefined} opacity Icon opacity
* (0-1).
* @property {number|ol.expr.Expression|undefined} rotation Rotation in
* degrees (0-360).
*/
/**
* @typedef {Object} ol.style.LineOptions
* @property {string|ol.expr.Expression|undefined} strokeColor Stroke
* color as hex color code.
* @property {number|ol.expr.Expression|undefined} strokeWidth Stroke
* width in pixels.
* @property {number|ol.expr.Expression|undefined} opacity Opacity (0-1).
*/
/**
* @typedef {Object} ol.style.PolygonOptions
* @property {string|ol.expr.Expression|undefined} fillColor Fill color as
* hex color code.
* @property {string|ol.expr.Expression|undefined} strokeColor Stroke
* color as hex color code.
* @property {number|ol.expr.Expression|undefined} strokeWidth Stroke
* width in pixels.
* @property {number|ol.expr.Expression|undefined} opacity Opacity (0-1).
*/
/**
* @typedef {Object} ol.style.RuleOptions
* @property {ol.expr.Expression|string|undefined} filter Filter.
* @property {Array.|undefined} symbolizers Symbolizers.
*/
/**
* @typedef {Object} ol.style.ShapeOptions
* @property {ol.style.ShapeType|undefined} type Type.
* @property {number|ol.expr.Expression|undefined} size Size in pixels.
* @property {string|ol.expr.Expression|undefined} fillColor Fill color as
* hex color code.
* @property {string|ol.expr.Expression|undefined} strokeColor Stroke
* color as hex color code.
* @property {number|ol.expr.Expression|undefined} strokeWidth Stroke
* width in pixels.
* @property {number|ol.expr.Expression|undefined} opacity Opacity (0-1).
*/
/**
* @typedef {Object} ol.style.StyleOptions
* @property {Array.} rules Rules.
*/
/**
* @typedef {Object} ol.style.TextOptions
* @property {string|ol.expr.Expression|undefined} color Color.
* @property {string|ol.expr.Expression|undefined} fontFamily Font family.
* @property {number|ol.expr.Expression|undefined} fontSize Font size in pixels.
* @property {string|ol.expr.Expression} text Text for the label.
* @property {number|ol.expr.Expression|undefined} opacity Opacity (0-1).
*/
/**
* @typedef {Object} ol.tilegrid.TileGridOptions
* @property {number|undefined} minZoom Minimum zoom.
* @property {ol.Coordinate|undefined} origin Origin.
* @property {Array.|undefined} origins Origins.
* @property {!Array.} resolutions Resolutions.
* @property {ol.Size|undefined} tileSize Tile size.
* @property {Array.|undefined} tileSizes Tile sizes.
*/
/**
* @typedef {Object} ol.tilegrid.WMTSOptions
* @property {ol.Coordinate|undefined} origin Origin.
* @property {Array.|undefined} origins Origins.
* @property {!Array.} resolutions Resolutions.
* @property {!Array.} matrixIds matrix IDs.
* @property {ol.Size|undefined} tileSize Tile size.
* @property {Array.|undefined} tileSizes Tile sizes.
*/
/**
* @typedef {Object} ol.tilegrid.XYZOptions
* @property {number} maxZoom Maximum zoom.
*/