@Test public void linearRingFromOrdinates() throws Exception { double[] closedOrdinates = new double[] {1, 1, 1, 2, 2, 2, 2, 1, 1, 1}; double[] openOrdinates = Arrays.copyOf(closedOrdinates, closedOrdinates.length - 2); LinearRing ring = builder.linearRing(openOrdinates); // ring should be closed even though ordinate sequence is not assertTrue(ring.isClosed()); assertCoordinates(ring.getCoordinates(), closedOrdinates, 2); }
@Test public void linearRingZFromOrdinates() throws Exception { double[] closedOrdinates = new double[] { 1, 1, -1, 1, 2, -2, 2, 2, -2, 2, 1, -1, 1, 1, -1 }; double[] openOrdinates = Arrays.copyOf(closedOrdinates, closedOrdinates.length - 3); LinearRing ring = builder.linearRingZ(openOrdinates); // ring should be closed even though ordinate sequence is not assertTrue(ring.isClosed()); assertCoordinates(ring.getCoordinates(), closedOrdinates, 3); }
private void checkClosedRing(LinearRing ring) { if (ring.isEmpty()) return; if (! ring.isClosed() ) { Coordinate pt = null; if (ring.getNumPoints() >= 1) pt = ring.getCoordinateN(0); validErr = new TopologyValidationError( TopologyValidationError.RING_NOT_CLOSED, pt); } }
public void testIsClosed() throws Exception { LineString l = (LineString) reader.read("LINESTRING EMPTY"); assertTrue(l.isEmpty()); assertTrue(! l.isClosed()); LinearRing r = geometryFactory.createLinearRing((CoordinateSequence)null); assertTrue(r.isEmpty()); assertTrue(r.isClosed()); MultiLineString m = geometryFactory.createMultiLineString( new LineString[] {l, r}); assertTrue(! m.isClosed()); MultiLineString m2 = geometryFactory.createMultiLineString( new LineString[] {r}); assertTrue(! m2.isClosed()); }