OpenLayers OpenLayers

Changeset 3555

Show
Ignore:
Timestamp:
07/02/07 18:51:50 (1 year ago)
Author:
euzuro
Message:

fix for #785 - fix up gutter logic a little bit. on a path to getting all gutter info in one place

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/openlayers/lib/OpenLayers/Layer.js

    r3545 r3555  
    382382        } 
    383383    }, 
     384     
     385    /**   
     386     * @returns The size that the image should be, taking into account gutters  
     387     * @tile OpenLayers.Size  
     388     */  
     389    getImageSize: function() {  
     390        return (this.imageSize || this.tileSize);  
     391    },     
    384392   
    385393    /** 
     
    406414            this.imageSize = new OpenLayers.Size(tileSize.w + (2 * this.gutter),  
    407415                                                 tileSize.h + (2 * this.gutter));  
    408         } else { 
    409             // layers without gutters may have null tile size - as long 
    410             // as they don't rely on Tile.Image 
    411             this.imageSize = tileSize; 
    412             this.imageOffset = new OpenLayers.Pixel(0, 0); 
    413416        } 
    414417    }, 
  • trunk/openlayers/lib/OpenLayers/Layer/Image.js

    r3545 r3555  
    173173 
    174174    /** 
    175      * Set the tile size based on the map size.  This also sets layer.imageSize 
    176      * and layer.imageOffset for use by Tile.Image. 
     175     * Set the tile size based on the map size. 
    177176     */ 
    178177    setTileSize: function() { 
     
    180179        var tileHeight = this.extent.getHeight() / this.map.getResolution(); 
    181180        this.tileSize = new OpenLayers.Size(tileWidth, tileHeight); 
    182         this.imageSize = this.tileSize; 
    183         this.imageOffset = new OpenLayers.Pixel(0, 0); 
    184181    }, 
    185182 
  • trunk/openlayers/lib/OpenLayers/Layer/MapServer.js

    r3545 r3555  
    120120        // Make a list, so that getFullRequestString uses literal ","  
    121121        var extent = [bounds.left, bounds. bottom, bounds.right, bounds.top]; 
     122 
     123        var imageSize = this.getImageSize();  
    122124         
    123125        // make lists, so that literal ','s are used  
     
    125127                     {mapext:   extent, 
    126128                      imgext:   extent, 
    127                       map_size: [this.imageSize.w, this.imageSize.h], 
    128                       imgx:     this.imageSize.w / 2, 
    129                       imgy:     this.imageSize.h / 2, 
    130                       imgxy:    [this.imageSize.w, this.imageSize.h] 
     129                      map_size: [imageSize.w, imageSize.h], 
     130                      imgx:     imageSize.w / 2, 
     131                      imgy:     imageSize.h / 2, 
     132                      imgxy:    [imageSize.w, imageSize.h] 
    131133                      }); 
    132134         
  • trunk/openlayers/lib/OpenLayers/Layer/MapServer/Untiled.js

    r3545 r3555  
    126126    /** 
    127127     * Method: setTileSize 
    128      * Set the tile size based on the map size.  This also sets layer.imageSize 
    129      * and layer.imageOffset for use by Tile.Image. 
     128     * Set the tile size based on the map size. 
    130129     */ 
    131130    setTileSize: function() { 
     
    134133        tileSize.h = tileSize.h * this.ratio; 
    135134        this.tileSize = tileSize; 
    136         this.imageSize = tileSize; 
    137         this.imageOffset = new OpenLayers.Pixel(0, 0); 
    138135    }, 
    139136 
  • trunk/openlayers/lib/OpenLayers/Layer/WMS.js

    r3554 r3555  
    143143    getURL: function (bounds) { 
    144144        bounds = this.adjustBounds(bounds); 
     145         
     146        var imageSize = this.getImageSize();  
    145147        return this.getFullRequestString( 
    146148                     {BBOX:bounds.toBBOX(), 
    147                       WIDTH:this.imageSize.w, 
    148                       HEIGHT:this.imageSize.h}); 
     149                      WIDTH:imageSize.w, 
     150                      HEIGHT:imageSize.h}); 
    149151    }, 
    150152 
  • trunk/openlayers/lib/OpenLayers/Layer/WMS/Untiled.js

    r3554 r3555  
    148148    /** 
    149149     * Method: setTileSize 
    150      * Set the tile size based on the map size.  This also sets layer.imageSize 
    151      * and layer.imageOffset for use by Tile.Image. 
     150     * Set the tile size based on the map size.  
    152151     */ 
    153152    setTileSize: function() { 
     
    156155        tileSize.h = tileSize.h * this.ratio; 
    157156        this.tileSize = tileSize; 
    158         this.imageSize = tileSize; 
    159         this.imageOffset = new OpenLayers.Pixel(0, 0); 
    160157    }, 
    161158 
  • trunk/openlayers/lib/OpenLayers/Tile/Image.js

    r3545 r3555  
    108108                                         null, this.position, this.size);    
    109109 
     110        var imageSize = this.layer.getImageSize();  
    110111        if (this.layer.alpha) { 
    111112            OpenLayers.Util.modifyAlphaImageDiv(this.imgDiv, 
    112                     null, null, this.layer.imageSize, this.url); 
     113                    null, null, imageSize, this.url); 
    113114        } else { 
    114115            this.imgDiv.src = this.url; 
    115116            OpenLayers.Util.modifyDOMElement(this.imgDiv, 
    116                     null, null, this.layer.imageSize) ; 
     117                    null, null, imageSize) ; 
    117118        } 
    118119        this.drawn = true; 
     
    154155     */ 
    155156    initImgDiv: function() { 
     157         
     158        var offset = this.layer.imageOffset;  
     159        var size = this.layer.getImageSize();  
     160     
    156161        if (this.layer.alpha) { 
    157162            this.imgDiv = OpenLayers.Util.createAlphaImageDiv(null, 
    158                                                            this.layer.imageOffset, 
    159                                                            this.layer.imageSize, 
     163                                                           offset, 
     164                                                           size, 
    160165                                                           null, 
    161166                                                           "relative", 
     
    166171        } else { 
    167172            this.imgDiv = OpenLayers.Util.createImage(null, 
    168                                                       this.layer.imageOffset, 
    169                                                       this.layer.imageSize, 
     173                                                      offset, 
     174                                                      size, 
    170175                                                      null, 
    171176                                                      "relative", 
  • trunk/openlayers/tests/Layer/test_Image.html

    r3299 r3555  
    4040 
    4141    function test_50_Layer_Image_tileTests (t) { 
    42         t.plan(9); 
     42        t.plan(6); 
    4343        var map = new OpenLayers.Map('map'); 
    4444         
     
    5050        map.addLayer(layer); 
    5151        map.zoomToMaxExtent(); 
    52         t.ok(layer.imageSize, "layer.imageSize is set"); 
    53         t.ok(layer.tileSize, "layer.tileSize is set"); 
    54         t.ok(layer.tileSize.equals(layer.imageSize), "tileSize equals imageSize"); 
    5552 
    5653        // no resolution info was sent, so maxResolution should be calculated 
  • trunk/openlayers/tests/Tile/test_Image.html

    r3172 r3555  
    189189         
    190190        var tile = layer.grid[0][0]; 
    191         t.ok(tile.layer.imageSize.equals(tile.size)
    192              "zero size gutter doesn't change image size");  
    193  
    194         t.ok(tile.layer.imageOffset.equals(new OpenLayers.Pixel(0, 0))
    195              "zero size gutter doesn't affect image offset"); 
     191        t.ok(tile.layer.imageSize == null
     192             "zero size gutter doesn't set image size");  
     193 
     194        t.ok(tile.layer.imageOffset == null
     195             "zero size gutter doesn't set image offset"); 
    196196         
    197197        var zero_gutter_bounds = tile.bounds;