shellPart[currentPart] = true; currentPart++; currentPoint += polygon.getExteriorRing().getNumPoints(); shellPart[currentPart] = false; currentPart++; currentPoint += polygon.getInteriorRingN(holeIndex).getNumPoints();
public static double averageDistance(LineString to, Collection from) { double avg = 0; int n = 0; for (Iterator itr = from.iterator(); itr.hasNext(); ) { LineString ls = (LineString) itr.next(); n += ls.getNumPoints(); for (int i = 0; i < ls.getNumPoints(); i++) { avg += ls.getPointN(i).distance(to); } } return (avg / ((double) n)); }
public static Geometry pointN(Geometry arg0, Integer arg1) { if (!(arg0 instanceof LineString) || arg1 == null) return null; LineString _this = (LineString) arg0; if (arg1 < 0 || arg1 >= _this.getNumPoints()) return null; return _this.getPointN(arg1); }
public int getNumPoints() { return linearize().getNumPoints(); }
public void removeFromHash(Map<Coordinate, List<LineString>> nodes, LineString ls) { Coordinate key = ls.getCoordinateN(0); List<LineString> nodeList = nodes.get(key); if (nodeList != null) { nodeList.remove(ls); } key = ls.getCoordinateN(ls.getNumPoints() - 1); nodeList = nodes.get(key); if (nodeList != null) { nodeList.remove(ls); } }
public static double angleBetween(LineString l1, LineString l2, double tol) { LineSegment ls1 = new LineSegment( l1.getCoordinateN(l1.getNumPoints() - 2), l1.getCoordinateN(l1.getNumPoints() - 1)); LineSegment ls2 = new LineSegment(l2.getCoordinateN(0), l2.getCoordinateN(1)); return (angleBetween(ls1, ls2, tol)); }
public Graphable remove(Object obj) { LineString ls = (LineString) obj; // parent ecpexts a line segment return (super.remove( new LineSegment(ls.getCoordinateN(0), ls.getCoordinateN(ls.getNumPoints() - 1)))); }
public Graphable get(Object obj) { LineString ls = (LineString) obj; // parent ecpexts a line segment return (super.get( new LineSegment(ls.getCoordinateN(0), ls.getCoordinateN(ls.getNumPoints() - 1)))); }
public static double dy(LineString ls) { return (ls.getPointN(ls.getNumPoints() - 1).getY() - ls.getPointN(0).getY()); }
public static double dx(LineString ls) { return (ls.getPointN(ls.getNumPoints() - 1).getX() - ls.getPointN(0).getX()); }
private static void addElemInfo( List elemInfoList, MultiLineString lines, final int STARTING_OFFSET, final int GTYPE) { LineString line; int offset = STARTING_OFFSET; int LEN = D(GTYPE) + L(GTYPE); for (int i = 0; i < lines.getNumGeometries(); i++) { line = (LineString) lines.getGeometryN(i); addElemInfo(elemInfoList, line, offset); offset += (line.getNumPoints() * LEN); } }
public void testEncodeLite2D() throws Exception { LineString line = GML3MockData.lineStringLite2D(); Document doc = encode(line, GML.LineString); checkDimension(doc, GML.LineString.getLocalPart(), 2); checkPosListOrdinates(doc, 2 * line.getNumPoints()); }
public void testParse() throws Exception { GML3MockData.circleWithPosList(document, document); LineString lineString = (LineString) parse(); assertEquals(129, lineString.getNumPoints()); } }
/** * Tests encoding using a CoordinateArraySequence (which requires special logic to get the * dimension correct) * * @throws Exception */ public void testEncodeLineString() throws Exception { LineString line = GML3MockData.lineString(); Document doc = encode(line, GML.LineString); checkDimension(doc, GML.LineString.getLocalPart(), 2); checkPosListOrdinates(doc, 2 * line.getNumPoints()); }
public void testEncodeLite3D() throws Exception { LineString line = GML3MockData.lineStringLite3D(); Document doc = encode(line, GML.LineString); checkDimension(doc, GML.LineString.getLocalPart(), 3); checkPosListOrdinates(doc, 3 * line.getNumPoints()); }
/** * Test a long LineString to catch problems that only show up with large numbers of ordinates * * @throws Exception */ public void testEncode2DLong() throws Exception { LineString line = GML3MockData.lineStringLite2D(10); Document doc = encode(line, GML.LineString); checkDimension(doc, GML.LineString.getLocalPart(), 2); checkPosListOrdinates(doc, 2 * line.getNumPoints()); } }
@Test public void testDecimate3DLine() throws Exception { LineString ls = gf.createLineString( csf.create(new double[] {0, 0, 1, 1, 2, 1, 3, 3, 4, 4, 5, 5}, 3)); assertEquals(4, ls.getNumPoints()); Decimator d = new Decimator(identity, new Rectangle(0, 0, 5, 5), 0.8); d.decimateTransformGeneralize(ls, identity); assertEquals(4, ls.getNumPoints()); assertEquals(2, ls.getCoordinateSequence().getDimension()); }
public void testEncode2D() throws Exception { LineString line = GML3MockData.lineStringLite2D(); CoordinateSequence seq = line.getCoordinateSequence(); Document doc = encode(seq, GML.posList); checkPosListOrdinates(doc, 2 * line.getNumPoints()); }
public void testEncode3D() throws Exception { LineString line = GML3MockData.lineStringLite3D(); CoordinateSequence seq = line.getCoordinateSequence(); Document doc = encode(seq, GML.posList); checkPosListOrdinates(doc, 3 * line.getNumPoints()); } }
public void testMultiCurve() throws Exception { Parser p = new Parser(gml); Object g = p.parse(GML3CurveParsingTest.class.getResourceAsStream("v3_2/multiCurve.xml")); assertThat(g, instanceOf(MultiCurve.class)); MultiCurve mc = (MultiCurve) g; assertEquals(TOLERANCE, mc.getTolerance()); LineString ls = (LineString) mc.getGeometryN(0); assertEquals(2, ls.getNumPoints()); assertEquals(new Coordinate(0, 0), ls.getCoordinateN(0)); assertEquals(new Coordinate(5, 5), ls.getCoordinateN(1)); CircularString cs = (CircularString) mc.getGeometryN(1); assertArrayEquals(new double[] {4, 0, 4, 4, 8, 4}, cs.getControlPoints(), 0d); } }