OpenLayers OpenLayers

Changeset 7586

Show
Ignore:
Timestamp:
07/29/08 11:12:48 (4 months ago)
Author:
ahocevar
Message:

made coordsize positive for vector renderers; seems to fixe some strange behavior in the vml renderer, and brings a performance gain by using this.size instead of calculating the size from extent and resolution every time. r=euzuro (closes #1157)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/openlayers/lib/OpenLayers/Renderer/SVG.js

    r7324 r7586  
    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); 
     
    155155        switch (geometry.CLASS_NAME) { 
    156156            case "OpenLayers.Geometry.Point": 
    157                 nodeType = style.externalGraphic ? "image" : "circle"; 
     157                if (style.externalGraphic) { 
     158                    nodeType = "image"; 
     159                } else if (style.graphicName) { 
     160                    nodeType = "use"; 
     161                } else { 
     162                    nodeType = "circle"; 
     163                } 
    158164                break; 
    159165            case "OpenLayers.Geometry.Rectangle": 
  • trunk/openlayers/lib/OpenLayers/Renderer/VML.js

    r7554 r7586  
    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 
     
    121124        switch (geometry.CLASS_NAME) { 
    122125            case "OpenLayers.Geometry.Point": 
    123                 nodeType = style.externalGraphic ? "olv:rect" : "olv:oval"; 
     126                if (style.externalGraphic) { 
     127                    nodeType = "olv:rect"; 
     128                } else if (style.graphicName) { 
     129                    nodeType = "olv:group"; 
     130                } else { 
     131                    nodeType = "olv:oval"; 
     132                } 
    124133                break; 
    125134            case "OpenLayers.Geometry.Rectangle": 
  • trunk/openlayers/tests/Renderer/SVG.html

    r6719 r7586  
    6060                 
    6161        var r = new OpenLayers.Renderer.SVG(document.body); 
     62        r.setSize(new OpenLayers.Size(4,4)); 
    6263        r.map = { 
    6364            getResolution: function() { 
     
    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 = 
  • trunk/openlayers/tests/Renderer/VML.html

    r7324 r7586  
    6060                 
    6161        var r = new OpenLayers.Renderer.VML(document.body); 
     62        r.setSize(new OpenLayers.Size(4,4)); 
    6263        r.map = { 
    6364            getResolution: function() { 
     
    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 =