Example #1
0
  /**
   * 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);
  }
Example #2
0
  /**
   * 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);
  }
Example #3
0
 /** @return time difference between first and last point of segment */
 public Period getPeriod() {
   return GPSHelperFunctions.getTimeDifference(points.get(0), points.get(points.size() - 1));
 }