首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算两个gio点( lat和lng )之间的距离?

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

Stack Overflow用户
提问于 2014-10-15 13:33:31
回答 3查看 1.3K关注 0票数 1

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

代码语言:javascript
复制
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);

    }

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

EN

回答 3

Stack Overflow用户

发布于 2014-10-15 13:43:55

距离取决于公交车路线。

如果您的智能交通系统知道公交车路线,那么您可以使用该信息。

谷歌地图有这些公交路线吗?您可以使用Google Maps API向它询问从原点到目标点的运输路线,但您必须确定哪个选择是正确的(如果有)。

如果你的实际目标是确定预计到达时间,那么你需要的是运输时间表,而不是距离。(乘客需要等待公共汽车的到达,公共汽车可能会在某些站点等待与其他线路的会合,以此类推。)只要知道相关的总线线路,Google Maps API就可以提供帮助。

票数 2
EN

Stack Overflow用户

发布于 2014-10-15 14:01:26

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

你可以使用谷歌地图Direction Service。检查以下传输模式:

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

当然,你必须考虑到停车时间和公交车的平均速度。由于公交车不会总是有相同的速度,你需要计算平均速度,将红绿灯和其他相关因素考虑在内(可能是交通堵塞?)如果您的估计时间也显示可能的延迟并实时更新(当公交车将出现拥堵时,可以将等待时间与延迟时间相加),这将是最好的。

票数 2
EN

Stack Overflow用户

发布于 2018-04-20 01:11:25

您可以使用下面的LatLangTool方法

代码语言:javascript
复制
  public static Double getDistanceToLocation(SourceCordinate from, SourceCordinate to) {
        LatLng busDeparturePoint = new LatLng(from.latitude, from.longitude);
        LatLng busDestinationPoint = new LatLng(to.latitude, to.longitude);


        return LatLngTool.distance(busDeparturePoint, busDestinationPoint, LengthUnit.KILOMETER);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26375138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档