Search code examples
google-mapsopenlayers

Openlayers zoomtoextent zooming to another location


I am trying to zoom into a bounding box on a map with a projection of EPSG:3857. The map should zoom into somewhere here:

https://www.google.co.il/maps/place/Netanya/@32.3047285,34.860532,12z/data=!3m1!4b1!4m2!3m1!1s0x151d400493c075d5:0x2cd995be543c3f22 , however with the following code into somewhere in the ocean near Africa. Could you please let me know what is wrong?

bounds = new OpenLayers.Bounds();
bounds.extend(new OpenLayers.LonLat(34.8660822,32.3172887));
bounds.extend(new OpenLayers.LonLat(34.8570271,32.2953077));
bounds.toBBOX(); 
map.openlayers.zoomToExtent(bounds);
map.openlayers.updateSize();


Solution

  • You have to transform your bounds from EPSG:4326 (WGS84) to EPSG:900913 (EPSG:3857)

    bounds = new OpenLayers.Bounds();
    bounds.extend(new OpenLayers.LonLat(34.8660822,32.3172887));
    bounds.extend(new OpenLayers.LonLat(34.8570271,32.2953077));
    bounds.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
    map.openlayers.zoomToExtent(bounds, true);