SimpleFeatureTypeBuilder with more than geometry attribute
----------------------------------------------------------

                 Key: GEOT-3092
                 URL: http://jira.codehaus.org/browse/GEOT-3092
             Project: GeoTools
          Issue Type: Bug
          Components: core feature
    Affects Versions: 2.6.3
         Environment: Windows XP
            Reporter: Guillaume


When there are features with different geometries on a layer and the features 
contains at least another attribute except the geometry, only one geometry will 
be applied to all features (the first geometry). 

The collection below will consider the second feature as a polygon but normally 
it's a LineString.
But if the "name" attribute is not added to the SimpleFeatureTypeBuilder, this 
phenomenon doesn't appear and it works well. 


FeatureCollection<SimpleFeatureType, SimpleFeature> newCollection = 
FeatureCollections.newCollection();

                // First Feature
                GeometryFactory geoFact = 
JTSFactoryFinder.getGeometryFactory(null);            
                SimpleFeatureTypeBuilder typeBuilder = new 
SimpleFeatureTypeBuilder();
                typeBuilder.setName("Geometry");
                typeBuilder.add("geometry", Polygon.class);
                typeBuilder.add("name", String.class);
                SimpleFeatureType type = typeBuilder.buildFeatureType();

                Coordinate coord1 = new Coordinate(0, 0);
                Coordinate coord2 = new Coordinate(0, 1);
                Coordinate coord3 = new Coordinate(1, 1);
                Coordinate coord4 = new Coordinate(1, 0);
                Coordinate[] coords = new Coordinate[] {coord1, coord2, coord3, 
coord4, coord1};
                LinearRing ring = geoFact.createLinearRing(coords);

                SimpleFeatureBuilder featureBuilder = new 
SimpleFeatureBuilder(type);
                featureBuilder.add(geoFact.createPolygon(ring, null));
                featureBuilder.add("1");
                newCollection.add(featureBuilder.buildFeature("1"));


                // Second Feature
                typeBuilder = new SimpleFeatureTypeBuilder();
                typeBuilder.setName("Geometry");
                typeBuilder.add("geometry", LineString.class);
                typeBuilder.add("name", String.class);
                type = typeBuilder.buildFeatureType();

                coord1 = new Coordinate(2, 2);
                coord2 = new Coordinate(3, 3);
                coord3 = new Coordinate(2, 3);
                coords = new Coordinate[] {coord1, coord2, coord3};
                LineString line = geoFact.createLineString(coords);

                featureBuilder = new SimpleFeatureBuilder(type);
                featureBuilder.add(line);
                featureBuilder.add("1");
                newCollection.add(featureBuilder.buildFeature("2"));

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------

_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to