1

In my application i add layers dynamically. The first added layer is a baseLayer. When i add layer i extend bounds so the new layer could fit map (it works). The problems is that i don't know how to recalculate zoom levels. In my map config i have maxResolution set to auto and the zoomLevel is set to 0. When i add map with bigger extent the zooms are not recalculated, so i cannot see whole layer. I use GeoExt framework with OL. Code:

addLayer:function(record) {

        var layer = _factoryManager.getFactory('layer').getLayer(record, this.getServiceType());

        var map = this.getActiveMap().map;

        map.addLayer(layer);
        console.log('adding layer');
        //console.log(map.getZoomForExtent(map.maxExtent));
        //console.log(map.getZoom());
        map.maxExtent.extend(this.calculateBounds(layer));
        //console.log(map.getZoomForExtent(map.maxExtent));
        //console.log(map.getZoom());
        this.zoomToLayer(layer);
    },

And map creation:

map = Ext.create('OGC.core.panel.MapPanel',{
            map: {
                controls: controls,
                //allOverlays: true, if nothing specified all overlays is set to true
                scope:this,
                projection:this.getCRS(),
                maxExtent:bounds, 
                maxResolution:"auto",
                //allOverlays: false,
                eventListeners:{
                    zoomend:function(evt){
                        console.log(this);
                        console.log('zoomend');
                        console.log(this.getZoom())
                        console.log(this.getScale());
                        Ext.getCmp('map-bottom').update('Scale: ' + this.getScale());
                    }
                }
            },
            layers: [layer]
        });

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.