diff --git a/plugins/layer_types/openlayers_layer_type_xyz.js b/plugins/layer_types/openlayers_layer_type_xyz.js index e2f28f6..b431c7c 100644 --- a/plugins/layer_types/openlayers_layer_type_xyz.js +++ b/plugins/layer_types/openlayers_layer_type_xyz.js @@ -31,6 +31,26 @@ Drupal.openlayers.layer.xyz = function(title, map, options) { options.wrapDateLine = null; } + options.getURL = function (bounds) { + var xyz = this.getXYZ(bounds); + + // Fixed the -1 zoom level error in openlayers 2.11. + var res = this.map.getResolution(); + var resolutions = this.serverResolutions || this.resolutions; + var z = this.zoomOffset == 0 ? + (OpenLayers.Util.indexOf(resolutions, res) != -1 ? OpenLayers.Util.indexOf(resolutions, res) : this.map.getZoom() + this.zoomOffset) : + this.map.getZoom() + this.zoomOffset; + xyz.z = z; + + var url = this.url; + if (OpenLayers.Util.isArray(url)) { + var s = '' + xyz.x + xyz.y + xyz.z; + url = this.selectUrl(s, url); + } + + return OpenLayers.String.format(url, xyz); + } + var layer = new OpenLayers.Layer.XYZ(title, options.url, options); layer.styleMap = styleMap; return layer;