I apply a filter to one layer and works nice. I want to maximize the bounds where I applied the filter, like this:
// mapbounds = array(minx,miny,maxx,maxy)
activeLayer = new OpenLayers.Layer.WMS(
layername, layerurl,
{
width: map.size.w,
srs: map.projection,
layers: layername,
height: map.size.h,
styles: '',
format: 'image/png',
transparent: false
}
);
// for example: conditions = 'igh > 5000 AND BBOX('the_geom,1,2,3,4)'
activeLayer.mergeNewParams({
'cql_filter': conditions
});
bounds = new OpenLayers.Bounds(mapbounds[0],mapbounds[1],mapbounds[2],mapbounds[3]);
map.zoomToExtent(bounds);
The filter works fine, but the zoom is restored too quickly after apply it. It's applied, but the layer restore to the initial view instantly.
What am I doing wrong?
Best Answer
you can use tileloaded or loadend event for firing
zoomToExtent
method.OR
you can use setTimeout function to make it wait for 5 minute...
i hope it helps you...