OpenLayers OpenLayers

Changeset 1309

Show
Ignore:
Timestamp:
08/19/06 01:37:07 (2 years ago)
Author:
euzuro
Message:

just like r1308, we update virtual earth to use min/max zoomlevel, and update the example

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/openlayers/2.0/examples/ve.html

    r1242 r1309  
    1919        var lon = 5; 
    2020        var lat = 40; 
    21         var zoom = 5; 
     21        var zoom = 15; 
    2222        var map, velayer, layer; 
    2323 
    2424        function init(){ 
    25             map = new OpenLayers.Map( $('map') ); 
     25            map = new OpenLayers.Map( $('map') ,  
     26            {controls:[new OpenLayers.Control.MouseDefaults()]}); 
    2627 
    27             velayer = new OpenLayers.Layer.VirtualEarth( "VE");  
     28            velayer = new OpenLayers.Layer.VirtualEarth( "VE", 
     29            { minZoomLevel: 4, maxZoomLevel: 6 });  
    2830            map.addLayer(velayer); 
    2931             
     
    3133            map.addLayer(markers); 
    3234 
    33             map.setCenter(new OpenLayers.LonLat(lon, lat), 2); 
     35            map.setCenter(new OpenLayers.LonLat(lon, lat), zoom); 
    3436            map.addControl( new OpenLayers.Control.LayerSwitcher() ); 
     37            map.addControl( new OpenLayers.Control.PanZoomBar() ); 
    3538        } 
    3639         
  • branches/openlayers/2.0/lib/OpenLayers/Layer/VirtualEarth.js

    r1302 r1309  
    1616     
    1717    /** @type int */ 
    18     numZoomLevels: 17, 
     18    minZoomLevel: 1, 
     19 
     20    /** @type int */ 
     21    maxZoomLevel: 17, 
    1922     
    2023    /** 
     
    2528    initialize:function(name) { 
    2629        OpenLayers.Layer.EventPane.prototype.initialize.apply(this, arguments); 
     30 
     31        this.numZoomLevels = this.maxZoomLevel - this.minZoomLevel + 1; 
    2732    }, 
    2833 
     
    204209    getZoomForExtent: function (bounds) { 
    205210 
    206         var maxRes = this.map.getMaxResolution(); 
    207         var viewSize = this.map.getSize(); 
    208  
    209         var width = bounds.getWidth(); 
    210         var height = bounds.getHeight(); 
    211  
    212         var degPerPixel = (width > height) ? width / viewSize.w  
    213                                            : height / viewSize.h; 
    214          
    215         var zoom = Math.floor( (Math.log(maxRes/degPerPixel)) / Math.log(2) ); 
    216  
    217         //make sure zoom is within bounds     
    218         zoom = Math.min( Math.max(zoom, 0),  
    219                          this.numZoomLevels-1); 
    220  
     211        var zoom = null; 
     212        if (this.vemap != null) { 
     213            var maxRes = this.map.getMaxResolution(); 
     214            var viewSize = this.map.getSize(); 
     215     
     216            var width = bounds.getWidth(); 
     217            var height = bounds.getHeight(); 
     218     
     219            var degPerPixel = (width > height) ? width / viewSize.w  
     220                                               : height / viewSize.h; 
     221             
     222            var veZoom = Math.floor( (Math.log(maxRes/degPerPixel)) /  
     223                                     Math.log(2) ); 
     224     
     225            //make sure zoom is within bounds     
     226            var veZoom = Math.min(Math.max(veZoom, this.minZoomLevel),  
     227                                  this.maxZoomLevel); 
     228     
     229            zoom = this.getOLZoomFromVEZoom(veZoom);          
     230        } 
    221231        return zoom; 
    222232    }, 
     
    246256        var zoom = null; 
    247257        if (veZoom != null) { 
    248             zoom = veZoom
     258            zoom = veZoom - this.minZoomLevel
    249259        } 
    250260        return zoom; 
     
    261271        var zoom = null;  
    262272        if (olZoom != null) { 
    263             zoom = olZoom
     273            zoom = olZoom + this.minZoomLevel
    264274        } 
    265275        return zoom;