[OpenLayers-Users] Opacity of GoogleLayer, get selected layer

Dirk Tanneberger dirk.tanneberger at unibas.ch
Fri Jan 15 06:05:04 EST 2010


Hi Eric,  thanks for the fast reply.

With the baseLayer-object it works. I tried to apply the method directly 
to the layer, maybe that was the problem.
But still I have the problem, when changing the baseLayer. In my case I 
got three baseLayers and no matter which one is selected it should have 
a opacity.
If I do it like this:

var map = new OpenLayers.Map(options);
   
    var google = new OpenLayers.Layer.Google(
            "Google",
            {'sphericalMercator': true}
    );
   
    var OSM = new OpenLayers.Layer.OSM("OSM");
   
    var google_t = new OpenLayers.Layer.Google(
                "Google_Terrain",
                {type: G_PHYSICAL_MAP, 'sphericalMercator': true}
    );
   
    map.addLayers([OSM, google, google_t]);
   
    map.baseLayer.setOpacity(0.5);

the opacity is applied just to the initial baseLayer. The other layers 
don't have a opacity after being selected.
I think, thats why I have to trigger the event, wether a layer is 
selected or not and set the opacity afterwards.
Maybe it is possible to do so in the treepanel-object of the 
mapFish-API. Couldn't find anything appropriate so far, but I have to 
dig more into it.
If you or somebody else got a hint, I would appreciate it very much.

Cheers
Dirk.




Eric Lemoine schrieb:
> On Wed, Jan 13, 2010 at 7:05 PM, Dirk Tanneberger
> <dirk.tanneberger at unibas.ch> wrote:
>   
>> Hi everybody,
>>     
>
> Hi
>
>   
>> I'm using Openlayers within MapFish. But I think the issue is specific
>> to Openlayers, so I post it here. Hope somebody got a clue.
>>
>> What I'm trying to do is: applying a opacity to a Google-Layer with the
>> "setOpacity"-method.
>>
>> Here is the code I'm using:
>>
>>    var options = {
>>            projection: new OpenLayers.Projection("EPSG:900913"),
>>            displayProjection: new OpenLayers.Projection("EPSG:4326"),
>>            units: "m",
>>            numZoomLevels: 18,
>>            maxResolution: 156543.0339,
>>            maxExtent: new OpenLayers.Bounds(810690, 6027000,
>>                                                883240, 6118400),
>>            controls: []
>>    };
>>
>>    var map = new OpenLayers.Map(options);
>>
>>    var google = new OpenLayers.Layer.Google(
>>            "Google",
>>            {'sphericalMercator': true}
>>    );
>>
>>    var OSM = new OpenLayers.Layer.OSM("OSM");
>>
>>    var google_t = new OpenLayers.Layer.Google(
>>                "Google_Terrain",
>>                {type: G_PHYSICAL_MAP, 'sphericalMercator': true}
>>    );
>>
>>    google.setOpacity(0.5);
>>
>>
>>    map.addLayers([google, OSM, google_t]);
>>
>>
>>
>>
>> It works fine for th OSM-layer (if specified), but either one of the
>> Google-layers won't take the opacity. They just show up in full bright.
>> Has anybody experienced similar?
>>     
>
> No. I just opened
> <http://openlayers.org/dev/examples/spherical-mercator.html> and
> entered map.baseLayer.setOpacity(0.2) in the FireBug console and the
> Google layer's opacity did change. Do you have a live example showing
> the problem?
>
>   
>> Another question is: How can I obtain the selected Layer from the map?
>>     
>
> map.baseLayer may be what you're looking for.
>
> Cheers,
>
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20100115/220b2724/attachment.html


More information about the Users mailing list