/* * 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 Public * 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 Public License for more details. */ package org.geotools.renderer.shape; import junit.framework.TestCase; import org.geotools.data.memory.MemoryDataStore; import org.geotools.data.shapefile.indexed.IndexedShapefileDataStore; import org.geotools.data.simple.SimpleFeatureCollection; import org.geotools.data.simple.SimpleFeatureSource; import org.geotools.data.simple.SimpleFeatureStore; import org.geotools.geometry.jts.ReferencedEnvelope; import org.geotools.map.DefaultMapContext; import org.geotools.map.DefaultMapLayer; import org.geotools.map.FeatureLayer; import org.geotools.map.MapContext; import org.geotools.map.MapLayer; import org.geotools.styling.Style; import com.vividsolutions.jts.geom.Envelope; /** * Shapefile renderer delegates to Streaming Renderer if a layer is not a Shapefile layer. This * tests that. * * @author Jesse * @author Ben Caradoc-Davies, CSIRO Exploration and Mining * * * * @source $URL$ */ public class RenderNonShapefileTest extends TestCase { public void testRender() throws Exception { MemoryDataStore store = new MemoryDataStore(); IndexedShapefileDataStore polys = TestUtilites.getPolygons(); SimpleFeatureCollection featureCollection = polys .getFeatureSource().getFeatures(); store.createSchema(polys.getSchema()); SimpleFeatureSource target = store.getFeatureSource(store .getTypeNames()[0]); ((SimpleFeatureStore) target).addFeatures(featureCollection); Style testStyle = TestUtilites.createTestStyle(target.getSchema().getTypeName(), null); MapLayer layer = new DefaultMapLayer(target, testStyle); MapContext context = new DefaultMapContext(new MapLayer[] { layer }, polys.getSchema().getCoordinateReferenceSystem()); ShapefileRenderer renderer = new ShapefileRenderer(context); ReferencedEnvelope env = target.getBounds(); TestUtilites.showRender("testSimpleRender", renderer, 10000, env); } /** * Test {@link FeatureSourceMapLayer} using version of {@link #testRender()}. * * @throws Exception */ public void testRenderFeatureSourceMapLayer() throws Exception { MemoryDataStore store = new MemoryDataStore(); IndexedShapefileDataStore polys = TestUtilites.getPolygons(); SimpleFeatureCollection featureCollection = polys .getFeatureSource().getFeatures(); store.createSchema(polys.getSchema()); SimpleFeatureSource target = store.getFeatureSource(store .getTypeNames()[0]); ((SimpleFeatureStore) target).addFeatures(featureCollection); Style testStyle = TestUtilites.createTestStyle(target.getSchema().getTypeName(), null); MapLayer layer = new DefaultMapLayer( new FeatureLayer(target, testStyle)); MapContext context = new DefaultMapContext(new MapLayer[] { layer }, polys.getSchema().getCoordinateReferenceSystem()); ShapefileRenderer renderer = new ShapefileRenderer(context); Envelope env = context.getLayerBounds(); env = new Envelope(env.getMinX(), env.getMaxX(), env.getMinY(), env.getMaxY()); TestUtilites.showRender("testSimpleRender", renderer, 1000, env); } }