Martin Desruisseaux created SIS-364: ---------------------------------------
Summary: OperationNotFoundException thrown for some pair of CRS without EPSG geodetic dataset Key: SIS-364 URL: https://issues.apache.org/jira/browse/SIS-364 Project: Spatial Information Systems Issue Type: Bug Components: Referencing Affects Versions: 0.7 Reporter: Martin Desruisseaux Assignee: Martin Desruisseaux Fix For: 0.8 The following code work correctly when the EPSG geodetic dataset is available in the running environment: {code:java} CoordinateReferenceSystem fromWkt = CRS.fromWKT( "PROJCS[\"AGD66 / AMG zone 49\"," + "GEOGCS[\"AGD66\"," + "DATUM[\"Australian_Geodetic_Datum_1966\"," + "SPHEROID[\"Australian National Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7003\"]]," + "TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY[\"EPSG\",\"6202\"]]," + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]]," + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]," + "AUTHORITY[\"EPSG\",\"4202\"]]," + "PROJECTION[\"Transverse_Mercator\"]," + "PARAMETER[\"latitude_of_origin\",0]," + "PARAMETER[\"central_meridian\",111]," + "PARAMETER[\"scale_factor\",0.9996]," + "PARAMETER[\"false_easting\",500000]," + "PARAMETER[\"false_northing\",10000000]," + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]," + "AXIS[\"Easting\",EAST]," + "AXIS[\"Northing\",NORTH]," + "AUTHORITY[\"EPSG\",\"20249\"]]"); CoordinateOperation coordinateOperation = CRS.findOperation(CommonCRS.WGS84.geographic(), fromWkt, null); DirectPosition2D wgs84Position = new DirectPosition2D(-37.84, 114.0); DirectPosition epsg20249Position = coordinateOperation.getMathTransform().transform(wgs84Position, null); {code} However, when executed in an environment without EPSG geodetic dataset, we get: {noformat} org.opengis.referencing.operation.OperationNotFoundException: Coordinate conversion of transformation from system “ellipsoidal” to “Cartesian” has not been found. at org.apache.sis.referencing.operation.transform.CoordinateSystemTransform.create(CoordinateSystemTransform.java:212) at org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.createCoordinateSystemChange(DefaultMathTransformFactory.java:1235) at org.apache.sis.referencing.operation.CoordinateOperationFinder.createOperationStep(CoordinateOperationFinder.java:499) at org.apache.sis.referencing.operation.CoordinateOperationFinder.createOperation(CoordinateOperationFinder.java:269) at org.apache.sis.referencing.operation.CoordinateOperationFinder.createOperationStep(CoordinateOperationFinder.java:329) at org.apache.sis.referencing.operation.CoordinateOperationFinder.createOperation(CoordinateOperationFinder.java:258) at org.apache.sis.referencing.operation.DefaultCoordinateOperationFactory.createOperation(DefaultCoordinateOperationFactory.java:731) at org.apache.sis.referencing.CRS.findOperation(CRS.java:310) …. Caused by: java.lang.IllegalArgumentException: Incompatible coordinate system types. at org.apache.sis.referencing.cs.CoordinateSystems.swapAndScaleAxes(CoordinateSystems.java:290) at org.apache.sis.referencing.operation.transform.CoordinateSystemTransform.create(CoordinateSystemTransform.java:191) ... 31 more {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)