From: Jan J. <h....@ce...> - 2008-08-27 10:41:33
|
Hi Martin, thanks for quick and clear answer. I'm almost done with that. Just one question: The concatenated transformation takes effect when I do CRS.findMathTransoform(...)- that is good. If I try to to convert the CRS back to wkt I can not see new parameters and not even the the axis were changed (I think that ParserTest do same assertion). I changed MapProjection and Krovak classes but just its providers by adding new parameters to Korvak.Provider ParameterDescriptorGroup and the ParameterDescriptor variables to MapProjection.AbstractProvider. The concatenation is made as you suggest in Provider.createMathTransform. Can I ask you how is it possible to reach the goal that the .toWKT() will return the string including new parameters but just in case that such parameters were explicitly specified without changing the Projection as such? Thanks a lot. Best regards, Jan. ______________________________________________________________ > Od: mar...@ge... > Komu: Jan Jezek <h....@ce...> > CC: geotools-devel <geo...@li...>, xha...@se... > Datum: 26.08.2008 16:06 > Předmět: Re: [Geotools-devel] ESRI Axis definition issue > >Jan Jezek a écrit : >> According to question in users list (below) - I would like to fix the Krovak projection to be compatible with ESRI definition. Problem is that ESRI definition is solving the axis swapping by defining the X_scale, Y_Scale and XY_Plane_Rotation parameters like this: >> > PARAMETER["X_Scale",-1.0], > PARAMETER["Y_Scale”,1.0], >> PARAMETER["XY_Plane_Rotation",90.0] >> > (...snip...) >> > I can fix it by handling ESRI parameters directly in Krovak.transformNormalized method but maybe it can by solved more generally on higher level. > > Any idea on that? > > >It would be better to left the Krovak projection unchanged, and handle that as an affine transform to be concatenated to the Krovak projection. The advantage is that if further affine transform concatenations are needed (e.g. additional axis changes, unit conversions, etc.), GeoTools know how to concatenate that efficiently with an other affine transform, while it would not known how to concatenate that with the handling code inside the Krovak projection. > >We would need new code (something independant of Krovak projection) which creates an AffineTransform2D instance from the above "X_Scale", "Y_Scale" and "XY_Plane_Rotation" parameters. This affine transform would then be concatenated to the MapProjection (any projection, not limited to Krovak) using ConcatenatedTransform.create(theProjection, theAffineTransform). This work could be done inside MapProjection.Provider directly. We would need to rename createMathTransform as createMapProjection for all MapProjection.Provider, then implement a new createMathTransform method which create the affine transform, invoke createMapProjection and do the concatenation. > > Martin > > |