diff --git a/apidoc/conf.json b/apidoc/conf.json index 0aa799c414..4b91b0d4b8 100644 --- a/apidoc/conf.json +++ b/apidoc/conf.json @@ -13,7 +13,8 @@ "src/googx/dom/fullscreen.js" ], "include": [ - "src" + "src", + "externs/olx.js" ] }, "plugins": [ diff --git a/apidoc/plugins/exports.js b/apidoc/plugins/exports.js index 73f6dae2ed..2e7886d18f 100644 --- a/apidoc/plugins/exports.js +++ b/apidoc/plugins/exports.js @@ -58,18 +58,8 @@ exports.handlers = { newDoclet: function(e) { var i, ii, j, jj; - if (e.doclet.meta.filename == "objectliterals.jsdoc" && e.doclet.properties) { - for (i = 0, ii = e.doclet.properties.length; i < ii; ++i) { - if (e.doclet.properties[i].type && e.doclet.properties[i].type.names) { - for (j = 0, jj = e.doclet.properties[i].type.names.length; j < jj; ++j) { - if (e.doclet.properties[i].type.names[j].indexOf('ol') == 0) { - if (api.indexOf(e.doclet.properties[i].type.names[j]) === -1) { - api.push(e.doclet.properties[i].type.names[j]); - } - } - } - } - } + if (e.doclet.meta.filename == "olx.js" && e.doclet.longname != 'olx') { + api.push(e.doclet.longname); } if (api.indexOf(e.doclet.longname) > -1) { var names, name; @@ -102,6 +92,18 @@ exports.handlers = { parseComplete: function(e) { for (var j = e.doclets.length - 1; j >= 0; --j) { var doclet = e.doclets[j]; + if (doclet.meta.filename == 'olx.js' && doclet.kind == 'typedef') { + for (var i = e.doclets.length - 1; i >= 0; --i) { + var propertyDoclet = e.doclets[i]; + if (propertyDoclet.memberof == doclet.longname) { + if (!doclet.properties) { + doclet.properties = []; + } + doclet.properties.unshift(propertyDoclet); + e.doclets.splice(i, 1) + } + } + } if (doclet.kind == 'namespace' || doclet.kind == 'event' || doclet.fires) { continue; } diff --git a/bin/generate-exports.py b/bin/generate-exports.py index 562f99aa92..6d7d861eed 100755 --- a/bin/generate-exports.py +++ b/bin/generate-exports.py @@ -22,66 +22,6 @@ class Exportable(object): def export(self): return '' - def extern(self): - return '' - - def typedef(self): - return '' - - -class ObjectLiteral(Exportable): - - def __init__(self, name, objects): - Exportable.__init__(self, name) - self.prop_types = {} - self.objects = objects - - __repr__ = simplerepr - - def extern(self): - lines = [] - lines.append('\n\n\n') - lines.append('/**\n') - lines.append(' * @interface\n') - lines.append(' */\n') - lines.append('%s = function() {};\n' % (self.extern_name(),)) - for prop in sorted(self.prop_types.keys()): - lines.append('\n\n') - lines.append('/**\n') - prop_types = self.prop_types[prop].split('|') - for i, t in enumerate(prop_types): - if t in self.objects and isinstance(self.objects[t], ObjectLiteral): - prop_types[i] = self.objects[t].extern_name() - prop_types = '|'.join(prop_types) - lines.append(' * @type {%s}\n' % (prop_types,)) - lines.append(' */\n') - lines.append('%s.prototype.%s;\n' % (self.extern_name(), prop)) - return ''.join(lines) - - def extern_name(self): - return re.sub(r'(olx\.\S+)', r'\1Extern', self.name) - - def extern_namespace(self): - return '.'.join(self.extern_name().split('.')[:-1]) or None - - def provide(self): - return 'goog.provide(\'%s\');\n' % (self.name,) - - def typedef(self): - lines = [] - lines.append('\n\n') - lines.append('/**\n') - for i, prop in enumerate(sorted(self.prop_types.keys())): - prefix = ' * @typedef {{' if i == 0 else ' * ' - suffix = '}}' if i == len(self.prop_types) - 1 else ',' - type = self.prop_types[prop] - if '|' in type: - type = '(%s)' % (type,) - lines.append('%s%s: %s%s\n' % (prefix, prop, type, suffix)) - lines.append(' */\n') - lines.append('%s;\n' % (self.name,)) - return ''.join(lines) - class Symbol(Exportable): @@ -104,50 +44,15 @@ def main(argv): option_parser = OptionParser() option_parser.add_option('--exports', action='store_true') - option_parser.add_option('--externs', action='store_true') - option_parser.add_option('--typedef', action='store_true') options, args = option_parser.parse_args(argv[1:]) objects = {} requires = set() for arg in args: - in_comment = False - object_literal = None for line in open(arg, 'rU'): line = line.strip() if not line: continue - if line == '/**': - assert not in_comment - in_comment = True - continue - if line == '*/': - assert in_comment - in_comment = False - object_literal = None - continue - if in_comment: - if not line.startswith('*'): - raise RuntimeError(line) # malformed comment - m = re.match(r'\*\s*@typedef\s*\{Object\}\s*(?P\S+)', line) - if m: - assert object_literal is None - name = m.group('name') - if name in objects: - raise RuntimeError(line) # Name already defined - object_literal = ObjectLiteral(name, objects) - objects[name] = object_literal - continue - m = re.match(r'\*\s*@property\s*{(?P.*?)}\s*(?P\S+)', line) - if m: - assert object_literal is not None - prop = m.group('prop') - if prop in object_literal.prop_types: - raise RuntimeError(line) # Duplicate property - type = m.group('type') - object_literal.prop_types[prop] = type - continue - continue m = re.match(r'@exportProperty\s+(?P\S+)\Z', line) if m: components = m.group('prop').split('.') @@ -188,32 +93,5 @@ def main(argv): for obj in objects: sys.stdout.write(obj.export()) - if options.externs: - object_literals = [obj for obj in objects if isinstance(obj, ObjectLiteral)] - sys.stdout.write('/**\n') - sys.stdout.write(' * @externs\n') - sys.stdout.write(' */\n') - namespaces = sorted(set(filter(None, (object_literal.extern_namespace() for object_literal in object_literals)))) - for namespace in namespaces: - sys.stdout.write('\n\n') - sys.stdout.write('/**\n') - sys.stdout.write(' * @type {Object}\n') - sys.stdout.write(' */\n') - if '.' in namespace: - sys.stdout.write('%s = {};\n' % (namespace,)) - else: - sys.stdout.write('var %s;\n' % (namespace,)) - for object_literal in object_literals: - sys.stdout.write(object_literal.typedef()) - sys.stdout.write(object_literal.extern()) - - if options.typedef: - object_literals = [obj for obj in objects if isinstance(obj, ObjectLiteral)] - for object_literal in object_literals: - sys.stdout.write(object_literal.provide()) - for object_literal in object_literals: - sys.stdout.write(object_literal.typedef()) - - if __name__ == '__main__': sys.exit(main(sys.argv)) diff --git a/build.py b/build.py index 1133732ba6..905227d772 100755 --- a/build.py +++ b/build.py @@ -90,9 +90,7 @@ EXPORTS = [path for path in ifind('src') if path.endswith('.exports')] -EXTERNAL_SRC = [ - 'build/src/external/externs/types.js', - 'build/src/external/src/exports.js'] +EXTERNAL_SRC = ['build/src/external/src/exports.js'] EXAMPLES = [path for path in ifind('examples') @@ -115,9 +113,7 @@ EXAMPLES_JSON = ['build/' + example.replace('.html', '.json') EXAMPLES_COMBINED = ['build/' + example.replace('.html', '.combined.js') for example in EXAMPLES] -INTERNAL_SRC = [ - 'build/src/internal/src/requireall.js', - 'build/src/internal/src/types.js'] +INTERNAL_SRC = ['build/src/internal/src/requireall.js'] GLSL_SRC = [path for path in ifind('src') @@ -223,18 +219,9 @@ def build_ol_all_js(t): PLOVR_JAR, 'build', 'buildcfg/ol-all.json') -@target('build/src/external/externs/types.js', 'bin/generate-exports.py', - 'src/objectliterals.jsdoc') -def build_src_external_externs_types_js(t): - t.output('%(PYTHON)s', 'bin/generate-exports.py', - '--externs', 'src/objectliterals.jsdoc') - - -@target('build/src/external/src/exports.js', 'bin/generate-exports.py', - 'src/objectliterals.jsdoc', EXPORTS) +@target('build/src/external/src/exports.js', 'bin/generate-exports.py', EXPORTS) def build_src_external_src_exports_js(t): - t.output('%(PYTHON)s', 'bin/generate-exports.py', - '--exports', 'src/objectliterals.jsdoc', EXPORTS) + t.output('%(PYTHON)s', 'bin/generate-exports.py', '--exports', EXPORTS) for glsl_src in GLSL_SRC: @@ -272,13 +259,6 @@ def build_test_requireall_js(t): _build_require_list(t.dependencies, t.name) -@target('build/src/internal/src/types.js', 'bin/generate-exports.py', - 'src/objectliterals.jsdoc') -def build_src_internal_types_js(t): - t.output('%(PYTHON)s', 'bin/generate-exports.py', - '--typedef', 'src/objectliterals.jsdoc') - - virtual('build-examples', 'examples', 'build/examples/all.combined.js', EXAMPLES_COMBINED) @@ -318,7 +298,7 @@ def examples_star_json(name, match): 'inherits': '../../buildcfg/base.json', 'inputs': [ '../examples/%(id)s.js' % match.groupdict(), - '../build/src/internal/src/types.js', + '../externs/olx.js', # compiled with src for @typedef's ], 'externs': [ '//jquery-1.7.js', @@ -386,7 +366,7 @@ def build_lint_src_timestamp(t): def build_lint_generated_timestamp(t): limited_doc_files = [ path - for path in ifind('externs', 'build/src/external/externs') + for path in ifind('externs') if path.endswith('.js')] t.run('%(GJSLINT)s', '--jslint_error=all', diff --git a/buildcfg/base.json b/buildcfg/base.json index ec1ce32c39..63ae010258 100644 --- a/buildcfg/base.json +++ b/buildcfg/base.json @@ -51,6 +51,7 @@ "../externs/closure-compiler.js", "../externs/geojson.js", "../externs/oli.js", + "../externs/olx.js", "../externs/proj4js.js", "../externs/tilejson.js", "../externs/topojson.js", diff --git a/buildcfg/examples-all.json b/buildcfg/examples-all.json index d234823829..e0c671503c 100644 --- a/buildcfg/examples-all.json +++ b/buildcfg/examples-all.json @@ -16,6 +16,6 @@ "inherits": "base.json", "inputs": [ "../build/examples/all.js", - "../build/src/internal/src/types.js" + "../externs/olx.js" ] } diff --git a/buildcfg/ol-all.json b/buildcfg/ol-all.json index db4e187d20..ef96b4020d 100644 --- a/buildcfg/ol-all.json +++ b/buildcfg/ol-all.json @@ -3,11 +3,11 @@ "id": "ol-all", "externs": [ - "../build/src/external/externs/types.js", "../externs/bingmaps.js", "../externs/closure-compiler.js", "../externs/geojson.js", "../externs/oli.js", + "../externs/olx.js", "../externs/proj4js.js", "../externs/tilejson.js", "../externs/topojson.js", diff --git a/buildcfg/ol-simple.json b/buildcfg/ol-simple.json index 890d2ae52a..3e5806794c 100644 --- a/buildcfg/ol-simple.json +++ b/buildcfg/ol-simple.json @@ -13,11 +13,11 @@ "id": "ol-simple", "externs": [ - "../build/src/external/externs/types.js", "../externs/bingmaps.js", "../externs/closure-compiler.js", "../externs/geojson.js", "../externs/oli.js", + "../externs/olx.js", "../externs/proj4js.js", "../externs/tilejson.js", "../externs/topojson.js", diff --git a/buildcfg/ol-whitespace.json b/buildcfg/ol-whitespace.json index 6a75c7b9e3..bb185fe275 100644 --- a/buildcfg/ol-whitespace.json +++ b/buildcfg/ol-whitespace.json @@ -18,6 +18,7 @@ "../externs/closure-compiler.js", "../externs/geojson.js", "../externs/oli.js", + "../externs/olx.js", "../externs/proj4js.js", "../externs/tilejson.js", "../externs/topojson.js", diff --git a/buildcfg/ol.json b/buildcfg/ol.json index 251d7ccfc6..3871efc347 100644 --- a/buildcfg/ol.json +++ b/buildcfg/ol.json @@ -13,11 +13,11 @@ "css-output-file": "../build/ol.css", "externs": [ - "../build/src/external/externs/types.js", "../externs/bingmaps.js", "../externs/closure-compiler.js", "../externs/geojson.js", "../externs/oli.js", + "../externs/olx.js", "../externs/proj4js.js", "../externs/tilejson.js", "../externs/topojson.js", diff --git a/externs/olx.js b/externs/olx.js new file mode 100644 index 0000000000..1792f5eb15 --- /dev/null +++ b/externs/olx.js @@ -0,0 +1,4724 @@ +/** + * @type {Object} + */ +var olx; + + +/** + * @typedef {{html: string, + * tileRanges: (Object.>|undefined)}} + * @todo stability experimental + */ +olx.AttributionOptions; + + +/** + * HTML markup for this attribution. + * @type {string} + */ +olx.AttributionOptions.prototype.html; + + +/** + * Tile ranges (FOR INTERNAL USE ONLY). + * @type {Object.>|undefined} + */ +olx.AttributionOptions.prototype.tileRanges; + + +/** + * @typedef {{loadTilesWhileAnimating: (boolean|undefined), + * loadTilesWhileInteracting: (boolean|undefined)}} + * @todo stability experimental + */ +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} + */ +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} + */ +olx.DeviceOptions.prototype.loadTilesWhileInteracting; + + +/** + * @typedef {{tracking: (boolean|undefined)}} + * @todo stability experimental + */ +olx.DeviceOrientationOptions; + + +/** + * Start tracking. Default is `false`. + * @type {boolean|undefined} + */ +olx.DeviceOrientationOptions.prototype.tracking; + + +/** + * @typedef {{tracking: (boolean|undefined), + * trackingOptions: (GeolocationPositionOptions|undefined), + * projection: ol.proj.ProjectionLike}} + * @todo stability experimental + */ +olx.GeolocationOptions; + + +/** + * Start Tracking. Default is `false`. + * @type {boolean|undefined} + */ +olx.GeolocationOptions.prototype.tracking; + + +/** + * Tracking options. + * @type {GeolocationPositionOptions|undefined} + */ +olx.GeolocationOptions.prototype.trackingOptions; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.GeolocationOptions.prototype.projection; + + +/** + * Object literal with config options for the map. + * @typedef {{controls: (ol.Collection|Array.|undefined), + * deviceOptions: (olx.DeviceOptions|undefined), + * pixelRatio: (number|undefined), + * interactions: (ol.Collection|Array.|undefined), + * keyboardEventTarget: (Element|Document|string|undefined), + * layers: (Array.|ol.Collection|undefined), + * ol3Logo: (boolean|undefined), + * overlays: (ol.Collection|Array.|undefined), + * renderer: (ol.RendererHint|Array.|string|undefined), + * target: (Element|string|undefined), + * view: (ol.IView|undefined)}} + * @todo stability experimental + */ +olx.MapOptions; + + +/** + * Controls initially added to the map. + * @type {ol.Collection|Array.|undefined} + */ +olx.MapOptions.prototype.controls; + + +/** + * Device options for the map. + * @type {olx.DeviceOptions|undefined} + */ +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} + */ +olx.MapOptions.prototype.pixelRatio; + + +/** + * Interactions that are initially added to the map. + * @type {ol.Collection|Array.|undefined} + */ +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} + */ +olx.MapOptions.prototype.keyboardEventTarget; + + +/** + * Layers. + * @type {Array.|ol.Collection|undefined} + */ +olx.MapOptions.prototype.layers; + + +/** + * Show ol3 logo. Default is `true`. + * @type {boolean|undefined} + */ +olx.MapOptions.prototype.ol3Logo; + + +/** + * Overlays initially added to the map. + * @type {ol.Collection|Array.|undefined} + */ +olx.MapOptions.prototype.overlays; + + +/** + * Renderer. + * @type {ol.RendererHint|Array.|string|undefined} + */ +olx.MapOptions.prototype.renderer; + + +/** + * The container for the map. + * @type {Element|string|undefined} + */ +olx.MapOptions.prototype.target; + + +/** + * The map's view. Currently {@link ol.View2D} is available as view. + * @type {ol.IView|undefined} + */ +olx.MapOptions.prototype.view; + + +/** + * Object literal with config options for the overlay. + * @typedef {{element: (Element|undefined), + * position: (ol.Coordinate|undefined), + * positioning: (ol.OverlayPositioning|string|undefined), + * stopEvent: (boolean|undefined), + * insertFirst: (boolean|undefined), + * offsetX: (number|undefined), + * offsetY: (number|undefined)}} + * @todo stability experimental + */ +olx.OverlayOptions; + + +/** + * The overlay element. + * @type {Element|undefined} + */ +olx.OverlayOptions.prototype.element; + + +/** + * The overlay position in map projection. + * @type {ol.Coordinate|undefined} + */ +olx.OverlayOptions.prototype.position; + + +/** + * Positioning. + * @type {ol.OverlayPositioning|string|undefined} + */ +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 (`ol-overlaycontainer-stopevent`). + * @type {boolean|undefined} + */ +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} + */ +olx.OverlayOptions.prototype.insertFirst; + + +/** + * Horizontal offset in pixels. A positive will shift the overlay right. Default + * is `0`. + * @type {number|undefined} + */ +olx.OverlayOptions.prototype.offsetX; + + +/** + * Vertical offset in pixels. A positive will shift the overlay down. Default is + * `0`. + * @type {number|undefined} + */ +olx.OverlayOptions.prototype.offsetY; + + +/** + * Object literal with config options for the Proj4js projection. + * @typedef {{code: string, + * extent: (ol.Extent|undefined), + * global: (boolean|undefined)}} + * @todo stability experimental + */ +olx.Proj4jsProjectionOptions; + + +/** + * The SRS identifier code, e.g. `EPSG:31256`. + * @type {string} + */ +olx.Proj4jsProjectionOptions.prototype.code; + + +/** + * The validity extent for the SRS. + * @type {ol.Extent|undefined} + */ +olx.Proj4jsProjectionOptions.prototype.extent; + + +/** + * Whether the projection is valid for the whole globe. Default is `false`. + * @type {boolean|undefined} + */ +olx.Proj4jsProjectionOptions.prototype.global; + + +/** + * 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)}} + * @todo stability experimental + */ +olx.ProjectionOptions; + + +/** + * The SRS identifier code, e.g. `EPSG:4326`. + * @type {string} + */ +olx.ProjectionOptions.prototype.code; + + +/** + * Units. + * @type {ol.proj.Units|string} + */ +olx.ProjectionOptions.prototype.units; + + +/** + * The validity extent for the SRS. + * @type {ol.Extent|undefined} + */ +olx.ProjectionOptions.prototype.extent; + + +/** + * The axis orientation as specified in Proj4. The default is `enu`. + * @type {string|undefined} + */ +olx.ProjectionOptions.prototype.axisOrientation; + + +/** + * Whether the projection is valid for the whole globe. Default is `false`. + * @type {boolean|undefined} + */ +olx.ProjectionOptions.prototype.global; + + +/** + * Object literal with config options for the view. + * @typedef {{center: (ol.Coordinate|undefined), + * constrainRotation: (boolean|number|undefined), + * enableRotation: (boolean|undefined), + * extent: (ol.Extent|undefined), + * maxResolution: (number|undefined), + * maxZoom: (number|undefined), + * projection: ol.proj.ProjectionLike, + * resolution: (number|undefined), + * resolutions: (Array.|undefined), + * rotation: (number|undefined), + * zoom: (number|undefined), + * zoomFactor: (number|undefined)}} + * @todo stability experimental + */ +olx.View2DOptions; + + +/** + * 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} + */ +olx.View2DOptions.prototype.center; + + +/** + * 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`. + * @type {boolean|number|undefined} + */ +olx.View2DOptions.prototype.constrainRotation; + + +/** + * Enable rotation. Default is `true`. + * @type {boolean|undefined} + */ +olx.View2DOptions.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} + */ +olx.View2DOptions.prototype.extent; + + +/** + * 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`. + * @type {number|undefined} + */ +olx.View2DOptions.prototype.maxResolution; + + +/** + * The maximum zoom level used to determine the resolution constraint. It is + * used together with `maxResolution` and `zoomFactor`. Default is `28`. + * @type {number|undefined} + */ +olx.View2DOptions.prototype.maxZoom; + + +/** + * The projection. Default is `EPSG:3857` (Spherical Mercator). + * @type {ol.proj.ProjectionLike} + */ +olx.View2DOptions.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} + */ +olx.View2DOptions.prototype.resolution; + + +/** + * Resolutions to determine the resolution constraint. If set the + * `maxResolution`, `maxZoom` and `zoomFactor` options are ignored. + * @type {Array.|undefined} + */ +olx.View2DOptions.prototype.resolutions; + + +/** + * The initial rotation for the view in radians (positive rotation clockwise). + * Default is `0`. + * @type {number|undefined} + */ +olx.View2DOptions.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.View2D#constrainResolution` method. + * @type {number|undefined} + */ +olx.View2DOptions.prototype.zoom; + + +/** + * The zoom factor used to determine the resolution constraint. Used together + * with `maxResolution` and `maxZoom`. Default is `2`. + * @type {number|undefined} + */ +olx.View2DOptions.prototype.zoomFactor; + + +/** + * @typedef {{resolution: number, + * start: (number|undefined), + * duration: (number|undefined), + * easing: (function(number):number|undefined)}} + * @todo stability experimental + */ +olx.animation.BounceOptions; + + +/** + * The resolution to start the bounce from, typically + * `map.getView().getResolution()`. + * @type {number} + */ +olx.animation.BounceOptions.prototype.resolution; + + +/** + * The start time of the animation. Default is immediately. + * @type {number|undefined} + */ +olx.animation.BounceOptions.prototype.start; + + +/** + * The duration of the animation in milliseconds. Default is `1000`. + * @type {number|undefined} + */ +olx.animation.BounceOptions.prototype.duration; + + +/** + * The easing function to use. Default is `ol.easing.upAndDown` + * @type {function(number):number|undefined} + */ +olx.animation.BounceOptions.prototype.easing; + + +/** + * @typedef {{source: ol.Coordinate, + * start: (number|undefined), + * duration: (number|undefined), + * easing: (function(number):number|undefined)}} + * @todo stability experimental + */ +olx.animation.PanOptions; + + +/** + * The location to start panning from, typically `map.getView().getCenter()`. + * @type {ol.Coordinate} + */ +olx.animation.PanOptions.prototype.source; + + +/** + * The start time of the animation. Default is immediately. + * @type {number|undefined} + */ +olx.animation.PanOptions.prototype.start; + + +/** + * The duration of the animation in milliseconds. Default is `1000`. + * @type {number|undefined} + */ +olx.animation.PanOptions.prototype.duration; + + +/** + * The easing function to use. Default is `ol.easing.inAndOut` + * @type {function(number):number|undefined} + */ +olx.animation.PanOptions.prototype.easing; + + +/** + * @typedef {{rotation: number, + * start: (number|undefined), + * duration: (number|undefined), + * easing: (function(number):number|undefined)}} + * @todo stability experimental + */ +olx.animation.RotateOptions; + + +/** + * The rotation to apply, in radians. + * @type {number} + */ +olx.animation.RotateOptions.prototype.rotation; + + +/** + * The start time of the animation. Default is immediately. + * @type {number|undefined} + */ +olx.animation.RotateOptions.prototype.start; + + +/** + * The duration of the animation in milliseconds. Default is `1000`. + * @type {number|undefined} + */ +olx.animation.RotateOptions.prototype.duration; + + +/** + * The easing function to use. Default is `ol.easing.inAndOut` + * @type {function(number):number|undefined} + */ +olx.animation.RotateOptions.prototype.easing; + + +/** + * @typedef {{resolution: number, + * start: (number|undefined), + * duration: (number|undefined), + * easing: (function(number):number|undefined)}} + * @todo stability experimental + */ +olx.animation.ZoomOptions; + + +/** + * number The resolution to begin zooming from, typically + * `map.getView().getResolution()`. + * @type {number} + */ +olx.animation.ZoomOptions.prototype.resolution; + + +/** + * The start time of the animation. Default is immediately. + * @type {number|undefined} + */ +olx.animation.ZoomOptions.prototype.start; + + +/** + * The duration of the animation in milliseconds. Default is `1000`. + * @type {number|undefined} + */ +olx.animation.ZoomOptions.prototype.duration; + + +/** + * Easing function. + * @type {function(number):number|undefined} + */ +olx.animation.ZoomOptions.prototype.easing; + + +/** + * @typedef {{className: (string|undefined), + * target: (Element|undefined)}} + * @todo stability experimental + */ +olx.control.AttributionOptions; + + +/** + * CSS class name. Default is `ol-attribution`. + * @type {string|undefined} + */ +olx.control.AttributionOptions.prototype.className; + + +/** + * Target. + * @type {Element|undefined} + */ +olx.control.AttributionOptions.prototype.target; + + +/** + * @typedef {{element: (Element|undefined), + * target: (Element|string|undefined)}} + * @todo stability experimental + */ +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} + */ +olx.control.ControlOptions.prototype.element; + + +/** + * Specify a target if you want the control to be rendered outside of the map's + * viewport. + * @type {Element|string|undefined} + */ +olx.control.ControlOptions.prototype.target; + + +/** + * @typedef {{attribution: (boolean|undefined), + * attributionOptions: (olx.control.AttributionOptions|undefined), + * logo: (boolean|undefined), + * logoOptions: (olx.control.LogoOptions|undefined), + * zoom: (boolean|undefined), + * zoomOptions: (olx.control.ZoomOptions|undefined)}} + * @todo stability experimental + */ +olx.control.DefaultsOptions; + + +/** + * Attribution. Default is `true`. + * @type {boolean|undefined} + */ +olx.control.DefaultsOptions.prototype.attribution; + + +/** + * Attribution options. + * @type {olx.control.AttributionOptions|undefined} + */ +olx.control.DefaultsOptions.prototype.attributionOptions; + + +/** + * Logo. Default is `true`. + * @type {boolean|undefined} + */ +olx.control.DefaultsOptions.prototype.logo; + + +/** + * Logo options. + * @type {olx.control.LogoOptions|undefined} + */ +olx.control.DefaultsOptions.prototype.logoOptions; + + +/** + * Zoom. Default is `true`. + * @type {boolean|undefined} + */ +olx.control.DefaultsOptions.prototype.zoom; + + +/** + * Zoom options. + * @type {olx.control.ZoomOptions|undefined} + */ +olx.control.DefaultsOptions.prototype.zoomOptions; + + +/** + * @typedef {{className: (string|undefined), + * tipLabel: (string|undefined), + * keys: (boolean|undefined), + * target: (Element|undefined)}} + * @todo stability experimental + */ +olx.control.FullScreenOptions; + + +/** + * CSS class name. Default is `ol-full-screen`. + * @type {string|undefined} + */ +olx.control.FullScreenOptions.prototype.className; + + +/** + * Text label to use for the button tip. Default is `Toggle full-screen` + * @type {string|undefined} + */ +olx.control.FullScreenOptions.prototype.tipLabel; + + +/** + * Full keyboard access. + * @type {boolean|undefined} + */ +olx.control.FullScreenOptions.prototype.keys; + + +/** + * Target. + * @type {Element|undefined} + */ +olx.control.FullScreenOptions.prototype.target; + + +/** + * @typedef {{className: (string|undefined), + * target: (Element|undefined)}} + * @todo stability experimental + */ +olx.control.LogoOptions; + + +/** + * CSS class name. Default is `ol-logo`. + * @type {string|undefined} + */ +olx.control.LogoOptions.prototype.className; + + +/** + * Target. + * @type {Element|undefined} + */ +olx.control.LogoOptions.prototype.target; + + +/** + * @typedef {{className: (string|undefined), + * coordinateFormat: (ol.CoordinateFormatType|undefined), + * projection: ol.proj.ProjectionLike, + * target: (Element|undefined), + * undefinedHTML: (string|undefined)}} + * @todo stability experimental + */ +olx.control.MousePositionOptions; + + +/** + * CSS class name. Default is `ol-mouse-position`. + * @type {string|undefined} + */ +olx.control.MousePositionOptions.prototype.className; + + +/** + * Coordinate format. + * @type {ol.CoordinateFormatType|undefined} + */ +olx.control.MousePositionOptions.prototype.coordinateFormat; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.control.MousePositionOptions.prototype.projection; + + +/** + * Target. + * @type {Element|undefined} + */ +olx.control.MousePositionOptions.prototype.target; + + +/** + * Markup for undefined coordinates. Default is `` (empty string). + * @type {string|undefined} + */ +olx.control.MousePositionOptions.prototype.undefinedHTML; + + +/** + * @typedef {{className: (string|undefined), + * minWidth: (number|undefined), + * target: (Element|undefined), + * units: (ol.control.ScaleLineUnits|string|undefined)}} + * @todo stability experimental + */ +olx.control.ScaleLineOptions; + + +/** + * CSS Class name. Default is `ol-scale-line`. + * @type {string|undefined} + */ +olx.control.ScaleLineOptions.prototype.className; + + +/** + * Minimum width in pixels. Default is `64`. + * @type {number|undefined} + */ +olx.control.ScaleLineOptions.prototype.minWidth; + + +/** + * Target. + * @type {Element|undefined} + */ +olx.control.ScaleLineOptions.prototype.target; + + +/** + * Units. Default is `metric`. + * @type {ol.control.ScaleLineUnits|string|undefined} + */ +olx.control.ScaleLineOptions.prototype.units; + + +/** + * @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)}} + * @todo stability experimental + */ +olx.control.ZoomOptions; + + +/** + * Animation duration in milliseconds. Default is `250`. + * @type {number|undefined} + */ +olx.control.ZoomOptions.prototype.duration; + + +/** + * CSS class name. Default is `ol-zoom`. + * @type {string|undefined} + */ +olx.control.ZoomOptions.prototype.className; + + +/** + * Text label to use for the zoom-in button. Default is `+` + * @type {string|undefined} + */ +olx.control.ZoomOptions.prototype.zoomInLabel; + + +/** + * Text label to use for the zoom-out button. Default is `-` + * @type {string|undefined} + */ +olx.control.ZoomOptions.prototype.zoomOutLabel; + + +/** + * Text label to use for the button tip. Default is `Zoom in` + * @type {string|undefined} + */ +olx.control.ZoomOptions.prototype.zoomInTipLabel; + + +/** + * Text label to use for the button tip. Default is `Zoom out` + * @type {string|undefined} + */ +olx.control.ZoomOptions.prototype.zoomOutTipLabel; + + +/** + * The zoom delta applied on each click. + * @type {number|undefined} + */ +olx.control.ZoomOptions.prototype.delta; + + +/** + * Target. + * @type {Element|undefined} + */ +olx.control.ZoomOptions.prototype.target; + + +/** + * @typedef {{className: (string|undefined), + * maxResolution: (number|undefined), + * minResolution: (number|undefined)}} + * @todo stability experimental + */ +olx.control.ZoomSliderOptions; + + +/** + * CSS class name. + * @type {string|undefined} + */ +olx.control.ZoomSliderOptions.prototype.className; + + +/** + * Maximum resolution. + * @type {number|undefined} + */ +olx.control.ZoomSliderOptions.prototype.maxResolution; + + +/** + * Minimum resolution. + * @type {number|undefined} + */ +olx.control.ZoomSliderOptions.prototype.minResolution; + + +/** + * @typedef {{className: (string|undefined), + * target: (Element|undefined), + * tipLabel: (string|undefined), + * extent: (ol.Extent|undefined)}} + * @todo stability experimental + */ +olx.control.ZoomToExtentOptions; + + +/** + * Class name. Default is `ol-zoom-extent`. + * @type {string|undefined} + */ +olx.control.ZoomToExtentOptions.prototype.className; + + +/** + * Target. + * @type {Element|undefined} + */ +olx.control.ZoomToExtentOptions.prototype.target; + + +/** + * Text label to use for the button tip. Default is `Zoom to extent` + * @type {string|undefined} + */ +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} + */ +olx.control.ZoomToExtentOptions.prototype.extent; + + +/** + * @typedef {{defaultProjection: ol.proj.ProjectionLike}} + * @todo stability experimental + */ +olx.format.GeoJSONOptions; + + +/** + * Default projection. + * @type {ol.proj.ProjectionLike} + */ +olx.format.GeoJSONOptions.prototype.defaultProjection; + + +/** + * @typedef {{defaultProjection: ol.proj.ProjectionLike}} + * @todo stability experimental + */ +olx.format.TopoJSONOptions; + + +/** + * Default projection. + * @type {ol.proj.ProjectionLike} + */ +olx.format.TopoJSONOptions.prototype.defaultProjection; + + +/** + * @typedef {{altitudeMode: (ol.format.IGCZ|undefined)}} + * @todo stability experimental + */ +olx.format.IGCOptions; + + +/** + * Altitude mode. Possible values are `barometric`, `gps`, and `none`. Default + * is `none`. + * @type {ol.format.IGCZ|undefined} + */ +olx.format.IGCOptions.prototype.altitudeMode; + + +/** + * @typedef {{defaultStyle: (Array.|undefined)}} + * @todo stability experimental + */ +olx.format.KMLOptions; + + +/** + * Default style. The default default style is the same as Google Earth. + * @type {Array.|undefined} + */ +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)}} + * @todo stability experimental + */ +olx.format.GMLOptions; + + +/** + * Feature namespace. + * @type {string} + */ +olx.format.GMLOptions.prototype.featureNS; + + +/** + * Feature type to parse. + * @type {string} + */ +olx.format.GMLOptions.prototype.featureType; + + +/** + * srsName to use when writing geometries. + * @type {string} + */ +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} + */ +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} + */ +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} + */ +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} + */ +olx.format.GMLOptions.prototype.multiSurface; + + +/** + * Optional schemaLocation to use when writing out the GML, this will override + * the default provided. + * @type {string|undefined} + */ +olx.format.GMLOptions.prototype.schemaLocation; + + +/** + * @typedef {{featureNS: string, + * featureType: string, + * schemaLocation: (string|undefined)}} + * @todo stability experimental + */ +olx.format.WFSOptions; + + +/** + * The namespace URI used for features. + * @type {string} + */ +olx.format.WFSOptions.prototype.featureNS; + + +/** + * The feature type to parse. Only used for read operations. + * @type {string} + */ +olx.format.WFSOptions.prototype.featureType; + + +/** + * Optional schemaLocation to use for serialization, this will override the + * default. + * @type {string|undefined} + */ +olx.format.WFSOptions.prototype.schemaLocation; + + +/** + * @typedef {{featureNS: string, + * featurePrefix: string, + * featureTypes: Array., + * srsName: (string|undefined), + * handle: (string|undefined), + * outputFormat: (string|undefined), + * maxFeatures: (number|undefined), + * geometryName: (string|undefined), + * bbox: (ol.Extent|undefined)}} + * @todo stability experimental + */ +olx.format.WFSWriteGetFeatureOptions; + + +/** + * The namespace URI used for features. + * @type {string} + */ +olx.format.WFSWriteGetFeatureOptions.prototype.featureNS; + + +/** + * The prefix for the feature namespace. + * @type {string} + */ +olx.format.WFSWriteGetFeatureOptions.prototype.featurePrefix; + + +/** + * The feature type names. + * @type {Array.} + */ +olx.format.WFSWriteGetFeatureOptions.prototype.featureTypes; + + +/** + * SRS name. No srsName attribute will be set on geometries when this is not + * provided. + * @type {string|undefined} + */ +olx.format.WFSWriteGetFeatureOptions.prototype.srsName; + + +/** + * Handle. + * @type {string|undefined} + */ +olx.format.WFSWriteGetFeatureOptions.prototype.handle; + + +/** + * Output format. + * @type {string|undefined} + */ +olx.format.WFSWriteGetFeatureOptions.prototype.outputFormat; + + +/** + * Maximum number of features to fetch. + * @type {number|undefined} + */ +olx.format.WFSWriteGetFeatureOptions.prototype.maxFeatures; + + +/** + * Geometry name to use in a BBOX filter. + * @type {string|undefined} + */ +olx.format.WFSWriteGetFeatureOptions.prototype.geometryName; + + +/** + * Extent to use for the BBOX filter. + * @type {ol.Extent|undefined} + */ +olx.format.WFSWriteGetFeatureOptions.prototype.bbox; + + +/** + * @typedef {{featureNS: string, + * featurePrefix: string, + * featureType: string, + * srsName: (string|undefined), + * handle: (string|undefined), + * nativeElements: Array.}} + * @todo stability experimental + */ +olx.format.WFSWriteTransactionOptions; + + +/** + * The namespace URI used for features. + * @type {string} + */ +olx.format.WFSWriteTransactionOptions.prototype.featureNS; + + +/** + * The prefix for the feature namespace. + * @type {string} + */ +olx.format.WFSWriteTransactionOptions.prototype.featurePrefix; + + +/** + * The feature type name. + * @type {string} + */ +olx.format.WFSWriteTransactionOptions.prototype.featureType; + + +/** + * SRS name. No srsName attribute will be set on geometries when this is not + * provided. + * @type {string|undefined} + */ +olx.format.WFSWriteTransactionOptions.prototype.srsName; + + +/** + * Handle. + * @type {string|undefined} + */ +olx.format.WFSWriteTransactionOptions.prototype.handle; + + +/** + * Native elements. Currently not supported. + * @type {Array.} + */ +olx.format.WFSWriteTransactionOptions.prototype.nativeElements; + + +/** + * 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)}} + * @todo stability experimental + */ +olx.interaction.DefaultsOptions; + + +/** + * Whether Alt-Shift-drag rotate is desired. Default is `true`. + * @type {boolean|undefined} + */ +olx.interaction.DefaultsOptions.prototype.altShiftDragRotate; + + +/** + * Whether double click zoom is desired. Default is `true`. + * @type {boolean|undefined} + */ +olx.interaction.DefaultsOptions.prototype.doubleClickZoom; + + +/** + * Whether keyboard interaction is desired. Default is `true`. + * @type {boolean|undefined} + */ +olx.interaction.DefaultsOptions.prototype.keyboard; + + +/** + * Whether mousewheel zoom is desired. Default is `true`. + * @type {boolean|undefined} + */ +olx.interaction.DefaultsOptions.prototype.mouseWheelZoom; + + +/** + * Whether Shift-drag zoom is desired. Default is `true`. + * @type {boolean|undefined} + */ +olx.interaction.DefaultsOptions.prototype.shiftDragZoom; + + +/** + * Whether drag pan is desired. Default is `true`. + * @type {boolean|undefined} + */ +olx.interaction.DefaultsOptions.prototype.dragPan; + + +/** + * Whether pinch rotate is desired. Default is `true`. + * @type {boolean|undefined} + */ +olx.interaction.DefaultsOptions.prototype.pinchRotate; + + +/** + * Whether pinch zoom is desired. Default is `true`. + * @type {boolean|undefined} + */ +olx.interaction.DefaultsOptions.prototype.pinchZoom; + + +/** + * Zoom delta. + * @type {number|undefined} + */ +olx.interaction.DefaultsOptions.prototype.zoomDelta; + + +/** + * Zoom duration. + * @type {number|undefined} + */ +olx.interaction.DefaultsOptions.prototype.zoomDuration; + + +/** + * @typedef {{duration: (number|undefined), + * delta: (number|undefined)}} + * @todo stability experimental + */ +olx.interaction.DoubleClickZoomOptions; + + +/** + * Animation duration in milliseconds. Default is `250`. + * @type {number|undefined} + */ +olx.interaction.DoubleClickZoomOptions.prototype.duration; + + +/** + * The zoom delta applied on each double click, default is `1`. + * @type {number|undefined} + */ +olx.interaction.DoubleClickZoomOptions.prototype.delta; + + +/** + * @typedef {{formatConstructors: (Array.|undefined), + * reprojectTo: ol.proj.ProjectionLike}} + * @todo stability experimental + */ +olx.interaction.DragAndDropOptions; + + +/** + * Format constructors. + * @type {Array.|undefined} + */ +olx.interaction.DragAndDropOptions.prototype.formatConstructors; + + +/** + * Target projection. By default, the map's view's projection is used. + * @type {ol.proj.ProjectionLike} + */ +olx.interaction.DragAndDropOptions.prototype.reprojectTo; + + +/** + * @typedef {{condition: (ol.events.ConditionType|undefined), + * style: ol.style.Style}} + * @todo stability experimental + */ +olx.interaction.DragBoxOptions; + + +/** + * A conditional modifier (i.e. Shift key) that determines if the interaction is + * active or not, default is always. + * @type {ol.events.ConditionType|undefined} + */ +olx.interaction.DragBoxOptions.prototype.condition; + + +/** + * Style for the box. + * @type {ol.style.Style} + */ +olx.interaction.DragBoxOptions.prototype.style; + + +/** + * @typedef {{kinetic: (ol.Kinetic|undefined)}} + * @todo stability experimental + */ +olx.interaction.DragPanOptions; + + +/** + * Kinetic inertia to apply to the pan. + * @type {ol.Kinetic|undefined} + */ +olx.interaction.DragPanOptions.prototype.kinetic; + + +/** + * @typedef {{condition: (ol.events.ConditionType|undefined)}} + * @todo stability experimental + */ +olx.interaction.DragRotateAndZoomOptions; + + +/** + * A conditional modifier (i.e. Shift key) that determines if the interaction is + * active or not, default is shify key. + * @type {ol.events.ConditionType|undefined} + */ +olx.interaction.DragRotateAndZoomOptions.prototype.condition; + + +/** + * @typedef {{condition: (ol.events.ConditionType|undefined)}} + * @todo stability experimental + */ +olx.interaction.DragRotateOptions; + + +/** + * A conditional modifier (i.e. Shift key) that determines if the interaction is + * active or not, default is both shift and alt keys. + * @type {ol.events.ConditionType|undefined} + */ +olx.interaction.DragRotateOptions.prototype.condition; + + +/** + * @typedef {{condition: (ol.events.ConditionType|undefined), + * style: ol.style.Style}} + * @todo stability experimental + */ +olx.interaction.DragZoomOptions; + + +/** + * A conditional modifier (i.e. Shift key) that determines if the interaction is + * active or not, default is shift key. + * @type {ol.events.ConditionType|undefined} + */ +olx.interaction.DragZoomOptions.prototype.condition; + + +/** + * Style for the box. + * @type {ol.style.Style} + */ +olx.interaction.DragZoomOptions.prototype.style; + + +/** + * @typedef {{features: (ol.Collection|undefined), + * source: (ol.source.Vector|undefined), + * snapTolerance: (number|undefined), + * type: ol.geom.GeometryType, + * minPointsPerRing: (number|undefined), + * style: (ol.style.Style|Array.|ol.feature.StyleFunction|undefined)}} + * @todo stability experimental + */ +olx.interaction.DrawOptions; + + +/** + * Destination collection for the drawn features. + * @type {ol.Collection|undefined} + */ +olx.interaction.DrawOptions.prototype.features; + + +/** + * Destination source for the drawn features. + * @type {ol.source.Vector|undefined} + */ +olx.interaction.DrawOptions.prototype.source; + + +/** + * Pixel distance for snapping to the drawing finish (default is 12). + * @type {number|undefined} + */ +olx.interaction.DrawOptions.prototype.snapTolerance; + + +/** + * Drawing type ('Point', 'LineString', 'Polygon', 'MultiPoint', + * 'MultiLineString', or 'MultiPolygon'). + * @type {ol.geom.GeometryType} + */ +olx.interaction.DrawOptions.prototype.type; + + +/** + * The number of points that must be drawn before a polygon ring can be finished + * (default is 3). + * @type {number|undefined} + */ +olx.interaction.DrawOptions.prototype.minPointsPerRing; + + +/** + * Style for sketch features. + * @type {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} + */ +olx.interaction.DrawOptions.prototype.style; + + +/** + * @typedef {{condition: (ol.events.ConditionType|undefined), + * pixelDelta: (number|undefined)}} + * @todo stability experimental + */ +olx.interaction.KeyboardPanOptions; + + +/** + * A conditional modifier (i.e. Shift key) that determines if the interaction is + * active or not, default is no modifiers. + * @type {ol.events.ConditionType|undefined} + */ +olx.interaction.KeyboardPanOptions.prototype.condition; + + +/** + * Pixel The amount to pan on each key press. Default is `128` pixels. + * @type {number|undefined} + */ +olx.interaction.KeyboardPanOptions.prototype.pixelDelta; + + +/** + * @typedef {{duration: (number|undefined), + * condition: (ol.events.ConditionType|undefined), + * delta: (number|undefined)}} + * @todo stability experimental + */ +olx.interaction.KeyboardZoomOptions; + + +/** + * Animation duration in milliseconds. Default is `100`. + * @type {number|undefined} + */ +olx.interaction.KeyboardZoomOptions.prototype.duration; + + +/** + * A conditional modifier (i.e. Shift key) that determines if the interaction is + * active or not, default is no modifiers. + * @type {ol.events.ConditionType|undefined} + */ +olx.interaction.KeyboardZoomOptions.prototype.condition; + + +/** + * The amount to zoom on each key press. Default is `1`. + * @type {number|undefined} + */ +olx.interaction.KeyboardZoomOptions.prototype.delta; + + +/** + * @typedef {{deleteCondition: (ol.events.ConditionType|undefined), + * pixelTolerance: (number|undefined), + * style: (ol.style.Style|Array.|ol.feature.StyleFunction|undefined), + * features: ol.Collection}} + * @todo stability experimental + */ +olx.interaction.ModifyOptions; + + +/** + * Condition that determines which event results in a vertex deletion. Default + * is a `singleclick` event with no modifier keys. + * @type {ol.events.ConditionType|undefined} + */ +olx.interaction.ModifyOptions.prototype.deleteCondition; + + +/** + * Pixel tolerance for considering the pointer close enough to a segment or + * vertex for editing. Default is 10 pixels. + * @type {number|undefined} + */ +olx.interaction.ModifyOptions.prototype.pixelTolerance; + + +/** + * FeatureOverlay style. + * @type {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} + */ +olx.interaction.ModifyOptions.prototype.style; + + +/** + * The features the interaction works on. + * @type {ol.Collection} + */ +olx.interaction.ModifyOptions.prototype.features; + + +/** + * @typedef {{duration: (number|undefined)}} + * @todo stability experimental + */ +olx.interaction.MouseWheelZoomOptions; + + +/** + * Animation duration in milliseconds. Default is `250`. + * @type {number|undefined} + */ +olx.interaction.MouseWheelZoomOptions.prototype.duration; + + +/** + * @typedef {{threshold: (number|undefined)}} + * @todo stability experimental + */ +olx.interaction.PinchRotateOptions; + + +/** + * Minimal angle in radians to start a rotation. Default is `0.3`. + * @type {number|undefined} + */ +olx.interaction.PinchRotateOptions.prototype.threshold; + + +/** + * @typedef {{duration: (number|undefined)}} + * @todo stability experimental + */ +olx.interaction.PinchZoomOptions; + + +/** + * Animation duration in milliseconds. Default is `400`. + * @type {number|undefined} + */ +olx.interaction.PinchZoomOptions.prototype.duration; + + +/** + * @typedef {{addCondition: (ol.events.ConditionType|undefined), + * condition: (ol.events.ConditionType|undefined), + * layerFilter: (function(ol.layer.Layer): boolean|undefined), + * layer: (ol.layer.Layer|undefined), + * layers: (Array.|undefined), + * style: (ol.style.Style|Array.|ol.feature.StyleFunction|undefined), + * removeCondition: (ol.events.ConditionType|undefined), + * toggleCondition: (ol.events.ConditionType|undefined)}} + * @todo stability experimental + */ +olx.interaction.SelectOptions; + + +/** + * A conditional modifier (e.g. alt key) that determines if the feature is added + * to the current selection. By default, this is never. Note that the default + * toggle condition allows features to be added. + * @type {ol.events.ConditionType|undefined} + */ +olx.interaction.SelectOptions.prototype.addCondition; + + +/** + * 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. + * @type {ol.events.ConditionType|undefined} + */ +olx.interaction.SelectOptions.prototype.condition; + + +/** + * Filter function to restrict selection to a subset of layers. + * @type {function(ol.layer.Layer): boolean|undefined} + */ +olx.interaction.SelectOptions.prototype.layerFilter; + + +/** + * Layer. The single layer from which features should be selected. + * @type {ol.layer.Layer|undefined} + */ +olx.interaction.SelectOptions.prototype.layer; + + +/** + * Layers. Zero or more layers from which features should be selected. + * @type {Array.|undefined} + */ +olx.interaction.SelectOptions.prototype.layers; + + +/** + * FeatureOverlay style. + * @type {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} + */ +olx.interaction.SelectOptions.prototype.style; + + +/** + * A conditional modifier (e.g. alt key) that determines if the feature is + * removed from the current selection. By default, this is never. + * @type {ol.events.ConditionType|undefined} + */ +olx.interaction.SelectOptions.prototype.removeCondition; + + +/** + * A conditional modifier (e.g. shift key) that determines if the selection is + * toggled in the current selection. By default, a shift-click toggles the + * feature in the current selection. + * @type {ol.events.ConditionType|undefined} + */ +olx.interaction.SelectOptions.prototype.toggleCondition; + + +/** + * @typedef {{brightness: (number|undefined), + * contrast: (number|undefined), + * hue: (number|undefined), + * opacity: (number|undefined), + * saturation: (number|undefined), + * visible: (boolean|undefined), + * minResolution: (number|undefined), + * maxResolution: (number|undefined)}} + * @todo stability experimental + */ +olx.layer.BaseOptions; + + +/** + * Brightness. Default is `0`. + * @type {number|undefined} + */ +olx.layer.BaseOptions.prototype.brightness; + + +/** + * Contrast. Default is `1`. + * @type {number|undefined} + */ +olx.layer.BaseOptions.prototype.contrast; + + +/** + * Hue. Default is `0`. + * @type {number|undefined} + */ +olx.layer.BaseOptions.prototype.hue; + + +/** + * Opacity (0, 1). Default is `1`. + * @type {number|undefined} + */ +olx.layer.BaseOptions.prototype.opacity; + + +/** + * Saturation. Default is `1`. + * @type {number|undefined} + */ +olx.layer.BaseOptions.prototype.saturation; + + +/** + * Visibility. Default is `true`. + * @type {boolean|undefined} + */ +olx.layer.BaseOptions.prototype.visible; + + +/** + * The minimum resolution (inclusive) at which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.BaseOptions.prototype.minResolution; + + +/** + * The maximum resolution (exclusive) below which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.BaseOptions.prototype.maxResolution; + + +/** + * @typedef {{brightness: (number|undefined), + * contrast: (number|undefined), + * hue: (number|undefined), + * opacity: (number|undefined), + * saturation: (number|undefined), + * source: ol.source.Source, + * visible: (boolean|undefined), + * minResolution: (number|undefined), + * maxResolution: (number|undefined)}} + * @todo stability experimental + */ +olx.layer.LayerOptions; + + +/** + * Brightness. Default is `0`. + * @type {number|undefined} + */ +olx.layer.LayerOptions.prototype.brightness; + + +/** + * Contrast. Default is `1`. + * @type {number|undefined} + */ +olx.layer.LayerOptions.prototype.contrast; + + +/** + * Hue. Default is `0`. + * @type {number|undefined} + */ +olx.layer.LayerOptions.prototype.hue; + + +/** + * Opacity (0, 1). Default is `1`. + * @type {number|undefined} + */ +olx.layer.LayerOptions.prototype.opacity; + + +/** + * Saturation. Default is `1`. + * @type {number|undefined} + */ +olx.layer.LayerOptions.prototype.saturation; + + +/** + * Source for this layer. + * @type {ol.source.Source} + */ +olx.layer.LayerOptions.prototype.source; + + +/** + * Visibility. Default is `true` (visible). + * @type {boolean|undefined} + */ +olx.layer.LayerOptions.prototype.visible; + + +/** + * The minimum resolution (inclusive) at which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.LayerOptions.prototype.minResolution; + + +/** + * The maximum resolution (exclusive) below which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.LayerOptions.prototype.maxResolution; + + +/** + * @typedef {{brightness: (number|undefined), + * contrast: (number|undefined), + * hue: (number|undefined), + * opacity: (number|undefined), + * saturation: (number|undefined), + * visible: (boolean|undefined), + * minResolution: (number|undefined), + * maxResolution: (number|undefined), + * layers: (Array.|ol.Collection|undefined)}} + * @todo stability experimental + */ +olx.layer.GroupOptions; + + +/** + * Brightness. Default is `0`. + * @type {number|undefined} + */ +olx.layer.GroupOptions.prototype.brightness; + + +/** + * Contrast. Default is `1`. + * @type {number|undefined} + */ +olx.layer.GroupOptions.prototype.contrast; + + +/** + * Hue. Default is `0`. + * @type {number|undefined} + */ +olx.layer.GroupOptions.prototype.hue; + + +/** + * Opacity (0, 1). Default is `1`. + * @type {number|undefined} + */ +olx.layer.GroupOptions.prototype.opacity; + + +/** + * Saturation. Default is `1`. + * @type {number|undefined} + */ +olx.layer.GroupOptions.prototype.saturation; + + +/** + * Visibility. Default is `true`. + * @type {boolean|undefined} + */ +olx.layer.GroupOptions.prototype.visible; + + +/** + * The minimum resolution (inclusive) at which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.GroupOptions.prototype.minResolution; + + +/** + * The maximum resolution (exclusive) below which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.GroupOptions.prototype.maxResolution; + + +/** + * Child layers. + * @type {Array.|ol.Collection|undefined} + */ +olx.layer.GroupOptions.prototype.layers; + + +/** + * @typedef {{brightness: (number|undefined), + * contrast: (number|undefined), + * hue: (number|undefined), + * gradient: (Array.|undefined), + * radius: (number|undefined), + * blur: (number|undefined), + * shadow: (number|undefined), + * weight: (string|function(ol.Feature):number|undefined), + * minResolution: (number|undefined), + * maxResolution: (number|undefined), + * opacity: (number|undefined), + * saturation: (number|undefined), + * source: ol.source.Vector, + * visible: (boolean|undefined)}} + * @todo stability experimental + */ +olx.layer.HeatmapOptions; + + +/** + * Brightness. + * @type {number|undefined} + */ +olx.layer.HeatmapOptions.prototype.brightness; + + +/** + * Contrast. + * @type {number|undefined} + */ +olx.layer.HeatmapOptions.prototype.contrast; + + +/** + * Hue. + * @type {number|undefined} + */ +olx.layer.HeatmapOptions.prototype.hue; + + +/** + * The color gradient of the heatmap, specified as an array of CSS color + * strings. Default is `['#00f', '#0ff', '#0f0', '#ff0', '#f00']`. + * @type {Array.|undefined} + */ +olx.layer.HeatmapOptions.prototype.gradient; + + +/** + * Radius size in pixels. Default is `8`. + * @type {number|undefined} + */ +olx.layer.HeatmapOptions.prototype.radius; + + +/** + * Blur size in pixels. Default is `15`. + * @type {number|undefined} + */ +olx.layer.HeatmapOptions.prototype.blur; + + +/** + * Shadow size in pixels. Default is `250`. + * @type {number|undefined} + */ +olx.layer.HeatmapOptions.prototype.shadow; + + +/** + * The feature attribute to use for the weight or a function that returns a + * weight from a feature. Weight values should range from 0 to 1 (and values + * outside will be clamped to that range). Default is `weight`. + * @type {string|function(ol.Feature):number|undefined} + */ +olx.layer.HeatmapOptions.prototype.weight; + + +/** + * The minimum resolution (inclusive) at which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.HeatmapOptions.prototype.minResolution; + + +/** + * The maximum resolution (exclusive) below which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.HeatmapOptions.prototype.maxResolution; + + +/** + * Opacity. 0-1. Default is `1`. + * @type {number|undefined} + */ +olx.layer.HeatmapOptions.prototype.opacity; + + +/** + * Saturation. + * @type {number|undefined} + */ +olx.layer.HeatmapOptions.prototype.saturation; + + +/** + * Source. + * @type {ol.source.Vector} + */ +olx.layer.HeatmapOptions.prototype.source; + + +/** + * Visibility. Default is `true` (visible). + * @type {boolean|undefined} + */ +olx.layer.HeatmapOptions.prototype.visible; + + +/** + * @typedef {{brightness: (number|undefined), + * contrast: (number|undefined), + * hue: (number|undefined), + * opacity: (number|undefined), + * preload: (number|undefined), + * saturation: (number|undefined), + * source: ol.source.Source, + * visible: (boolean|undefined), + * minResolution: (number|undefined), + * maxResolution: (number|undefined), + * useInterimTilesOnError: (boolean|undefined)}} + * @todo stability experimental + */ +olx.layer.TileOptions; + + +/** + * Brightness. Default is `0`. + * @type {number|undefined} + */ +olx.layer.TileOptions.prototype.brightness; + + +/** + * Contrast. Default is `1`. + * @type {number|undefined} + */ +olx.layer.TileOptions.prototype.contrast; + + +/** + * Hue. Default is `0`. + * @type {number|undefined} + */ +olx.layer.TileOptions.prototype.hue; + + +/** + * Opacity (0, 1). Default is `1`. + * @type {number|undefined} + */ +olx.layer.TileOptions.prototype.opacity; + + +/** + * Preload. + * @type {number|undefined} + */ +olx.layer.TileOptions.prototype.preload; + + +/** + * Saturation. Default is `1`. + * @type {number|undefined} + */ +olx.layer.TileOptions.prototype.saturation; + + +/** + * Source for this layer. + * @type {ol.source.Source} + */ +olx.layer.TileOptions.prototype.source; + + +/** + * Visibility. Default is `true` (visible). + * @type {boolean|undefined} + */ +olx.layer.TileOptions.prototype.visible; + + +/** + * The minimum resolution (inclusive) at which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.TileOptions.prototype.minResolution; + + +/** + * The maximum resolution (exclusive) below which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.TileOptions.prototype.maxResolution; + + +/** + * Use interim tiles on error. Default is `true`. + * @type {boolean|undefined} + */ +olx.layer.TileOptions.prototype.useInterimTilesOnError; + + +/** + * @typedef {{brightness: (number|undefined), + * contrast: (number|undefined), + * renderOrder: (function(ol.Feature, ol.Feature):number|null|undefined), + * hue: (number|undefined), + * minResolution: (number|undefined), + * maxResolution: (number|undefined), + * opacity: (number|undefined), + * saturation: (number|undefined), + * source: ol.source.Vector, + * style: (ol.style.Style|Array.|ol.feature.StyleFunction|undefined), + * visible: (boolean|undefined)}} + * @todo stability experimental + */ +olx.layer.VectorOptions; + + +/** + * Brightness. + * @type {number|undefined} + */ +olx.layer.VectorOptions.prototype.brightness; + + +/** + * Contrast. + * @type {number|undefined} + */ +olx.layer.VectorOptions.prototype.contrast; + + +/** + * Render order. Function to be used when sorting features before rendering. By + * default features are drawn in the order that they are created. Use `null` to + * avoid the sort, but get an undefined draw order. + * @type {function(ol.Feature, ol.Feature):number|null|undefined} + */ +olx.layer.VectorOptions.prototype.renderOrder; + + +/** + * Hue. + * @type {number|undefined} + */ +olx.layer.VectorOptions.prototype.hue; + + +/** + * The minimum resolution (inclusive) at which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.VectorOptions.prototype.minResolution; + + +/** + * The maximum resolution (exclusive) below which this layer will be visible. + * @type {number|undefined} + */ +olx.layer.VectorOptions.prototype.maxResolution; + + +/** + * Opacity. 0-1. Default is `1`. + * @type {number|undefined} + */ +olx.layer.VectorOptions.prototype.opacity; + + +/** + * Saturation. + * @type {number|undefined} + */ +olx.layer.VectorOptions.prototype.saturation; + + +/** + * Source. + * @type {ol.source.Vector} + */ +olx.layer.VectorOptions.prototype.source; + + +/** + * Layer style. + * @type {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} + */ +olx.layer.VectorOptions.prototype.style; + + +/** + * Visibility. Default is `true` (visible). + * @type {boolean|undefined} + */ +olx.layer.VectorOptions.prototype.visible; + + +/** + * @typedef {{features: (Array.|ol.Collection|undefined), + * map: (ol.Map|undefined), + * style: (ol.style.Style|Array.|ol.feature.StyleFunction|undefined)}} + * @todo stability experimental + */ +olx.FeatureOverlayOptions; + + +/** + * Features. + * @type {Array.|ol.Collection|undefined} + */ +olx.FeatureOverlayOptions.prototype.features; + + +/** + * Map. + * @type {ol.Map|undefined} + */ +olx.FeatureOverlayOptions.prototype.map; + + +/** + * Feature style. + * @type {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} + */ +olx.FeatureOverlayOptions.prototype.style; + + +/** + * @typedef {{culture: (string|undefined), + * key: string, + * imagerySet: string, + * tileLoadFunction: (ol.TileLoadFunctionType|undefined)}} + * @todo stability experimental + */ +olx.source.BingMapsOptions; + + +/** + * Culture code. Default is `en-us`. + * @type {string|undefined} + */ +olx.source.BingMapsOptions.prototype.culture; + + +/** + * Bing Maps API key. Get yours at http://bingmapsportal.com/. + * @type {string} + */ +olx.source.BingMapsOptions.prototype.key; + + +/** + * Type of imagery. + * @type {string} + */ +olx.source.BingMapsOptions.prototype.imagerySet; + + +/** + * Optional function to load a tile given a URL. + * @type {ol.TileLoadFunctionType|undefined} + */ +olx.source.BingMapsOptions.prototype.tileLoadFunction; + + +/** + * @typedef {{attributions: (Array.|undefined), + * extent: (ol.Extent|undefined), + * format: ol.format.Feature, + * logo: (string|undefined), + * projection: ol.proj.ProjectionLike}} + * @todo stability experimental + */ +olx.source.FormatVectorOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.FormatVectorOptions.prototype.attributions; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.FormatVectorOptions.prototype.extent; + + +/** + * Format. + * @type {ol.format.Feature} + */ +olx.source.FormatVectorOptions.prototype.format; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.FormatVectorOptions.prototype.logo; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.FormatVectorOptions.prototype.projection; + + +/** + * @typedef {{attributions: (Array.|undefined), + * defaultProjection: ol.proj.ProjectionLike, + * extent: (ol.Extent|undefined), + * logo: (string|undefined), + * object: (GeoJSONObject|undefined), + * projection: ol.proj.ProjectionLike, + * text: (string|undefined), + * url: (string|undefined), + * urls: (Array.|undefined)}} + * @todo stability experimental + */ +olx.source.GeoJSONOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.GeoJSONOptions.prototype.attributions; + + +/** + * Default projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.GeoJSONOptions.prototype.defaultProjection; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.GeoJSONOptions.prototype.extent; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.GeoJSONOptions.prototype.logo; + + +/** + * Object. + * @type {GeoJSONObject|undefined} + */ +olx.source.GeoJSONOptions.prototype.object; + + +/** + * Destination projection. If provided, features will be transformed to this + * projection. If not provided, features will not be transformed. + * @type {ol.proj.ProjectionLike} + */ +olx.source.GeoJSONOptions.prototype.projection; + + +/** + * Text. + * @type {string|undefined} + */ +olx.source.GeoJSONOptions.prototype.text; + + +/** + * URL. + * @type {string|undefined} + */ +olx.source.GeoJSONOptions.prototype.url; + + +/** + * URLs. + * @type {Array.|undefined} + */ +olx.source.GeoJSONOptions.prototype.urls; + + +/** + * @typedef {{attributions: (Array.|undefined), + * doc: (Document|undefined), + * extent: (ol.Extent|undefined), + * logo: (string|undefined), + * node: (Node|undefined), + * projection: ol.proj.ProjectionLike, + * text: (string|undefined), + * url: (string|undefined), + * urls: (Array.|undefined)}} + * @todo stability experimental + */ +olx.source.GPXOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.GPXOptions.prototype.attributions; + + +/** + * Document. + * @type {Document|undefined} + */ +olx.source.GPXOptions.prototype.doc; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.GPXOptions.prototype.extent; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.GPXOptions.prototype.logo; + + +/** + * Node. + * @type {Node|undefined} + */ +olx.source.GPXOptions.prototype.node; + + +/** + * Destination projection. If provided, features will be transformed to this + * projection. If not provided, features will not be transformed. + * @type {ol.proj.ProjectionLike} + */ +olx.source.GPXOptions.prototype.projection; + + +/** + * Text. + * @type {string|undefined} + */ +olx.source.GPXOptions.prototype.text; + + +/** + * URL. + * @type {string|undefined} + */ +olx.source.GPXOptions.prototype.url; + + +/** + * URLs. + * @type {Array.|undefined} + */ +olx.source.GPXOptions.prototype.urls; + + +/** + * @typedef {{attributions: (Array.|undefined), + * defaultProjection: ol.proj.ProjectionLike, + * extent: (ol.Extent|undefined), + * logo: (string|undefined), + * object: (GeoJSONObject|undefined), + * projection: ol.proj.ProjectionLike, + * tileGrid: ol.tilegrid.TileGrid, + * tileUrlFunction: (ol.TileUrlFunctionType|undefined), + * url: (string|undefined), + * urls: (Array.|undefined)}} + * @todo stability experimental + */ +olx.source.TileVectorOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.TileVectorOptions.prototype.attributions; + + +/** + * Default projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.TileVectorOptions.prototype.defaultProjection; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.TileVectorOptions.prototype.extent; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.TileVectorOptions.prototype.logo; + + +/** + * Object. + * @type {GeoJSONObject|undefined} + */ +olx.source.TileVectorOptions.prototype.object; + + +/** + * Destination projection. If provided, features will be transformed to this + * projection. If not provided, features will not be transformed. + * @type {ol.proj.ProjectionLike} + */ +olx.source.TileVectorOptions.prototype.projection; + + +/** + * Tile grid. + * @type {ol.tilegrid.TileGrid} + */ +olx.source.TileVectorOptions.prototype.tileGrid; + + +/** + * Optional function to get tile URL given a tile coordinate and the projection. + * Required if url or urls are not provided. + * @type {ol.TileUrlFunctionType|undefined} + */ +olx.source.TileVectorOptions.prototype.tileUrlFunction; + + +/** + * URL template. Must include `{x}`, `{y}`, and `{z}` placeholders. + * @type {string|undefined} + */ +olx.source.TileVectorOptions.prototype.url; + + +/** + * An array of URL templates. + * @type {Array.|undefined} + */ +olx.source.TileVectorOptions.prototype.urls; + + +/** + * @typedef {{attributions: (Array.|undefined), + * defaultProjection: ol.proj.ProjectionLike, + * extent: (ol.Extent|undefined), + * logo: (string|undefined), + * object: (GeoJSONObject|undefined), + * projection: ol.proj.ProjectionLike, + * text: (string|undefined), + * url: (string|undefined)}} + * @todo stability experimental + */ +olx.source.TopoJSONOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.TopoJSONOptions.prototype.attributions; + + +/** + * Default projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.TopoJSONOptions.prototype.defaultProjection; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.TopoJSONOptions.prototype.extent; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.TopoJSONOptions.prototype.logo; + + +/** + * Object. + * @type {GeoJSONObject|undefined} + */ +olx.source.TopoJSONOptions.prototype.object; + + +/** + * Destination projection. If provided, features will be transformed to this + * projection. If not provided, features will not be transformed. + * @type {ol.proj.ProjectionLike} + */ +olx.source.TopoJSONOptions.prototype.projection; + + +/** + * Text. + * @type {string|undefined} + */ +olx.source.TopoJSONOptions.prototype.text; + + +/** + * URL. + * @type {string|undefined} + */ +olx.source.TopoJSONOptions.prototype.url; + + +/** + * @typedef {{altitudeMode: (ol.format.IGCZ|undefined), + * projection: ol.proj.ProjectionLike, + * text: (string|undefined), + * url: (string|undefined), + * urls: (Array.|undefined)}} + * @todo stability experimental + */ +olx.source.IGCOptions; + + +/** + * Altitude mode. Possible values are `barometric`, `gps`, and `none`. Default + * is `none`. + * @type {ol.format.IGCZ|undefined} + */ +olx.source.IGCOptions.prototype.altitudeMode; + + +/** + * Destination projection. If provided, features will be transformed to this + * projection. If not provided, features will not be transformed. + * @type {ol.proj.ProjectionLike} + */ +olx.source.IGCOptions.prototype.projection; + + +/** + * Text. + * @type {string|undefined} + */ +olx.source.IGCOptions.prototype.text; + + +/** + * URL. + * @type {string|undefined} + */ +olx.source.IGCOptions.prototype.url; + + +/** + * URLs. + * @type {Array.|undefined} + */ +olx.source.IGCOptions.prototype.urls; + + +/** + * @typedef {{url: (string|undefined), + * displayDpi: (number|undefined), + * metersPerUnit: (number|undefined), + * extent: (ol.Extent|undefined), + * hidpi: (boolean|undefined), + * useOverlay: (boolean|undefined), + * projection: ol.proj.ProjectionLike, + * ratio: (number|undefined), + * resolutions: (Array.|undefined), + * params: (Object|undefined)}} + * @todo stability experimental + */ +olx.source.MapGuideOptions; + + +/** + * The mapagent url. + * @type {string|undefined} + */ +olx.source.MapGuideOptions.prototype.url; + + +/** + * The display resolution. Default is `96`. + * @type {number|undefined} + */ +olx.source.MapGuideOptions.prototype.displayDpi; + + +/** + * The meters-per-unit value. Default is `1`. + * @type {number|undefined} + */ +olx.source.MapGuideOptions.prototype.metersPerUnit; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.MapGuideOptions.prototype.extent; + + +/** + * Use the `ol.Map#pixelRatio` value when requesting the image from the remote + * server. Default is `true`. + * @type {boolean|undefined} + */ +olx.source.MapGuideOptions.prototype.hidpi; + + +/** + * If `true`, will use `GETDYNAMICMAPOVERLAYIMAGE`. + * @type {boolean|undefined} + */ +olx.source.MapGuideOptions.prototype.useOverlay; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.MapGuideOptions.prototype.projection; + + +/** + * 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`. + * @type {number|undefined} + */ +olx.source.MapGuideOptions.prototype.ratio; + + +/** + * Resolutions. If specified, requests will be made for these resolutions only. + * @type {Array.|undefined} + */ +olx.source.MapGuideOptions.prototype.resolutions; + + +/** + * Additional parameters. + * @type {Object|undefined} + */ +olx.source.MapGuideOptions.prototype.params; + + +/** + * @typedef {{attributions: (Array.|undefined), + * defaultStyle: (Array.|undefined), + * doc: (Document|undefined), + * extent: (ol.Extent|undefined), + * logo: (string|undefined), + * node: (Node|undefined), + * projection: ol.proj.ProjectionLike, + * text: (string|undefined), + * url: (string|undefined), + * urls: (Array.|undefined)}} + * @todo stability experimental + */ +olx.source.KMLOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.KMLOptions.prototype.attributions; + + +/** + * Default style. + * @type {Array.|undefined} + */ +olx.source.KMLOptions.prototype.defaultStyle; + + +/** + * Document. + * @type {Document|undefined} + */ +olx.source.KMLOptions.prototype.doc; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.KMLOptions.prototype.extent; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.KMLOptions.prototype.logo; + + +/** + * Node. + * @type {Node|undefined} + */ +olx.source.KMLOptions.prototype.node; + + +/** + * Destination projection. If provided, features will be transformed to this + * projection. If not provided, features will not be transformed. + * @type {ol.proj.ProjectionLike} + */ +olx.source.KMLOptions.prototype.projection; + + +/** + * Text. + * @type {string|undefined} + */ +olx.source.KMLOptions.prototype.text; + + +/** + * URL. + * @type {string|undefined} + */ +olx.source.KMLOptions.prototype.url; + + +/** + * URLs. + * @type {Array.|undefined} + */ +olx.source.KMLOptions.prototype.urls; + + +/** + * @typedef {{layer: string, + * tileLoadFunction: (ol.TileLoadFunctionType|undefined)}} + * @todo stability experimental + */ +olx.source.MapQuestOptions; + + +/** + * Layer. Possible values are `osm`, `sat`, and `hyb`. + * @type {string} + */ +olx.source.MapQuestOptions.prototype.layer; + + +/** + * Optional function to load a tile given a URL. + * @type {ol.TileLoadFunctionType|undefined} + */ +olx.source.MapQuestOptions.prototype.tileLoadFunction; + + +/** + * @typedef {{extent: (ol.Extent|undefined), + * projection: ol.proj.ProjectionLike, + * tileGrid: (ol.tilegrid.TileGrid|undefined)}} + * @todo stability experimental + */ +olx.source.TileDebugOptions; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.TileDebugOptions.prototype.extent; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.TileDebugOptions.prototype.projection; + + +/** + * Tile grid. + * @type {ol.tilegrid.TileGrid|undefined} + */ +olx.source.TileDebugOptions.prototype.tileGrid; + + +/** + * @typedef {{attributions: (Array.|undefined), + * crossOrigin: (null|string|undefined), + * maxZoom: (number|undefined), + * tileLoadFunction: (ol.TileLoadFunctionType|undefined), + * url: (string|undefined)}} + * @todo stability experimental + */ +olx.source.OSMOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.OSMOptions.prototype.attributions; + + +/** + * crossOrigin setting for image requests. Default is `anonymous`. + * @type {null|string|undefined} + */ +olx.source.OSMOptions.prototype.crossOrigin; + + +/** + * Max zoom. + * @type {number|undefined} + */ +olx.source.OSMOptions.prototype.maxZoom; + + +/** + * Optional function to load a tile given a URL. + * @type {ol.TileLoadFunctionType|undefined} + */ +olx.source.OSMOptions.prototype.tileLoadFunction; + + +/** + * URL template. Must include `{x}`, `{y}`, and `{z}` placeholders. Default is + * `//{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png`. + * @type {string|undefined} + */ +olx.source.OSMOptions.prototype.url; + + +/** + * @typedef {{attributions: (Array.|undefined), + * defaultStyle: (Array.|undefined), + * doc: (Document|undefined), + * extent: (ol.Extent|undefined), + * logo: (string|undefined), + * node: (Node|undefined), + * projection: ol.proj.ProjectionLike, + * reprojectTo: ol.proj.ProjectionLike, + * text: (string|undefined), + * url: (string|undefined), + * urls: (Array.|undefined)}} + * @todo stability experimental + */ +olx.source.OSMXMLOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.OSMXMLOptions.prototype.attributions; + + +/** + * Default style. + * @type {Array.|undefined} + */ +olx.source.OSMXMLOptions.prototype.defaultStyle; + + +/** + * Document. + * @type {Document|undefined} + */ +olx.source.OSMXMLOptions.prototype.doc; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.OSMXMLOptions.prototype.extent; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.OSMXMLOptions.prototype.logo; + + +/** + * Node. + * @type {Node|undefined} + */ +olx.source.OSMXMLOptions.prototype.node; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.OSMXMLOptions.prototype.projection; + + +/** + * Re-project to. + * @type {ol.proj.ProjectionLike} + */ +olx.source.OSMXMLOptions.prototype.reprojectTo; + + +/** + * Text. + * @type {string|undefined} + */ +olx.source.OSMXMLOptions.prototype.text; + + +/** + * URL. + * @type {string|undefined} + */ +olx.source.OSMXMLOptions.prototype.url; + + +/** + * URLs. + * @type {Array.|undefined} + */ +olx.source.OSMXMLOptions.prototype.urls; + + +/** + * @typedef {{attributions: (Array.|undefined), + * canvasFunction: ol.CanvasFunctionType, + * extent: (ol.Extent|undefined), + * logo: (string|undefined), + * projection: ol.proj.ProjectionLike, + * ratio: (number|undefined), + * resolutions: (Array.|undefined), + * state: (ol.source.State|string|undefined)}} + * @todo stability experimental + */ +olx.source.ImageCanvasOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.ImageCanvasOptions.prototype.attributions; + + +/** + * 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. + * @type {ol.CanvasFunctionType} + */ +olx.source.ImageCanvasOptions.prototype.canvasFunction; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.ImageCanvasOptions.prototype.extent; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.ImageCanvasOptions.prototype.logo; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.ImageCanvasOptions.prototype.projection; + + +/** + * 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`. + * @type {number|undefined} + */ +olx.source.ImageCanvasOptions.prototype.ratio; + + +/** + * Resolutions. If specified, new canvases will be created for these resolutions + * only. + * @type {Array.|undefined} + */ +olx.source.ImageCanvasOptions.prototype.resolutions; + + +/** + * Source state. + * @type {ol.source.State|string|undefined} + */ +olx.source.ImageCanvasOptions.prototype.state; + + +/** + * @typedef {{attributions: (Array.|undefined), + * extent: (ol.Extent|undefined), + * logo: (string|undefined), + * projection: ol.proj.ProjectionLike, + * ratio: (number|undefined), + * resolutions: (Array.|undefined), + * source: ol.source.Vector, + * style: (ol.style.Style|Array.|ol.feature.StyleFunction|undefined)}} + * @todo stability experimental + */ +olx.source.ImageVectorOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.ImageVectorOptions.prototype.attributions; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.ImageVectorOptions.prototype.extent; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.ImageVectorOptions.prototype.logo; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.ImageVectorOptions.prototype.projection; + + +/** + * 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`. + * @type {number|undefined} + */ +olx.source.ImageVectorOptions.prototype.ratio; + + +/** + * Resolutions. If specified, new canvases will be created for these resolutions + * only. + * @type {Array.|undefined} + */ +olx.source.ImageVectorOptions.prototype.resolutions; + + +/** + * The vector source from which the vector features drawn in canvas elements are + * read. + * @type {ol.source.Vector} + */ +olx.source.ImageVectorOptions.prototype.source; + + +/** + * Style to use when rendering features to the canvas. + * @type {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} + */ +olx.source.ImageVectorOptions.prototype.style; + + +/** + * @typedef {{attributions: (Array.|undefined), + * crossOrigin: (null|string|undefined), + * extent: (ol.Extent|undefined), + * hidpi: (boolean|undefined), + * serverType: (ol.source.wms.ServerType|string|undefined), + * logo: (string|undefined), + * params: Object., + * projection: ol.proj.ProjectionLike, + * ratio: (number|undefined), + * resolutions: (Array.|undefined), + * url: (string|undefined)}} + * @todo stability experimental + */ +olx.source.ImageWMSOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.ImageWMSOptions.prototype.attributions; + + +/** + * crossOrigin setting for image requests. + * @type {null|string|undefined} + */ +olx.source.ImageWMSOptions.prototype.crossOrigin; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.ImageWMSOptions.prototype.extent; + + +/** + * Use the `ol.Map#pixelRatio` value when requesting the image from the remote + * server. Default is `true`. + * @type {boolean|undefined} + */ +olx.source.ImageWMSOptions.prototype.hidpi; + + +/** + * The type of the remote WMS server: `mapserver`, `geoserver` or `qgis`. Only + * needed if `hidpi` is `true`. Default is `undefined`. + * @type {ol.source.wms.ServerType|string|undefined} + */ +olx.source.ImageWMSOptions.prototype.serverType; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.ImageWMSOptions.prototype.logo; + + +/** + * 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. + * @type {Object.} + */ +olx.source.ImageWMSOptions.prototype.params; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.ImageWMSOptions.prototype.projection; + + +/** + * 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`. + * @type {number|undefined} + */ +olx.source.ImageWMSOptions.prototype.ratio; + + +/** + * Resolutions. If specified, requests will be made for these resolutions only. + * @type {Array.|undefined} + */ +olx.source.ImageWMSOptions.prototype.resolutions; + + +/** + * WMS service URL. + * @type {string|undefined} + */ +olx.source.ImageWMSOptions.prototype.url; + + +/** + * @typedef {{layer: string, + * minZoom: (number|undefined), + * maxZoom: (number|undefined), + * opaque: (boolean|undefined), + * tileLoadFunction: (ol.TileLoadFunctionType|undefined), + * url: (string|undefined)}} + * @todo stability experimental + */ +olx.source.StamenOptions; + + +/** + * Layer. + * @type {string} + */ +olx.source.StamenOptions.prototype.layer; + + +/** + * Minimum zoom. + * @type {number|undefined} + */ +olx.source.StamenOptions.prototype.minZoom; + + +/** + * Maximum zoom. + * @type {number|undefined} + */ +olx.source.StamenOptions.prototype.maxZoom; + + +/** + * Whether the layer is opaque. + * @type {boolean|undefined} + */ +olx.source.StamenOptions.prototype.opaque; + + +/** + * Optional function to load a tile given a URL. + * @type {ol.TileLoadFunctionType|undefined} + */ +olx.source.StamenOptions.prototype.tileLoadFunction; + + +/** + * URL template. Must include `{x}`, `{y}`, and `{z}` placeholders. + * @type {string|undefined} + */ +olx.source.StamenOptions.prototype.url; + + +/** + * @typedef {{attributions: (Array.|undefined), + * crossOrigin: (null|string|undefined), + * extent: (ol.Extent|undefined), + * imageExtent: (ol.Extent|undefined), + * imageSize: (ol.Size|undefined), + * logo: (string|undefined), + * projection: ol.proj.ProjectionLike, + * url: string}} + * @todo stability experimental + */ +olx.source.ImageStaticOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.ImageStaticOptions.prototype.attributions; + + +/** + * crossOrigin setting for image requests. + * @type {null|string|undefined} + */ +olx.source.ImageStaticOptions.prototype.crossOrigin; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.ImageStaticOptions.prototype.extent; + + +/** + * Extent of the image. + * @type {ol.Extent|undefined} + */ +olx.source.ImageStaticOptions.prototype.imageExtent; + + +/** + * Size of the image. + * @type {ol.Size|undefined} + */ +olx.source.ImageStaticOptions.prototype.imageSize; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.ImageStaticOptions.prototype.logo; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.ImageStaticOptions.prototype.projection; + + +/** + * Url. + * @type {string} + */ +olx.source.ImageStaticOptions.prototype.url; + + +/** + * @typedef {{attributions: (Array.|undefined), + * extent: (ol.Extent|undefined), + * format: ol.format.Feature, + * loader: function(this: ol.source.ServerVector, ol.Extent, number, ol.proj.Projection), + * strategy: (function(ol.Extent, number): Array.|undefined), + * logo: (string|undefined), + * projection: ol.proj.ProjectionLike}} + * @todo stability experimental + */ +olx.source.ServerVectorOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.ServerVectorOptions.prototype.attributions; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.ServerVectorOptions.prototype.extent; + + +/** + * Format. + * @type {ol.format.Feature} + */ +olx.source.ServerVectorOptions.prototype.format; + + +/** + * Loading function. + * @type {function(this: ol.source.ServerVector, ol.Extent, number, ol.proj.Projection)} + */ +olx.source.ServerVectorOptions.prototype.loader; + + +/** + * Loading strategy. Default is `ol.loadingstrategy.bbox`. + * @type {function(ol.Extent, number): Array.|undefined} + */ +olx.source.ServerVectorOptions.prototype.strategy; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.ServerVectorOptions.prototype.logo; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.ServerVectorOptions.prototype.projection; + + +/** + * @typedef {{crossOrigin: (null|string|undefined), + * tileLoadFunction: (ol.TileLoadFunctionType|undefined), + * url: string}} + * @todo stability experimental + */ +olx.source.TileJSONOptions; + + +/** + * crossOrigin setting for image requests. + * @type {null|string|undefined} + */ +olx.source.TileJSONOptions.prototype.crossOrigin; + + +/** + * Optional function to load a tile given a URL. + * @type {ol.TileLoadFunctionType|undefined} + */ +olx.source.TileJSONOptions.prototype.tileLoadFunction; + + +/** + * URL to the TileJSON file. + * @type {string} + */ +olx.source.TileJSONOptions.prototype.url; + + +/** + * @typedef {{attributions: (Array.|undefined), + * params: Object., + * crossOrigin: (null|string|undefined), + * extent: (ol.Extent|undefined), + * gutter: (number|undefined), + * hidpi: (boolean|undefined), + * logo: (string|undefined), + * tileGrid: (ol.tilegrid.TileGrid|undefined), + * maxZoom: (number|undefined), + * projection: ol.proj.ProjectionLike, + * serverType: (ol.source.wms.ServerType|string|undefined), + * tileLoadFunction: (ol.TileLoadFunctionType|undefined), + * url: (string|undefined), + * urls: (Array.|undefined)}} + * @todo stability experimental + */ +olx.source.TileWMSOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.TileWMSOptions.prototype.attributions; + + +/** + * 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. + * @type {Object.} + */ +olx.source.TileWMSOptions.prototype.params; + + +/** + * crossOrigin setting for image requests. + * @type {null|string|undefined} + */ +olx.source.TileWMSOptions.prototype.crossOrigin; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.TileWMSOptions.prototype.extent; + + +/** + * 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. + * @type {number|undefined} + */ +olx.source.TileWMSOptions.prototype.gutter; + + +/** + * Use the `ol.Map#pixelRatio` value when requesting the image from the remote + * server. Default is `true`. + * @type {boolean|undefined} + */ +olx.source.TileWMSOptions.prototype.hidpi; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.TileWMSOptions.prototype.logo; + + +/** + * Tile grid. + * @type {ol.tilegrid.TileGrid|undefined} + */ +olx.source.TileWMSOptions.prototype.tileGrid; + + +/** + * Maximum zoom. + * @type {number|undefined} + */ +olx.source.TileWMSOptions.prototype.maxZoom; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.TileWMSOptions.prototype.projection; + + +/** + * The type of the remote WMS server: `mapserver`, `geoserver` or `qgis`. Only + * needed if `hidpi` is `true`. Default is `undefined`. + * @type {ol.source.wms.ServerType|string|undefined} + */ +olx.source.TileWMSOptions.prototype.serverType; + + +/** + * Optional function to load a tile given a URL. + * @type {ol.TileLoadFunctionType|undefined} + */ +olx.source.TileWMSOptions.prototype.tileLoadFunction; + + +/** + * WMS service URL. + * @type {string|undefined} + */ +olx.source.TileWMSOptions.prototype.url; + + +/** + * WMS service urls. Use this instead of `url` when the WMS supports multiple + * urls for GetMap requests. + * @type {Array.|undefined} + */ +olx.source.TileWMSOptions.prototype.urls; + + +/** + * @typedef {{attributions: (Array.|undefined), + * extent: (ol.Extent|undefined), + * features: (Array.|undefined), + * logo: (string|undefined), + * projection: ol.proj.ProjectionLike, + * state: (ol.source.State|string|undefined)}} + * @todo stability experimental + */ +olx.source.VectorOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.VectorOptions.prototype.attributions; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.VectorOptions.prototype.extent; + + +/** + * Features. + * @type {Array.|undefined} + */ +olx.source.VectorOptions.prototype.features; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.VectorOptions.prototype.logo; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.VectorOptions.prototype.projection; + + +/** + * State. + * @type {ol.source.State|string|undefined} + */ +olx.source.VectorOptions.prototype.state; + + +/** + * @typedef {{arrayBuffer: (ArrayBuffer|undefined), + * attributions: (Array.|undefined), + * doc: (Document|undefined), + * extent: (ol.Extent|undefined), + * format: ol.format.Feature, + * logo: (string|undefined), + * node: (Node|undefined), + * object: (Object|undefined), + * projection: ol.proj.ProjectionLike, + * text: (string|undefined), + * url: (string|undefined), + * urls: (Array.|undefined)}} + * @todo stability experimental + */ +olx.source.StaticVectorOptions; + + +/** + * Array buffer. + * @type {ArrayBuffer|undefined} + */ +olx.source.StaticVectorOptions.prototype.arrayBuffer; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.StaticVectorOptions.prototype.attributions; + + +/** + * Document. + * @type {Document|undefined} + */ +olx.source.StaticVectorOptions.prototype.doc; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.StaticVectorOptions.prototype.extent; + + +/** + * Format. + * @type {ol.format.Feature} + */ +olx.source.StaticVectorOptions.prototype.format; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.StaticVectorOptions.prototype.logo; + + +/** + * Node. + * @type {Node|undefined} + */ +olx.source.StaticVectorOptions.prototype.node; + + +/** + * Object. + * @type {Object|undefined} + */ +olx.source.StaticVectorOptions.prototype.object; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.StaticVectorOptions.prototype.projection; + + +/** + * Text. + * @type {string|undefined} + */ +olx.source.StaticVectorOptions.prototype.text; + + +/** + * URL. + * @type {string|undefined} + */ +olx.source.StaticVectorOptions.prototype.url; + + +/** + * URLs. + * @type {Array.|undefined} + */ +olx.source.StaticVectorOptions.prototype.urls; + + +/** + * @typedef {{attributions: (Array.|undefined), + * crossOrigin: (string|null|undefined), + * extent: (ol.Extent|undefined), + * logo: (string|undefined), + * tileGrid: ol.tilegrid.WMTS, + * projection: ol.proj.ProjectionLike, + * requestEncoding: (ol.source.WMTSRequestEncoding|undefined), + * layer: string, + * style: string, + * version: (string|undefined), + * format: (string|undefined), + * matrixSet: string, + * dimensions: (Object|undefined), + * url: (string|undefined), + * maxZoom: (number|undefined), + * tileLoadFunction: (ol.TileLoadFunctionType|undefined), + * urls: (Array.|undefined)}} + * @todo stability experimental + */ +olx.source.WMTSOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.WMTSOptions.prototype.attributions; + + +/** + * crossOrigin setting for image requests. + * @type {string|null|undefined} + */ +olx.source.WMTSOptions.prototype.crossOrigin; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.WMTSOptions.prototype.extent; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.WMTSOptions.prototype.logo; + + +/** + * Tile grid. + * @type {ol.tilegrid.WMTS} + */ +olx.source.WMTSOptions.prototype.tileGrid; + + +/** + * Projection. + * @type {ol.proj.ProjectionLike} + */ +olx.source.WMTSOptions.prototype.projection; + + +/** + * Request encoding. + * @type {ol.source.WMTSRequestEncoding|undefined} + */ +olx.source.WMTSOptions.prototype.requestEncoding; + + +/** + * Layer. + * @type {string} + */ +olx.source.WMTSOptions.prototype.layer; + + +/** + * Style. + * @type {string} + */ +olx.source.WMTSOptions.prototype.style; + + +/** + * WMTS version. Default to `1.0.0`. + * @type {string|undefined} + */ +olx.source.WMTSOptions.prototype.version; + + +/** + * Format. + * @type {string|undefined} + */ +olx.source.WMTSOptions.prototype.format; + + +/** + * Matrix set. + * @type {string} + */ +olx.source.WMTSOptions.prototype.matrixSet; + + +/** + * Dimensions. + * @type {Object|undefined} + */ +olx.source.WMTSOptions.prototype.dimensions; + + +/** + * URL. + * @type {string|undefined} + */ +olx.source.WMTSOptions.prototype.url; + + +/** + * Maximum zoom. + * @type {number|undefined} + */ +olx.source.WMTSOptions.prototype.maxZoom; + + +/** + * Optional function to load a tile given a URL. + * @type {ol.TileLoadFunctionType|undefined} + */ +olx.source.WMTSOptions.prototype.tileLoadFunction; + + +/** + * Urls. + * @type {Array.|undefined} + */ +olx.source.WMTSOptions.prototype.urls; + + +/** + * @typedef {{attributions: (Array.|undefined), + * crossOrigin: (null|string|undefined), + * extent: (ol.Extent|undefined), + * logo: (string|undefined), + * projection: ol.proj.ProjectionLike, + * maxZoom: (number|undefined), + * minZoom: (number|undefined), + * tileLoadFunction: (ol.TileLoadFunctionType|undefined), + * tileUrlFunction: (ol.TileUrlFunctionType|undefined), + * url: (string|undefined), + * urls: (Array.|undefined), + * wrapX: (boolean|undefined)}} + * @todo stability experimental + */ +olx.source.XYZOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.XYZOptions.prototype.attributions; + + +/** + * Cross origin setting for image requests. + * @type {null|string|undefined} + */ +olx.source.XYZOptions.prototype.crossOrigin; + + +/** + * Extent. + * @type {ol.Extent|undefined} + */ +olx.source.XYZOptions.prototype.extent; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.XYZOptions.prototype.logo; + + +/** + * Projection. Default is `EPSG:3857`. + * @type {ol.proj.ProjectionLike} + */ +olx.source.XYZOptions.prototype.projection; + + +/** + * Optional max zoom level. Default is `18`. + * @type {number|undefined} + */ +olx.source.XYZOptions.prototype.maxZoom; + + +/** + * Unsupported (TODO: remove this). + * @type {number|undefined} + */ +olx.source.XYZOptions.prototype.minZoom; + + +/** + * Optional function to load a tile given a URL. + * @type {ol.TileLoadFunctionType|undefined} + */ +olx.source.XYZOptions.prototype.tileLoadFunction; + + +/** + * Optional function to get tile URL given a tile coordinate and the projection. + * Required if url or urls are not provided. + * @type {ol.TileUrlFunctionType|undefined} + */ +olx.source.XYZOptions.prototype.tileUrlFunction; + + +/** + * URL template. Must include `{x}`, `{y}`, and `{z}` placeholders. + * @type {string|undefined} + */ +olx.source.XYZOptions.prototype.url; + + +/** + * An array of URL templates. + * @type {Array.|undefined} + */ +olx.source.XYZOptions.prototype.urls; + + +/** + * Whether to wrap the world horizontally. Default is `true`. + * @type {boolean|undefined} + */ +olx.source.XYZOptions.prototype.wrapX; + + +/** + * @typedef {{attributions: (Array.|undefined), + * crossOrigin: (null|string|undefined), + * logo: (string|undefined), + * url: !string, + * tierSizeCalculation: (string|undefined), + * size: ol.Size}} + * @todo stability experimental + */ +olx.source.ZoomifyOptions; + + +/** + * Attributions. + * @type {Array.|undefined} + */ +olx.source.ZoomifyOptions.prototype.attributions; + + +/** + * Cross origin setting for image requests. + * @type {null|string|undefined} + */ +olx.source.ZoomifyOptions.prototype.crossOrigin; + + +/** + * Logo. + * @type {string|undefined} + */ +olx.source.ZoomifyOptions.prototype.logo; + + +/** + * Prefix of URL template. + * @type {!string} + */ +olx.source.ZoomifyOptions.prototype.url; + + +/** + * Tier size calculation method: `default` or `truncated`. + * @type {string|undefined} + */ +olx.source.ZoomifyOptions.prototype.tierSizeCalculation; + + +/** + * Size of the image. + * @type {ol.Size} + */ +olx.source.ZoomifyOptions.prototype.size; + + +/** + * @typedef {{fill: (ol.style.Fill|undefined), + * radius: number, + * stroke: (ol.style.Stroke|undefined)}} + * @todo stability experimental + */ +olx.style.CircleOptions; + + +/** + * Fill style. + * @type {ol.style.Fill|undefined} + */ +olx.style.CircleOptions.prototype.fill; + + +/** + * Circle radius. + * @type {number} + */ +olx.style.CircleOptions.prototype.radius; + + +/** + * Stroke style. + * @type {ol.style.Stroke|undefined} + */ +olx.style.CircleOptions.prototype.stroke; + + +/** + * @typedef {{color: (ol.Color|string|undefined)}} + * @todo stability experimental + */ +olx.style.FillOptions; + + +/** + * Color. + * @type {ol.Color|string|undefined} + */ +olx.style.FillOptions.prototype.color; + + +/** + * @typedef {{anchor: (Array.|undefined), + * anchorOrigin: (ol.style.IconAnchorOrigin|undefined), + * anchorXUnits: (ol.style.IconAnchorUnits|undefined), + * anchorYUnits: (ol.style.IconAnchorUnits|undefined), + * crossOrigin: (null|string|undefined), + * scale: (number|undefined), + * rotateWithView: (boolean|undefined), + * rotation: (number|undefined), + * size: (ol.Size|undefined), + * src: string}} + * @todo stability experimental + */ +olx.style.IconOptions; + + +/** + * Anchor. Default value is `[0.5, 0.5]` (icon center). + * @type {Array.|undefined} + */ +olx.style.IconOptions.prototype.anchor; + + +/** + * Origin of the anchor: `bottom-left`, `bottom-right`, `top-left` or + * `top-right`. Default is `top-left`. + * @type {ol.style.IconAnchorOrigin|undefined} + */ +olx.style.IconOptions.prototype.anchorOrigin; + + +/** + * 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'`. + * @type {ol.style.IconAnchorUnits|undefined} + */ +olx.style.IconOptions.prototype.anchorXUnits; + + +/** + * 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'`. + * @type {ol.style.IconAnchorUnits|undefined} + */ +olx.style.IconOptions.prototype.anchorYUnits; + + +/** + * crossOrigin setting for image. + * @type {null|string|undefined} + */ +olx.style.IconOptions.prototype.crossOrigin; + + +/** + * Scale. + * @type {number|undefined} + */ +olx.style.IconOptions.prototype.scale; + + +/** + * Whether to rotate the icon with the view. Default is `false`. + * @type {boolean|undefined} + */ +olx.style.IconOptions.prototype.rotateWithView; + + +/** + * Rotation. + * @type {number|undefined} + */ +olx.style.IconOptions.prototype.rotation; + + +/** + * Icon size in pixel. + * @type {ol.Size|undefined} + */ +olx.style.IconOptions.prototype.size; + + +/** + * Image source URI. + * @type {string} + */ +olx.style.IconOptions.prototype.src; + + +/** + * @typedef {{color: (ol.Color|string|undefined), + * lineCap: (string|undefined), + * lineJoin: (string|undefined), + * lineDash: (Array.|undefined), + * miterLimit: (number|undefined), + * width: (number|undefined)}} + * @todo stability experimental + */ +olx.style.StrokeOptions; + + +/** + * Color. + * @type {ol.Color|string|undefined} + */ +olx.style.StrokeOptions.prototype.color; + + +/** + * Line cap style: `butt`, `round`, or `square`. Default is `round`. + * @type {string|undefined} + */ +olx.style.StrokeOptions.prototype.lineCap; + + +/** + * Line join style: `bevel`, `round`, or `miter`. Default is `round`. + * @type {string|undefined} + */ +olx.style.StrokeOptions.prototype.lineJoin; + + +/** + * Line dash pattern. Default is `undefined` (no dash). + * @type {Array.|undefined} + */ +olx.style.StrokeOptions.prototype.lineDash; + + +/** + * Miter limit. Default is `10`. + * @type {number|undefined} + */ +olx.style.StrokeOptions.prototype.miterLimit; + + +/** + * Width. + * @type {number|undefined} + */ +olx.style.StrokeOptions.prototype.width; + + +/** + * @typedef {{font: (string|undefined), + * offsetX: (number|undefined), + * offsetY: (number|undefined), + * scale: (number|undefined), + * rotation: (number|undefined), + * text: (string|undefined), + * textAlign: (string|undefined), + * textBaseline: (string|undefined), + * fill: (ol.style.Fill|undefined), + * stroke: (ol.style.Stroke|undefined)}} + * @todo stability experimental + */ +olx.style.TextOptions; + + +/** + * Font. + * @type {string|undefined} + */ +olx.style.TextOptions.prototype.font; + + +/** + * Horizontal text offset in pixels. A positive will shift the text right. + * Default is `0`. + * @type {number|undefined} + */ +olx.style.TextOptions.prototype.offsetX; + + +/** + * Vertical text offset in pixels. A positive will shift the text down. Default + * is `0`. + * @type {number|undefined} + */ +olx.style.TextOptions.prototype.offsetY; + + +/** + * Scale. + * @type {number|undefined} + */ +olx.style.TextOptions.prototype.scale; + + +/** + * Rotation. + * @type {number|undefined} + */ +olx.style.TextOptions.prototype.rotation; + + +/** + * Text. + * @type {string|undefined} + */ +olx.style.TextOptions.prototype.text; + + +/** + * Text alignment. + * @type {string|undefined} + */ +olx.style.TextOptions.prototype.textAlign; + + +/** + * Text base line. + * @type {string|undefined} + */ +olx.style.TextOptions.prototype.textBaseline; + + +/** + * Fill style. + * @type {ol.style.Fill|undefined} + */ +olx.style.TextOptions.prototype.fill; + + +/** + * Stroke style. + * @type {ol.style.Stroke|undefined} + */ +olx.style.TextOptions.prototype.stroke; + + +/** + * @typedef {{fill: (ol.style.Fill|undefined), + * image: (ol.style.Image|undefined), + * stroke: (ol.style.Stroke|undefined), + * text: (ol.style.Text|undefined), + * zIndex: (number|undefined)}} + * @todo stability experimental + */ +olx.style.StyleOptions; + + +/** + * Fill style. + * @type {ol.style.Fill|undefined} + */ +olx.style.StyleOptions.prototype.fill; + + +/** + * Image style. + * @type {ol.style.Image|undefined} + */ +olx.style.StyleOptions.prototype.image; + + +/** + * Stroke style. + * @type {ol.style.Stroke|undefined} + */ +olx.style.StyleOptions.prototype.stroke; + + +/** + * Text style. + * @type {ol.style.Text|undefined} + */ +olx.style.StyleOptions.prototype.text; + + +/** + * Z index. + * @type {number|undefined} + */ +olx.style.StyleOptions.prototype.zIndex; + + +/** + * @typedef {{minZoom: (number|undefined), + * origin: (ol.Coordinate|undefined), + * origins: (Array.|undefined), + * resolutions: !Array., + * tileSize: (number|undefined), + * tileSizes: (Array.|undefined)}} + * @todo stability experimental + */ +olx.tilegrid.TileGridOptions; + + +/** + * Minimum zoom. + * @type {number|undefined} + */ +olx.tilegrid.TileGridOptions.prototype.minZoom; + + +/** + * Origin. + * @type {ol.Coordinate|undefined} + */ +olx.tilegrid.TileGridOptions.prototype.origin; + + +/** + * Origins. + * @type {Array.|undefined} + */ +olx.tilegrid.TileGridOptions.prototype.origins; + + +/** + * Resolutions. + * @type {!Array.} + */ +olx.tilegrid.TileGridOptions.prototype.resolutions; + + +/** + * Tile size. + * @type {number|undefined} + */ +olx.tilegrid.TileGridOptions.prototype.tileSize; + + +/** + * Tile sizes. + * @type {Array.|undefined} + */ +olx.tilegrid.TileGridOptions.prototype.tileSizes; + + +/** + * @typedef {{origin: (ol.Coordinate|undefined), + * origins: (Array.|undefined), + * resolutions: !Array., + * matrixIds: !Array., + * tileSize: (number|undefined), + * tileSizes: (Array.|undefined)}} + * @todo stability experimental + */ +olx.tilegrid.WMTSOptions; + + +/** + * Origin. + * @type {ol.Coordinate|undefined} + */ +olx.tilegrid.WMTSOptions.prototype.origin; + + +/** + * Origins. + * @type {Array.|undefined} + */ +olx.tilegrid.WMTSOptions.prototype.origins; + + +/** + * Resolutions. + * @type {!Array.} + */ +olx.tilegrid.WMTSOptions.prototype.resolutions; + + +/** + * matrix IDs. + * @type {!Array.} + */ +olx.tilegrid.WMTSOptions.prototype.matrixIds; + + +/** + * Tile size. + * @type {number|undefined} + */ +olx.tilegrid.WMTSOptions.prototype.tileSize; + + +/** + * Tile sizes. + * @type {Array.|undefined} + */ +olx.tilegrid.WMTSOptions.prototype.tileSizes; + + +/** + * @typedef {{maxZoom: number}} + * @todo stability experimental + */ +olx.tilegrid.XYZOptions; + + +/** + * Maximum zoom. + * @type {number} + */ +olx.tilegrid.XYZOptions.prototype.maxZoom; + + +/** + * @typedef {{resolutions: !Array.}} + * @todo stability experimental + */ +olx.tilegrid.ZoomifyOptions; + + +/** + * Resolutions. + * @type {!Array.} + */ +olx.tilegrid.ZoomifyOptions.prototype.resolutions; + + +/** + * @typedef {{padding: !Array., + * constrainResolution: (boolean|undefined), + * nearest: (boolean|undefined), + * minResolution: (number|undefined)}} + * @todo stability experimental + */ +olx.View2D.fitGeometryOptions; + + +/** + * 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]`. + * @type {!Array.} + */ +olx.View2D.fitGeometryOptions.prototype.padding; + + +/** + * Constrain the resolution. Default is `true`. + * @type {boolean|undefined} + */ +olx.View2D.fitGeometryOptions.prototype.constrainResolution; + + +/** + * Get the nearest extent. Default is `false`. + * @type {boolean|undefined} + */ +olx.View2D.fitGeometryOptions.prototype.nearest; + + +/** + * Minimum resolution that we zoom to. Default is `0`. + * @type {number|undefined} + */ +olx.View2D.fitGeometryOptions.prototype.minResolution; diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc deleted file mode 100644 index 717416a1ba..0000000000 --- a/src/objectliterals.jsdoc +++ /dev/null @@ -1,1186 +0,0 @@ -/** - * @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. - */ - -/** - * 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} 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} dragPan Whether drag pan is - * desired. Default is `true`. - * @property {boolean|undefined} pinchRotate Whether pinch rotate is - * desired. Default is `true`. - * @property {boolean|undefined} pinchZoom Whether pinch 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.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.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.DragPanOptions - * @property {ol.Kinetic|undefined} kinetic Kinetic inertia to apply to the - * pan. - * @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.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.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 - */ - -/** - * @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.ModifyOptions - * @property {ol.events.ConditionType|undefined} deleteCondition Condition that - * determines which event results in a vertex deletion. Default is a - * `singleclick` event with no modifier keys. - * @property {number|undefined} pixelTolerance Pixel tolerance for considering - * the pointer close enough to a segment or vertex for editing. Default is - * 10 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.MouseWheelZoomOptions - * @property {number|undefined} duration Animation duration in milliseconds. Default is `250`. - * @todo stability experimental - */ - -/** - * @typedef {Object} olx.interaction.PinchRotateOptions - * @property {number|undefined} threshold Minimal angle in radians to start a rotation. - * Default is `0.3`. - * @todo stability experimental - */ - -/** - * @typedef {Object} olx.interaction.PinchZoomOptions - * @property {number|undefined} duration Animation duration in milliseconds. Default is `400`. - * @todo stability experimental - */ - -/** - * @typedef {Object} olx.interaction.SelectOptions - * @property {ol.events.ConditionType|undefined} addCondition A conditional - * modifier (e.g. alt key) that determines if the feature is added to - * the current selection. By default, this is never. Note that the default - * toggle condition allows features to be added. - * @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. - * @property {ol.events.ConditionType|undefined} removeCondition A conditional - * modifier (e.g. alt key) that determines if the feature is removed from - * the current selection. By default, this is never. - * @property {ol.events.ConditionType|undefined} toggleCondition A conditional - * modifier (e.g. shift key) that determines if the selection is toggled in - * the current selection. By default, a shift-click toggles the feature in - * the current selection. - */ - -/** - * @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 {string|function(ol.Feature):number|undefined} weight The feature attribute to use for the - * weight or a function that returns a weight from a feature. Weight values should range from 0 to 1 - * (and values outside will be clamped to that range). Default is `weight`. - * @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 {function(ol.Feature, ol.Feature):number|null|undefined} renderOrder Render order. - * Function to be used when sorting features before rendering. By default - * features are drawn in the order that they are created. Use `null` to - * avoid the sort, but get an undefined draw order. - * @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.FormatVectorOptions - * @property {Array.|undefined} attributions Attributions. - * @property {ol.Extent|undefined} extent Extent. - * @property {ol.format.Feature} format Format. - * @property {string|undefined} logo Logo. - * @property {ol.proj.ProjectionLike} projection Projection. - */ - -/** - * @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.TileVectorOptions - * @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 {ol.tilegrid.TileGrid} tileGrid Tile grid. - * @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. - */ - -/** - * @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.ServerVectorOptions - * @property {Array.|undefined} attributions Attributions. - * @property {ol.Extent|undefined} extent Extent. - * @property {ol.format.Feature} format Format. - * @property {function(this: ol.source.ServerVector, ol.Extent, number, ol.proj.Projection)} loader Loading function. - * @property {function(ol.Extent, number): Array.|undefined} strategy Loading strategy. Default is `ol.loadingstrategy.bbox`. - * @property {string|undefined} logo Logo. - * @property {ol.proj.ProjectionLike} projection Projection. - */ - -/** - * @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.StaticVectorOptions - * @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. - * @property {boolean|undefined} wrapX Whether to wrap the world horizontally. - * Default is `true`. - * @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 - */