OpenLayers OpenLayers

Ticket #650: wms2.patch

File wms2.patch, 5.1 kB (added by euzuro, 1 year ago)

slight rearranging of the logic for this patch, since the two tests were checking for transparency, using that instead.

  • tests/Layer/test_WMS.html

    old new  
    1010    var url = "http://octo.metacarta.com/cgi-bin/mapserv"; 
    1111    var params = { map: '/mapdata/vmap_wms.map',  
    1212                   layers: 'basic',  
    13                    format: 'image/png'}; 
     13                   format: 'image/jpeg'}; 
    1414 
    1515    function test_01_Layer_WMS_constructor (t) { 
    16         t.plan( 10 ); 
     16        t.plan( 13 ); 
    1717 
     18        var trans_format = "image/png"; 
     19        if (OpenLayers.Util.alphaHack()) { trans_format = "image/gif"; }  
     20         
    1821        var url = "http://octo.metacarta.com/cgi-bin/mapserv"; 
    1922        layer = new OpenLayers.Layer.WMS(name, url, params); 
    2023        t.ok( layer instanceof OpenLayers.Layer.WMS, "new OpenLayers.Layer.WMS returns object" ); 
     
    3235        params.TRANSPARENT = "TRUE"; 
    3336        var layer3 = new OpenLayers.Layer.WMS(name, url, params); 
    3437        t.eq(layer3.isBaseLayer, false, "transparency == 'TRUE', wms is not baselayer"); 
     38        t.eq(layer3.params.FORMAT, trans_format, "transparent = TRUE causes image/gif format"); 
    3539 
    3640        params.TRANSPARENT = "TRuE"; 
    3741        var layer4 = new OpenLayers.Layer.WMS(name, url, params); 
    38         t.eq(layer4.isBaseLayer, true, "transparency == 'TRuE', wms is baselayer"); 
     42        t.eq(layer4.isBaseLayer, false, "transparency == 'TRuE', wms is not baselayer"); 
     43        t.eq(layer4.params.FORMAT, trans_format, "transparent = TRuE causes image/gif format"); 
    3944 
    4045        params.TRANSPARENT = true; 
    4146        var layer5 = new OpenLayers.Layer.WMS(name, url, params); 
    4247        t.eq(layer5.isBaseLayer, false, "transparency == true, wms is not baselayer"); 
     48        t.eq(layer5.params.FORMAT, trans_format, "transparent = true causes image/gif format"); 
    4349 
    4450        params.TRANSPARENT = false; 
    4551        var layer6 = new OpenLayers.Layer.WMS(name, url, params); 
  • lib/OpenLayers/Layer/WMS.js

    old new  
    2525     
    2626    reproject: true, 
    2727  
     28    /** @type Boolean */ 
     29    isBaseLayer: true, 
     30  
    2831    /** 
    2932    * @constructor 
    3033    * 
     
    4447                       OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS) 
    4548                       ); 
    4649 
    47         // unless explicitly set in options, if the layer is transparent,  
    48         // it will be an overlay 
    49         if (options == null || options.isBaseLayer == null) { 
    50             this.isBaseLayer = ((this.params.TRANSPARENT != "TRUE") &&  
    51                                 (this.params.TRANSPARENT != "true") &&  
    52                                 (this.params.TRANSPARENT != true)); 
     50 
     51        //layer is transparent         
     52        if (this.params.TRANSPARENT &&  
     53            this.params.TRANSPARENT.toString().toLowerCase() == "true") { 
     54             
     55            // unless explicitly set in options, make layer an overlay 
     56            if ( (options == null) || (!options.isBaseLayer) ) { 
     57                this.isBaseLayer = false; 
     58            }  
     59             
     60            // jpegs can never be transparent, so intelligently switch the  
     61            //  format, depending on teh browser's capabilities 
     62            if (this.params.FORMAT == "image/jpeg") { 
     63                this.params.FORMAT = OpenLayers.Util.alphaHack() ? "image/gif" 
     64                                                                 : "image/png"; 
     65            } 
    5366        } 
     67 
    5468    },     
    5569 
    5670    /** 
  • lib/OpenLayers/Layer/WMS/Untiled.js

    old new  
    5454                       OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS) 
    5555                       ); 
    5656 
    57         // unless explicitly set in options, if the layer is transparent,  
    58         // it will be an overlay         
    59         if ((options == null) || (options.isBaseLayer == null)) { 
    60             this.isBaseLayer = ((this.params.TRANSPARENT != "TRUE") &&  
    61                                 (this.params.TRANSPARENT != "true") &&  
    62                                 (this.params.TRANSPARENT != true)); 
     57        //layer is transparent         
     58        if (this.params.TRANSPARENT &&  
     59            this.params.TRANSPARENT.toString().toLowerCase() == "true") { 
     60             
     61            // unless explicitly set in options, make layer an overlay 
     62            if ( (options == null) || (!options.isBaseLayer) ) { 
     63                this.isBaseLayer = false; 
     64            }  
     65             
     66            // jpegs can never be transparent, so intelligently switch the  
     67            //  format, depending on teh browser's capabilities 
     68            if (this.params.FORMAT == "image/jpeg") { 
     69                this.params.FORMAT = OpenLayers.Util.alphaHack() ? "image/gif" 
     70                                                                 : "image/png"; 
     71            } 
    6372        } 
     73 
    6474    },     
    6575 
    6676    /**