Source: api/WebTiledMapService.js

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;

});