From: Peter B. <pet...@ya...> - 2011-03-09 16:02:24
|
Simone/Andrea- I generated a new world image that extends from 80N to 80S. I updated the envelope to (-180, -80, 360, 160) and per Simone's suggestion, I did CRS.decode("EPSG:4326", true). --- Envelope2D envelope = new Envelope2D(CRS.decode("EPSG:4326", true), new java.awt.geom.Rectangle2D.Float(-180, -80, 360, 160) ); --- I got an image out, without any errors, but the output looks identical to the input. Am I missing something else? Thanks Again! Peter ----- Original Message ---- From: Simone Giannecchini <sim...@ge...> To: Andrea Aime <and...@ge...> Cc: Peter Borissow <pet...@ya...>; geo...@li... Sent: Wed, March 9, 2011 10:11:35 AM Subject: Re: [Geotools-gt2-users] Error Reprojecting Coverage to EPSG:900913 using CRS.decode("EPSG:XXX",true) would also help to get lon,lat order in coordinates. Regards, Simone Giannecchini ------------------------------------------------------- Ing. Simone Giannecchini GeoSolutions S.A.S. Founder Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584 962313 fax: +39 0584 962313 mob: +39 333 8128928 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.youtube.com/user/GeoSolutionsIT http://www.linkedin.com/in/simonegiannecchini http://twitter.com/simogeo ------------------------------------------------------- On Wed, Mar 9, 2011 at 3:45 PM, Andrea Aime <and...@ge...> wrote: > On Wed, Mar 9, 2011 at 1:30 PM, Peter Borissow <pet...@ya...> > wrote: >> >> Hello- >> I am trying to do perform a simple reprojection test taking a WGS84 >> image to >> a "Google" map projection ("EPSG:900913"). I lifted code from this thread: >> >> >>http://www.mail-archive.com/geo...@li.../msg02294.html >>l >> >> >> >> Here's the code: >> >> ---------- >> BufferedImage bi = ImageIO.read( >> new File("C:/My Documents/earth.jpg")); >> >> Envelope2D envelope = new Envelope2D(CRS.decode("EPSG:4326"), >> new java.awt.geom.Rectangle2D.Float(-180, -90, 360, 180) >> ); >> >> GridCoverage2D gc2d = new GridCoverageFactory().create("BMImage", bi, >> envelope); >> >> GridCoverage2D gc2dProj = >> (GridCoverage2D)Operations.DEFAULT.resample(gc2d, >> CRS.decode("EPSG:900913")); >> >> ImageIO.write(gc2dProj.getRenderedImage(), "JPEG", >> new File("/temp/reproject_out.jpg")); >> >> ---------- >> >> I'm getting the following error: >> >> ---------- >> >> Mar 9, 2011 7:06:56 AM >> >> org.geotools.referencing.operation.projection.MercatorPseudoProvider$Spherical >> transform >> WARNING: Possible use of "Popular Visualisation Pseudo Mercator" >> projection >> outside its valid area. >> Latitude 180░00.0'S is out of range (▒90░). >> Exception in thread "main" >> org.geotools.coverage.processing.CannotReprojectException: Can't reproject >> grid >> coverage "BMImage". >> ... >> Caused by: >> org.geotools.referencing.operation.projection.ProjectionException: >> Latitude 180░00.0'S is too close to a pole. >> at >> >>org.geotools.referencing.operation.projection.Mercator$Spherical.transformNormalized(Mercator.java:207) >>) >> >> ... >> >> ---------- >> >> Operator error I'm sure. Any suggestions? > > Mercator style projections diverge at the poles, if you look at Google maps > the map goes > from -80 to +80 in latitude. > Also, if you want to force geotools into using lon/lat order for geographic > data you have to > add this as the first line in your application code: > System.setProperty("org.geotools.referencing.forceXY", "true"); > Cheers > Andrea > -- > ------------------------------------------------------- > Ing. Andrea Aime > GeoSolutions S.A.S. > Tech lead > > Via Poggio alle Viti 1187 > 55054 Massarosa (LU) > Italy > > phone: +39 0584 962313 > fax: +39 0584 962313 > mob: +39 333 8128928 > > http://www.geo-solutions.it > http://geo-solutions.blogspot.com/ > http://www.youtube.com/user/GeoSolutionsIT > http://www.linkedin.com/in/andreaaime > http://twitter.com/geowolf |