OpenLayers OpenLayers

Ticket #1157: setextent.2.patch

File setextent.2.patch, 3.4 kB (added by ahocevar, 5 months ago)

new version, includes tests

  • lib/OpenLayers/Renderer/SVG.js

    old new  
    121121        // Set the viewbox -- the left/top will be pixels-dragged-since-res change, 
    122122        // the width/height will be pixels. 
    123123        var extentString = left + " " + top + " " +  
    124                              extent.getWidth() / resolution + " " + extent.getHeight() / resolution
     124                             this.size.w + " " + this.size.h
    125125        //var extentString = extent.left / resolution + " " + -extent.top / resolution + " " +  
    126126        this.rendererRoot.setAttributeNS(null, "viewBox", extentString); 
    127127    }, 
  • lib/OpenLayers/Renderer/VML.js

    old new  
    7979        var resolution = this.getResolution(); 
    8080     
    8181        var org = extent.left/resolution + " " +  
    82                     extent.top/resolution
     82                    (extent.top/resolution - this.size.h)
    8383        this.root.setAttribute("coordorigin", org); 
    8484 
    85         var size = extent.getWidth()/resolution + " " +  
    86                     -extent.getHeight()/resolution; 
     85        var size = this.size.w + " " + this.size.h; 
    8786        this.root.setAttribute("coordsize", size); 
     87         
     88        // flip the VML display Y axis upside down so it  
     89        // matches the display Y axis of the map 
     90        this.root.style.flip = "y"; 
    8891    }, 
    8992 
    9093 
  • tests/Renderer/SVG.html

    old new  
    5959        } 
    6060                 
    6161        var r = new OpenLayers.Renderer.SVG(document.body); 
     62        r.setSize(new OpenLayers.Size(4,4)); 
    6263        r.map = { 
    6364            getResolution: function() { 
    6465                return 0.5; 
     
    7879        // test extent changes 
    7980        var extent = new OpenLayers.Bounds(4,3,2,1); 
    8081        r.setExtent(extent); 
    81         t.eq(r.rendererRoot.getAttributeNS(null, "viewBox"), "6 6 -4 -4", "rendererRoot viewBox is correct after a new setExtent"); 
     82        t.eq(r.rendererRoot.getAttributeNS(null, "viewBox"), "6 6 4 4", "rendererRoot viewBox is correct after a new setExtent"); 
    8283 
    8384        OpenLayers.Renderer.Elements.prototype.setExtent = 
    8485            OpenLayers.Renderer.Elements.prototype._setExtent; 
  • tests/Renderer/VML.html

    old new  
    5959        } 
    6060                 
    6161        var r = new OpenLayers.Renderer.VML(document.body); 
     62        r.setSize(new OpenLayers.Size(4,4)); 
    6263        r.map = { 
    6364            getResolution: function() { 
    6465                return 0.5; 
     
    7071         
    7172        t.eq(g_SetExtent, true, "Elements.setExtent() called"); 
    7273         
    73         t.ok(r.root.coordorigin == "2,8", "coordorigin is correct"); 
    74         t.ok(r.root.coordsize == "4,-4", "coordsize is correct"); 
     74        t.ok(r.root.coordorigin == "2,4", "coordorigin is correct"); 
     75        t.ok(r.root.coordsize == "4,4", "coordsize is correct"); 
    7576         
    7677        OpenLayers.Renderer.Elements.prototype.setExtent = 
    7778            OpenLayers.Renderer.Elements.prototype._setExtent;