Search in sources :

Example 16 with FeatureCollection

use of org.geotoolkit.storage.feature.FeatureCollection in project geotoolkit by Geomatys.

the class PostgresSimpleTypeTest method testArrayInsert.

@Test
public void testArrayInsert() throws DataStoreException, VersioningException {
    reload(true);
    store.createFeatureType(FTYPE_ARRAY);
    final FeatureType resType = store.getFeatureType(store.getNames().iterator().next().toString());
    final Feature feature = resType.newInstance();
    feature.setPropertyValue("fid", 0);
    feature.setPropertyValue("boolean", new Boolean[] { true, false, true });
    feature.setPropertyValue("byte", new Short[] { 3, 6, 9 });
    feature.setPropertyValue("short", new Short[] { -5, 12, -50 });
    feature.setPropertyValue("integer", new Integer[] { 123, 456, 789 });
    feature.setPropertyValue("long", new Long[] { 111l, 222l, 333l });
    feature.setPropertyValue("float", new Float[] { 1.2f, -5.9f, 8.1f });
    feature.setPropertyValue("double", new Double[] { 78.3d, 41.23d, -99.66d });
    feature.setPropertyValue("string", new String[] { "marc", "hubert", "samy" });
    List<ResourceId> addedIds = store.addFeatures(resType.getName().toString(), Collections.singleton(feature));
    assertEquals(1, addedIds.size());
    assertEquals(FF.resourceId("1"), addedIds.get(0));
    final Session session = store.createSession(false);
    final FeatureCollection col = session.getFeatureCollection(new Query(resType.getName()));
    assertEquals(1, col.size());
    // Postgis allow NULL in arrays, so returned array are not primitive types
    final FeatureIterator ite = col.iterator();
    try {
        final Feature resFeature = ite.next();
        assertNotNull(resFeature);
        assertArrayEquals(new Boolean[] { true, false, true }, (Boolean[]) resFeature.getPropertyValue("boolean"));
        assertArrayEquals(new Short[] { 3, 6, 9 }, (Short[]) resFeature.getPropertyValue("byte"));
        assertArrayEquals(new Short[] { -5, 12, -50 }, (Short[]) resFeature.getPropertyValue("short"));
        assertArrayEquals(new Integer[] { 123, 456, 789 }, (Integer[]) resFeature.getPropertyValue("integer"));
        assertArrayEquals(new Long[] { 111l, 222l, 333l }, (Long[]) resFeature.getPropertyValue("long"));
        assertArrayEquals(new Float[] { 1.2f, -5.9f, 8.1f }, (Float[]) resFeature.getPropertyValue("float"));
        assertArrayEquals(new Double[] { 78.3d, 41.23d, -99.66d }, (Double[]) resFeature.getPropertyValue("double"));
        assertArrayEquals(new String[] { "marc", "hubert", "samy" }, (String[]) resFeature.getPropertyValue("string"));
    } finally {
        ite.close();
    }
}
Also used : FeatureType(org.opengis.feature.FeatureType) Query(org.geotoolkit.storage.feature.query.Query) MultiLineString(org.locationtech.jts.geom.MultiLineString) LineString(org.locationtech.jts.geom.LineString) Feature(org.opengis.feature.Feature) FeatureIterator(org.geotoolkit.storage.feature.FeatureIterator) ResourceId(org.opengis.filter.ResourceId) FeatureCollection(org.geotoolkit.storage.feature.FeatureCollection) Session(org.geotoolkit.storage.feature.session.Session) Test(org.junit.Test)

Example 17 with FeatureCollection

use of org.geotoolkit.storage.feature.FeatureCollection in project geotoolkit by Geomatys.

the class PostgresSimpleTypeTest method testGeometryInsert.

@Test
public void testGeometryInsert() throws DataStoreException, NoSuchAuthorityCodeException, FactoryException, VersioningException {
    reload(true);
    // //////////////////////////////////////////////////////////////////////
    final GeometryFactory gf = JTS.getFactory();
    // creating a point -----------------------------------------------
    final Point point = gf.createPoint(new Coordinate(56, 45));
    // creating a multipoint ------------------------------------------
    final MultiPoint mp = gf.createMultiPoint(new Coordinate[] { new Coordinate(23, 78), new Coordinate(-10, 43), new Coordinate(12, 94) });
    // creating a linestring ------------------------------------------
    final LineString ls = gf.createLineString(new Coordinate[] { new Coordinate(23, 78), new Coordinate(-10, 43), new Coordinate(12, 94) });
    // creating a multilinestring -------------------------------------
    final LineString ls1 = gf.createLineString(new Coordinate[] { new Coordinate(30, 45), new Coordinate(56, 29) });
    final LineString ls2 = gf.createLineString(new Coordinate[] { new Coordinate(98, 12), new Coordinate(19, 87) });
    final MultiLineString mls = gf.createMultiLineString(new LineString[] { ls1, ls2 });
    // creating a polygon ---------------------------------------------
    final LinearRing ring = gf.createLinearRing(new Coordinate[] { new Coordinate(23, 78), new Coordinate(-10, 43), new Coordinate(12, 94), new Coordinate(23, 78) });
    final Polygon polygon = gf.createPolygon(ring, new LinearRing[0]);
    // creating a multipolygon ----------------------------------------
    final MultiPolygon mpolygon = gf.createMultiPolygon(new Polygon[] { polygon });
    // creating a geometry collection ----------------------------------------
    final GeometryCollection gc = gf.createGeometryCollection(new Geometry[] { point, ls, polygon });
    // //////////////////////////////////////////////////////////////////////
    store.createFeatureType(FTYPE_GEOMETRY);
    final FeatureType resType = store.getFeatureType(store.getNames().iterator().next().toString());
    final Feature feature = resType.newInstance();
    feature.setPropertyValue("fid", 0);
    feature.setPropertyValue("geometry", point);
    feature.setPropertyValue("point", point);
    feature.setPropertyValue("multipoint", mp);
    feature.setPropertyValue("linestring", ls);
    feature.setPropertyValue("multilinestring", mls);
    feature.setPropertyValue("polygon", polygon);
    feature.setPropertyValue("multipolygon", mpolygon);
    feature.setPropertyValue("geometrycollection", gc);
    List<ResourceId> addedIds = store.addFeatures(resType.getName().toString(), Collections.singleton(feature));
    assertEquals(1, addedIds.size());
    assertEquals(FF.resourceId("1"), addedIds.get(0));
    final Session session = store.createSession(false);
    final FeatureCollection col = session.getFeatureCollection(new Query(resType.getName()));
    assertEquals(1, col.size());
    // Postgis allow NULL in arrays, so returned array are not primitive types
    final FeatureIterator ite = col.iterator();
    try {
        final Feature resFeature = ite.next();
        assertNotNull(resFeature);
        Geometry geom;
        geom = (Geometry) resFeature.getPropertyValue("geometry");
        assertEquals(point, geom);
        assertEquals(CommonCRS.WGS84.normalizedGeographic(), JTS.findCoordinateReferenceSystem(geom));
        geom = (Geometry) resFeature.getPropertyValue("point");
        assertEquals(point, geom);
        assertEquals(CommonCRS.WGS84.normalizedGeographic(), JTS.findCoordinateReferenceSystem(geom));
        geom = (Geometry) resFeature.getPropertyValue("multipoint");
        assertEquals(mp, geom);
        assertEquals(CommonCRS.WGS84.normalizedGeographic(), JTS.findCoordinateReferenceSystem(geom));
        geom = (Geometry) resFeature.getPropertyValue("linestring");
        assertEquals(ls, geom);
        assertEquals(CommonCRS.WGS84.normalizedGeographic(), JTS.findCoordinateReferenceSystem(geom));
        geom = (Geometry) resFeature.getPropertyValue("multilinestring");
        assertEquals(mls, geom);
        assertEquals(CommonCRS.WGS84.normalizedGeographic(), JTS.findCoordinateReferenceSystem(geom));
        geom = (Geometry) resFeature.getPropertyValue("polygon");
        assertEquals(polygon, geom);
        assertEquals(CommonCRS.WGS84.normalizedGeographic(), JTS.findCoordinateReferenceSystem(geom));
        geom = (Geometry) resFeature.getPropertyValue("multipolygon");
        assertEquals(mpolygon, geom);
        assertEquals(CommonCRS.WGS84.normalizedGeographic(), JTS.findCoordinateReferenceSystem(geom));
        geom = (Geometry) resFeature.getPropertyValue("geometrycollection");
        assertEquals(gc, geom);
        assertEquals(CommonCRS.WGS84.normalizedGeographic(), JTS.findCoordinateReferenceSystem(geom));
    } finally {
        ite.close();
    }
}
Also used : MultiPoint(org.locationtech.jts.geom.MultiPoint) MultiLineString(org.locationtech.jts.geom.MultiLineString) FeatureType(org.opengis.feature.FeatureType) GeometryFactory(org.locationtech.jts.geom.GeometryFactory) Query(org.geotoolkit.storage.feature.query.Query) Point(org.locationtech.jts.geom.Point) MultiPoint(org.locationtech.jts.geom.MultiPoint) Feature(org.opengis.feature.Feature) GeometryCollection(org.locationtech.jts.geom.GeometryCollection) FeatureIterator(org.geotoolkit.storage.feature.FeatureIterator) Geometry(org.locationtech.jts.geom.Geometry) Coordinate(org.locationtech.jts.geom.Coordinate) MultiLineString(org.locationtech.jts.geom.MultiLineString) LineString(org.locationtech.jts.geom.LineString) MultiPolygon(org.locationtech.jts.geom.MultiPolygon) ResourceId(org.opengis.filter.ResourceId) FeatureCollection(org.geotoolkit.storage.feature.FeatureCollection) LinearRing(org.locationtech.jts.geom.LinearRing) Polygon(org.locationtech.jts.geom.Polygon) MultiPolygon(org.locationtech.jts.geom.MultiPolygon) Session(org.geotoolkit.storage.feature.session.Session) Test(org.junit.Test)

Example 18 with FeatureCollection

use of org.geotoolkit.storage.feature.FeatureCollection in project geotoolkit by Geomatys.

the class PostgresSimpleTypeTest method testArray2Insert.

@Test
public void testArray2Insert() throws DataStoreException, VersioningException {
    reload(true);
    store.createFeatureType(FTYPE_ARRAY2);
    final FeatureType resType = store.getFeatureType(store.getNames().iterator().next().toString());
    final Feature feature = resType.newInstance();
    feature.setPropertyValue("fid", 0);
    feature.setPropertyValue("boolean", new Boolean[][] { { true, false, true }, { false, true, false }, { false, false, false } });
    feature.setPropertyValue("byte", new Short[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } });
    feature.setPropertyValue("short", new Short[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } });
    feature.setPropertyValue("integer", new Integer[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } });
    feature.setPropertyValue("long", new Long[][] { { 1l, 2l, 3l }, { 4l, 5l, 6l }, { 7l, 8l, 9l } });
    feature.setPropertyValue("float", new Float[][] { { 1f, 2f, 3f }, { 4f, 5f, 6f }, { 7f, 8f, 9f } });
    feature.setPropertyValue("double", new Double[][] { { 1d, 2d, 3d }, { 4d, 5d, 6d }, { 7d, 8d, 9d } });
    feature.setPropertyValue("string", new String[][] { { "1", "2", "3" }, { "4", "5", "6" }, { "7", "8", "9" } });
    List<ResourceId> addedIds = store.addFeatures(resType.getName().toString(), Collections.singleton(feature));
    assertEquals(1, addedIds.size());
    assertEquals(FF.resourceId("1"), addedIds.get(0));
    final Session session = store.createSession(false);
    final FeatureCollection col = session.getFeatureCollection(new Query(resType.getName()));
    assertEquals(1, col.size());
    // Postgis allow NULL in arrays, so returned array are not primitive types
    final FeatureIterator ite = col.iterator();
    try {
        final Feature resFeature = ite.next();
        assertNotNull(resFeature);
        assertArrayEquals((Boolean[][]) feature.getPropertyValue("boolean"), (Boolean[][]) resFeature.getPropertyValue("boolean"));
        assertArrayEquals((Short[][]) feature.getPropertyValue("byte"), (Short[][]) resFeature.getPropertyValue("byte"));
        assertArrayEquals((Short[][]) feature.getPropertyValue("short"), (Short[][]) resFeature.getPropertyValue("short"));
        assertArrayEquals((Integer[][]) feature.getPropertyValue("integer"), (Integer[][]) resFeature.getPropertyValue("integer"));
        assertArrayEquals((Long[][]) feature.getPropertyValue("long"), (Long[][]) resFeature.getPropertyValue("long"));
        assertArrayEquals((Float[][]) feature.getPropertyValue("float"), (Float[][]) resFeature.getPropertyValue("float"));
        assertArrayEquals((Double[][]) feature.getPropertyValue("double"), (Double[][]) resFeature.getPropertyValue("double"));
        assertArrayEquals((String[][]) feature.getPropertyValue("string"), (String[][]) resFeature.getPropertyValue("string"));
    } finally {
        ite.close();
    }
}
Also used : FeatureIterator(org.geotoolkit.storage.feature.FeatureIterator) FeatureType(org.opengis.feature.FeatureType) Query(org.geotoolkit.storage.feature.query.Query) ResourceId(org.opengis.filter.ResourceId) FeatureCollection(org.geotoolkit.storage.feature.FeatureCollection) Feature(org.opengis.feature.Feature) Session(org.geotoolkit.storage.feature.session.Session) Test(org.junit.Test)

Example 19 with FeatureCollection

use of org.geotoolkit.storage.feature.FeatureCollection in project geotoolkit by Geomatys.

the class IntersectionTest method buildResultList.

private static FeatureSet buildResultList() throws FactoryException {
    type = createSimpleResultType();
    final FeatureCollection featureList = FeatureStoreUtilities.collection("noname", type);
    Feature myFeature1 = type.newInstance();
    LineString line = geometryFactory.createLineString(new Coordinate[] { new Coordinate(4.0, 4.0), new Coordinate(4.0, 3.0) });
    myFeature1.setPropertyValue(AttributeConvention.IDENTIFIER, "id-01<->id-12");
    myFeature1.setPropertyValue("name", "feature1");
    myFeature1.setPropertyValue("geom1", line);
    featureList.add(myFeature1);
    Feature myFeature2 = type.newInstance();
    LinearRing ring = geometryFactory.createLinearRing(new Coordinate[] { new Coordinate(3.0, 3.0), new Coordinate(3.0, 4.0), new Coordinate(4.0, 4.0), new Coordinate(4.0, 3.0), new Coordinate(3.0, 3.0) });
    myFeature2.setPropertyValue(AttributeConvention.IDENTIFIER, "id-01<->id-13");
    myFeature2.setPropertyValue("name", "feature1");
    myFeature2.setPropertyValue("geom1", geometryFactory.createPolygon(ring, null));
    featureList.add(myFeature2);
    Feature myFeature3 = type.newInstance();
    myFeature3.setPropertyValue(AttributeConvention.IDENTIFIER, "id-01<->id-11");
    myFeature3.setPropertyValue("name", "feature1");
    myFeature3.setPropertyValue("geom1", geometryFactory.createPoint(new Coordinate(3.5, 3.5)));
    featureList.add(myFeature3);
    Feature myFeature4 = type.newInstance();
    ring = geometryFactory.createLinearRing(new Coordinate[] { new Coordinate(9.0, 4.0), new Coordinate(9.0, 5.0), new Coordinate(10.0, 5.0), new Coordinate(10.0, 4.0), new Coordinate(9.0, 4.0) });
    myFeature4.setPropertyValue(AttributeConvention.IDENTIFIER, "id-03<->id-13");
    myFeature4.setPropertyValue("name", "feature3");
    myFeature4.setPropertyValue("geom1", geometryFactory.createPolygon(ring, null));
    featureList.add(myFeature4);
    Feature myFeature5 = type.newInstance();
    line = geometryFactory.createLineString(new Coordinate[] { new Coordinate(9.0, 4.5), new Coordinate(11.0, 4.5) });
    myFeature5.setPropertyValue(AttributeConvention.IDENTIFIER, "id-03<->id-12");
    myFeature5.setPropertyValue("name", "feature3");
    myFeature5.setPropertyValue("geom1", line);
    featureList.add(myFeature5);
    Feature myFeature6 = type.newInstance();
    ring = geometryFactory.createLinearRing(new Coordinate[] { new Coordinate(5.0, 6.0), new Coordinate(5.0, 7.0), new Coordinate(6.0, 7.0), new Coordinate(6.0, 6.0), new Coordinate(5.0, 6.0) });
    myFeature6.setPropertyValue(AttributeConvention.IDENTIFIER, "id-02<->id-13");
    myFeature6.setPropertyValue("name", "feature2");
    myFeature6.setPropertyValue("geom1", geometryFactory.createPolygon(ring, null));
    featureList.add(myFeature6);
    return featureList;
}
Also used : FeatureCollection(org.geotoolkit.storage.feature.FeatureCollection) LineString(org.locationtech.jts.geom.LineString) Coordinate(org.locationtech.jts.geom.Coordinate) LinearRing(org.locationtech.jts.geom.LinearRing) Feature(org.opengis.feature.Feature)

Example 20 with FeatureCollection

use of org.geotoolkit.storage.feature.FeatureCollection in project geotoolkit by Geomatys.

the class IntersectionTest method buildFeatureList.

private static FeatureSet buildFeatureList() throws FactoryException {
    type = createSimpleType();
    final FeatureCollection featureList = FeatureStoreUtilities.collection("noname", type);
    Feature myFeature1 = type.newInstance();
    LinearRing ring = geometryFactory.createLinearRing(new Coordinate[] { new Coordinate(3.0, 3.0), new Coordinate(3.0, 4.0), new Coordinate(4.0, 4.0), new Coordinate(4.0, 3.0), new Coordinate(3.0, 3.0) });
    myFeature1.setPropertyValue(AttributeConvention.IDENTIFIER, "id-01");
    myFeature1.setPropertyValue("name", "feature1");
    myFeature1.setPropertyValue("geom1", geometryFactory.createPolygon(ring, null));
    myFeature1.setPropertyValue("geom2", geometryFactory.createPoint(new Coordinate(3.5, 3.5)));
    featureList.add(myFeature1);
    Feature myFeature2 = type.newInstance();
    ring = geometryFactory.createLinearRing(new Coordinate[] { new Coordinate(5.0, 6.0), new Coordinate(5.0, 7.0), new Coordinate(6.0, 7.0), new Coordinate(6.0, 6.0), new Coordinate(5.0, 6.0) });
    MultiPoint multPt = geometryFactory.createMultiPoint(new Coordinate[] { new Coordinate(5.0, 4.0), new Coordinate(3.0, 6.0), new Coordinate(4.0, 7.0), new Coordinate(5.5, 6.5) });
    myFeature2.setPropertyValue(AttributeConvention.IDENTIFIER, "id-02");
    myFeature2.setPropertyValue("name", "feature2");
    myFeature2.setPropertyValue("geom1", geometryFactory.createPolygon(ring, null));
    myFeature2.setPropertyValue("geom2", multPt);
    featureList.add(myFeature2);
    Feature myFeature3 = type.newInstance();
    ring = geometryFactory.createLinearRing(new Coordinate[] { new Coordinate(9.0, 4.0), new Coordinate(9.0, 5.0), new Coordinate(11.0, 5.0), new Coordinate(11.0, 4.0), new Coordinate(9.0, 4.0) });
    LineString line = geometryFactory.createLineString(new Coordinate[] { new Coordinate(7.0, 0.0), new Coordinate(9.0, 3.0) });
    myFeature3.setPropertyValue(AttributeConvention.IDENTIFIER, "id-03");
    myFeature3.setPropertyValue("name", "feature3");
    myFeature3.setPropertyValue("geom1", geometryFactory.createPolygon(ring, null));
    myFeature3.setPropertyValue("geom2", line);
    featureList.add(myFeature3);
    return featureList;
}
Also used : MultiPoint(org.locationtech.jts.geom.MultiPoint) FeatureCollection(org.geotoolkit.storage.feature.FeatureCollection) Coordinate(org.locationtech.jts.geom.Coordinate) LineString(org.locationtech.jts.geom.LineString) LinearRing(org.locationtech.jts.geom.LinearRing) Feature(org.opengis.feature.Feature)

Aggregations

FeatureCollection (org.geotoolkit.storage.feature.FeatureCollection)131 Feature (org.opengis.feature.Feature)75 Test (org.junit.Test)49 Coordinate (org.locationtech.jts.geom.Coordinate)49 LinearRing (org.locationtech.jts.geom.LinearRing)39 Query (org.geotoolkit.storage.feature.query.Query)31 FeatureType (org.opengis.feature.FeatureType)27 FeatureIterator (org.geotoolkit.storage.feature.FeatureIterator)24 LineString (org.locationtech.jts.geom.LineString)23 MultiPoint (org.locationtech.jts.geom.MultiPoint)16 ProcessDescriptor (org.geotoolkit.process.ProcessDescriptor)15 ParameterValueGroup (org.opengis.parameter.ParameterValueGroup)15 Geometry (org.locationtech.jts.geom.Geometry)14 AbstractProcessTest (org.geotoolkit.processing.vector.AbstractProcessTest)13 Session (org.geotoolkit.storage.feature.session.Session)12 CheckCloseFeatureIterator (org.geotoolkit.storage.feature.CheckCloseFeatureIterator)10 Point (org.locationtech.jts.geom.Point)10 GenericName (org.opengis.util.GenericName)10 NoSuchElementException (java.util.NoSuchElementException)8 File (java.io.File)7