From: Ben Caradoc-D. <Ben...@cs...> - 2012-04-11 09:31:17
|
Bastian, these look like GML 2 geometries (despite the misleading and broken schemaLocation). GML 3.1 uses gml:exterior for the outer ring of a Polygon where GML 2 uses gml:outerBoundaryIs. The reason that Point works is that (as far as I can tell) the GML 3 schema contains backwards compatibility support for GML 2 gml:coordinates in addition to gml:pos. Despite the annotations in the schema, it looks like GML 3 PolygonType does not contain backwards compatibility support. Have you tried parsing this using a GML2 GMLConfiguration? Kind regards, Ben. On 11/04/12 17:04, Bastian Schäffer wrote: > List, > > we have a problem with the GML3 Parser (release 2.7.4): > > Code: > ---------- > Configuration configuration = new GMLConfiguration(); > configuration.getProperties().add(Parser.Properties.IGNORE_SCHEMA_LOCATION > ); > configuration.getProperties().add(Parser.Properties.PARSE_UNKNOWN_ELEMENTS); > > org.geotools.xml.Parser parser = new org.geotools.xml.Parser(configuration); > > Object parsedData = parser.parse(new FileInputStream(file)); > if(parsedData instanceof FeatureCollection){ > fc = (FeatureCollection) parsedData; > .... > -------- > > We have data generated by QGIS as input. The created GML is a mess and > not valid against the given (generic) gml schema nor are the namespaces > correct, but the GML3 parser can figure out the geometries for Points > but not for Polygons. > > Why is that? What is wrong? > > Points: > <ogr:FeatureCollection > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/ > http://schemas.opengis.net/gml/3.1.1/base/gml.xsd" > xmlns:ogr="http://ogr.maptools.org/" xmlns:gml="http://www.opengis.net/gml"> > <gml:boundedBy> > <gml:Box> > <gml:coord> > <gml:X>1205942.752754296</gml:X> > <gml:Y>1843910.199396594</gml:Y> > </gml:coord> > <gml:coord> > <gml:X>1225676.152382844</gml:X> > <gml:Y>1847906.315814066</gml:Y> > </gml:coord> > </gml:Box> > </gml:boundedBy> > <gml:featureMember> > <ogr:qt_temp fid="F0"> > <ogr:geometryProperty> > <gml:Point> > <gml:coordinates>1205942.752754295943305,1843910.199396593961865</gml:coordinates> > </gml:Point> > </ogr:geometryProperty> > <ogr:id>1</ogr:id> > </ogr:qt_temp> > </gml:featureMember> > <gml:featureMember> > <ogr:qt_temp fid="F1"> > <ogr:geometryProperty> > <gml:Point> > <gml:coordinates>1210062.460401174612343,1847164.768437627935782</gml:coordinates> > </gml:Point> > </ogr:geometryProperty> > <ogr:id>2</ogr:id> > </ogr:qt_temp> > </gml:featureMember> > <gml:featureMember> > <ogr:qt_temp fid="F2"> > <ogr:geometryProperty> > <gml:Point> > <gml:coordinates>1212369.496683426667005,1846670.403520002495497</gml:coordinates> > </gml:Point> > </ogr:geometryProperty> > <ogr:id>3</ogr:id> > </ogr:qt_temp> > </gml:featureMember> > <gml:featureMember> > <ogr:qt_temp fid="F3"> > <ogr:geometryProperty> > <gml:Point> > <gml:coordinates>1216653.992636180249974,1846299.629831783473492</gml:coordinates> > </gml:Point> > </ogr:geometryProperty> > <ogr:id>4</ogr:id> > </ogr:qt_temp> > </gml:featureMember> > <gml:featureMember> > <ogr:qt_temp fid="F4"> > <ogr:geometryProperty> > <gml:Point> > <gml:coordinates>1222174.40088299755007,1847247.162590565392748</gml:coordinates> > </gml:Point> > </ogr:geometryProperty> > <ogr:id>5</ogr:id> > </ogr:qt_temp> > </gml:featureMember> > <gml:featureMember> > <ogr:qt_temp fid="F5"> > <ogr:geometryProperty> > <gml:Point> > <gml:coordinates>1225676.152382844360545,1847906.315814065979794</gml:coordinates> > </gml:Point> > </ogr:geometryProperty> > <ogr:id>6</ogr:id> > </ogr:qt_temp> > </gml:featureMember> > </ogr:FeatureCollection> > > > Polygons: > <ogr:FeatureCollection > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/ > http://schemas.opengis.net/gml/3.1.1/base/gml.xsd" > xmlns:ogr="http://ogr.maptools.org/" xmlns:gml="http://www.opengis.net/gml"> > <gml:boundedBy> > <gml:Box> > <gml:coord> > <gml:X>1205942.752754296</gml:X> > <gml:Y>1843910.199396594</gml:Y> > </gml:coord> > <gml:coord> > <gml:X>1225676.152382844</gml:X> > <gml:Y>1847906.315814066</gml:Y> > </gml:coord> > </gml:Box> > </gml:boundedBy> > <gml:featureMember> > <ogr:qt_temp fid="F0"> > <ogr:geometryProperty> > <gml:Polygon> > <gml:outerBoundaryIs> > <gml:LinearRing> > <gml:coordinates>1205942.752754295943305,1843910.199396593961865 > 1210062.460401174612343,1847164.768437627935782 > 1225676.152382844360545,1847906.315814065979794 > 1205942.752754295943305,1843910.199396593961865</gml:coordinates> > </gml:LinearRing> > </gml:outerBoundaryIs> > </gml:Polygon> > </ogr:geometryProperty> > <ogr:FID>0</ogr:FID> > </ogr:qt_temp> > </gml:featureMember> > </ogr:FeatureCollection> > > ------------------------------------------------------------------------------ > Better than sec? Nothing is better than sec when it comes to > monitoring Big Data applications. Try Boundary one-second > resolution app monitoring today. Free. > http://p.sf.net/sfu/Boundary-dev2dev > _______________________________________________ > GeoTools-Devel mailing list > Geo...@li... > https://lists.sourceforge.net/lists/listinfo/geotools-devel > -- Ben Caradoc-Davies <Ben...@cs...> Software Engineer CSIRO Earth Science and Resource Engineering Australian Resources Research Centre |