Javascript – OpenLayers display all markers on screen

javascriptopenlayersopenstreetmap

How do I get all the markers on the map so the users can see all of them?

I have got some amount of markers. I am displaying them on the map.
The center LonLat I get from taking the average of the highest and the lowest numbers of the lon and lat of all my markers.

So I set my map to the center point of all my markers using:

map.setCenter(centerLonLat, 8);

8 is just a random zooming level. Is there any way to calculate the perfect zooming level so all the markers are displayed in the map?

Best Solution

A similar way to do it, avoiding a loop, is given by OpenLayers getDataExtent() function here. You need to apply it on the layer containing your markers :

var newBound = map.myLayer.getDataExtent();
map.zoomToExtent(newBound);