Package org.geotools.data.db2

Source Code of org.geotools.data.db2.DB2SpatialFiltersTest

/*
*    GeoTools - The Open Source Java GIS Toolkit
*    http://geotools.org
*
*    (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
*
*    This library is free software; you can redistribute it and/or
*    modify it under the terms of the GNU Lesser General
*    License as published by the Free Software Foundation;
*    version 2.1 of the License.
*
*    This library is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
*    Lesser General  License for more details.
*/
package org.geotools.data.db2;

import org.geotools.data.Query;
import org.geotools.data.simple.SimpleFeatureCollection;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.feature.FeatureCollection;
import org.geotools.jdbc.JDBCDataStoreAPITestSetup;
import org.geotools.jdbc.JDBCSpatialFiltersTest;
import org.opengis.filter.FilterFactory;
import org.opengis.filter.FilterFactory2;
import org.opengis.filter.expression.Literal;
import org.opengis.filter.expression.PropertyName;
import org.opengis.filter.spatial.BBOX;
import org.opengis.filter.spatial.DWithin;

import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.MultiLineString;
import com.vividsolutions.jts.geom.PrecisionModel;

/**
*
*
* @source $URL$
*/
public class DB2SpatialFiltersTest extends JDBCSpatialFiltersTest {

    @Override
    protected JDBCDataStoreAPITestSetup createTestSetup() {
        return new DB2DataStoreAPITestSetup();
    }

  @Override
  protected void connect() throws Exception {
    super.connect();
    dataStore.setDatabaseSchema("geotools");
  }
 
  public void testGeometryCollection() throws Exception{
          PrecisionModel precisionModel = new PrecisionModel();
                 
          int SRID = 4326;
          GeometryFactory gf = new GeometryFactory(precisionModel, SRID);
          Coordinate[] points = { new Coordinate(30, 40), new Coordinate(50, 60) };
          LineString[] geometries = new LineString[2];
          geometries [0] = gf.createLineString(points);
          Coordinate[] points2 = { new Coordinate(40, 30), new Coordinate(70, 40) };
          geometries[1] = gf.createLineString(points2);
         
          // TODO, DB2 does not support instantiating a geometry collection from wkb,
          // wkb type 7, replace GeometryCollection with MultiLineString         
          // code in superclass: GeometryCollection geometry = new GeometryCollection(geometries, factory );
          // For DB2, we must use the following line of code
          MultiLineString ml = gf.createMultiLineString(geometries);
         
          FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null);
         
          PropertyName p = ff.property(aname("geom"));       
          Literal collect = ff.literal(ml);
       
          DWithin dwithinGeomCo  = ((FilterFactory2) ff).dwithin(p, collect, 5, "meter");
          Query dq = new Query(tname("road"), dwithinGeomCo);
          SimpleFeatureCollection features = dataStore.getFeatureSource(tname("road")).getFeatures(dq);
          assertEquals(0, features.size());
      }
 
    public void testBboxFilter() throws Exception {
        FilterFactory ff = CommonFactoryFinder.getFilterFactory(null);
        // should  match  "r2" and "r3"
        BBOX bbox = ff.bbox(aname("geom"), 2, 3, 4, 5, "EPSG:4326");
        FeatureCollection features = dataStore.getFeatureSource(tname("road")).getFeatures(bbox);
        assertEquals(2, features.size());
    }
     
    public void testBboxFilterDefault() throws Exception {
        FilterFactory ff = CommonFactoryFinder.getFilterFactory(null);
        // should  match  "r2" and "r3"
        BBOX bbox = ff.bbox("", 2, 3, 4, 5, "EPSG:4326");
        FeatureCollection features = dataStore.getFeatureSource(tname("road")).getFeatures(bbox);
        assertEquals(2, features.size());
    }
 

}
TOP

Related Classes of org.geotools.data.db2.DB2SpatialFiltersTest

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.