gpt4 book ai didi

java - 如何计算两个 gio 点(lat 和 lng)之间的距离?

转载 作者:行者123 更新时间:2023-11-29 03:16:17 24 4
gpt4 key购买 nike

我正在研究 ITS(智能交通系统)。所以我必须计算公交车站的 EAT(预计到达时间)。现在我有两个点(纬度,经度)的停止和车辆的位置。所以我必须计算距离。接下来我会获得速度,这样我就可以计算公交车站的到达时间。我的问题是,我正在使用这种方法来计算两点之间的距离,

private double distance(double lat1, double lon1, double lat2, double lon2, char unit) {

double theta = lon1 - lon2;
double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta));
dist = Math.acos(dist);
dist = rad2deg(dist);
dist = dist * 60 * 1.1515;
if (unit == 'K') {
dist = dist * 1.609344;
} else if (unit == 'N') {
dist = dist * 0.8684;
}
return (dist);

}

我在想的是,它计算两点之间的直线距离。它不会实时发生。因为车辆在公路上行驶。那么有没有更好的解决方案或算法来找出两个地方之间的距离。请任何人帮助我。

最佳答案

你是对的,计算两个地理位置的直接距离是不够的,因为路线通常不是直的。在这种情况下,Google map API 可以为您提供帮助。

您可以使用谷歌地图Direction Service .检查以下交通方式:

https://developers.google.com/maps/documentation/javascript/directions#TravelModes

当然,您还必须考虑公交车的停站时间和平均速度。由于公交车的速度并不总是相同的,因此您需要计算平均速度,并考虑交通信号灯和其他相关因素(甚至可能是交通堵塞?)。最好,如果你的预估时间也显示可能的延误并实时更新(当公交车堵车时,可以加上等待时间和延误时间)。

关于java - 如何计算两个 gio 点(lat 和 lng)之间的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26375138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com