Retour à la documentation
define([
'dojo/_base/declare',
'dojo/_base/array',
'dojo/_base/lang',
'spw/api/MapService',
'esri/layers/WebTiledLayer'
],
function(declare, array, lang, MapService, WebTiledLayer) {
/**
* @class spw.api.GoogleMapsMapService
* @classdesc Service du viewer correspondant à un WebTiledLayer d'ESRI
* @extends {spw.api.MapService}
*/
var GoogleMapsMapService = declare('spw.api.GoogleMapsMapService', [MapService], /** @lends spw.api.GoogleMapsMapService.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 lods = this.tileInfo && this.tileInfo.lods ? this.tileInfo.lods : [{
level: 0,
resolution: 156543.033928,
scale: 591657527.591555
}, {
level: 1,
resolution: 78271.5169639999,
scale: 295828763.795777
}, {
level: 2,
resolution: 39135.7584820001,
scale: 147914381.897889
}, {
level: 3,
resolution: 19567.8792409999,
scale: 73957190.948944
}, {
level: 4,
resolution: 9783.93962049996,
scale: 36978595.474472
}, {
level: 5,
resolution: 4891.96981024998,
scale: 18489297.737236
}, {
level: 6,
resolution: 2445.98490512499,
scale: 9244648.868618
}, {
level: 7,
resolution: 1222.99245256249,
scale: 4622324.434309
}, {
level: 8,
resolution: 611.49622628138,
scale: 2311162.217155
}, {
level: 9,
resolution: 305.748113140558,
scale: 1155581.108577
}, {
level: 10,
resolution: 152.874056570411,
scale: 577790.554289
}, {
level: 11,
resolution: 76.4370282850732,
scale: 288895.277144
}, {
level: 12,
resolution: 38.2185141425366,
scale: 144447.638572
}, {
level: 13,
resolution: 19.1092570712683,
scale: 72223.819286
}, {
level: 14,
resolution: 9.55462853563415,
scale: 36111.909643
}, {
level: 15,
resolution: 4.77731426794937,
scale: 18055.954822
}, {
level: 16,
resolution: 2.38865713397468,
scale: 9027.977411
}, {
level: 17,
resolution: 1.19432856685505,
scale: 4513.988705
}, {
level: 18,
resolution: 0.597164283559817,
scale: 2256.994353
}, {
level: 19,
resolution: 0.298582141647617,
scale: 1128.497176
}, {
level: 20,
resolution: 0.149291070823808,
scale: 564.248588
}];
// this.layer = new GoogleMapsLayer();
this.layer = new WebTiledLayer('https://${subDomain}.google.com/vt/lyrs=m&x=${col}&y=${row}&z=${level}', {
subDomains: ['mt', 'mt1', 'mt2', 'mt3'],
tileInfo: new esri.layers.TileInfo({
rows: 256,
cols: 256,
dpi: 96,
origin: {
x: -20037508.342787,
y: 20037508.342787
},
spatialReference: {
wkid: this.srid || 3857
},
lods: lods
})
});
if (this.proxyUrl) {
array.forEach(this.layer.tileServers, lang.hitch(this, function(tileServer, i) {
this.layer.tileServers[i] = this.proxyUrl + '?' + tileServer;
}));
}
if(this.copyright){
this.layer.copyright = this.copyright;
}
this.inherited(arguments);
this.baseMapLayerLoaded();
}
});
return GoogleMapsMapService;
});