[OpenLayers-Users] Magnifier window

Alexandre Dube adube at mapgears.com
Fri Feb 5 09:43:54 EST 2010


Steve,

  You could try (pseudo-code):

 For each layer
   Clone it, add it to ov-map and attach it to the original layer ( layer.clonedLayer = myCloneLayer )
   Register a visibilitychange event to a onVisibilityChanged function

  onVisibilityChanged: function(event)
    this.clonedLayer.setVisibility(this.visibility())

Regards,

Alexandre


Alexandre Dube wrote:
> Steve,
>
>   Instead of relying on the layer's position in the layers array, try to 
> use the following the getLayersByName method (see in my first reply).  
> Tell me if that worked.
>
> Alexandre
>
>
> Steve.Toutant at inspq.qc.ca wrote:
>   
>> Almost done....Amasing how things are easy to do with OL.
>>
>> I have a wms layers array, "overlays[]"
>> I use this code to create the layers array of the overview map and to 
>> define the visibilitychanged event.
>> var addLayersToMap = function()
>> {        
>> for( i in overlays )//overlays contains my wms layers
>> {
>>         map.addLayer( overlays[i] );
>>         ov_overlays[i] = overlays[i].clone();
>>         ov_map.addLayer( ov_overlays[i] );
>>
>>         //Ajoute un listener au niveau de la carte principal pour 
>> gérer l'affichage sur la ov_map
>>         overlays[i].events.on(
>>         {
>>                 'visibilitychanged': function(event)
>>                 {
>>                         
>> ov_overlays[i].setVisibility(overlays[i].getVisibility());
>>                 }
>>         });
>> }
>> }
>>
>> in run time, only the visibility of the last layer of the array gets 
>> updated in the other map.
>> I also tried with map.addLayers after adding the overlays[i]. events 
>> on...with the same result
>>
>> Do you see something wrong
>> thanks
>> Steve
>>
>>
>>
>>
>> *Alexandre Dube <adube at mapgears.com>*
>>
>> 04/02/2010 03:36 PM
>>
>> 	
>> A
>> 	Steve.Toutant at inspq.qc.ca
>> cc
>> 	users at openlayers.org
>> Objet
>> 	Re: [OpenLayers-Users] Magnifier window
>>
>>
>>
>> 	
>>
>>
>>
>>
>>
>>
>>
>> Hi Steve,
>>
>>  I think you could do something like that (pseudo-code) :
>>
>>  Create your original map
>>  Create all your layers and add them to the map
>>
>>  Create your ov-map
>>  Register a mapmove event to the map to make ov-map follow it
>>  For each layer
>>    Clone it and add it to ov-map
>>    Register a visibilitychange event to a onVisibilityChanged function
>>
>>  onVisibilityChanged: function(event)
>>    var layers = ov-map.getLayersByName(this.name); // this is the layer
>> the visibility was changed
>>    if(layers && layers.length == 1)
>>      layers[0].setVisibility(this.visibility())
>>
>> Do you get the idea ?
>>
>> Best regards,
>>
>> Alexandre
>>
>> Steve.Toutant at inspq.qc.ca wrote:
>>     
>>> Hi,
>>> I'm using openlayers with geoext.
>>> I would like to create a magnifier window. So it is like an overview
>>> map with a fix map center and a fix zoom level, but the main map and
>>> this overview map share the same geoext tree, so the layers are
>>> shown/hidden on both maps.
>>>
>>> I think I can do it if I start with the overview map example, here
>>> http://www.openlayers.org/dev/examples/example-list.html
>>>
>>> Does someone have a better idea or already tried this?
>>>
>>> thanks in advance
>>> Steve
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at openlayers.org
>>> http://openlayers.org/mailman/listinfo/users
>>>  
>>>       
>> -- 
>> Alexandre Dubé
>> Mapgears
>> www.mapgears.com
>>
>>
>>
>>
>>     
>
>
>   


-- 
Alexandre Dubé
Mapgears
www.mapgears.com




More information about the Users mailing list