Hello all The framework for handling parameters is about complete. The reason why we need such framework can be seen partially by looking at the parameters of the Mercator projection for example:
http://svn.apache.org/repos/asf/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator1SP.java (scroll down to the static initializer) We have different names defined by different authorities (EPSG, OGC, GeoTIFF, Proj.4, NetCDF, ESRI and MapInfo) for the same parameters, we have some deprecated names which are replaced by new ones but still in use (e.g. "Mercator (1SP)" renamed as "Mercator (variant A)"), numerical codes to be needed later for finding information in the database, and other issues not show in this "Mercator1SP.java" example. I'm now starting to port the code which will perform the actual map projection calculations. One particularity of the implementing to come is that we separate map projections in three steps: * A linear normalize transform * The non-linear kernel * A linear denormalize transform So all linear terms of the map projections will be extracted in the normalize/denormalize transforms, leaving only the non-linear core in the middle. We can see this separation in the "NonLinearParameters" class committed today. This separation makes easier to compute derivatives (a distinct SIS feature) and to combine transforms more efficiently. For example it is very common to have a conversion from "radians to degrees" followed by "degrees to radians". Isolating the linear parts of map projections make easier to detect that those conversions cancel each others. A discussion can be found there (please let me know if you have any idea about how to make it clearer): https://builds.apache.org/job/sis-dev/javadoc/org/apache/sis/referencing/operation/projection/package-summary.html Martin
