Package org.geotools.data.transform

Source Code of org.geotools.data.transform.AbstractTransformTest

package org.geotools.data.transform;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.geotools.data.DataUtilities;
import org.geotools.data.collection.ListFeatureCollection;
import org.geotools.data.property.PropertyDataStore;
import org.geotools.data.simple.SimpleFeatureSource;
import org.geotools.data.transform.Definition;
import org.geotools.data.transform.TransformFactory;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.filter.text.ecql.ECQL;
import org.geotools.geometry.jts.ReferencedEnvelope;
import org.geotools.referencing.CRS;
import org.geotools.util.logging.Logging;
import org.junit.BeforeClass;
import org.opengis.filter.FilterFactory2;
import org.opengis.referencing.crs.CoordinateReferenceSystem;

public abstract class AbstractTransformTest {

    static SimpleFeatureSource STATES;

    static ReferencedEnvelope DELAWARE_BOUNDS;

    static CoordinateReferenceSystem WGS84;
   
    static FilterFactory2 FF = CommonFactoryFinder.getFilterFactory2();

    @BeforeClass
    public static void setup() throws Exception {
        // just to make sure the loggin is not going to cause exceptions when turned on
        java.util.logging.ConsoleHandler handler = new java.util.logging.ConsoleHandler();
        handler.setLevel(java.util.logging.Level.FINE);
        Logging.getLogger("org.geotools.data.transform").setLevel(java.util.logging.Level.FINE);

        WGS84 = CRS.decode("EPSG:4326");
        DELAWARE_BOUNDS = new ReferencedEnvelope(-75.791435, -75.045998, 38.44949,
                39.826435000000004, WGS84);

        PropertyDataStore pds = new PropertyDataStore(new File(
                "./src/test/resources/org/geotools/data/transform"));
        STATES = pds.getFeatureSource("states");
    }
   
    SimpleFeatureSource transformWithSelection() throws IOException {
        List<Definition> definitions = new ArrayList<Definition>();
        definitions.add(new Definition("the_geom"));
        definitions.add(new Definition("state_name"));
        definitions.add(new Definition("persons"));

        SimpleFeatureSource transformed = TransformFactory.transform(STATES, "states_mini", definitions);
        return transformed;
    }

    SimpleFeatureSource transformWithRename() throws Exception {
        List<Definition> definitions = new ArrayList<Definition>();
        definitions.add(new Definition("geom", ECQL.toExpression("the_geom")));
        definitions.add(new Definition("name", ECQL.toExpression("state_name")));
        definitions.add(new Definition("people", ECQL.toExpression("persons")));

        SimpleFeatureSource transformed = TransformFactory.transform(STATES, "usa", definitions);
        return transformed;
    }

    SimpleFeatureSource transformWithExpressions() throws Exception {
        List<Definition> definitions = new ArrayList<Definition>();
        definitions.add(new Definition("geom", ECQL.toExpression("buffer(the_geom, 1)")));
        definitions.add(new Definition("name", ECQL.toExpression("strToLowercase(state_name)")));
        definitions.add(new Definition("total", ECQL.toExpression("male + female")));
        definitions.add(new Definition("logp", ECQL.toExpression("log(persons)")));

        SimpleFeatureSource transformed = TransformFactory.transform(STATES, "bstates", definitions);
        return transformed;
    }
   
    SimpleFeatureSource transformWithExpressionsWithEmptySource() throws Exception {
        List<Definition> definitions = new ArrayList<Definition>();
        definitions.add(new Definition("geom", ECQL.toExpression("buffer(the_geom, 1)")));
        definitions.add(new Definition("name", ECQL.toExpression("strToLowercase(state_name)")));
        definitions.add(new Definition("total", ECQL.toExpression("male + female")));
        definitions.add(new Definition("logp", ECQL.toExpression("log(persons)")));
       
        ListFeatureCollection fc = new ListFeatureCollection(STATES.getSchema());
        SimpleFeatureSource emptySource = DataUtilities.source(fc);

        SimpleFeatureSource transformed = TransformFactory.transform(emptySource, "bstates", definitions);
        return transformed;
    }

}
TOP

Related Classes of org.geotools.data.transform.AbstractTransformTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.