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