diff --git a/lib/OpenLayers/Renderer/VML.js b/lib/OpenLayers/Renderer/VML.js index f7bd8acbb1..8085d007fb 100644 --- a/lib/OpenLayers/Renderer/VML.js +++ b/lib/OpenLayers/Renderer/VML.js @@ -460,19 +460,18 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, { this.setNodeDimension(node, geometry); var resolution = this.getResolution(); + var numComponents = geometry.components.length; + var parts = new Array(numComponents); - var path = "m"; - for (var i = 0; i < geometry.components.length; i++) { - var x = (geometry.components[i].x/resolution); - var y = (geometry.components[i].y/resolution); - path += " " + x.toFixed() + "," + y.toFixed() + " l "; + var comp, x, y; + for (var i = 0; i < numComponents; i++) { + comp = geometry.components[i]; + x = (comp.x/resolution); + y = (comp.y/resolution); + parts[i] = " " + x.toFixed() + "," + y.toFixed() + " l "; } - if (closeLine) { - path += " x"; - } - path += " e"; - - node.path = path; + var end = (closeLine) ? " x e" : " e"; + node.path = "m" + parts.join("") + end; }, /** @@ -488,23 +487,25 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, { var resolution = this.getResolution(); - var path = ""; + var path = []; + var linearRing, i, comp, x, y; for (var j = 0; j < geometry.components.length; j++) { - var linearRing = geometry.components[j]; + linearRing = geometry.components[j]; - path += "m"; - for (var i = 0; i < linearRing.components.length; i++) { - var x = linearRing.components[i].x / resolution; - var y = linearRing.components[i].y / resolution; - path += " " + x.toFixed() + "," + y.toFixed(); + path.push("m"); + for (i = 0; i < linearRing.components.length; i++) { + comp = linearRing.components[i]; + x = comp.x / resolution; + y = comp.y / resolution; + path.push(" " + x.toFixed() + "," + y.toFixed()); if (i==0) { - path += " l"; + path.push(" l"); } } - path += " x "; + path.push(" x "); } - path += "e"; - node.path = path; + path.push("e"); + node.path = path.join(""); }, /** @@ -537,20 +538,22 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, { var resolution = this.getResolution(); - var path = ""; + var path = []; + var comp, x, y; for (var i = 0; i < geometry.components.length; i++) { - var x = geometry.components[i].x / resolution; - var y = geometry.components[i].y / resolution; + comp = geometry.components[i]; + x = comp.x / resolution; + y = comp.y / resolution; if ((i%3)==0 && (i/3)==0) { - path += "m"; + path.push("m"); } else if ((i%3)==1) { - path += " c"; + path.push(" c"); } - path += " " + x + "," + y; + path.push(" " + x + "," + y); } - path += " x e"; + path.push(" x e"); - node.path = path; + node.path = path.join(""); }, CLASS_NAME: "OpenLayers.Renderer.VML"