We make use of the Java Topology Suite to represent “Simple” Geometry, and the OpenGIS interfaces to represent everything else. We have been forced to define an API module of our own in a few cases, like data access, where something “standard” is not available.
You will be using JTS a lot as it literally is the “shape” of GeoTools. It captures shapes using constructs like Coordinate, Point, Polygon and LineString.
With those notes it may sound like JTS is limited; it is instead focused on the task at hand - Geographic Information Systems. While 3D and curves may be common in CAD systems we will need a lot of funding and raw science to make it work for GIS. Some of that work is happening in GeoTools with ISO Geometry.
JTS is an implementation of the OGC Simple Features for SQL Specification (i.e. SFSQL). It covers 2D constructs like Point, Line and Polygon. JTS is willing to carry a 3rd point around but does not use it for calculations - making it a 2.5D solution for Cartesian space.
|Simple Features for SQL||2.5D, linear||Java Topology Suite|
|ISO Geometry||3D, curves||OpenGIS ISO Geoemtry interfaces|
GeoTools makes a point of working with both implementations, but frankly the ISO Geometry implementations are not ready yet.