/** * Append a point to the segment * * @param point to append */ public void addPoint(GPXTrackPoint point) { if (!points.isEmpty()) { // Update length of track length += GPSHelperFunctions.getDistance(points.get(points.size() - 1), point); // Update max speed double speed = GPSHelperFunctions.getSpeed(points.get(points.size() - 1), point); point.setSpeed(speed); if (maxSpeed < speed) { maxSpeed = speed; } } // Update elevation updateEleavtion(point); points.add(point); }
/** * Append connected points to the segment. * * @param points to append */ public void addPoint(List<GPXTrackPoint> points) { // Update length of track: // Update connection between old points and new points if (!points.isEmpty() && !this.points.isEmpty()) { length += GPSHelperFunctions.getDistance(this.points.get(this.points.size() - 1), points.get(0)); // Update max speed double speed = GPSHelperFunctions.getSpeed(this.points.get(this.points.size() - 1), points.get(0)); points.get(0).setSpeed(speed); if (maxSpeed < speed) { maxSpeed = speed; } } if (!points.isEmpty()) { if (points.size() == 1) { addPoint(points.get(0)); } else { updateEleavtion(points.get(0)); for (int i = 1; i < points.size(); i++) { // Add length of new points length += GPSHelperFunctions.getDistance(points.get(i - 1), points.get(i)); // Update max speed double speed = GPSHelperFunctions.getSpeed(points.get(i - 1), points.get(i)); points.get(i).setSpeed(speed); if (maxSpeed < speed) { maxSpeed = speed; } // update elevation updateEleavtion(points.get(i)); } } } this.points.addAll(points); }
/** @return time difference between first and last point of segment */ public Period getPeriod() { return GPSHelperFunctions.getTimeDifference(points.get(0), points.get(points.size() - 1)); }