Hi, My work flow is 1. Click on one of the icon from customized Legends (Each lagend represents maps with no of layers) 2. Get and store existing Map's extent as oExtent1 = oMapControl.getExtent(); 3. Destroy existing Map. 4. Call javascript. Javascript creates map options with bounds, then map control and add layers and then zoom to given bound. 5. Zoom the Map to the extent recieved from step 2 i.e. from the previous map.
My problem is If my old map was on an area, I get it's extent and zoom the new map to that extent but then I observe that new map doesn't show same extent. it is more or less zoomed area. I want the extent to remain constant so that use gets the feel that he is just switching the map type for the same area. generic code is function loadNewMap() { oExtent1 = oMapControl.getExtent(); oMapControl.destroy(); CreateNewMap(); oMapControl.zoomToExtent(oExtent1); } function CreateNewMap() try { //predefined bound var mybounds = new OpenLayers.Bounds(-1693861.59, 6469059.01, -107949.94, 7643808.37); oMapOptions = { controls: [ new OpenLayers.Control.Navigation() , new OpenLayers.Control.LayerSwitcher() , new OpenLayers.Control.PanZoomBar() ] , maxResolution: 'auto' , units: 'm' , maxExtent: mybounds , projection: new OpenLayers.Projection("EPSG:4326") , displayProjection: new OpenLayers.Projection("EPSG:4326") }; //-----Create Map Control Object ------------ oMapControl = new OpenLayers.Map('MapPanel', oMapOptions); //----------WMS---------- var myscales = [14000000, 7000000, 3000000, 2000000, 867000, 433000, 217000, 108000, 54000, 27000, 14000, 6771, 3386, 1963, 846]; var oPreviewLayer = new OpenLayers.Layer.WMS('Counties (WMS)', 'http://MyServer/Request.aspx', { layers: ['Cities'], format: 'image/png', VERSION: "1.1.1", transparent: true }, { isBaseLayer: false , singleTile: true } ); if (oPreviewLayer != null) { oMapControl.addLayer(oPreviewLayer); } //----------Bing Aerial---------- var myscales = [14000000, 7000000, 3000000, 2000000, 867000, 433000, 217000, 108000, 54000, 27000, 14000, 6771, 3386, 1963, 846]; var oPreviewLayer = new OpenLayers.Layer.VirtualEarth("Bing Aerial", { type: VEMapStyle.Aerial, sphericalMercator: true, animationEnabled: false, numZoomLevels: 20 }); oPreviewLayer.setIsBaseLayer(true); if (oPreviewLayer != null) { oMapControl.addLayer(oPreviewLayer); oMapControl.setBaseLayer(oPreviewLayer); } oMapControl.zoomToExtent(mybounds); } catch (e) { alert(e.message); } finally { } } Can anyone tell me how to achieve synchronozed map switching? Thanks Vijay -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/Zoomtoextent-doesnt-synchronize-for-different-maps-tp5194923p5194923.html Sent from the OpenLayers Users mailing list archive at Nabble.com. _______________________________________________ Users mailing list Users@openlayers.org http://openlayers.org/mailman/listinfo/users