static SimpleFeatureType makeContourSchema() { /* Create the output feature schema. */ SimpleFeatureTypeBuilder tbuilder = new SimpleFeatureTypeBuilder(); tbuilder.setName("contours"); tbuilder.setCRS(DefaultGeographicCRS.WGS84); // Do not use "geom" or "geometry" below, it seems to broke shapefile generation tbuilder.add("the_geom", MultiPolygon.class); tbuilder.add("time", Integer.class); // TODO change to something more descriptive and lowercase return tbuilder.buildFeatureType(); }
static SimpleFeatureType makeContourSchema() { /* Create the output feature schema. */ SimpleFeatureTypeBuilder tbuilder = new SimpleFeatureTypeBuilder(); tbuilder.setName("contours"); tbuilder.setCRS(DefaultGeographicCRS.WGS84); tbuilder.add("Geometry", MultiPolygon.class); tbuilder.add("Time", Integer.class); return tbuilder.buildFeatureType(); }
static SimpleFeatureType makePointSchema() { SimpleFeatureTypeBuilder tbuilder = new SimpleFeatureTypeBuilder(); tbuilder.setName("points"); tbuilder.setCRS(DefaultGeographicCRS.WGS84); tbuilder.add("Geometry", Point.class); tbuilder.add("Time", Integer.class); return tbuilder.buildFeatureType(); }
/** * Sets the coordinate reference system of the next attribute being added by specifying its srs. * * @throws IllegalArgumentException When the srs specified can be decored into a crs. */ public void setSRS(String srs) { setCRS(decode(srs)); }
SimpleFeatureBuilder createBuilder() { SimpleFeatureTypeBuilder typeBuilder = new SimpleFeatureTypeBuilder(); typeBuilder.setName("feature"); typeBuilder.setNamespaceURI("http://geotools.org"); typeBuilder.setCRS(crs); if (properties != null) { for (int i = 0; i < properties.size(); i++) { String prop = properties.get(i); Object valu = values.get(i); typeBuilder.add(prop, valu != null ? valu.getClass() : Object.class); } } if (geometry != null) { addGeometryType(typeBuilder, geometry); } return new SimpleFeatureBuilder(typeBuilder.buildFeatureType()); }
private void buildType() { SimpleFeatureTypeBuilder typeBuilder = new SimpleFeatureTypeBuilder(); typeBuilder.setName("feature"); typeBuilder.setNamespaceURI("http://geotools.org"); if (geom != null) { typeBuilder.add(geom.getLocalName(), geom.getType().getBinding(), crs); } if (propertyTypes != null) { Set<Entry<String, Class<?>>> entrySet = propertyTypes.entrySet(); for (Entry<String, Class<?>> entry : entrySet) { Class<?> binding = entry.getValue(); if (binding.equals(Object.class)) { binding = String.class; } typeBuilder.add(entry.getKey(), binding); } } if (crs != null) { typeBuilder.setCRS(crs); } featureType = typeBuilder.buildFeatureType(); }
public void testDelegateAccepts() throws Exception { SimpleFeatureTypeBuilder stb = new SimpleFeatureTypeBuilder(); stb.setName("test"); stb.setCRS(DefaultGeographicCRS.WGS84); stb.add("geo", Geometry.class); stb.add("bar", Integer.class);
@Test public void testGetAncestors() { SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.setName("SomeFeature"); builder.setCRS(null); builder.add("name", String.class); builder.add("geom", Point.class); SimpleFeatureType ft = builder.buildFeatureType(); List<FeatureType> types = FeatureTypes.getAncestors(ft); Assert.assertEquals(1, types.size()); Assert.assertEquals("Feature", types.get(0).getName().getLocalPart()); }
@Override protected SimpleFeatureType buildFeatureType() throws IOException { final WFSDataStore dataStore = getDataStore(); final Name localTypeName = getEntry().getName(); final QName remoteTypeName = dataStore.getRemoteTypeName(localTypeName); final SimpleFeatureType remoteSimpleFeatureType; remoteSimpleFeatureType = dataStore.getRemoteSimpleFeatureType(remoteTypeName); // adapt the feature type name SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.init(remoteSimpleFeatureType); builder.setName(localTypeName); String namespaceOverride = entry.getName().getNamespaceURI(); if (namespaceOverride != null) { builder.setNamespaceURI(namespaceOverride); } GeometryDescriptor defaultGeometry = remoteSimpleFeatureType.getGeometryDescriptor(); if (defaultGeometry != null) { builder.setDefaultGeometry(defaultGeometry.getLocalName()); builder.setCRS(defaultGeometry.getCoordinateReferenceSystem()); } final SimpleFeatureType adaptedFeatureType = builder.buildFeatureType(); return adaptedFeatureType; }
@Override protected SimpleFeatureType buildTargetFeatureType() { // create schema SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder(); for (AttributeDescriptor descriptor : delegate.getSchema().getAttributeDescriptors()) { if (!(descriptor.getType() instanceof GeometryTypeImpl) || (!delegate.getSchema().getGeometryDescriptor().equals(descriptor))) { tb.add(descriptor); } else { AttributeTypeBuilder builder = new AttributeTypeBuilder(); builder.setBinding(MultiPolygon.class); AttributeDescriptor attributeDescriptor = builder.buildDescriptor(descriptor.getLocalName(), builder.buildType()); tb.add(attributeDescriptor); if (tb.getDefaultGeometry() == null) { tb.setDefaultGeometry(descriptor.getLocalName()); } } } tb.setDescription(delegate.getSchema().getDescription()); tb.setCRS(delegate.getSchema().getCoordinateReferenceSystem()); tb.setName(delegate.getSchema().getName()); return tb.buildFeatureType(); }
/** * create a feature collection with 1 feature in it. * * @param crs the CRS of the FeatureType * @param p the point to add, should be same CRS as crs * @return * @throws Exception */ private SimpleFeatureCollection createTestFeatureCollection( CoordinateReferenceSystem crs, Point p) throws Exception { SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.setName(FEATURE_TYPE_NAME); builder.setCRS(crs); builder.add("geom", Point.class); SimpleFeatureType ft = builder.buildFeatureType(); SimpleFeatureBuilder b = new SimpleFeatureBuilder(ft); b.add(p); ListFeatureCollection features = new ListFeatureCollection(ft); features.add(b.buildFeature(null)); return features; }
/** * create a datastore with 1 feature in it. * * @param crs the CRS of the featuretype * @param p the point to add, should be same CRS as crs * @return * @throws Exception */ private SimpleFeatureCollection createDatastore(CoordinateReferenceSystem crs, Point p) throws Exception { SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.setName(FEATURE_TYPE_NAME); builder.setCRS(crs); builder.add("geom", Point.class); SimpleFeatureType ft = builder.buildFeatureType(); SimpleFeatureBuilder b = new SimpleFeatureBuilder(ft); b.add(p); ListFeatureCollection features = new ListFeatureCollection(ft); features.add(b.buildFeature(null)); return features; }
@Test public void testNoLength() { SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.setName("NoLength"); builder.setCRS(null); builder.add("name", String.class); builder.add("geom", Point.class); SimpleFeatureType ft = builder.buildFeatureType(); assertEquals( FeatureTypes.ANY_LENGTH, FeatureTypes.getFieldLength(ft.getDescriptor("name"))); assertEquals( FeatureTypes.ANY_LENGTH, FeatureTypes.getFieldLength(ft.getDescriptor("geom"))); }
@Test public void testStandardLength() { SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.setName("StdLength"); builder.setCRS(null); builder.length(20); builder.add("name", String.class); builder.add("geom", Point.class); SimpleFeatureType ft = builder.buildFeatureType(); assertEquals(20, FeatureTypes.getFieldLength(ft.getDescriptor("name"))); assertEquals( FeatureTypes.ANY_LENGTH, FeatureTypes.getFieldLength(ft.getDescriptor("geom"))); }
public void testCRS() { builder.setName("testName"); builder.setNamespaceURI("testNamespaceURI"); builder.setCRS(DefaultGeographicCRS.WGS84); builder.crs(null).add("point", Point.class); builder.add("point2", Point.class, DefaultGeographicCRS.WGS84); builder.setDefaultGeometry("point"); SimpleFeatureType type = builder.buildFeatureType(); assertEquals(DefaultGeographicCRS.WGS84, type.getCoordinateReferenceSystem()); assertNull(type.getGeometryDescriptor().getType().getCoordinateReferenceSystem()); assertEquals( DefaultGeographicCRS.WGS84, ((GeometryType) type.getType("point2")).getCoordinateReferenceSystem()); }
/** * DOCUMENT ME! * * @throws SchemaException */ public static SimpleFeatureType createTestType() throws SchemaException { SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder(); tb.setName("test"); tb.setCRS(null); tb.add("testGeometry", Point.class); tb.add("testBoolean", Boolean.class); tb.add("testCharacter", Character.class); tb.add("testByte", Byte.class); tb.add("testShort", Short.class); tb.add("testInteger", Integer.class); tb.add("testLong", Long.class); tb.add("testFloat", Float.class); tb.add("testDouble", Double.class); tb.add("testString", String.class); tb.setDefaultGeometry("testGeometry"); return tb.buildFeatureType(); } }
public void testGetAnyGeometry() throws Exception { SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder(); tb.setName("test"); tb.setCRS(null); tb.add("g1", Point.class); tb.add("g2", Point.class); tb.setDefaultGeometry("g1"); SimpleFeatureType type = tb.buildFeatureType(); SimpleFeatureBuilder b = new SimpleFeatureBuilder(type); b.set("g1", null); Point p = new GeometryFactory().createPoint(new Coordinate(0, 0)); b.set("g2", p); SimpleFeature feature = b.buildFeature(null); assertNull(feature.getDefaultGeometry()); assertEquals( p, SimpleFeaturePropertyAccessorFactory.DEFAULT_GEOMETRY_ACCESS.get( feature, "", Geometry.class)); } }
public void testCreateSchemaFidColumn() throws Exception { // test a case where the feature type we are creating contains a column named "fid" SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.setName(tname("ft2")); builder.setNamespaceURI(dataStore.getNamespaceURI()); builder.setCRS(getUTMCRS()); builder.add(aname("geometry"), Point.class); builder.add(aname("intProperty"), Integer.class); builder.add(aname("stringProperty"), String.class); builder.add(aname("fid"), String.class); SimpleFeatureType featureType = builder.buildFeatureType(); dataStore.createSchema(featureType); SimpleFeatureType ft2 = dataStore.getSchema(tname("ft2")); assertNotNull(ft2.getDescriptor(aname("fid"))); }
public void testBounds() throws Exception { PrecisionModel pm = new PrecisionModel(); Geometry[] g = new Geometry[4]; GeometryFactory gf = new GeometryFactory(pm); g[0] = gf.createPoint(new Coordinate(0, 0)); g[1] = gf.createPoint(new Coordinate(0, 10)); g[2] = gf.createPoint(new Coordinate(10, 0)); g[3] = gf.createPoint(new Coordinate(10, 10)); GeometryCollection gc = gf.createGeometryCollection(g); SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder(); tb.setName("bounds"); tb.setCRS(null); tb.add("p1", Point.class); SimpleFeatureType t = tb.buildFeatureType(); TreeSetFeatureCollection fc = new TreeSetFeatureCollection(null, t); SimpleFeatureBuilder b = new SimpleFeatureBuilder(t); for (int i = 0; i < g.length; i++) { b.add(g[i]); fc.add(b.buildFeature(null)); } assertEquals(gc.getEnvelopeInternal(), fc.getBounds()); }
public void testBounds() throws Exception { GeometryFactory gf = new GeometryFactory(); Geometry[] g = new Geometry[4]; g[0] = gf.createPoint(new Coordinate(0, 0)); g[1] = gf.createPoint(new Coordinate(0, 10)); g[2] = gf.createPoint(new Coordinate(10, 0)); g[3] = gf.createPoint(new Coordinate(10, 10)); GeometryCollection gc = gf.createGeometryCollection(g); SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder(); tb.setName("bounds"); tb.setCRS(null); tb.add("p1", Point.class); tb.add("p2", Point.class); tb.add("p3", Point.class); tb.add("p4", Point.class); SimpleFeatureType t = tb.buildFeatureType(); SimpleFeature f = SimpleFeatureBuilder.build(t, g, null); assertEquals(gc.getEnvelopeInternal(), f.getBounds()); g[1].getCoordinate().y = 20; g[2].getCoordinate().x = 20; f.setAttribute(1, g[1]); f.setAttribute(2, g[2]); gc = gf.createGeometryCollection(g); assertEquals(gc.getEnvelopeInternal(), f.getBounds()); }