Specifies the precision model of the {@link Coordinate}s in a {@link Geometry}. In other words, specifies the grid of allowable points for all
Geometry
s.
The {@link makePrecise} method allows rounding a coordinate to a "precise"value; that is, one whose precision is known exactly.
Coordinates are assumed to be precise in geometries. That is, the coordinates are assumed to be rounded to the precision model given for the geometry. JTS input routines automatically round coordinates to the precision model before creating Geometries. All internal operations assume that coordinates are rounded to the precision model. Constructive methods (such as boolean operations) always round computed coordinates to the appropriate precision model.
Currently three types of precision model are supported:
- FLOATING - represents full double precision floating point. This is the default precision model used in JTS
- FLOATING_SINGLE - represents single precision floating point.
- FIXED - represents a model with a fixed number of decimal places. A Fixed Precision Model is specified by a scale factor. The scale factor specifies the grid which numbers are rounded to. Input coordinates are mapped to fixed coordinates according to the following equations:
- jtsPt.x = round( (inputPt.x * scale ) / scale
- jtsPt.y = round( (inputPt.y * scale ) / scale
Coordinates are represented internally as Java double-precision values. Since Java uses the IEEE-394 floating point standard, this provides 53 bits of precision. (Thus the maximum precisely representable integer is 9,007,199,254,740,992).
JTS methods currently do not handle inputs with different precision models.
@source $URL$
@version 1.7.2