diff --git a/externs/olx.js b/externs/olx.js index 63961dcc7e..0e4988ffb7 100644 --- a/externs/olx.js +++ b/externs/olx.js @@ -5,175 +5,6 @@ let olx; -/** - * @typedef {{renderOrder: (ol.RenderOrderFunction|null|undefined), - * minResolution: (number|undefined), - * maxResolution: (number|undefined), - * opacity: (number|undefined), - * renderBuffer: (number|undefined), - * renderMode: (ol.layer.VectorRenderType|string|undefined), - * source: (ol.source.Vector|undefined), - * map: (ol.PluggableMap|undefined), - * declutter: (boolean|undefined), - * style: (ol.style.Style|Array.|ol.StyleFunction|undefined), - * maxTilesLoading: (number|undefined), - * updateWhileAnimating: (boolean|undefined), - * updateWhileInteracting: (boolean|undefined), - * visible: (boolean|undefined), - * zIndex: (number|undefined)}} - */ -olx.layer.VectorOptions; - - -/** - * Render mode for vector layers: - * * `'image'`: Vector layers are rendered as images. Great performance, but - * point symbols and texts are always rotated with the view and pixels are - * scaled during zoom animations. - * * `'vector'`: Vector layers are rendered as vectors. Most accurate rendering - * even during animations, but slower performance. - * Default is `vector`. - * @type {ol.layer.VectorRenderType|string|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.renderMode; - - -/** - * 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 {ol.RenderOrderFunction|null|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.renderOrder; - - -/** - * Sets the layer as overlay on a map. The map will not manage this layer in its - * layers collection, and the layer will be rendered on top. This is useful for - * temporary layers. The standard way to add a layer to a map and have it - * managed by the map is to use {@link ol.Map#addLayer}. - * @type {ol.PluggableMap|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.map; - - -/** - * The bounding extent for layer rendering. The layer will not be rendered - * outside of this extent. - * @type {ol.Extent|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.extent; - - -/** - * The minimum resolution (inclusive) at which this layer will be visible. - * @type {number|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.minResolution; - - -/** - * The maximum resolution (exclusive) below which this layer will be visible. - * @type {number|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.maxResolution; - - -/** - * Opacity. 0-1. Default is `1`. - * @type {number|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.opacity; - - -/** - * The buffer around the viewport extent used by the renderer when getting - * features from the vector source for the rendering or hit-detection. - * Recommended value: the size of the largest symbol, line width or label. - * Default is 100 pixels. - * @type {number|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.renderBuffer; - - -/** - * Source. - * @type {ol.source.Vector} - * @api - */ -olx.layer.VectorOptions.prototype.source; - - -/** - * Declutter images and text. Decluttering is applied to all image and text - * styles, and the priority is defined by the z-index of the style. Lower - * z-index means higher priority. Default is `false`. - * @type {boolean|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.declutter; - - -/** - * Layer style. See {@link ol.style} for default style which will be used if - * this is not defined. - * @type {ol.style.Style|Array.|ol.StyleFunction|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.style; - - -/** - * Maximum number tiles to load simultaneously. Default is `16`. - * @type {number|undefined} - */ -olx.layer.VectorOptions.prototype.maxTilesLoading; - -/** - * When set to `true`, feature batches will be recreated during animations. - * This means that no vectors will be shown clipped, but the setting will have a - * performance impact for large amounts of vector data. When set to `false`, - * batches will be recreated when no animation is active. Default is `false`. - * @type {boolean|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.updateWhileAnimating; - - -/** - * When set to `true`, feature batches will be recreated during interactions. - * See also `updateWhileAnimating`. Default is `false`. - * @type {boolean|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.updateWhileInteracting; - - -/** - * Visibility. Default is `true` (visible). - * @type {boolean|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.visible; - - -/** - * The z-index for layer rendering. At rendering time, the layers will be - * ordered, first by Z-index and then by position. The default Z-index is 0. - * @type {number|undefined} - * @api - */ -olx.layer.VectorOptions.prototype.zIndex; - - /** * @typedef {{extent: (ol.Extent|undefined), * map: (ol.PluggableMap|undefined), diff --git a/src/ol/layer/Heatmap.js b/src/ol/layer/Heatmap.js index 9362db3f2a..84b5f940fa 100644 --- a/src/ol/layer/Heatmap.js +++ b/src/ol/layer/Heatmap.js @@ -78,7 +78,7 @@ const Heatmap = function(opt_options) { delete baseOptions.blur; delete baseOptions.shadow; delete baseOptions.weight; - VectorLayer.call(this, /** @type {olx.layer.VectorOptions} */ (baseOptions)); + VectorLayer.call(this, /** @type {module:ol/layer/Vector~Options} */ (baseOptions)); /** * @private diff --git a/src/ol/layer/Vector.js b/src/ol/layer/Vector.js index 8830273691..e2a8fdaa62 100644 --- a/src/ol/layer/Vector.js +++ b/src/ol/layer/Vector.js @@ -9,6 +9,49 @@ import {assign} from '../obj.js'; import {createDefaultStyle, toFunction as toStyleFunction} from '../style/Style.js'; +/** + * @typedef {Object} Options + * @property {number} [opacity=1] Opacity (0, 1). + * @property {boolean} [visible=true] Visibility. + * @property {ol.Extent} [extent] The bounding extent for layer rendering. The layer will not be + * rendered outside of this extent. + * @property {number} [zIndex=0] The z-index for layer rendering. At rendering time, the layers + * will be ordered, first by Z-index and then by position. + * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be + * visible. + * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will + * be visible. + * @property {ol.RenderOrderFunction} [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} [renderBuffer=100] The buffer in pixels around the viewport extent used by the + * renderer when getting features from the vector source for the rendering or hit-detection. + * Recommended value: the size of the largest symbol, line width or label. + * @property {ol.layer.VectorRenderType|string} [renderMode='vector'] Render mode for vector layers: + * * `'image'`: Vector layers are rendered as images. Great performance, but point symbols and + * texts are always rotated with the view and pixels are scaled during zoom animations. + * * `'vector'`: Vector layers are rendered as vectors. Most accurate rendering even during + * animations, but slower performance. + * @property {ol.source.Vector} [source] Source. + * @property {ol.PluggableMap} [map] Sets the layer as overlay on a map. The map will not manage + * this layer in its layers collection, and the layer will be rendered on top. This is useful for + * temporary layers. The standard way to add a layer to a map and have it managed by the map is to + * use {@link ol.Map#addLayer}. + * @property {boolean} [declutter=false] Declutter images and text. Decluttering is applied to all + * image and text styles, and the priority is defined by the z-index of the style. Lower z-index + * means higher priority. + * @property {ol.style.Style|Array.|ol.StyleFunction} [style] Layer style. See + * {@link ol.style} for default style which will be used if this is not defined. + * @property {number} [maxTilesLoading=16] Maximum number tiles to load simultaneously. + * @property {boolean} [updateWhileAnimating=false] When set to `true`, feature batches will be + * recreated during animations. This means that no vectors will be shown clipped, but the setting + * will have a performance impact for large amounts of vector data. When set to `false`, batches + * will be recreated when no animation is active. + * @property {boolean} [updateWhileInteracting=false] When set to `true`, feature batches will be + * recreated during interactions. See also `updateWhileAnimating`. + */ + + /** * @enum {string} * @private @@ -28,12 +71,12 @@ const Property = { * @constructor * @extends {module:ol/layer/Layer~Layer} * @fires ol.render.Event - * @param {olx.layer.VectorOptions=} opt_options Options. + * @param {module:ol/layer/Vector~Options=} opt_options Options. * @api */ const VectorLayer = function(opt_options) { const options = opt_options ? - opt_options : /** @type {olx.layer.VectorOptions} */ ({}); + opt_options : /** @type {module:ol/layer/Vector~Options} */ ({}); const baseOptions = assign({}, options); diff --git a/src/ol/layer/VectorTile.js b/src/ol/layer/VectorTile.js index 48ca9e7302..d8e3085a77 100644 --- a/src/ol/layer/VectorTile.js +++ b/src/ol/layer/VectorTile.js @@ -39,7 +39,7 @@ const VectorTileLayer = function(opt_options) { delete baseOptions.preload; delete baseOptions.useInterimTilesOnError; - VectorLayer.call(this, /** @type {olx.layer.VectorOptions} */ (baseOptions)); + VectorLayer.call(this, /** @type {module:ol/layer/Vector~Options} */ (baseOptions)); this.setPreload(options.preload ? options.preload : 0); this.setUseInterimTilesOnError(options.useInterimTilesOnError ?