Php 如何获得两对经纬度之间几米的距离

Php 如何获得两对经纬度之间几米的距离,php,google-maps,navigation,geolocation,Php,Google Maps,Navigation,Geolocation,我想用PHP(非ANDROID)**计算两个经纬度点之间的距离,我读过**哈弗斯公式和球余弦定律来计算两点之间的距离,但我的主要动机是获得两个点之间以米为单位的最佳位置差 例如两台设备相邻放置,android设备正在向服务器发送位置,因此我们需要获取每个设备的位置,并以米为单位计算这两台设备之间的最小距离。计算后的服务器结果应与设备相邻放置时的2-3米相同 那么,当服务器端的两个设备相邻时,计算两个设备之间最小距离(以米为单位)的可能方法是什么 注意:我需要计算以公里或英里为单位的距离,当设备相

我想用PHP(非ANDROID)**计算两个经纬度点之间的距离,我读过**哈弗斯公式和球余弦定律来计算两点之间的距离,但我的主要动机是获得两个点之间以米为单位的最佳位置差

例如两台设备相邻放置,android设备正在向服务器发送位置,因此我们需要获取每个设备的位置,并以米为单位计算这两台设备之间的最小距离。计算后的服务器结果应与设备相邻放置时的2-3米相同

那么,当服务器端的两个设备相邻时,计算两个设备之间最小距离(以米为单位)的可能方法是什么


注意:我需要计算以公里或英里为单位的距离,当设备相邻时,距离相差很大。哈弗森公式和球余弦定律是我发现的最好的计算方法,但我需要在这些公式中做更多的工作,以获得2台设备之间的最小差异。在Android设备上不是这样。这个问题与

无关,我在PHP中使用了哈弗森公式来计算两个地理坐标之间的距离(以km为单位):

// Haversine formula
function geoDistance($lon1, $lat1, $lon2, $lat2) {
    $R = 6371; // Radius of the earth in km
    $dLat = deg2rad($lat2 - $lat1);
    $dLon = deg2rad($lon2 - $lon1);
    $a = sin($dLat/2) * sin($dLat/2) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * sin($dLon/2) * sin($dLon/2);
    $c = 2 * atan2(sqrt($a), sqrt(1-$a));
    $d = $R * $c; // Distance in km

    return $d;
}
我想,在lon和lat上有足够的精度会产生一个乘以1000的结果,作为以米为单位的距离度量是有用的,对吗


根据第五位小数点后1.1米:它可以区分树木。

@KNeerajLal此问题适用于PHP服务器端,而不是应用程序android端。请阅读标记前的问题作为重复项,您是在寻找视线还是基于道路?你看过API中的距离矩阵部分了吗?@Takarii不是基于道路,我正在寻找解决方案,通过使用上述公式获得两台设备之间的最小距离,当两台设备相互放置时,距离应小于5米。这可能会起作用,但我使用了类似的方法,当2台设备放置时,距离不会小于5-10米设备彼此相邻。我还是会试试这个。你需要在lon和LAT中都有5个小数点的精度。这就是android设备生成位置的方式。看看28.5312119和77.2569046,它超过了5,我想如果我从最后一个位置删除一些,那么位置将不会像它应该的那样准确。请根据小数点后第五位的值高达1.1米:它可以区分树与树之间的差异。感谢您提供的上述链接,它的信息非常丰富,我需要尽可能减少差异。因此,我认为我需要使用超过5位的小数?