@@ -105,6 +105,7 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {
105
105
initializeZoomify : function ( size ) {
106
106
107
107
var imageSize = size . clone ( ) ;
108
+ this . size = size . clone ( ) ;
108
109
var tiles = new OpenLayers . Size (
109
110
Math . ceil ( imageSize . w / this . standardTileSize ) ,
110
111
Math . ceil ( imageSize . h / this . standardTileSize )
@@ -132,14 +133,18 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {
132
133
this . tierImageSize . reverse ( ) ;
133
134
134
135
this . numberOfTiers = this . tierSizeInTiles . length ;
135
-
136
+ var resolutions = [ 1 ] ;
136
137
this . tileCountUpToTier = [ 0 ] ;
137
138
for ( var i = 1 ; i < this . numberOfTiers ; i ++ ) {
139
+ resolutions . unshift ( Math . pow ( 2 , i ) ) ;
138
140
this . tileCountUpToTier . push (
139
141
this . tierSizeInTiles [ i - 1 ] . w * this . tierSizeInTiles [ i - 1 ] . h +
140
142
this . tileCountUpToTier [ i - 1 ]
141
143
) ;
142
144
}
145
+ if ( ! this . serverResolutions ) {
146
+ this . serverResolutions = resolutions ;
147
+ }
143
148
} ,
144
149
145
150
/**
@@ -195,10 +200,10 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {
195
200
*/
196
201
getURL : function ( bounds ) {
197
202
bounds = this . adjustBounds ( bounds ) ;
198
- var res = this . map . getResolution ( ) ;
203
+ var res = this . getServerResolution ( ) ;
199
204
var x = Math . round ( ( bounds . left - this . tileOrigin . lon ) / ( res * this . tileSize . w ) ) ;
200
205
var y = Math . round ( ( this . tileOrigin . lat - bounds . top ) / ( res * this . tileSize . h ) ) ;
201
- var z = this . map . getZoom ( ) ;
206
+ var z = this . getZoomForResolution ( res ) ;
202
207
203
208
var tileIndex = x + y * this . tierSizeInTiles [ z ] . w + this . tileCountUpToTier [ z ] ;
204
209
var path = "TileGroup" + Math . floor ( ( tileIndex ) / 256 ) +
@@ -219,10 +224,10 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {
219
224
getImageSize : function ( ) {
220
225
if ( arguments . length > 0 ) {
221
226
var bounds = this . adjustBounds ( arguments [ 0 ] ) ;
222
- var res = this . map . getResolution ( ) ;
227
+ var res = this . getServerResolution ( ) ;
223
228
var x = Math . round ( ( bounds . left - this . tileOrigin . lon ) / ( res * this . tileSize . w ) ) ;
224
229
var y = Math . round ( ( this . tileOrigin . lat - bounds . top ) / ( res * this . tileSize . h ) ) ;
225
- var z = this . map . getZoom ( ) ;
230
+ var z = this . getZoomForResolution ( res ) ;
226
231
var w = this . standardTileSize ;
227
232
var h = this . standardTileSize ;
228
233
if ( x == this . tierSizeInTiles [ z ] . w - 1 ) {
0 commit comments