Select语句不返回距离值

时间:2015-09-29 01:22:47

标签: mysql math gps coordinates haversine

我正在尝试计算并返回某些点之间的距离。

这是我正在使用的完整MYSQL语句。我尝试了这个公式的多个版本,它们都有类似的结果:返回零结果。对我做错了什么的想法?

SET @origLat = 37.386337;
SET @origLon = -122.085823;
SET @dist = 20;

SELECT user_id, user_lat, user_lon, 3956 * 2 * 
          ASIN(SQRT( POWER(SIN((@origLat - abs(user_lat))*pi()/180/2),2)
          +COS(@origLat*pi()/180 )*COS(abs(user_lat)*pi()/180)
          *POWER(SIN((@origLon-(user_lon))*pi()/180/2),2))) 
          AS distance 
FROM myTable
WHERE user_lon BETWEEN (@origLon-@dist/abs(cos(radians(@origLat))*69))  AND (@origLon+@dist/abs(cos(radians(@origLat))*69))  AND 
      user_lat BETWEEN (@origLat-(@dist/69))  AND (@origLat+(@dist/69)) 
      HAVING distance < @dist ORDER BY distance LIMIT 100

这是我的表格中的内容。

enter image description here

仅运行我的SELECT子句显示Distance返回nil。

enter image description here

0 个答案:

没有答案