Пример #1
0
  private TraverseResult doTraverse(State s0, TraverseOptions options, boolean back) {
    StreetVertex fromv = ((StreetVertex) this.fromv);

    if (!fromv.canTraverse(options)) {
      return tryWalkBike(s0, options, back);
    }

    Editor editor = s0.edit();
    double time = fromv.getLength() / options.speed;
    double weight = fromv.computeWeight(s0, options, time);
    editor.incrementWalkDistance(fromv.getLength());
    // time moves *backwards* when traversing an edge in the opposite direction
    editor.incrementTimeInSeconds((int) (back ? -time : time));
    return new TraverseResult(weight, editor.createState(), this);
  }
Пример #2
0
 @Override
 public void setElevationProfile(PackedCoordinateSequence elev) {
   ((StreetVertex) fromv).setElevationProfile(elev);
 }