我正在使用Google地图生成行车路线。我希望有一个功能可以根据经过的时间和谷歌的总时间来估计某人在路线中的位置,然后放下一个引脚(可能是一个移动的引脚)来估算它们的位置。 / p>
我知道如何在Google中生成地图,但那是关于我的知识限制的地方。如何将销钉放在大约的位置。
我在考虑将总时间转换为秒,将经过时间转换为秒,然后除以得到路线上完成的百分比。如何将针脚放到路径位置?此外,我可以移动引脚每隔30 - 60秒更新一次吗?
答案 0 :(得分:0)
地图结果的持续时间属性已经过了几秒钟。考虑到这一点,从某种意义上说,您可以遵循这条路线 - >腿 - >步骤持续时间,让您大致了解每个步骤的行程距离。
既然你已经知道每个步骤的行程有多远的粗略概念,你可以与经过的时间进行比较,看看他们应该走哪一步。在您验证了正确的步骤后,您可以使用步骤lat_lngs
放置标记。 lat_lngs
是在该步骤中传递的点数组,因此您可以根据经过的时间与他们应该开始步骤和时间的时间相比计算出lat_lng
放置标记的位置什么时候他们应该完成它。
这里有一些代码不会在您的应用程序上运行,并且不包含任何实际的经过时间逻辑,因此最好将其视为伪代码:
// route is a directionsService (google.maps.DirectionsService()) result
route = response.routes[0];
route.legs.forEach(function(leg) {
var counter = 0;
leg.steps.forEach(function(step) {
counter = counter + step.duration.value;
console.log("Route progress in seconds: " + counter);
if (elapsed >= counter) {
// percent would take the beginning and end time for the step
// and compare it to the elapsed duration to get a percentage
// that would be used to get the index of the appropriate lat_lng
var marker = new google.maps.Marker({
position: step.lat_lngs[percent],
map: map,
title: "Current Location"
});
}
});
});
您必须创建自己的逻辑来实际更新地图等,但希望这是一个不错的起点。