From 93eccfc0033bd2518bf58cfef294d4d5d19d0059 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Mon, 14 Sep 2009 10:25:54 +0000 Subject: [PATCH] Fix for rendering custom symbols with aspect ratio differnt than 1. r=pgiraud (closes #1836) git-svn-id: http://svn.openlayers.org/trunk/openlayers@9665 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- examples/graphic-name.html | 2 +- lib/OpenLayers/Renderer/VML.js | 4 ++-- tests/Renderer/VML.html | 14 +++++++++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/examples/graphic-name.html b/examples/graphic-name.html index d45a0b11cc..dbed70dab4 100644 --- a/examples/graphic-name.html +++ b/examples/graphic-name.html @@ -8,7 +8,7 @@ // user custom graphicname OpenLayers.Renderer.symbol.lightning = [0,0, 4,2, 6,0, 10,5, 6,3, 4,5, 0,0]; - OpenLayers.Renderer.symbol.rectangle = [0,0, 10,0, 10,4, 0,4, 0,0]; + OpenLayers.Renderer.symbol.rectangle = [0,0, 4,0, 4,10, 0,10, 0,0]; var map; diff --git a/lib/OpenLayers/Renderer/VML.js b/lib/OpenLayers/Renderer/VML.js index 10d305e540..bf85306a86 100644 --- a/lib/OpenLayers/Renderer/VML.js +++ b/lib/OpenLayers/Renderer/VML.js @@ -947,8 +947,8 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, { symbolExtent.bottom = symbolExtent.bottom - diff; symbolExtent.top = symbolExtent.top + diff; } else { - symbolExtent.left = symbolExtent.left - diff; - symbolExtent.right = symbolExtent.right + diff; + symbolExtent.left = symbolExtent.left + diff; + symbolExtent.right = symbolExtent.right - diff; } cache = { diff --git a/tests/Renderer/VML.html b/tests/Renderer/VML.html index 2199dcf1e2..4ebd374729 100644 --- a/tests/Renderer/VML.html +++ b/tests/Renderer/VML.html @@ -360,8 +360,11 @@ return; } - t.plan(2); + t.plan(4); + OpenLayers.Renderer.symbol.rect1 = [0,0, 10,0, 10,4, 0,4, 0,0]; + OpenLayers.Renderer.symbol.rect2 = [0,0, 4,0, 4,10, 0,10, 0,0]; + var r = new OpenLayers.Renderer.VML(document.body); var cache = r.importSymbol("square"); @@ -369,6 +372,15 @@ t.eq(cache.path, "m 0 0 l 0 1 1 1 1 0 0 0 x e", "Square symbol rendered correctly"); t.ok(r.symbolCache["-square"], "Symbol has been cached correctly."); + cache = r.importSymbol("rect1"); + t.eq(cache.bottom, -3, "coordorigin bottom of landscape symbol set to -3 to move topmost part to the bottom (we are flipping y!)"); + + cache = r.importSymbol("rect2"); + t.eq(cache.left, -3, "coordorigin left of portrait symbol set to -3 to move leftmost part to the right"); + + delete OpenLayers.Renderer.symbol.rect1; + delete OpenLayers.Renderer.symbol.rect2; + } function test_vml_dashstyle(t) {