One idea would be to hide the `WMSLayer` entirely if the map's extent is outside the layers "valid" extent. Based on [this answer](http://gis.stackexchange.com/a/66631/26864), one could listen to the map's `extent-change` event and check if the map's current extent is acceptable: map.on("extent-change", function () { // Check if map.extent is acceptable, otherwise hide the WMSLayer. if ((map.extent.xmin < maxExtent.xmin) || (map.extent.ymin < maxExtent.ymin) || (map.extent.xmax > maxExtent.xmax) || (map.extent.ymax > maxExtent.ymax)) { // Hide the WMSLayer. } } This would not allow the `WMSLayer` to cover the map partially though. The same idea could be applied using a server proxy as well.