【问题标题】:How to calculate distance (not displacement) between two gps cordinates如何计算两个gps坐标之间的距离(不是位移)
【发布时间】:2018-05-03 08:09:36
【问题描述】:

我有当前的经纬度和车辆的速度,并且想获得靠近我当前位置的点的距离, 但来自:

Haversine 公式 - R. W. Sinnott,“Haversine 的美德” - 获取距离的 SQL 查询。

我只得到位移而不是距离。我想通过公路(不是空中)获得路线距离。 还尝试了距离计算 JSON API GOOGLE API 但是在循环计算超过 10 个坐标时,通过 REST API 在移动平台上提供结果需要花费太多时间。

是否有人可以通过查找两个基于 gps 的点之间的距离来帮助我提供最佳结果。 下一篇:我也在寻找(东北)或度数方面的点方向。

【问题讨论】:

  • 试试 BING API ??
  • 如果您只对行驶距离感兴趣,为什么还要提及 Haversine 的东西(适用于包括大圈距离在内的航空旅行)?
  • 您是否查看过Google Distance API? 的文档... 似乎是该站点上的一个完整示例。您正在查找方向 (maps.googleapis.com/maps/api/directions/...) 而不是距离信息 (maps.googleapis.com/maps/api/distancematrix/json)。我必须相信距离的东西比详细的指示反应更快。
  • +1 Zipzit,我也使用link 获得结果,但第一次需要大约 1200 毫秒。然后下次打就可以了。我只能检索距离值吗?所以可能会很快给出结果。

标签: php android google-maps gps google-distancematrix-api


【解决方案1】:
"SELECT userName, (
                6371 * ACOS( COS( RADIANS(  " . $currentLatitude . " ) ) * COS( RADIANS(location.latitude) ) * COS( RADIANS(location.longitude) - RADIANS( " . $currentLongitude . " ) ) + 
                                SIN( RADIANS(  " . $currentLatitude . " ) ) * SIN( RADIANS(location.latitude) ) )
                                ) `distance` "

这会计算我保存在数据库中的点与我在 $currentLatitude 和 $currentLongitude 中提供的距离的距离。对我来说效果很好。

【讨论】:

  • 感谢@Darshan,我在 SQL 查询中使用了相同的方法,但它只会给你位移(不是道路距离)。我正在寻找以米为单位的公路距离。
猜你喜欢
  • 1970-01-01
  • 2010-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-01
  • 2020-02-12
相关资源
最近更新 更多