[geotk] Identifying projection types on CRS

Aaron Braeckel braeckel at ucar.edu
Tue Apr 26 13:59:32 EDT 2011


Thanks, Martin.  I was able to use the OGC WKT names as you describe.

Aaron

On 04/26/2011 03:54 AM, Martin Desruisseaux wrote:
> Hello Aaron
>
> The best way to identify the projection type would be to check the
> name (as returned by the getName() method) of the OperationMethod. The
> operation names are also implementation independant, as opposed to
> instanceof checks. The operation method names are somewhat
> standardized in various ways. The most reliable names are the "/OGC
> WKT Name/" available from this page:
>
>    * http://www.remotesensing.org/geotiff/proj_list/
>
>
> Click on any projection in the above page, then look for "/OGC WKT
> Name/" in the table.
>
> The EPSG database also defines its own set of projection names, but
> they may vary in different version of the EPSG database. For example
> the operation method name for the Mercator projection changed between
> EPSG 7.5 and EPSG 7.6, which required some adaptation in the
> Geotoolkit.org code. GeoTIFF also have its own operation method names.
>
> For each projection supported by Geotk, the various operation method
> names are available (indirectly) in the PARAMETERS constant defined in
> each class of the following package:
>
>    *
> http://www.geotoolkit.org/apidocs/org/geotoolkit/referencing/operation/provider/package-summary.html
>
>
> Using this approach, the following code should work no matter if the
> OperationMethod uses the OGC or EPSG name, because the
> AlbersEqualArea.PARAMETERS know both of them and the nameMatches
> convenience method checks all of them.
>
> ProjectedCRS crs = ...;
> OperationMethod method = crs.getConversionFromBase().getMethod();
> if (AbstractIdentifiedObject.nameMatches(method,
> AlbersEqualArea.PARAMETERS)) {
>     // Do some stuff here...
> }
>
>
> I will add this topic in the Referencing FAQ, since it is non-obvious :).
>
> Regards,
>
>     Martin
>
>
>
>
> Le 26/04/11 04:42, Aaron Braeckel a écrit :
>> Hello,
>>
>> I'd like to be able to programmatically detect certain ProjectedCRS
>> types, such as LambertConformal and Mercator.  Here is the code I was
>> hoping to use:
>>
>> CoordinateReferenceSystem crs = ...;
>> CoordinateReferenceSystem horizCrs = CRS.getHorizontalCRS( crs );
>> //magic occurs
>> if( myOperationMethod instanceof AlbersEqualArea ){
>>    //do something extraordinarily amazing
>> }
>>
>> I have yet to find a clear way to do something like this.  When I
>> receive ProjectedCRSs I have yet to find any classes from the
>> org.geotoolkit.referencing.operation.projection package anywhere,
>> just general-purpose instances.  In digging around it seems as if
>> there are multiple paths that could be taken to try to identify the
>> operationMethod/mathTransform/etc.
>>
>>    1. Use identifiers (EPSG:9807, for example).  Not sure where in
>> the Geotk
>>       hierarchy of instances would be best to do so
>>    2. Instantiate an instance of a projected type
>> (AlbersEqualArea.class) and
>>       use one of the weak .equals() calls
>>    3. Get an instance of a projected type (AlbersEqualArea.class)
>> from the
>>       horizontal CRS somehow
>>
>> Any thoughts?
>>
>> Thanks,
>> Aaron
>
> _______________________________________________
> Geotoolkit mailing list
> Geotoolkit at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/geotoolkit


More information about the Geotoolkit mailing list