如何计算PHP中两个纬度和经度之间的行驶距离

时间:2016-07-13 18:04:19

标签: mysql google-maps

我有一个包含许多纬度和经度的数据库。 我需要通过相对于我可以手动设置的纬度和经度的距离按升序对所有纬度和经度进行排序。 我用一个公式来解决这个问题:

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance 
FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;

37和-122是纬度和经度,它将以有序的方式返回名为distance的字段中的所有值。 我的问题是,如果一个地方距离2公里但驾驶距离是11公里,那不是我的必需品。我需要一个基于谷歌地图的公式,它将计算并返回两个坐标之间的行驶距离。

1 个答案:

答案 0 :(得分:0)

你可以计算直线距离,你可以计算&#34;计算&#34;没有路由数据库/引擎的行驶距离。

如果您需要行驶距离,您可以使用Google directions API(对于单个路线,可能使用航点)或Google distance matrix API(可以为多个出发地/目的地提供结果)