是否可以根据计算出的路线的时间确定距离行程

时间:2013-12-31 20:01:22

标签: here-api

根据诺基亚地图中返回的路线,是否可以使用返回路线的速度限制来确定基于时间的行驶距离。我想在lat和long中找到沿返回路线的位置。 换句话说,我想从一个已知点开始,沿着路线行驶60分钟,并知道我将要到达的地步。然后可以在整个路线上重复此操作。

1 个答案:

答案 0 :(得分:1)

记录您已计算的时间。对于timeTravelled -

  • 减去每个leg的时间,直到你当前的一段时间。
  • 在当前行程中,减去每个manuever的时间,直到您使用当前的操作员
  • 在当前的操纵手柄上,取当前shape的第N个坐标,以便剩余的时间用于计算

没有时间与shape信息相关联,因此这里的假设是每个坐标均匀分布。因此,如果您需要占当前管理员40%的时间,那么您可以假设您已覆盖shape的40%。

这样的事情:

 function estimateLocation (myRoute, timeTravelled){
      var timeSoFar = 0,
      currentLeg = 0,
      currentManeuver = 0;

    while ( timeSoFar +  myRoute.legs[currentLeg].travelTime < timeTravelled){
      timeSoFar +=  myRoute.legs[currentLeg].travelTime;
      currentLeg++
    }

    while ( timeSoFar +  myRoute.legs[currentLeg].maneuvers[currentManeuver].travelTime < timeTravelled){
      timeSoFar +=  myRoute.legs[currentLeg].maneuvers[currentManeuver].travelTime;
      currentManeuver++;
    }

    console.log(currentLeg, currentManeuver);


    var shapeIndex = Math.floor((timeTravelled - timeSoFar) *  myRoute.legs[currentLeg].maneuvers[currentManeuver].shape.getLength()/ myRoute.legs[currentLeg].maneuvers[currentManeuver].travelTime);
    return (myRoute.legs[currentLeg].maneuvers[currentManeuver].shape.get(shapeIndex));
    }