php中两个坐标之间的距离使用haversine
Posted
技术标签:
【中文标题】php中两个坐标之间的距离使用haversine【英文标题】:Distance between two coordinates in php using haversine 【发布时间】:2013-02-28 16:26:21 【问题描述】:我环顾四周,看到提到用半正弦公式来确定两个坐标 (lat1, lng1) 和 (lat2, lng2) 之间的距离。
我已经实现了这段代码:
function haversineGreatCircleDistance(
$latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000)
// convert from degrees to radians
$latFrom = deg2rad($latitudeFrom);
$lonFrom = deg2rad($longitudeFrom);
$latTo = deg2rad($latitudeTo);
$lonTo = deg2rad($longitudeTo);
$latDelta = $latTo - $latFrom;
$lonDelta = $lonTo - $lonFrom;
$angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) +
cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2)));
return $angle * $earthRadius;
我正在尝试确定:
1) 这将返回什么单位? (目标是英尺)
2) 这个等式写对了吗?
例如这两点之间的距离应该是多少?
(32.8940695525,-96.7926336453)和(33.0642604502,-96.8064332754)?
我从上面的公式得到 18968.0903312。
谢谢!
【问题讨论】:
【参考方案1】:1) 这将返回什么单位? (目标是英尺)
你提供地球半径的任何单位。
2) 这个等式写对了吗?
测试一下。您可以将结果与现有的 Haversine 公式实现进行比较,例如 this one。
【讨论】:
既然我将地球的半径设置为 $earthRadius = 6371000,那么单位是米吗?以上是关于php中两个坐标之间的距离使用haversine的主要内容,如果未能解决你的问题,请参考以下文章