我需要一个帮助。我无法使用PHP计算完美距离。我在下面解释我的代码。
$latitudeTo=20.296599;
$longitudeTo=85.859779;
$latitude=20.296599;
$longitude=85.859779;
$distance=vincentyGreatCircleDistance($latitude,$longitude,$latitudeTo,$longitudeTo);
$dis=round($distance,2).'Km';
echo $dis;
function vincentyGreatCircleDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo){
$earthRadius=6371;
$latFrom = deg2rad($latitudeFrom);
$lonFrom = deg2rad($longitudeFrom);
$latTo = deg2rad($latitudeTo);
$lonTo = deg2rad($longitudeTo);
$lonDelta = $lonTo - $lonFrom;
$a = pow(cos($latTo) * sin($lonDelta), 2) +
pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2);
$b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta);
$angle = atan2(sqrt($a), $b);
return $angle * $earthRadius;
}
这里我试图计算两个lat long值之间的距离。这里我收到以下警告信息。
deg2rad() expects parameter 1 to be double, string given in
我得到的回音打印输出是9575.8Km
,这完全错了。我需要在这里计算正确的距离和警告信息应该删除。请帮助我。