Package org.geotools.cql

Source Code of org.geotools.cql.DataExamples

/**
*
*/
package org.geotools.cql;

import java.io.IOException;
import java.text.SimpleDateFormat;

import org.apache.commons.io.FileUtils;
import org.geotools.data.DataUtilities;
import org.geotools.feature.simple.SimpleFeatureBuilder;
import org.geotools.geometry.jts.JTSFactoryFinder;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;

import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.MultiPolygon;
import com.vividsolutions.jts.geom.Point;
import com.vividsolutions.jts.io.WKTReader;

/**
* This utility class provide the data required by the CQL/ECQL examples.
*
* @author Mauricio Pazos
*
*/
final class DataExamples extends ECQLExamples {

    private static SimpleFeature COUNTRY = null;

    private static SimpleFeature CITY = null;

    private DataExamples() {
        // utility class
    }

    /**
     * Creates a feature that represent New York city
     *
     * @return a Feature
     * @throws Exception
     */
    static public SimpleFeature getInstanceOfCity() throws Exception {

        if (CITY != null) {
            return CITY;
        }

        final SimpleFeatureType type = DataUtilities
                .createType("Location", "geometry:Point:srid=4326," + "cityName:String,"
                        + "over65YearsOld:Double," + "under18YearsOld:Double,"
                        + "population:Integer," + "lastEarthQuake:Date");
        SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(type);

        GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();

        Point point = geometryFactory.createPoint(new Coordinate(-17.2053, 11.9517));

        featureBuilder.add(point);
        featureBuilder.add("New York");
        featureBuilder.add(22.6);
        featureBuilder.add(13.4);
        featureBuilder.add(19541453);

        SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
        featureBuilder.add(dateFormatter.parse("1737-11-30T01:30:00Z"));

        CITY = featureBuilder.buildFeature(null);

        return CITY;
    }

    public static SimpleFeature getInstanceOfCountry() throws Exception {

        if (COUNTRY != null) {
            return COUNTRY;
        }
        final SimpleFeatureType type = DataUtilities.createType("Location",
                "geometry:Polygon:srid=4326," + "countryName:String," + "population:Integer,"
                        + "principalMineralResource:String");
        SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(type);

        WKTReader reader = new WKTReader();
        MultiPolygon geometry = (MultiPolygon) reader.read(usaGeometry());

        featureBuilder.add(geometry);
        featureBuilder.add("USA");
        featureBuilder.add(307006550);
        featureBuilder.add("oil");

        COUNTRY = featureBuilder.buildFeature(null);

        return COUNTRY;
    }

    static private String usaGeometry() {
        try {
            return FileUtils.readFileToString(
                    DataUtilities.urlToFile(DataExamples.class.getResource("usa-geometry.wkt")),
                    "UTF-8");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * Show USA geometry can be loaded and used to make a SimpleFeature.
     */
    public static void main(String[] args) {
        try {
            System.out.println(getInstanceOfCountry());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

}
TOP

Related Classes of org.geotools.cql.DataExamples

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.