Geotoolkit.org (abridged Geotk) is a free software, Java language library for developing geospatial applications. The library can be used for desktop or server applications.
Geotk is built on top of Apache SIS and is used as a laboratory for the later. The Geotk modules will be reviewed, refactored, and - if accepted - integrated into the core Apache SIS. These modules currently provide the experimental rendering module, a feature model, a coverage model, and the symbology extension modules.
The Geotk metadata module has already migrated to Apache SIS. The Geotk referencing module is in process of being migrated to Apache SIS.
The Geotk project plans to extend the library both by expanding the current modules and providing more modules for the library. The referencing module will be extended to handle new projections. The coverage module will be extended by formalizing an API for image operations.
Large part of Geotoolkit.org code is moving to the Apache SIS project. This migration results in deprecation of massive amount of classes in the Geotk project, which will be replaced by the SIS equivalent. In many cases, migrating to SIS is just a matter of replacing the org.geotoolkit package name by org.apache.sis in the import declarations. However in some cases, the changes are more consistent. Non-trivial replacements are indicated in the comments of the @deprecated tags.
To reduce the annoyance, this replacement is performed only on the 4.x series of Geotk versions. The Geotk 3.x series still have no dependency to SIS, and their classes are not deprecated. However we expect that most future developments will happen in the Apache SIS project together with the Geotk 4.x series, and the Geotk 3.x series may receive only occasional bug fixes.
Latest Geotoolkit.org release is Geotk-4.0-M1, released July 2013. This release is a milestone toward migration to Apache SIS.
See the download page for release notes.
Geotk is free software, distributed to all under the license terms of the GNU Lesser General Public license version 2.1. See the license page for details.
Geotk requires a Java 7 Runtime Environment. That is the only requirement for the base modules up to and including the Referencing module. To use the coverage module, Geotk also requires the Java Advanced Imaging (JAI) libraries available from Oracle. The module currently requires JAI version 1.1.3 or greater. The JAI libraries can be obtained from the Oracle website When installed, the JAI download will place a JAR file and some native code into the Java Runtime Environment.
The download page explains in detail how to obtain pre-compiled binaries of Geotk either from the Maven 2 repository or from the automated build page. The Maven 2 repository enables projects which use that built tool to declare a dependency on Geotk and have Maven automatically find and download the required binary archives. The automated build page provides bundles which group several Geotk modules into a single JAR file. The bundle geotk-bundle-4.x-SNAPSHOT.pack.gz contains a full set of Geotk modules providing the full functionality of the library. Other bundles are provided which contain different subsets of the project. A source bundle and a Javadoc bundle are also available.
Geotk is hosted on a GitHub source code repository, http://github.com/Geomatys/geotoolkit.git. A complete copy of the repository can be 'cloned' using the command:
git clone http://github.com/Geomatys/geotoolkit.git
The mercurial clone will contain both the repository with the fully history (in the hidden .hg/ directory) and the working copy comprised of all the code files visible in the root directory. The Mercurial wiki explains how to use the tool for local version control and distributed collaboration.
Geotk is built using the Maven 2 software project management tool using the command:
which will find and download the dependencies and compile the source code. The first time this command is run, the user must be online in order to obtain all the required dependencies but subsequently the command can be run with the --offline parameter if there is no network connection. Maven provides a powerful build tool for the management of Java language projects.