This change adds a stability value to the api annotation, with 'experimental' as default value. enum, typedef and event annotations are never exportable, but api annotations are needed there to make them appear in the docs. Nested typedefs are no longer inlined recursively, because the resulting tables get too wide with the current template.
75 lines
1.5 KiB
JavaScript
75 lines
1.5 KiB
JavaScript
goog.provide('ol.Attribution');
|
|
|
|
goog.require('ol.TileRange');
|
|
|
|
|
|
|
|
/**
|
|
* Create a new attribution to be associated with a layer source.
|
|
*
|
|
* Example:
|
|
*
|
|
* source: new ol.source.OSM({
|
|
* attributions: [
|
|
* new ol.Attribution({
|
|
* html: 'All maps © ' +
|
|
* '<a href="http://www.opencyclemap.org/">OpenCycleMap</a>'
|
|
* }),
|
|
* ol.source.OSM.DATA_ATTRIBUTION
|
|
* ],
|
|
* ..
|
|
*
|
|
* @constructor
|
|
* @param {olx.AttributionOptions} options Attribution options.
|
|
* @struct
|
|
* @todo api
|
|
*/
|
|
ol.Attribution = function(options) {
|
|
|
|
/**
|
|
* @private
|
|
* @type {string}
|
|
*/
|
|
this.html_ = options.html;
|
|
|
|
/**
|
|
* @private
|
|
* @type {Object.<string, Array.<ol.TileRange>>}
|
|
*/
|
|
this.tileRanges_ = goog.isDef(options.tileRanges) ?
|
|
options.tileRanges : null;
|
|
|
|
};
|
|
|
|
|
|
/**
|
|
* @return {string} HTML.
|
|
*/
|
|
ol.Attribution.prototype.getHTML = function() {
|
|
return this.html_;
|
|
};
|
|
|
|
|
|
/**
|
|
* @param {Object.<string, ol.TileRange>} tileRanges Tile ranges.
|
|
* @return {boolean} Intersects any tile range.
|
|
*/
|
|
ol.Attribution.prototype.intersectsAnyTileRange = function(tileRanges) {
|
|
if (goog.isNull(this.tileRanges_)) {
|
|
return true;
|
|
}
|
|
var i, ii, tileRange, z;
|
|
for (z in tileRanges) {
|
|
if (!(z in this.tileRanges_)) {
|
|
continue;
|
|
}
|
|
tileRange = tileRanges[z];
|
|
for (i = 0, ii = this.tileRanges_[z].length; i < ii; ++i) {
|
|
if (this.tileRanges_[z][i].intersects(tileRange)) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
};
|