Ticket #1302: gridOrigin.patch
| File gridOrigin.patch, 2.3 kB (added by pascalou, 8 months ago) |
|---|
-
lib/OpenLayers/Layer/Grid.js
old new 59 59 */ 60 60 numLoadingTiles: 0, 61 61 62 /** 63 * APIProperty: gridOrigin 64 * {LongLat} origin of the grid tiles for all resolution. Usefull for WMSC 65 * layers which requested tiles must be stricly aligned to the server grid 66 * If not specified : bottom left corner of the map.maxExtent 67 */ 68 gridOrigin: null, 69 62 70 /** 63 71 * Constructor: OpenLayers.Layer.Grid 64 72 * Create a new grid layer … … 316 324 var minCols = Math.ceil(viewSize.w/this.tileSize.w) + 317 325 Math.max(1, 2 * this.buffer); 318 326 319 var extent = this.map.getMaxExtent(); 327 this.gridOrigin = this.gridOrigin || new OpenLayers.LonLat( 328 this.map.getMaxExtent().left, this.map.getMaxExtent().bottom); 329 320 330 var resolution = this.map.getResolution(); 321 331 var tilelon = resolution * this.tileSize.w; 322 332 var tilelat = resolution * this.tileSize.h; 323 333 324 var offsetlon = bounds.left - extent.left;334 var offsetlon = bounds.left - this.gridOrigin.lon; 325 335 var tilecol = Math.floor(offsetlon/tilelon) - this.buffer; 326 336 var tilecolremain = offsetlon/tilelon - tilecol; 327 337 var tileoffsetx = -tilecolremain * this.tileSize.w; 328 var tileoffsetlon = extent.left+ tilecol * tilelon;338 var tileoffsetlon = this.gridOrigin.lon + tilecol * tilelon; 329 339 330 var offsetlat = bounds.top - ( extent.bottom+ tilelat);340 var offsetlat = bounds.top - (this.gridOrigin.lat + tilelat); 331 341 var tilerow = Math.ceil(offsetlat/tilelat) + this.buffer; 332 342 var tilerowremain = tilerow - offsetlat/tilelat; 333 343 var tileoffsety = -tilerowremain * this.tileSize.h; 334 var tileoffsetlat = extent.bottom+ tilerow * tilelat;344 var tileoffsetlat = this.gridOrigin.lat + tilerow * tilelat; 335 345 336 346 tileoffsetx = Math.round(tileoffsetx); // heaven help us 337 347 tileoffsety = Math.round(tileoffsety);
