我想在PHP中计算经纬度2点之间的距离(不在ANDROID中)**我已经阅读了关于**哈弗辛公式和余弦球面定律计算两点之间的距离,但我的主要动机是在米中获得2点之间的最佳位置差。
例如两个设备彼此相邻,并且android设备正在向服务器发送位置,因此我们需要取每个设备的位置并计算这两个设备之间的最小距离(以米为单位)。设备相邻放置时,服务器计算结果应在2-3米内
那么,当设备在服务器端相邻时,计算两个设备之间以米为单位的最小距离的可能方法是什么
注:我需要计算距离,我得到的公里或英里,这是很大的差异,当设备彼此相邻。哈弗斯公式和球面余弦定律是我找到的最好的计算方法,但我需要在这些公式中做更多的工作来得到两个设备之间的最小差异。Android设备上没有。这个问题与这个问题无关
我在PHP中使用了Haversine公式来计算两个地理坐标之间的距离(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;
}
我想,如果在长度和纬度上有足够的精度将会得到一个结果,乘以1000可能是有用的,以米为单位的距离测量,对吗?
根据https://gis.stackexchange.com/questions/8650/measuring-accuracy-of-latitude-and-longitude,小数点后第5位的值高达1.1 m:它可以区分树木。