Hello John
Le 02/04/10 17:51, John Caron a écrit :
Thanks for the post. Can you explain the relation of GeoAPI (and
version) to GeoTools and GeoToolkit?
This is similar to the relationship which exist in standard Java between JDBC
and the various database driver implementations. JDBC is defined almost entirely
by interfaces (java.sql.Connection, java.sql.Statement, etc.). You can pickup an
implementation of your choice (MySQL, PostsgreSQL, Oracle...), in most cases you
can use only the JDBC interfaces. If the implementation needs to be changed, it
can be done with minimal impact on the code.
GeoAPI is like JDBC interfaces, and GeoTools/Geotoolkit are like PostgreSQL or
MySQL implementations. If you code against only GeoAPI interfaces, you are (in
theory) independant of whatever implementation is used behind. For example you
can use only the org.opengis.referencing.crs.CoordinateReferenceSystem interface
without bothering if it is implemented by GeoTools or Geotoolkit.
Geotoolkit is the reference implementation of the GeoAPI interfaces mentioned in
the OGC press release. If you need a lighther implementation, the JScience
project (www.jscience.org) implements also those GeoAPI interfaces (only some of
those). At the time of writing, GeoTools implements an older version of GeoAPI.
The NetCDF library could also implement the GeoAPI interfaces. It would allow
the NetCDF library to use itself in the parts coded against GeoAPI interfaces.
More specifically the following class:
ucar.nc2.dataset.CoordinateSystem
could eventually implement the following interfaces:
org.opengis.referencing.crs.CoordinateReferenceSystem
org.opengis.referencing.cs.CoordinateSystem
org.opengis.coverage.grid.GridGeometry (pending)
I list 3 GeoAPI interfaces to be implemented by the same UCAR object because the
concept behind the UCAR CoordinateSystem class is actually a merge of two
distinct concepts in ISO specifications (CoordinateSystem and
CoordinateReferenceSystem), and also a merge of GridGeometry concept (but you
could ignore that one since it is not yet part of the interfaces published by
OGC at this time).
Regards,
Martin