Changeset 8004
- Timestamp:
- 09/12/08 10:44:40 (3 months ago)
- Files:
-
- trunk/openlayers/lib/OpenLayers/Renderer/VML.js (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/openlayers/lib/OpenLayers/Renderer/VML.js
r7979 r8004 35 35 36 36 /** 37 * Property: offset 38 * {Object} Hash with "x" and "y" properties 39 */ 40 offset: null, 41 42 /** 37 43 * Constructor: OpenLayers.Renderer.VML 38 44 * Create a new VML renderer. … … 51 57 "position: absolute; display: inline-block;"); 52 58 } 59 53 60 OpenLayers.Renderer.Elements.prototype.initialize.apply(this, 54 61 arguments); 62 this.offset = {x: 0, y: 0}; 55 63 }, 56 64 … … 91 99 var resolution = this.getResolution(); 92 100 93 var org = extent.left/resolution + " " + 94 (extent.top/resolution - this.size.h); 101 var left = extent.left/resolution; 102 var top = extent.top/resolution - this.size.h; 103 if (resolutionChanged) { 104 this.offset = {x: left, y: top}; 105 left = 0; 106 top = 0; 107 } else { 108 left = left - this.offset.x; 109 top = top - this.offset.y; 110 } 111 112 var org = left + " " + top; 95 113 this.root.setAttribute("coordorigin", org); 96 114 … … 192 210 style.graphicYOffset : -(0.5 * height); 193 211 194 node.style.left = ((geometry.x/resolution )+xOffset).toFixed();195 node.style.top = ((geometry.y/resolution )-(yOffset+height)).toFixed();212 node.style.left = ((geometry.x/resolution - this.offset.x)+xOffset).toFixed(); 213 node.style.top = ((geometry.y/resolution - this.offset.y)-(yOffset+height)).toFixed(); 196 214 node.style.width = width + "px"; 197 215 node.style.height = height + "px"; … … 449 467 450 468 var scaledBox = 451 new OpenLayers.Bounds((bbox.left/resolution ).toFixed(),452 (bbox.bottom/resolution ).toFixed(),453 (bbox.right/resolution ).toFixed(),454 (bbox.top/resolution ).toFixed());469 new OpenLayers.Bounds((bbox.left/resolution - this.offset.x).toFixed(), 470 (bbox.bottom/resolution - this.offset.y).toFixed(), 471 (bbox.right/resolution - this.offset.x).toFixed(), 472 (bbox.top/resolution - this.offset.y).toFixed()); 455 473 456 474 // Set the internal coordinate system to draw the path … … 614 632 if(!isNaN(geometry.x)&& !isNaN(geometry.y)) { 615 633 var resolution = this.getResolution(); 616 617 node.style.left = ((geometry.x /resolution ).toFixed() - radius) + "px";618 node.style.top = ((geometry.y /resolution ).toFixed() - radius) + "px";634 635 node.style.left = ((geometry.x /resolution - this.offset.x).toFixed() - radius) + "px"; 636 node.style.top = ((geometry.y /resolution - this.offset.y).toFixed() - radius) + "px"; 619 637 620 638 var diameter = radius * 2; … … 681 699 for (var i = 0; i < numComponents; i++) { 682 700 comp = geometry.components[i]; 683 x = (comp.x/resolution );684 y = (comp.y/resolution );701 x = (comp.x/resolution - this.offset.x); 702 y = (comp.y/resolution - this.offset.y); 685 703 parts[i] = " " + x.toFixed() + "," + y.toFixed() + " l "; 686 704 } … … 714 732 for (i=0, ilen=linearRing.components.length; i<ilen; i++) { 715 733 comp = linearRing.components[i]; 716 x = comp.x / resolution ;717 y = comp.y / resolution ;734 x = comp.x / resolution - this.offset.x; 735 y = comp.y / resolution - this.offset.y; 718 736 path.push(" " + x.toFixed() + "," + y.toFixed()); 719 737 if (i==0) { … … 742 760 var resolution = this.getResolution(); 743 761 744 node.style.left = geometry.x/resolution+ "px";745 node.style.top = geometry.y/resolution+ "px";762 node.style.left = (geometry.x/resolution - this.offset.x) + "px"; 763 node.style.top = (geometry.y/resolution - this.offset.y) + "px"; 746 764 node.style.width = geometry.width/resolution + "px"; 747 765 node.style.height = geometry.height/resolution + "px"; … … 770 788 for (var i=0, len=geometry.components.length; i<len; i++) { 771 789 comp = geometry.components[i]; 772 x = comp.x / resolution ;773 y = comp.y / resolution ;790 x = comp.x / resolution - this.offset.x; 791 y = comp.y / resolution - this.offset.y; 774 792 if ((i%3)==0 && (i/3)==0) { 775 793 path.push("m");
