<br><font size=2 face="sans-serif">This code works if comment &nbsp;&quot;
layers.length == 1&quot;</font>
<br><font size=2 face="sans-serif">var addLayersToMap = function()</font>
<br><font size=2 face="sans-serif">{ &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=2 face="sans-serif">var ov_overlays;</font>
<br><font size=2 face="sans-serif">for( i in overlays )</font>
<br><font size=2 face="sans-serif">{ &nbsp; &nbsp; &nbsp; &nbsp;map.addLayer(
overlays[i] );</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; ov_overlays
= overlays[i].clone();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; ov_map.addLayer(
ov_overlays );</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; overlays[i].events.register('visibilitychanged',
overlays[i], function()</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var layers
= ov_map.getLayersByName(this.name); // this is the layer </font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(layers
/*&amp;&amp; layers.length == 1*/)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; layers[0].setVisibility(this.getVisibility())</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; });</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif">layers.length is always = 2</font>
<br><font size=2 face="sans-serif">Why ov_map.getLayersByName(this.name)
returns 2 layers?</font>
<br>
<br><font size=2 face="sans-serif">Alexandre, i don't understand want you
mean by</font>
<br><font size=2 face="sans-serif">&quot;</font><tt><font size=2>and attach
it to the original layer ( layer.clonedLayer = myCloneLayer )</font></tt><font size=2 face="sans-serif">&quot;</font>
<br><font size=2 face="sans-serif">Do you think that could help with the
length returned by ov_map.getLayersByName(this.name)</font>
<br>
<p><font size=3>thanks </font>
<p><font size=3>Steve</font>
<p>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Alexandre Dube &lt;adube@mapgears.com&gt;@openlayers.org</b>
</font>
<br><font size=1 face="sans-serif">Envoyé par : users-bounces@openlayers.org</font>
<p><font size=1 face="sans-serif">05/02/2010 09:43 AM</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">A</font></div>
<td><font size=1 face="sans-serif">Steve.Toutant@inspq.qc.ca</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">users@openlayers.org</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Objet</font></div>
<td><font size=1 face="sans-serif">Re: [OpenLayers-Users] Magnifier window</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br>
<br>
<br><tt><font size=2>Steve,<br>
<br>
 &nbsp;You could try (pseudo-code):<br>
<br>
 For each layer<br>
 &nbsp; Clone it, add it to ov-map and attach it to the original layer
( layer.clonedLayer = myCloneLayer )<br>
 &nbsp; Register a visibilitychange event to a onVisibilityChanged function<br>
<br>
 &nbsp;onVisibilityChanged: function(event)<br>
 &nbsp; &nbsp;this.clonedLayer.setVisibility(this.visibility())<br>
<br>
Regards,<br>
<br>
Alexandre<br>
<br>
<br>
Alexandre Dube wrote:<br>
&gt; Steve,<br>
&gt;<br>
&gt; &nbsp; Instead of relying on the layer's position in the layers array,
try to <br>
&gt; use the following the getLayersByName method (see in my first reply).
&nbsp;<br>
&gt; Tell me if that worked.<br>
&gt;<br>
&gt; Alexandre<br>
&gt;<br>
&gt;<br>
&gt; Steve.Toutant@inspq.qc.ca wrote:<br>
&gt; &nbsp; <br>
&gt;&gt; Almost done....Amasing how things are easy to do with OL.<br>
&gt;&gt;<br>
&gt;&gt; I have a wms layers array, &quot;overlays[]&quot;<br>
&gt;&gt; I use this code to create the layers array of the overview map
and to <br>
&gt;&gt; define the visibilitychanged event.<br>
&gt;&gt; var addLayersToMap = function()<br>
&gt;&gt; { &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; for( i in overlays )//overlays contains my wms layers<br>
&gt;&gt; {<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; map.addLayer( overlays[i] );<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; ov_overlays[i] = overlays[i].clone();<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; ov_map.addLayer( ov_overlays[i] );<br>
&gt;&gt;<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; //Ajoute un listener au niveau de
la carte principal pour <br>
&gt;&gt; gérer l'affichage sur la ov_map<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; overlays[i].events.on(<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'visibilitychanged':
function(event)<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; <br>
&gt;&gt; ov_overlays[i].setVisibility(overlays[i].getVisibility());<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; });<br>
&gt;&gt; }<br>
&gt;&gt; }<br>
&gt;&gt;<br>
&gt;&gt; in run time, only the visibility of the last layer of the array
gets <br>
&gt;&gt; updated in the other map.<br>
&gt;&gt; I also tried with map.addLayers after adding the overlays[i].
events <br>
&gt;&gt; on...with the same result<br>
&gt;&gt;<br>
&gt;&gt; Do you see something wrong<br>
&gt;&gt; thanks<br>
&gt;&gt; Steve<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; *Alexandre Dube &lt;adube@mapgears.com&gt;*<br>
&gt;&gt;<br>
&gt;&gt; 04/02/2010 03:36 PM<br>
&gt;&gt;<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;<br>
&gt;&gt; A<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;Steve.Toutant@inspq.qc.ca<br>
&gt;&gt; cc<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;users@openlayers.org<br>
&gt;&gt; Objet<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;Re: [OpenLayers-Users] Magnifier window<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Hi Steve,<br>
&gt;&gt;<br>
&gt;&gt; &nbsp;I think you could do something like that (pseudo-code) :<br>
&gt;&gt;<br>
&gt;&gt; &nbsp;Create your original map<br>
&gt;&gt; &nbsp;Create all your layers and add them to the map<br>
&gt;&gt;<br>
&gt;&gt; &nbsp;Create your ov-map<br>
&gt;&gt; &nbsp;Register a mapmove event to the map to make ov-map follow
it<br>
&gt;&gt; &nbsp;For each layer<br>
&gt;&gt; &nbsp; &nbsp;Clone it and add it to ov-map<br>
&gt;&gt; &nbsp; &nbsp;Register a visibilitychange event to a onVisibilityChanged
function<br>
&gt;&gt;<br>
&gt;&gt; &nbsp;onVisibilityChanged: function(event)<br>
&gt;&gt; &nbsp; &nbsp;var layers = ov-map.getLayersByName(this.name); //
this is the layer<br>
&gt;&gt; the visibility was changed<br>
&gt;&gt; &nbsp; &nbsp;if(layers &amp;&amp; layers.length == 1)<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;layers[0].setVisibility(this.visibility())<br>
&gt;&gt;<br>
&gt;&gt; Do you get the idea ?<br>
&gt;&gt;<br>
&gt;&gt; Best regards,<br>
&gt;&gt;<br>
&gt;&gt; Alexandre<br>
&gt;&gt;<br>
&gt;&gt; Steve.Toutant@inspq.qc.ca wrote:<br>
&gt;&gt; &nbsp; &nbsp; <br>
&gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt; I'm using openlayers with geoext.<br>
&gt;&gt;&gt; I would like to create a magnifier window. So it is like an
overview<br>
&gt;&gt;&gt; map with a fix map center and a fix zoom level, but the main
map and<br>
&gt;&gt;&gt; this overview map share the same geoext tree, so the layers
are<br>
&gt;&gt;&gt; shown/hidden on both maps.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I think I can do it if I start with the overview map example,
here<br>
&gt;&gt;&gt; http://www.openlayers.org/dev/examples/example-list.html<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Does someone have a better idea or already tried this?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; thanks in advance<br>
&gt;&gt;&gt; Steve<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ------------------------------------------------------------------------<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; Users mailing list<br>
&gt;&gt;&gt; Users@openlayers.org<br>
&gt;&gt;&gt; http://openlayers.org/mailman/listinfo/users<br>
&gt;&gt;&gt; &nbsp;<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt; -- <br>
&gt;&gt; Alexandre Dubé<br>
&gt;&gt; Mapgears<br>
&gt;&gt; www.mapgears.com<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; &nbsp; &nbsp; <br>
&gt;<br>
&gt;<br>
&gt; &nbsp; <br>
<br>
<br>
-- <br>
Alexandre Dubé<br>
Mapgears<br>
www.mapgears.com<br>
<br>
_______________________________________________<br>
Users mailing list<br>
Users@openlayers.org<br>
http://openlayers.org/mailman/listinfo/users<br>
</font></tt>
<br>
<br>
<br>