Mike, You're welcome. By the way, did you know that there are some examples available on the openlayers web site ?
http://openlayers.org/dev/examples/example-list.html You can check the code of each example ( view frame source ) to see how they work. That's how I began. Also, you can ask the mailing list to share some code snippet if you don't want to reinvent the wheel. :) Good luck with your learning. Best regards, Alexandre Mike Leahy wrote: > Alexandre, > > Thanks for the tip - I think I might have tried setting isBaseLayer, but > placed the parameter in the wrong argument. Newbie mistake I guess. > > Regards, > Mike > > > Alexandre Dube wrote: > >> Hi Mike, >> >> Both your layers are base layers. Only one base layer can be displayed >> at a time. It is wrong to set the visibility to true to an other base >> layer. >> >> Just add isBaseLayer: false to your second layer and it will become an >> overlay. Or add the layerSwitcher control to switch the base layer. >> >> Here's your modified code. I use the "get some info" button to help me >> keep track of some important infos about my layers. Hope this helps. >> >> Alexandre Dube >> Mapgears >> [EMAIL PROTECTED] >> >> ------------------------------------------------------------------ >> >> <html> >> <head> >> <title>OpenLayers Example</title> >> <script src="http://www.openlayers.org/api/OpenLayers.js"></script> >> <script type="text/javascript"> >> >> var map; >> >> function init(){ >> var options = { >> controls: [], >> maxExtent: new OpenLayers.Bounds(-180,-90,180,90), >> scales: >> [100000000,50000000,25000000,10000000,5000000,2500000,1000000], >> numZoomLevels: 8, >> tileSize: new OpenLayers.Size(200,200), >> projection: "EPSG:4326", >> units: "dd" >> }; >> >> map = new OpenLayers.Map('map',options); >> >> var ly1 = new OpenLayers.Layer.KaMap( >> "World Map", >> "http://clima.ominiverdi.org/ka-map/htdocs/tile.php", >> { >> i:"JPEG", >> map:"cvs", >> g:"World Map", >> version:"6" >> } >> ); >> >> var ly2 = new OpenLayers.Layer.KaMap( >> "Places", >> "http://clima.ominiverdi.org/ka-map/htdocs/tile.php", >> { >> i:"PNG", >> map:"cvs", >> g:"Places", >> version:"6" >> }, >> { >> isBaseLayer: false >> } >> ); >> >> map.addLayers([ly1,ly2]); >> map.zoomToExtent(new OpenLayers.Bounds(-180,-90,180,90)); >> >> map.addControl(new OpenLayers.Control.Navigation()); >> map.addControl(new OpenLayers.Control.LayerSwitcher()); >> map.addControl(new OpenLayers.Control.PanZoomBar()); >> map.addControl(new OpenLayers.Control.MousePosition()); >> >> //ly2.setVisibility(true); >> } >> // Bouton get some info >> function disp_alert() >> { >> var i; >> var sToAlert = ""; >> >> if (map.layers){ >> for (i=0;i<map.layers.length;i++) { >> sToAlert += i + " : "; >> if (map.layers[i].params != null) { >> sToAlert += map.layers[i].params.layers + "\n"; >> } >> else if (map.layers[i].isVector) { >> sToAlert += "Layer de type Vector" + "\n"; >> } >> sToAlert += " isBaseLayer : " + map.layers[i].isBaseLayer; >> sToAlert += " inRange : " + map.layers[i].inRange; >> sToAlert += " Visibility : " + map.layers[i].getVisibility(); >> sToAlert += " Projection : " + map.layers[i].projection; >> sToAlert += "\n"; >> } >> } >> >> alert( >> "Left : " + map.getExtent().left + "\n" + >> "Bottom : " + map.getExtent().bottom + "\n" + >> "Right : " + map.getExtent().right + "\n" + >> "Top : " + map.getExtent().top + "\n" + >> "Scale : " + map.getScale() + "\n" + >> "Projection : " + map.getProjection() + "\n" + >> "Nb de layers direct : " + map.layers.length + "\n" + >> "Map center : " + map.getCenter() + "\n" + >> "\n" + sToAlert >> ); >> } >> >> >> </script> >> </head> >> >> <body onload="init()"> >> <div style="width:50%; height:50%" id="map"></div> >> <input type="button" id="disp_alert" onclick="disp_alert()" >> value="get some info" /> >> </body> >> </html> >> >> Mike Leahy wrote: >> >>> Ok - here's a better demonstration of this problem. Copy this into an >>> html file...open it in a browser, then zoom in. You'll see what I'm >>> talking about. This is using the World Map and Places layers from one >>> of the ka-map demos hosted by omniverdi.org. Is it something I'm >>> doing wrong with the OL code, or maybe a bug in OL's kamap layer object? >>> >>> Regards, >>> Mike >>> >>> ======================================================================= >>> >>> <html> >>> <head> >>> <title>OpenLayers Example</title> >>> <script >>> src="http://www.openlayers.org/api/OpenLayers.js"></script> >>> </head> >>> <body> >>> <div style="width:100%; height:100%" id="map"></div> >>> <script defer="defer" type="text/javascript"> >>> var options = { >>> maxExtent: new OpenLayers.Bounds(-180,-90,180,90), >>> scales: >>> [100000000,50000000,25000000,10000000,5000000,2500000,1000000], >>> numZoomLevels: 8, >>> tileSize: new OpenLayers.Size(200,200), >>> projection: "EPSG:4326", >>> units: "dd" >>> }; >>> var map = new OpenLayers.Map('map',options); >>> >>> var ly1 = new OpenLayers.Layer.KaMap("World Map", >>> "http://clima.ominiverdi.org/ka-map/htdocs/tile.php", >>> {i:"JPEG",map:"cvs",g:"World Map",version:"6"} >>> ); >>> var ly2 = new OpenLayers.Layer.KaMap("Places", >>> "http://clima.ominiverdi.org/ka-map/htdocs/tile.php", >>> {i:"PNG",map:"cvs",g:"Places",version:"6"} >>> ); >>> >>> map.addLayers([ly1,ly2]); >>> map.zoomToExtent(new OpenLayers.Bounds(-180,-90,180,90)); >>> ly2.setVisibility(true); >>> </script> >>> </body> >>> </html> >>> >>> >>> >>> >>> Mike Leahy wrote: >>> >>> >>>> Hello list, >>>> >>>> I've been working on an application that uses Ka-Map, but >>>> I think I might consider adopting OpenLayers for the >>>> client-side part. I have been able to setup a map that >>>> loads two layers (see sample HTML below). When the map >>>> initially starts, I call roads.setVisibility(true);, and I >>>> see the roads layer overlaid on top of the aerial >>>> photography layer. It looks fine at that point...panning >>>> works fine. Once I zoom in or out, however, the base >>>> layer (the photography) does what is expected, but the >>>> roads layer just defaults to its original extent, and >>>> remains at the initial zoom level. Is there something I >>>> need to do to tie the roads layer to the zoom event? >>>> >>>> If this is a known issue, or if I'm just missing >>>> something, maybe someone can point me in the right >>>> direction. I'm using OpenLayers 2.6 (should I try >>>> SVN?). The tile.php script is something that I have >>>> integrated into my application on the server - it's >>>> generally based on the one from kamap (checked out of svn >>>> about a month ago), but I don't think it's the source of >>>> this issue (i.e., if I make the roads layer the base >>>> layer on its own, it works fine). >>>> >>>> Thanks in advance for any help, >>>> Mike >>>> >>>> ====================================================================== >>>> >>>> <html> >>>> <head> >>>> <title>OpenLayers Example</title> >>>> <script >>>> >>>> src="https://localhost/application/js/lib/OpenLayers.js"></script> >>>> </head> >>>> <body> >>>> <div style="width:100%; height:100%" >>>> id="map"></div> >>>> <script defer="defer" type="text/javascript"> >>>> var options = { >>>> maxExtent: new >>>> OpenLayers.Bounds(1327479,4883397,1415461,5034462), >>>> scales: >>>> [200000,150000,100000,75000,50000,25000,10000,5000], >>>> numZoomLevels: 8, >>>> tileSize: new OpenLayers.Size(400,300), >>>> projection: "EPSG:4326", >>>> units: "m" >>>> }; >>>> var map = new >>>> OpenLayers.Map('map',options); >>>> var aerials = new >>>> OpenLayers.Layer.KaMap("mymap", >>>> "https://localhost/application/tile.php", >>>> {layers:"0",i:"AGG_JPEG",map:"mymap",g:"Aerial >>>> Photography",sid:"somesessionid"} >>>> ); >>>> var roads = new >>>> OpenLayers.Layer.KaMap("mymap", >>>> "https://localhost/application/tile.php", >>>> >>>> {layers:"160",i:"alpha",map:"mymap",g:"Roads",sid:"somesessionid"}, >>>> {numZoomLevels:8,scales: >>>> [200000,150000,100000,75000,50000,25000,10000,5000]} >>>> ); >>>> map.addLayers([aerials,roads]); >>>> map.zoomToExtent(new >>>> OpenLayers.Bounds(1373558,4988812,1404038,5011460)); >>>> roads.setVisibility(true); >>>> </script> >>>> </body> >>>> </html> >>>> >>>> >>>> >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://openlayers.org/mailman/listinfo/users >>> >>> >> > _______________________________________________ > Users mailing list > [email protected] > http://openlayers.org/mailman/listinfo/users > -- Alexandre Dubé Mapgears www.mapgears.com _______________________________________________ Users mailing list [email protected] http://openlayers.org/mailman/listinfo/users
