使用vincentyGreatCircleDistance无法在PHP中计算完美距离

时间:2017-05-03 10:11:14

标签: php

我需要一个帮助。我无法使用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,这完全错了。我需要在这里计算正确的距离和警告信息应该删除。请帮助我。

0 个答案:

没有答案