Estoy tratando de hacer un zoom a la medida de los datos de varias capas vectoriales.
He intentado crear un nuevo OpenLayers.Bounds y añadir un 'loadend' para cada OpenLayers.Layer.Vector para aumentar los límites, pero entonces no sé dónde poner map.zoomToExtent(bounds)... ¿hay alguna forma de ejecutar esto después de que se hayan cargado todas las capas?
He intentado https://gis.stackexchange.com/a/6297 pero no funcionó, ya que las capas vectoriales no fueron creadas todavía...
También he probado https://gis.stackexchange.com/a/41588/16356 Pero tampoco ha funcionado, ya que tengo varias capas.
EDITAR: Así es como he solucionado el problema, gracias a Vadim.
bounds = new OpenLayers.Bounds();
map = new OpenLayers.Map('map');
LOADED_LAYERS = 0;
layers[1] = new OpenLayers.Layer.Vector("layer1", {
eventListeners: {
'loadend': function (evt) {
LOADED_LAYERS++;
bounds.extend(layers[1].getDataExtent());
if (LOADED_LAYERS == 3) {
map.zoomToExtent(bounds);
};
}
}
});
layers[2] = ...;
layers[3] = ...;
map.addLayers(layers);
map.zoomIn();