@Override public PointList fetchWayGeometry(int mode) { if (pointList.getSize() == 0) return PointList.EMPTY; // due to API we need to create a new instance per call! if (mode == 3) return pointList.clone(false); else if (mode == 1) return pointList.copy(0, pointList.getSize() - 1); else if (mode == 2) return pointList.copy(1, pointList.getSize()); else if (mode == 0) { if (pointList.getSize() == 1) return PointList.EMPTY; return pointList.copy(1, pointList.getSize() - 1); } throw new UnsupportedOperationException("Illegal mode:" + mode); }
@Test public void testSimplifyCheckPointCount() { PointList pointList = new PointList(); pointList.parse2DJSON(points1); DouglasPeucker dp = new DouglasPeucker().setMaxDistance(.5); assertEquals(32, pointList.getSize()); dp.simplify(pointList); assertEquals(20, pointList.getSize()); assertFalse(pointList.toString(), pointList.toString().contains("NaN")); pointList.clear(); pointList.parse2DJSON(points1); dp.simplify(pointList, 0, pointList.size() -1); assertEquals(20, pointList.getSize()); pointList.clear(); pointList.parse2DJSON(points1); int removed1 = dp.simplify(pointList.copy(10, 20)); pointList.clear(); pointList.parse2DJSON(points1); int removed2 = dp.simplify(pointList, 10, 19); assertEquals(removed1, removed2); }
@Override public PointList fetchWayGeometry(int mode) { if (pointList.getSize() == 0) return PointList.EMPTY; // due to API we need to create a new instance per call! if (mode == 3) return pointList.clone(false); else if (mode == 1) return pointList.copy(0, pointList.getSize() - 1); else if (mode == 2) return pointList.copy(1, pointList.getSize()); else if (mode == 0) { if (pointList.getSize() == 1) return PointList.EMPTY; return pointList.copy(1, pointList.getSize() - 1); } throw new UnsupportedOperationException("Illegal mode:" + mode); }
@Override public PointList fetchWayGeometry(int mode) { if (pointList.getSize() == 0) return PointList.EMPTY; // due to API we need to create a new instance per call! if (mode == 3) return pointList.clone(false); else if (mode == 1) return pointList.copy(0, pointList.getSize() - 1); else if (mode == 2) return pointList.copy(1, pointList.getSize()); else if (mode == 0) { if (pointList.getSize() == 1) return PointList.EMPTY; return pointList.copy(1, pointList.getSize() - 1); } throw new UnsupportedOperationException("Illegal mode:" + mode); }
@Override public PointList fetchWayGeometry( int mode ) { if (pointList.getSize() == 0) return PointList.EMPTY; // due to API we need to create a new instance per call! if (mode == 3) return pointList.clone(false); else if (mode == 1) return pointList.copy(0, pointList.getSize() - 1); else if (mode == 2) return pointList.copy(1, pointList.getSize()); else if (mode == 0) { if (pointList.getSize() == 1) return PointList.EMPTY; return pointList.copy(1, pointList.getSize() - 1); } throw new UnsupportedOperationException("Illegal mode:" + mode); }