'use strict';
/*global require*/
var IonImageryProvider = require('terriajs-cesium/Source/Scene/IonImageryProvider');
var defineProperties = require('terriajs-cesium/Source/Core/defineProperties');
var ImageryLayerCatalogItem = require('./ImageryLayerCatalogItem');
var inherit = require('../Core/inherit');
/**
* A {@link ImageryLayerCatalogItem} representing an imagery layer from Cesium Ion.
*
* @alias IonImageryCatalogItem
* @constructor
* @extends ImageryLayerCatalogItem
*
* @param {Terria} terria The Terria instance.
*/
var IonImageryCatalogItem = function(terria) {
ImageryLayerCatalogItem.call(this, terria);
/**
* Gets or sets the ID of the Cesium Ion asset to access.
* @type {Number}
*/
this.ionAssetId = undefined;
/**
* Gets or sets the Cesium Ion access token to use to access the imagery. If not specified, the token specified
* using the `cesiumIonAccessToken` property in `config.json` is used.
* @type {String}
*/
this.ionAccessToken = undefined;
/**
* Gets or sets the Cesium Ion access token to use to access the imagery. If not specified, the default Ion
* server, `https://api.cesium.com/`, is used.
* @type {String}
*/
this.ionServer = undefined;
};
inherit(ImageryLayerCatalogItem, IonImageryCatalogItem);
defineProperties(IonImageryCatalogItem.prototype, {
/**
* Gets the type of data item represented by this instance.
* @memberOf UrlTemplateCatalogItem.prototype
* @type {String}
*/
type : {
get : function() {
return 'ion-imagery';
}
},
/**
* Gets a human-readable name for this type of data source, 'Cesium Ion Imagery'.
* @memberOf UrlTemplateCatalogItem.prototype
* @type {String}
*/
typeName : {
get : function() {
return 'Cesium Ion Imagery';
}
}
});
IonImageryCatalogItem.prototype._createImageryProvider = function() {
return new IonImageryProvider({
assetId: this.ionAssetId,
accessToken: this.ionAccessToken,
server: this.ionServer
});
};
module.exports = IonImageryCatalogItem;