Yeah not very happy trying to pass the following test case - any suggestions?  

    public void testTransformToWGS84() throws Exception {
        String wkt = "GEOGCS[\"GDA94\","
                + " DATUM[\"Geocentric Datum of Australia 1994\","
                + "  SPHEROID[\"GRS 1980\", 6378137.0, 298.257222101, 
AUTHORITY[\"EPSG\",\"7019\"]],"
                + "  TOWGS84[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "
                + " AUTHORITY[\"EPSG\",\"6283\"]], "
                + " PRIMEM[\"Greenwich\", 0.0, AUTHORITY[\"EPSG\",\"8901\"]],"
                + " UNIT[\"degree\", 0.017453292519943295], "
                + " AXIS[\"Geodetic longitude\", EAST], " + " AXIS[\"Geodetic 
latitude\", NORTH], "
                + " AXIS[\"Ellipsoidal height\", UP], " + " 
AUTHORITY[\"EPSG\",\"4939\"]]";

        CoordinateReferenceSystem gda94 = CRS.parseWKT(wkt);

        ReferencedEnvelope bounds = new ReferencedEnvelope3D(130.875825803896, 
130.898939990319,
                -16.4491956225999, -16.4338185791628, Double.NaN, Double.NaN, 
gda94 );
         
        ReferencedEnvelope bounds1 = bounds.transform( 
DefaultGeographicCRS.WGS84_3D, true );
        ReferencedEnvelope bounds2 = bounds.transform( 
DefaultGeographicCRS.WGS84, true ); // FAIL!
    }


I am experimenting with CRS.getHorizontalCRS (but it does not feel like the 
right approach):  

            SingleCRS flatCRS = CRS.getHorizontalCRS( crs );
            SingleCRS flatTargetCRS = CRS.getHorizontalCRS( targetCRS );


Is there a reason why the math transforms cannot handle coordinate conversion? 
I would expect a transform to be capable of making a formula for each target 
ordinate (making use of any number of source ordinates) and calculate away as 
needed.

--  
Jody Garnett


On Wednesday, 28 November 2012 at 7:05 PM, Jody Garnett wrote:

> I notice that the ReferencedEnvelope3D issue 
> (https://jira.codehaus.org/browse/GEOS-5148) is still marked as in progress.  
> Do you have anything to add to the discussion Niels? I do not want to step on 
> your toes, but I also need to sort out a fix promptly.
> --  
> Jody Garnett
>  
>  
> On Wednesday, 28 November 2012 at 6:57 PM, Jody Garnett wrote:
>  
> > TLDR:  
> >  
> > I have found a regression:  The constructor ReferencedEnvelope( 
> > CoordinateReferenceSystem ) can now fail (previously it would always work). 
> > This change is introducing issues in downstream software (such as 
> > https://jira.codehaus.org/browse/GEOS-5474).
> >  
> > Discussion:
> >  
> > Andrea has commented on https://jira.codehaus.org/browse/GEOT-4325 - asking 
> > me to take the discussion to the email list….
> >  
> > I am currently working on a couple of Oracle tasks:
> > - SDOOnlineTest <-- restored to master (pending a review from Andrea)
> > - Confirm GDA94 support for OracleDataStore
> >  
> > The following line is used in many of the getBounds() implementations:
> >  
> >   ReferencedEnvelope bounds = new ReferencedEnvelope( crs );
> >  
> > The trouble is, this is no longer "safe" - it is willing to throw an 
> > exception, if the provided CRS (has 3 or more) dimensions.
> >  
> > We could change all the code examples to be the following:
> >  
> >   ReferencedEnvelope bounds = crs.getCoordinateSystem().getDimension() >= 3 
> > ? new ReferencedEnvelope3D( crs ) : new ReferencedEnvelope( crs );
> >  
> > I have created a factory method with similar logic for GEOT-4325. The 
> > ReferencedEnvelope class now provides the following factory methods:
> >  
> > ReferencedEnvelope.reference( BoundingBox )
> > ReferencedEnvelope.reference( Envelope )
> > ReferencedEnvelope.reference( Envelope )
> > ReferencedEnvelope.reference( Envelope, CoordinateReferenceSystem )
> >  
> > ReferencedEnvelope.reference( CoordinateReferenceSystem ) <-- this one is 
> > new
> >  
> > So while this will give me the tools to "fix" Oracle smoothly, we still 
> > have some technical debt due to the introduction of ReferencedEnvelope3D as 
> > a class, but not updating the geotools codebase to make use of it.
> >  
> > I expect we should deprecate these two constructors, suggesting the factory 
> > method as the replacement, and then (at least in our codebase) update 
> > GeoTools to use the factory method. This would restore the code base to 
> > previous functionality.
> > --  
> > Jody Garnett
> >  
>  

------------------------------------------------------------------------------
Keep yourself connected to Go Parallel: 
INSIGHTS What's next for parallel hardware, programming and related areas?
Interviews and blogs by thought leaders keep you ahead of the curve.
http://goparallel.sourceforge.net
_______________________________________________
GeoTools-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to