Retour à la documentation
define([
'dojo/_base/declare',
'dojo/_base/array',
'dojo/_base/lang',
'spw/api/MapService',
'esri/layers/WebTiledLayer',
'esri/layers/TileInfo',
'esri/SpatialReference',
'esri/geometry/Point'
],
function(declare, array, lang, MapService, WebTiledLayer, TileInfo, SpatialReference, Point) {
/**
* @class spw.api.WebTiledMapService
* @classdesc Service du viewer correspondant à un WebTiledLayer d'ESRI
* @extends {spw.api.MapService}
*/
var WebTiledMapService = declare('spw.api.WebTiledMapService', [MapService], /** @lends spw.api.WebTiledMapService.prototype */ {
tileInfo: null, // {lods: [], format: 'png', width: 256, height: 256}
/**
* Crée le layer Esri sur base de la configuration du MapService.
* @memberOf spw.api.MapService
*/
createMapLayer: function() {
var tileInfo = null;
if (this.tileInfo) {
var sr = new SpatialReference(this.srid ? this.srid : this.spwMap.getSpatialReferenceSRID());
tileInfo = new TileInfo(lang.mixin(this.tileInfo, {
spatialReference: sr,
origin: new Point(0, 0, sr)
}));
}
this.layer = new WebTiledLayer(this.get('url'), {
id: this.get('serviceId'),
resampling: this.get('resampling'),
opacity: this.get('alpha') / 100,
displayLevels: this.displayLevels,
tileServers: this.get('tileServers'),
minScale: this.get('minScale'),
maxScale: this.get('maxScale'),
tileInfo: tileInfo
});
if(this.copyright){
this.layer.copyright = this.copyright;
}
this.inherited(arguments);
this.baseMapLayerLoaded();
}
});
return WebTiledMapService;
});