this, if the geometry is not a collection.
false.
within predicate has the following equivalent definitions:
equals predicate has the following equivalent definitions:
T*F
**F
FF*
Geometrys are topologically equalo, as
defined in "Normal Form For Geometry" in the JTS Technical
Specifications
false if it is not met.
(This is a looser test than checking for validity).Geometrys are always simple.Geometry is simple
|x.lo| <= 0.5*ulp(x.hi)
and ulp(y) means "unit in the last place of y".
The basic arithmetic operations are implemented using
convenient properties of IEEE-754 floating-point arithmetic.
[+|-] {digit} [ . {digit} ] [ ( e | E ) [+|-] {digit}+
sum = frac * this + (1 - frac) * v
doubles, allowing for NaN values.
NaN is treated as being less than any valid number.
double
A double
LineString
0.0 returns the start point of the segment;
A fraction of 1.0 returns the end point of the segment.
If the fraction is < 0.0 or > 1.0 the point returned
will lie before the start or beyond the end of the segment.
0.0 offsets from the start point of the segment;
A fraction of 1.0 offsets from the end point of the segment.
The computed point is offset to the left of the line if the offset distance is
positive, to the right if negative.
true if this object has valid values
T = | m00 m01 m02 |
| m10 m11 m12 |
| 0 0 1 |
A coordinate P = (x, y) can be transformed to a new coordinate P' = (x', y')
by representing it as a 3x1 matrix and using matrix multiplication to compute:
| x' | = T x | x |
| y' | | y |
| 1 | | 1 |
A.compose(B) = TB x TA
| 1 0 0 |
| 0 1 0 |
| 0 0 1 |
* 1
* inverse(A) = --- x adjoint(A)
* det
*
*
* = 1 | m11 -m01 m01*m12-m02*m11 |
* --- x | -m10 m00 -m00*m12+m10*m02 |
* det | 0 0 m00*m11-m10*m01 |
*
*
*
* = | m11/det -m01/det m01*m12-m02*m11/det |
* | -m10/det m00/det -m00*m12+m10*m02/det |
* | 0 0 1 |
*
*
d = sqrt(x2 + y2)
sin = x / d;
cos = x / d;
Tref = Trot(sin, cos) x Tscale(1, -1) x Trot(-sin, cos)
theta
has the value:
| cos(theta) -sin(theta) 0 |
| sin(theta) cos(theta) 0 |
| 0 0 1 |
| cosTheta -sinTheta 0 |
| sinTheta cosTheta 0 |
| 0 0 1 |
| cosTheta -sinTheta x-x*cos+y*sin |
| sinTheta cosTheta y-x*sin-y*cos |
| 0 0 1 |
| cosTheta -sinTheta x-x*cos+y*sin |
| sinTheta cosTheta y-x*sin-y*cos |
| 0 0 1 |
| xScale 0 dx |
| 1 yScale dy |
| 0 0 1 |
| 1 xShear 0 |
| yShear 1 0 |
| 0 0 1 |
Note that a shear of (1, 1) is not
equal to shear(1, 0) composed with shear(0, 1).
Instead, shear(1, 1) corresponds to a mapping onto the
line x = y.
| 1 0 dx |
| 1 0 dy |
| 0 0 1 |
A.compose(B) = TB x TA
A.composeBefore(B) = TA x TB
dest coordinateCoordinateSequence
the index of the coordinate to transform
AffineTransformation[[m00, m01, m02], [m10, m11, m12]]
m00, m01, m02, m10, m11, m12
| m00 m01 m02 |
| m10 m11 m12 | = m00 * m11 - m01 * m10
| 0 0 1 |
Polygon cannot be collapsed into a LineString).
If changing the structure is required, use a null if the geometry is to be deleted.
T elements from a single index
LineStrings touch
only at their endpoints, use IsSimpleOp with {@link BoundaryNodeRule#ENDPOINT_BOUNDARY_RULE}.
For example, this can be used to validate that a set of lines form a topologically valid
linear network.

null
LINESTRING (1507029.9878 518325.7547, 1507022.1120341457 518332.8225183258,
1507029.9833 518325.7458, 1507029.9896965567 518325.744909031)
null if there is none0.0 returns the end point of the
segment; a fraction of 1.0 returns the start point of the segment.
StreamTokenizer tokenizer = new StreamTokenizer();
tokenizer.GrabWhitespace = true;
tokenizer.Verbosity = VerbosityLevel.Debug; // just for debugging
tokenizer.TextReader = File.OpenText(fileName);
Token token;
while (tokenizer.NextToken(out token)) log.Info("Token = '{0}'", token);
StreamTokenizer tokenizer = new StreamTokenizer("some string");
ArrayList tokens = new ArrayList();
if (!tokenizer.Tokenize(tokens))
{
// error handling
}
foreach (Token t in tokens) Console.WriteLine("t = {0}", t);
for all geometries a, b: DHD(a, b) <= HD(a, b)
The approximation can be made as close as needed by densifying the input geometries.
In the limit, this value will approach the true Hausdorff distance:
DHD(A, B, densifyFactor) -> HD(A, B) as densifyFactor -> 0.0
The default approximation is exact or close enough for a large subset of useful cases.
A = LINESTRING (0 0, 100 0, 10 100, 10 100)
B = LINESTRING (0 100, 0 10, 80 10)
DHD(A, B) = 22.360679774997898
HD(A, B) ~= 47.8