var map, srs, extent; require(["esri/map", "esri/geometry/Extent", "esri/geometry/Point", "esri/SpatialReference", "dojo/domReady!"], function (Map, Extent, Point, SpatialReference) { dojo.declare("WMSLayer", esri.layers.TiledMapServiceLayer, { //construct the layer constructor: function () { // res = 2 * math.pi * 6378137) / (256 * 2**zoom) //scale = (res * dpi) / 0.0254 //layer provides tile info this.tileInfo = new esri.layers.TileInfo({ "rows": 256, "cols" : 256, "dpi" : 96, "format": "PNG8", "compressionQuality" : 0, "origin" : { "x" : -20037508.342787, "y": 20037508.342787 }, "spatialReference" : { "wkid": 900913 }, "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.59716428337097172, "scale": 2256.9943526 }, { "level": 19, "resolution": 0.2985821416854858, "scale": 1128.497176344 }, { "level": 20, "resolution": 0.1492910708694458, "scale": 564.248588172 }, { "level": 21, "resolution": 0.0746455354347229, "scale": 282.124294086 } ] }); //layer provides initial extent & full extent. this.fullExtent = new esri.geometry.Extent(-20037508.34,-20037508.34, 20037508.34, 20037508.34, new esri.SpatialReference({ "wkid": 900913 })); //set layer loaded property and fire onLoad event this.loaded = true; this.onLoad(this); }, getTileUrl: function (level, row, col) { var mercBounds = mercator.tileBounds(row, col, level); url = "http://services.cuzk.cz/wms/wms.asp?&LAYERS=KN&REQUEST=GetMap&SERVICE=WMS&VERSION=1.3.0&FORMAT=image/png&TRANSPARENT=TRUE&STYLES=&CRS=EPSG:900913&WIDTH=256&HEIGHT=256&BBOX="+ Math.abs(mercBounds[1]) + "," + Math.abs(mercBounds[2]) + "," + Math.abs(mercBounds[3]) + "," + Math.abs(mercBounds[0]); return url; } }); map = new Map("map", { center: [15.376, 49.789], zoom: 17, basemap: 'topo' }); layer1 = new WMSLayer(); map.addLayer(layer1); });