Transforming an Envelope is a bit hard:
- a proper JTS Envelope does not have a CoordianteReferenceSystem - please use ReferencedEnvelope instead
- An Envelope is basically a rectangle (minx,maxx,miny,maxy), when you reproject that a rectangle the result is often a polygon
Transform an Envelope using the JTS Utility class
Here is the code example:
import org.geotools.geometry.jts.JTS; import org.geotools.referencing.CRS; CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:4326"); CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:23032"); Envelope envelope = new Envelope(0, 10, 0, 10); MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS); // sample 10 points around the envelope Envelope result = JTS.transform(envelope, transform, 10 );
Transform a ReferencedEnvelope
This is easier with ReferencedEnvelope:
import org.geotools.geometry.jts.JTS; import org.geotools.referencing.CRS; CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:4326"); CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:23032"); ReferencedEnvelope envelope = new ReferencedEnvelope(0, 10, 0, 10, sourceCRS ); MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS); // Sample 10 points around the envelope ReferencedEnvelope result = envelope.transform( sourceCRS, true, 10 );