我正在使用 hasrsine 查询来提取最接近移动应用程序提供的纬度/经度的位置。
查询如下所示:
SELECT *,(((acos(sin(($latitude *pi()/180)) * sin((`lat`*pi()/180))+cos(($latitude *pi()/180)) * cos((`lat`*pi()/180))* cos((($longitude - `lon`)*pi()/180))))*180/pi())*60*1.1515) AS dist_x
FROM `work_places`
HAVING dist_x <= '1'
ORDER BY dist_x ASC
LIMIT 10
这工作得很好,我得到的正是我应该得到的位置。
问题在于将 dist_x 转换为用户可读的内容。现在,假设 dist_x 读取为:0.00996273036944(floatval 和字符串显示相同,因此可以正确转换)
由于查询是在 1 英里范围内搜索,因此我试图将其转换为英尺,因此我将 dist_x 除以 5280。
$distance = (float)( $dist_x / 5280 );
我得到的是 $distance = 1.88688075179E-6
我究竟做错了什么?