Hi there,

I have been struggling with this for some time, even after investigating
the source code of both Geotools and GeoServer i cannot seem to get this to
work.

I have a extremely simple WFS 1.0 interface in an application and need to
update this to WFS 2.0 but i am stuck at encoding a SimpleFeatureCollection
to GML 3.2

I would be very grateful if someone who is very familiar with Geotools can
find some time to see what is wrong with my code, here is a copy of the
Junit test i am trying to get to work:

import org.geotools.data.DataUtilities;
import org.geotools.data.collection.ListFeatureCollection;
import org.geotools.data.simple.SimpleFeatureCollection;
import org.geotools.feature.simple.SimpleFeatureBuilder;
import org.geotools.feature.simple.SimpleFeatureTypeBuilder;
import org.geotools.gml3.v3_2.GML;
import org.geotools.gml3.v3_2.GMLConfiguration;
import org.geotools.wfs.WFS;
import org.geotools.xsd.Encoder;
import org.junit.Assert;
import org.junit.Test;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.geom.Point;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;

import javax.xml.namespace.QName;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class EncodeGML3_2Example {

@Test
public void encodeGML32() {
try {
// Create a SimpleFeatureType
SimpleFeatureTypeBuilder typeBuilder = new SimpleFeatureTypeBuilder();
typeBuilder.setName("SampleFeature");
typeBuilder.add("geom", Point.class);
typeBuilder.add("name", String.class);
SimpleFeatureType featureType = typeBuilder.buildFeatureType();

// Create and add features to SimpleFeatureCollection
ListFeatureCollection featureList = new ListFeatureCollection(featureType);
SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(featureType);
GeometryFactory geometryFactory = new GeometryFactory();
Point point1 = geometryFactory.createPoint(new Coordinate(10, 10));
featureBuilder.add(point1);
featureBuilder.add("Point 1");
SimpleFeature feature1 = featureBuilder.buildFeature("1");
Point point2 = geometryFactory.createPoint(new Coordinate(20, 20));
featureBuilder.add(point2);
featureBuilder.add("Point 2");
SimpleFeature feature2 = featureBuilder.buildFeature("2");
featureList.add(feature1);
featureList.add(feature2);
SimpleFeatureCollection featureCollection = DataUtilities.collection(
featureList);

// Encode the SimpleFeatureCollection as GML 3.2
GMLConfiguration gmlConfig = new GMLConfiguration(true);
Encoder encoder = new Encoder(gmlConfig);
encoder.setSchemaLocation("http://www.opengis.net/gml";, "
http://schemas.opengis.net/gml/3.2.1/gml.xsd";);
encoder.setNamespaceAware(true);
encoder.setRootElementType(WFS.FeatureCollection);
String gml = encoder.encodeAsString(featureCollection, GML.FeatureCollection
);

Assert.assertTrue(!gml.isEmpty());

} catch (Exception e) {
e.printStackTrace();
}
}

}
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to