define(["dojo/_base/declare", "dojo/on", "esri/dijit/BasemapLayer", "esri/dijit/Basemap", "esri/dijit/BasemapGallery", 'esri/layers/WebTiledLayer', 'esri/layers/TileInfo'], function (declare, on, BasemapLayer, Basemap, BasemapGallery, WebTiledLayer, TileInfo) {
|
var clazz, isBasemapGallery = -1;
|
clazz = declare("BasemapGallery", null, {
|
basemapGalleryId: "basemapGalleryContainer",
|
basemapCloseId: "basemapClose",
|
tiandituLayer: null,
|
constructor: function () {
|
dojo.connect(dojo.byId(this.basemapCloseId), "onclick", function (evt) {
|
document.getElementById("basemapGalleryContainer").style.display = "none"
|
});
|
|
},
|
show: function () {
|
var bgc = dojo.byId(this.basemapGalleryId);
|
if (dojo.style(bgc, "display") == "none") {
|
dojo.style(bgc, "display", "block")
|
} else {
|
dojo.style(bgc, "display", "none")
|
}
|
if (isBasemapGallery == -1) {
|
this.create();
|
isBasemapGallery = 1;
|
}
|
},
|
hide: function () {
|
dojo.style(dojo.byId(this.basemapGalleryId), "display", "none")
|
},
|
create: function () {
|
var basemaps = [];
|
for (var i = 0; i < config_basemap_array.length; i++) {
|
var basemapLayer;
|
var basemap;
|
if (config_basemap_array[i].title.indexOf("天地图") >= 0) {
|
this.tiandituLayer = WebTiledLayer(config_basemap_array[i].layerURL + '&SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&FORMAT=tiles',
|
{
|
});
|
basemap = new Basemap({
|
layers: [this.tiandituLayer],
|
title: config_basemap_array[i].title,
|
thumbnailUrl: config_basemap_array[i].thumbnailUrl
|
});
|
}
|
//else if (config_basemap_array[i].layerId.indexOf("sg-") > -1) {
|
// var layerInfo = new esri.layers.WMSLayerInfo({
|
// name: "sgwms",
|
// title: "sgwms",
|
// spatialReferences: [4326]
|
// });
|
// var extent = new esri.geometry.Extent(-180, -90, 180, 90, new esri.SpatialReference({ wkid: 4326 }));
|
// resourceInfo = {
|
// copyright: "sgWms",
|
// description: "sgWms",
|
// extent: extent,
|
// layerInfos: [layerInfo],
|
// version: '1.1.1',
|
// customLayerParameters: {
|
// SRS: "EPSG:4326",
|
// WIDTH: 256,
|
// HEIGHT: 256
|
// }
|
// };
|
// var wmsUrl = config_basemap_array[i].layerURL;
|
// var wmslayer = new esri.layers.WMSLayer(wmsUrl, {
|
// resourceInfo: resourceInfo,
|
// visibleLayers: [config_basemap_array[i].layer],
|
// spatialReferences: [4326]
|
// });
|
// basemap = new Basemap({
|
// layers: [wmslayer],
|
// title: config_basemap_array[i].title,
|
// thumbnailUrl: config_basemap_array[i].thumbnailUrl
|
// });
|
//}
|
else {
|
basemapLayer = new BasemapLayer({
|
url: config_basemap_array[i].layerURL
|
});
|
basemap = new Basemap({
|
layers: [basemapLayer],
|
title: config_basemap_array[i].title,
|
thumbnailUrl: config_basemap_array[i].thumbnailUrl
|
});
|
}
|
|
basemaps.push(basemap)
|
}
|
var basemapGallery = new BasemapGallery({
|
showArcGISBasemaps: false,
|
basemaps: basemaps,
|
map: map
|
}, "basemapGalleryDiv");
|
basemapGallery.startup();
|
var that = this;
|
basemapGallery.on("selection-change", function () {
|
var layerInfo = basemapGallery.getSelected();
|
if (layerInfo.title.indexOf("天地图") >= 0) {
|
map.addLayer(that.tiandituLayer, 1);
|
//map.addLayer(layerInfo.layers[0], 1);
|
} else {
|
map.removeLayer(that.tiandituLayer);
|
//map.removeLayer(layerInfo.layers[0]);
|
}
|
|
//if (layerInfo.layers[0].url.toLowerCase().indexOf("sg/") >= 0) {
|
// map.addLayer(layerInfo.layers[0], 1);
|
//} else {
|
// try {
|
// map.removeLayer(layerInfo.layers[0]);
|
// }
|
// catch (ex) { }
|
//}
|
|
|
});
|
//dojo.connect(basemapGallery, "selection-change", function (evt) {
|
// console.log(evt);
|
//});
|
}
|
});
|
clazz.getInstance = function () {
|
if (instance === null) {
|
instance = new clazz()
|
}
|
return instance
|
};
|
return clazz
|
}); //}
|