geometry-api-java
geometry-api-java copied to clipboard
Convex Hull of One Point
Expected: non-empty degenerate polygon. Actual: empty geometry. Is there a different way I should be calling the convex-hull operator? Relates SF4H-181.
private static class OnePointCursor extends GeometryCursor {
private boolean flag = true;
OnePointCursor() {}
public Geometry next() {
if (flag) {
flag = false;
return new Point(1.2, 3.4);
} else
return null;
}
public int getGeometryID() {
throw new UnsupportedOperationException();
}
}
@Test
public static void testOnePoint() {
GeometryCursor geomCursor = new OnePointCursor();
GeometryCursor convexResult = OperatorConvexHull.local().execute(geomCursor, true, null);
Geometry result = convexResult.next();
System.err.println(result); // {"rings":[]}
assertFalse(result.isEmpty()); // junit.framework.AssertionFailedError
}
cc @JordanMLee
works for me
A point polygon, or polygon which is degenerate to a line is not valid for many operations, so I am not sure what would you be able to use it for. The merge=false version of the operator returns point if convex hull is a point, or a line if convex hull is a line. The merging version should probably do the same.
Btw, I tested with Geometry-2.2.4 ; I believe Jordan tested with something else.