【问题标题】:NAN in calculating distance between two PointNAN在计算两点之间的距离
【发布时间】:2017-06-28 09:21:35
【问题描述】:

我在两点之间的距离计算中使用了半正弦公式。 有时结果是来了。有时它得到了 NAN 结果。请帮助 这是我的代码

function distanceCalculation($point1_lat, $point1_long, $lat, $lng, $unit = 'km', $decimals = 3)
    {

        $degrees = rad2deg(acos((sin(deg2rad($point1_lat)) * sin(deg2rad($lat))) + (cos(deg2rad($point1_lat)) * cos(deg2rad($lat)) * cos(deg2rad($point1_long - $lng)))));


        switch ($unit) {
            case 'km':
                $distance = $degrees * 111.13384;
                break;
            case 'mi':
                $distance = $degrees * 69.05482;
                break;
            case 'nmi':
                $distance = $degrees * 59.97662;
        }
        return round($distance, $decimals);


    }

【问题讨论】:

    标签: php gps latitude-longitude


    【解决方案1】:
    function isValid($arg = 0) 
    {
        return (is_nan($arg) || is_infinite($arg))? 0 :$arg;
    }
    
    return isValid(round($distance, $decimals));
    

    使用这个函数检查 is_nan 和 is_infinite。

    【讨论】:

      猜你喜欢
      • 2010-10-30
      • 2011-04-23
      • 2014-11-14
      • 1970-01-01
      • 2014-05-06
      • 2017-08-27
      相关资源
      最近更新 更多