&& !(e1.next.next.coordinate.equals3D(e2.coordinate) && Math.abs(e1.next.coordinate.x) == DATELINE && Math.abs(e2.coordinate.x) == DATELINE) ) { connect(e1, e2);
/** * * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated modifiable */ public Object parse(ElementInstance instance, Node node, Object value) throws Exception { CoordinateSequence coordinates = (CoordinateSequence) node.getChildValue(KML.coordinates.getLocalPart()); // If the last point is not the same as the first point jts will throw an error // where as other KML readers like google earth just auto close the polygon so // here we manually fix it even though it's invalid so KMls that work elsewhere work here Coordinate firstCoord = coordinates.getCoordinate(0); Coordinate lastCoord = coordinates.getCoordinate(coordinates.size() - 1); if (!firstCoord.equals3D(lastCoord)) { List<Coordinate> updateCoords = new ArrayList<>(Arrays.asList(coordinates.toCoordinateArray())); updateCoords.add((Coordinate) firstCoord.clone()); coordinates = csFactory.create(updateCoords.toArray(new Coordinate[0])); } return geometryFactory.createLinearRing(coordinates); }
public void testPosList3D() throws Exception { document.appendChild(GML3MockData.linearRingWithPosList3D(document, null, true)); LinearRing line = (LinearRing) parse(); assertNotNull(line); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(line.getPointN(0).getCoordinate())); assertTrue(new Coordinate(3d, 4d, 20d).equals3D(line.getPointN(1).getCoordinate())); assertTrue(new Coordinate(5d, 6d, 30d).equals3D(line.getPointN(2).getCoordinate())); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(line.getPointN(3).getCoordinate())); } }
public void testPos3D() throws Exception { document.appendChild(GML3MockData.linearRingWithPos3D(document, null, true)); LinearRing line = (LinearRing) parse(); assertNotNull(line); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(line.getPointN(0).getCoordinate())); assertTrue(new Coordinate(3d, 4d, 20d).equals3D(line.getPointN(1).getCoordinate())); assertTrue(new Coordinate(5d, 6d, 30d).equals3D(line.getPointN(2).getCoordinate())); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(line.getPointN(3).getCoordinate())); }
public void testPos3D() throws Exception { document.appendChild(GML3MockData.lineStringWithPos3D(document, null)); LineString line = (LineString) parse(); assertNotNull(line); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(line.getPointN(0).getCoordinate())); assertTrue(new Coordinate(3d, 4d, 20d).equals3D(line.getPointN(1).getCoordinate())); }
public void testPosList3D() throws Exception { document.appendChild(GML3MockData.lineStringWithPosList3D(document, null)); LineString line = (LineString) parse(); assertNotNull(line); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(line.getPointN(0).getCoordinate())); assertTrue(new Coordinate(3d, 4d, 20d).equals3D(line.getPointN(1).getCoordinate())); }
/** * Check if a coordinate array contains a specific coordinate. * * The equality is done in 3D (z values ARE checked). * * @param coords * @param coord * @return */ public static boolean contains3D(Coordinate[] coords, Coordinate coord) { for (Coordinate coordinate : coords) { if (coordinate.equals3D(coord)) { return true; } } return false; }
public void testPolygon3D() throws Exception { GML3MockData.polygon3D(document, document, true); Polygon polygon = (Polygon) parse(); assertNotNull(polygon); LineString exterior = polygon.getExteriorRing(); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(exterior.getCoordinateN(0))); LineString interior = polygon.getInteriorRingN(0); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(interior.getCoordinateN(0))); }
public void testPolygonPosList3D() throws Exception { GML3MockData.polygonWithPosList3D(document, document, true); Polygon polygon = (Polygon) parse(); assertNotNull(polygon); LineString exterior = polygon.getExteriorRing(); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(exterior.getCoordinateN(0))); LineString interior = polygon.getInteriorRingN(0); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(interior.getCoordinateN(0))); }
public void testReadLine() throws Exception { SimpleFeatureCollection fc = dataStore.getFeatureSource(tname(getLine3d())).getFeatures(); try (SimpleFeatureIterator fr = fc.features()) { assertTrue(fr.hasNext()); LineString ls = (LineString) fr.next().getDefaultGeometry(); // 1 1 0, 2 2 0, 4 2 1, 5 1 1 assertEquals(4, ls.getCoordinates().length); assertTrue(new Coordinate(1, 1, 0).equals3D(ls.getCoordinateN(0))); assertTrue(new Coordinate(2, 2, 0).equals3D(ls.getCoordinateN(1))); assertTrue(new Coordinate(4, 2, 1).equals3D(ls.getCoordinateN(2))); assertTrue(new Coordinate(5, 1, 1).equals3D(ls.getCoordinateN(3))); } }
public void test3D() throws Exception { GML3MockData.multiPolygon3D(document, document); MultiPolygon multiPolygon = (MultiPolygon) parse(); assertNotNull(multiPolygon); assertEquals(2, multiPolygon.getNumGeometries()); Polygon polygon = (Polygon) multiPolygon.getGeometryN(0); LineString exterior = polygon.getExteriorRing(); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(exterior.getCoordinateN(0))); LineString interior = polygon.getInteriorRingN(0); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(interior.getCoordinateN(0))); }
public void testBBOX3DReadLine() throws Exception { BBOX3D bbox3d = FF.bbox("", new ReferencedEnvelope3D(2, 3, 1, 2, 0, 1, crs)); SimpleFeatureCollection fc = dataStore.getFeatureSource(tname(getLine3d())).getFeatures(bbox3d); try (SimpleFeatureIterator fr = fc.features()) { assertTrue(fr.hasNext()); LineString ls = (LineString) fr.next().getDefaultGeometry(); // 1 1 0, 2 2 0, 4 2 1, 5 1 1 assertEquals(4, ls.getCoordinates().length); assertTrue(new Coordinate(1, 1, 0).equals3D(ls.getCoordinateN(0))); assertTrue(new Coordinate(2, 2, 0).equals3D(ls.getCoordinateN(1))); assertTrue(new Coordinate(4, 2, 1).equals3D(ls.getCoordinateN(2))); assertTrue(new Coordinate(5, 1, 1).equals3D(ls.getCoordinateN(3))); } }
public void test3D() throws Exception { GML3MockData.multiLineString3D(document, document); MultiLineString multiLineString = (MultiLineString) parse(); assertNotNull(multiLineString); assertEquals(2, multiLineString.getNumGeometries()); LineString line = (LineString) multiLineString.getGeometryN(0); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(line.getPointN(0).getCoordinate())); assertTrue(new Coordinate(3d, 4d, 20d).equals3D(line.getPointN(1).getCoordinate())); }
public void testPos3D() throws Exception { GML3MockData.point3D(document, document); Point p = (Point) parse(); assertNotNull(p); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(p.getCoordinate())); assertTrue(p.getUserData() instanceof CoordinateReferenceSystem); }
public void test3D() throws Exception { GML3MockData.multiPoint3D(document, document); MultiPoint multiPoint = (MultiPoint) parse(); assertNotNull(multiPoint); assertEquals(4, multiPoint.getNumPoints()); Point p = (Point) multiPoint.getGeometryN(0); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(p.getCoordinate())); }
public static boolean contains(Coordinate[] coords, Coordinate coord) { for (Coordinate coordinate : coords) { if (Double.isNaN(coord.z)) { return coordinate.equals(coord); } else { return coordinate.equals3D(coord); } } return false; }
public void testClone() { Coordinate c = new Coordinate(100.0, 200.0, 50.0); Coordinate clone = (Coordinate) c.clone(); assertTrue(c.equals3D(clone)); }
public static double distancePointSegment(Coordinate p, Coordinate A, Coordinate B) { if (A.equals3D(B)) return distance(p, A);
/** * Tests that z values are interpolated * */ public void testComputeZ() { Geometry linearGeom = read("LINESTRING (0 0 0, 10 10 10)"); LengthIndexedLine indexedLine = new LengthIndexedLine(linearGeom); double projIndex = indexedLine.project(new Coordinate(5, 5)); Coordinate projPt = indexedLine.extractPoint(projIndex); // System.out.println(projPt); assertTrue(projPt.equals3D(new Coordinate(5, 5, 5))); }