关于附近的人算法,求指导惑

MySql 码拜 6年前 (2016-02-17) 430次浏览
在做附近的人,找了一些算法,发现一个貌似挺厉害的,是这么说的
***************************************************************************
接下来推出一个原创计算方法,查询速度是mysql空间数据库算法的2倍
$lng是你的经度,$lat是你的纬度
SELECT lng,lat,
(POWER(MOD(ABS(lng – $lng),360),2) + POWER(ABS(lat – $lat),2)) AS distance
FROM `user_location`
ORDER BY distance LIMIT 100
经测试,在100万数据中取前100条数据只需2.5秒左右。
****************************************************************************
本人也试了试,确实可以,但是就是不理解这是什么算法,以及算出来的distance 是个什么东西,求精通这方面的高手能指点
解决方案

35

POWER(X,Y)
返回X的Y次幂
ABS(X)
取绝对值
MOD(N,M)
返回N除以M后的余数
POWER(MOD(ABS(lng – $lng),360),2) + POWER(ABS(lat – $lat),2)
其实就是一个三角函数。
计算出了两点之间的距离的平方。

5

直角三角形
c平方 = a平方 + b平方

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于附近的人算法,求指导惑
喜欢 (0)
[1034331897@qq.com]
分享 (0)