<div dir="ltr">I think the best way to identify a coordinate system is a CoordinateSystem object which models the WKT CoordinateSystem. The one issue with this is EPSG vs. ESRI have different naming for projection parameters. Internally you can standardize on the EPSG values and get all the values from <a href="http://spatialreferencing.net">spatialreferencing.net</a>. Then if you&#39;re reading say a shape file you read in the .prj file using the ESRI values and then have a factory which would return the srid (EPSG) for the CoordinateSystem. You can then use the EpsgCoordinateSystemFactory to get a CoordinateSystem object by srid. This would just be done once on load.<br>
<br>Then when it comes to get your projection operation you would do something like ProjectionFactory.getGeometryOperation(cs1, cs2) it would return a GeometryOperation object with the following method<br><br>public &lt;T extends Geometry&gt; T perform(T geometry);<br>
<br>Behind the scenes this using a OrdinatesOperation to do the say inverse projection from UTM to Geographics and then the projection from Geographics to Mercator. The ordinates operation may have a siganture such as the following.<br>
<br>public double[] perform(double... ordinates) ;<br><br>You&#39;d implement ordinates operations for all the different projections.<br><br>At least this is the way I&#39;ve been doing it in my new coordinate systems library.<br>
<br>Paul<br><br>
</div>