OpenLayers OpenLayers

Ticket #1288: fractional_panzoombar.patch

File fractional_panzoombar.patch, 2.0 kB (added by crschmidt, 1 year ago)
  • lib/OpenLayers/Control/PanZoomBar.js

    old new  
    314314                scope: this 
    315315            }); 
    316316            var deltaY = this.zoomStart.y - evt.xy.y; 
    317             this.map.zoomTo(this.map.zoom + Math.round(deltaY/this.zoomStopHeight)); 
     317            if (this.map.fractionalZoom) { 
     318                var zoomLevel = this.map.zoom + (deltaY/this.zoomStopHeight); 
     319                zoomLevel = Math.min(Math.max(zoomLevel, 0),  
     320                                     this.map.getNumZoomLevels()); 
     321                var scale = OpenLayers.Util.getScaleFromResolution( 
     322                    this.map.getResolutionForZoom(zoomLevel), this.map.units ); 
     323                this.map.zoomToScale(scale); 
     324            } else { 
     325                this.map.zoomTo(this.map.zoom + Math.round(deltaY/this.zoomStopHeight)); 
     326            } 
    318327            this.moveZoomBar(); 
    319328            this.mouseDragStart = null; 
    320329            OpenLayers.Event.stop(evt); 
  • examples/fractional-zoom.html

    old new  
    1313        var map; 
    1414 
    1515        function init() { 
    16             map = new OpenLayers.Map('map'); 
     16            map = new OpenLayers.Map('map',  
     17                 {controls: [new OpenLayers.Control.Navigation(),  
     18                             new OpenLayers.Control.PanZoomBar()],  
     19                  numZoomLevels: 10 }); 
    1720            var wms = new OpenLayers.Layer.WMS( 
    1821                "OpenLayers WMS", 
    1922                "http://labs.metacarta.com/wms/vmap0", 
     
    2225            map.addLayers([wms]); 
    2326 
    2427            map.events.register("moveend", null, displayZoom); 
    25             map.addControl( new OpenLayers.Control.LayerSwitcher() ); 
    2628 
    2729            map.zoomToMaxExtent(); 
    2830