Dear all, I have a doubt on a GML 3 OpenLayers format issue (from a WFS 1.1.0).
In GML there are two ways to list polygons points: 1. a unique posList element: the following geom is correctly transform from GML3 to OpenLayers geometry <gml:surfaceMember><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList>- 8427711.443672495 4658480.583807316 -8428116.646618983 4671596.358484082 -8429661.427192722 4697373.995504196 -8432776.70314257 . 2. a list of pos elements: But this geom is not correctly transform <gml:Surface srsName="EPSG:900913"><gml:patches><gml:PolygonPatch><gml:exterior><gml:Line arRing srsName="EPSG:900913"> <gml:pos>3944245.09999984 3978948.409156078</gml:pos> <gml:pos>3944282.8999998407 3978974.7107042107</gml:pos> . I think it's due to this part of code (from trunk - OpenLayers.Format.GML.v3.js). Because on each iteration of gml pos the points array is erased. "pos": function(node, obj) { var str = this.getChildValue(node).replace( this.regExes.trimSpace, "" ); var coords = str.split(this.regExes.splitSpace); var point; if(this.xy) { point = new OpenLayers.Geometry.Point( coords[0], coords[1], coords[2] ); } else { point = new OpenLayers.Geometry.Point( coords[1], coords[0], coords[2] ); } obj.points = [point]; }, Does anyone know whether the GML is not conform or if it's possible to propose a patch? If it's not a GML conformity issue, I think that the following patch can solve the problem but I'm not sure it's the best way: "pos": function(node, obj) { ... if(obj.points) { obj.points.push(point); } else { obj.points = [point]; } } thanks, Julien _______________________________________________ Dev mailing list Dev@openlayers.org http://openlayers.org/mailman/listinfo/dev