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