Als*_*ket 1 php euclidean-distance
我有这个功能的问题:
function encludean_method($lat1,$lon1,$lat2,$lon2)
{
$x1 = $lat1;
$y1 = $lon1;
$x2 = $lat2;
$y2 = $lon2;
$x = ( pow($x2,2) - pow($x1,2));
$y = ( pow($y2,2) - pow($y1,2));
$distance = (sqrt($x + $y));
return $distance;
}
Run Code Online (Sandbox Code Playgroud)
当我用一些值调用上面的函数时的问题
(1.57454123333,103.6200516333,1.57483825,103.619484475)
Run Code Online (Sandbox Code Playgroud)
它返回NaN.任何人都可以告诉我为什么NaN返回以及如何解决它?
$ x和$ y可以假设负值(实际上确实发生在你的例子中),总共产生$ x + $ y的负表达式.我不确定你所做的是否正确,不正确的版本更像是:
$x1 = $lat1;
$y1 = $lon1;
$x2 = $lat2;
$y2 = $lon2;
$x = $x2 - $x1;
$y = $y2 - $y1;
$distance = (sqrt(pow($x, 2) + pow($y, 2)));
return $distance;
Run Code Online (Sandbox Code Playgroud)
通过在计算平方根之前进行平方,您可以保证仅对正值进行操作.
| 归档时间: |
|
| 查看次数: |
659 次 |
| 最近记录: |