[OpenLayers-Commits] r1994 - in sandbox/vector: examples lib/OpenLayers/Renderer

commits at openlayers.org commits at openlayers.org
Mon Dec 4 05:44:46 EST 2006


Author: pgiraud
Date: 2006-12-04 05:44:44 -0500 (Mon, 04 Dec 2006)
New Revision: 1994

Modified:
   sandbox/vector/examples/GML.html
   sandbox/vector/lib/OpenLayers/Renderer/Vml.js
Log:
polygons with holes management in VML

Modified: sandbox/vector/examples/GML.html
===================================================================
--- sandbox/vector/examples/GML.html	2006-12-03 15:50:47 UTC (rev 1993)
+++ sandbox/vector/examples/GML.html	2006-12-04 10:44:44 UTC (rev 1994)
@@ -17,22 +17,22 @@
             layer = new OpenLayers.Layer.WMS( "OpenLayers WMS", 
                 "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
             map.addLayer(layer);
-/*
-            point = new OpenLayers.Layer.GML("Point","geometry_testcase/point.xml");
+
+            point = new OpenLayers.Layer.GML("Point","geometry_testcase/point.xml", {style: new OpenLayers.Style({strokeColor: "green"})});
             map.addLayer(point);
             
-            multipoint = new OpenLayers.Layer.GML("MultiPoint","geometry_testcase/multipoint.xml");
+            multipoint = new OpenLayers.Layer.GML("MultiPoint","geometry_testcase/multipoint.xml", {style: new OpenLayers.Style({strokeColor: "fuchsia"})});
             map.addLayer(multipoint);
             
-            line = new OpenLayers.Layer.GML("Line","geometry_testcase/line.xml");
+            line = new OpenLayers.Layer.GML("Line","geometry_testcase/line.xml", {style: new OpenLayers.Style({strokeColor: "red"})});
             map.addLayer(line);
-*/
-            polygon = new OpenLayers.Layer.GML("Polygon","geometry_testcase/polygon.xml");
+
+            polygon = new OpenLayers.Layer.GML("Polygon","geometry_testcase/polygon.xml", {style: new OpenLayers.Style({strokeColor: "blue"})});
             map.addLayer(polygon);
-/*            
-            multipolygon = new OpenLayers.Layer.GML("MultiPolygon","geometry_testcase/multipolygon.xml");
+            
+            multipolygon = new OpenLayers.Layer.GML("MultiPolygon","geometry_testcase/multipolygon.xml", {style: new OpenLayers.Style({strokeColor: "black"})});
             map.addLayer(multipolygon);
-*/            
+            
             //var results = OpenLayers.loadURL("us_interstate.xml", null, this, requestSuccess, requestFailure);
 
             map.addControl(new OpenLayers.Control.LayerSwitcher());

Modified: sandbox/vector/lib/OpenLayers/Renderer/Vml.js
===================================================================
--- sandbox/vector/lib/OpenLayers/Renderer/Vml.js	2006-12-03 15:50:47 UTC (rev 1993)
+++ sandbox/vector/lib/OpenLayers/Renderer/Vml.js	2006-12-04 10:44:44 UTC (rev 1994)
@@ -272,12 +272,19 @@
         node.coordsize = this._vmlParseFloat(bbox.width)+ " " +this._vmlParseFloat(bbox.height);
 
         var path = "";
-        for (var i = 0; i < geometry.linearRings[0].path.length; i++) {
-            if (i == 0) {
-                path += "m " +this._vmlParseFloat(geometry.linearRings[0].path[i].getX()-bbox.x)+ "," +this._vmlParseFloat(geometry.linearRings[0].path[i].getY()-bbox.y)+ " l";
-            } else{
-                path += " " +this._vmlParseFloat(geometry.linearRings[0].path[i].getX()-bbox.x)+ "," +this._vmlParseFloat(geometry.linearRings[0].path[i].getY()-bbox.y)+ " l ";
+        for (var j = 0; j < geometry.linearRings.length; j++) {
+            var linearRing = geometry.linearRings[j];
+            if (j != 0) {
+                path += " x ";
             }
+            
+            for (var i = 0; i < linearRing.path.length; i++) {
+                if (i == 0) {
+                    path += "m " +this._vmlParseFloat(linearRing.path[i].getX()-bbox.x)+ "," +this._vmlParseFloat(linearRing.path[i].getY()-bbox.y)+ " l";
+                } else{
+                    path += " " +this._vmlParseFloat(linearRing.path[i].getX()-bbox.x)+ "," +this._vmlParseFloat(linearRing.path[i].getY()-bbox.y);
+                }
+            }
         }
         path += " x e";
     



More information about the Commits mailing list