Math 哈弗森公式-为什么是绝对值?

Math 哈弗森公式-为什么是绝对值?,math,haversine,Math,Haversine,我试着用哈弗森公式来计算,从纬度到经度的距离。出于某种原因,这只适用于北半球,我怀疑这是因为abs。删除绝对值后,代码工作正常。所以我想知道使用它的目的是什么 '(3956 * 2 * ASIN(SQRT( POWER(SIN((' . $latitude . ' - abs(r.latitude)) * pi()/180 / 2),2) + COS(' . $latitude . ' * pi()/180 ) * COS(abs(r.latitude) * pi()/180) * POW

我试着用哈弗森公式来计算,从纬度到经度的距离。出于某种原因,这只适用于北半球,我怀疑这是因为
abs
。删除绝对值后,代码工作正常。所以我想知道使用它的目的是什么

'(3956 * 2 * ASIN(SQRT( POWER(SIN((' . $latitude . ' - abs(r.latitude)) * 
pi()/180 / 2),2) + COS(' . $latitude . ' * pi()/180 ) * COS(abs(r.latitude) *  
pi()/180) * POWER(SIN((' . $longitude . '-r.longitude) *  pi()/180 / 2), 2) ))) 
< ' . $radius;
”(3956*2*ASIN(SQRT(功率(SIN)(“$latitude.”-abs(r.latitude))*
π()/180/2,2)+COS('.$latitude.'*pi()/180)*COS(abs(r.latitude)*
π()/180)*幂(SIN(('.$longitude.-r.longitude)*π()/180/2,2)))
< ' . $半径

纬度0是赤道,如果纬度非零,则必须指定它是北还是南。我猜惯例是北纬是正的,南纬是负的,所以,你不能有和
abs
。@HenriqueBarcelos我也是这么想的,但是根据(看幻灯片8),你需要绝对值没有符号纬度就无法知道你是北方还是南方,因为
SIN
是一个奇数函数,这意味着:
SIN(-x)=-SIN(x)