|
|
|
svn_geotools
|
Author: aaime
Date: 2009-10-25 06:47:19 -0400 (Sun, 25 Oct 2009) New Revision: 34238 Modified: branches/geometry/modules/library/main/src/main/java/org/geotools/data/DataUtilities.java branches/geometry/modules/library/main/src/main/java/org/geotools/util/GeometryConverterFactory.java branches/geometry/modules/library/render/src/main/java/org/geotools/renderer/lite/StreamingRenderer.java branches/geometry/modules/library/render/src/test/java/org/geotools/renderer/lite/LineTest.java branches/geometry/spike/geometry/src/main/java/org/osgeo/geometry/WKTReader.java Log: Actually being able to read a OSGeo LineString from WKT and render it on screen Modified: branches/geometry/modules/library/main/src/main/java/org/geotools/data/DataUtilities.java =================================================================== --- branches/geometry/modules/library/main/src/main/java/org/geotools/data/DataUtilities.java 2009-10-25 06:32:17 UTC (rev 34237) +++ branches/geometry/modules/library/main/src/main/java/org/geotools/data/DataUtilities.java 2009-10-25 10:47:19 UTC (rev 34238) @@ -145,8 +145,8 @@ typeEncode.put( Point.class, "Point"); typeMap.put("Point", Point.class); - typeEncode.put( LineString.class, "LineString"); - typeMap.put("LineString", LineString.class); + typeEncode.put( org.osgeo.geometry.primitive.LineString.class, "LineString"); + typeMap.put("LineString", org.osgeo.geometry.primitive.LineString.class); typeEncode.put( Polygon.class, "Polygon"); typeMap.put("Polygon", Polygon.class); @@ -1760,7 +1760,7 @@ } Class clazz = type(type); - if(Geometry.class.isAssignableFrom(clazz)) { + if(Geometry.class.isAssignableFrom(clazz) || org.osgeo.geometry.Geometry.class.isAssignableFrom(clazz)) { GeometryType at = new GeometryTypeImpl(new NameImpl( name ), clazz , crs, false, false, Collections.EMPTY_LIST, null, null ); return new GeometryDescriptorImpl( at, new NameImpl(name), 0,1, nillable, null ); } else { Modified: branches/geometry/modules/library/main/src/main/java/org/geotools/util/GeometryConverterFactory.java =================================================================== --- branches/geometry/modules/library/main/src/main/java/org/geotools/util/GeometryConverterFactory.java 2009-10-25 06:32:17 UTC (rev 34237) +++ branches/geometry/modules/library/main/src/main/java/org/geotools/util/GeometryConverterFactory.java 2009-10-25 10:47:19 UTC (rev 34238) @@ -16,14 +16,15 @@ */ package org.geotools.util; +import org.deegree.geometry.standard.AbstractDefaultGeometry; import org.deegree.geometry.standard.DefaultGeometryFactory; import org.geotools.factory.Hints; -import org.osgeo.geometry.WKTReader; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Envelope; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryFactory; +import com.vividsolutions.jts.io.WKTReader; /** * Converter factory performing converstions among geometric types. @@ -52,7 +53,7 @@ if ( String.class.equals( source ) ) { return new Converter() { public Object convert(Object source, Class target) throws Exception { - return new WKTReader(new DefaultGeometryFactory(), null).read( (String) source ); + return new WKTReader(new GeometryFactory()).read( (String) source ); } }; } @@ -77,8 +78,31 @@ } }; } + + // OSGEO geometry to JTS geometry + if( AbstractDefaultGeometry.class.isAssignableFrom( source )) { + return new Converter() { + public Object convert(Object source, Class targer) throws Exception { + return ((AbstractDefaultGeometry) source).getJTSGeometry(); + } + }; + } } + if (org.osgeo.geometry.Geometry.class.isAssignableFrom(target)) { + + // String to Geometry + if (String.class.equals(source)) { + return new Converter() { + public Object convert(Object source, Class target) throws Exception { + return new org.osgeo.geometry.WKTReader(new DefaultGeometryFactory(), null) + .read((String) source); + } + }; + } + } + + if ( Geometry.class.isAssignableFrom( source ) ) { //Geometry to envelope if ( Envelope.class.equals( target ) ) { Modified: branches/geometry/modules/library/render/src/main/java/org/geotools/renderer/lite/StreamingRenderer.java =================================================================== --- branches/geometry/modules/library/render/src/main/java/org/geotools/renderer/lite/StreamingRenderer.java 2009-10-25 06:32:17 UTC (rev 34237) +++ branches/geometry/modules/library/render/src/main/java/org/geotools/renderer/lite/StreamingRenderer.java 2009-10-25 10:47:19 UTC (rev 34238) @@ -86,6 +86,7 @@ import org.geotools.styling.StyleAttributeExtractor; import org.geotools.styling.Symbolizer; import org.geotools.styling.TextSymbolizer; +import org.geotools.util.Converters; import org.geotools.util.NumberRange; import org.geotools.util.Range; import org.opengis.coverage.grid.GridCoverage; @@ -2108,7 +2109,7 @@ Geometry geom; if(geomName == null) { if(drawMe instanceof SimpleFeature) - geom = (Geometry) ((SimpleFeature) drawMe).getDefaultGeometry(); + geom = Converters.convert(((SimpleFeature) drawMe).getDefaultGeometry(), Geometry.class); else geom = (Geometry) defaultGeometryPropertyName.evaluate(drawMe, Geometry.class); } else { Modified: branches/geometry/modules/library/render/src/test/java/org/geotools/renderer/lite/LineTest.java =================================================================== --- branches/geometry/modules/library/render/src/test/java/org/geotools/renderer/lite/LineTest.java 2009-10-25 06:32:17 UTC (rev 34237) +++ branches/geometry/modules/library/render/src/test/java/org/geotools/renderer/lite/LineTest.java 2009-10-25 10:47:19 UTC (rev 34238) @@ -32,7 +32,7 @@ fs = ds.getFeatureSource("line"); bounds = new ReferencedEnvelope(0, 10, 0, 10, DefaultGeographicCRS.WGS84); -// System.setProperty("org.geotools.test.interactive", "true"); + System.setProperty("org.geotools.test.interactive", "true"); } public void testLineCircle() throws Exception { Modified: branches/geometry/spike/geometry/src/main/java/org/osgeo/geometry/WKTReader.java =================================================================== --- branches/geometry/spike/geometry/src/main/java/org/osgeo/geometry/WKTReader.java 2009-10-25 06:32:17 UTC (rev 34237) +++ branches/geometry/spike/geometry/src/main/java/org/osgeo/geometry/WKTReader.java 2009-10-25 10:47:19 UTC (rev 34238) @@ -48,6 +48,9 @@ import org.osgeo.geometry.primitive.LineString; import org.osgeo.geometry.primitive.Point; +import com.vividsolutions.jts.io.WKTWriter; +import com.vividsolutions.jts.util.AssertionFailedException; + /** * Create a geometry from SQL Multi-Media Extension Well-Known Text which allows curves. * ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ GeoTools-commits mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/geotools-commits |
||||||||||||||||
| Free Embeddable Forum Powered by Nabble | Help |