-

MySQL实现附近经纬度排序

MySQL

现在很多手机软件都有附近距离的功能,如何通过MySQL数据库中的SQL实现呢?如何根据某点的经纬度对数据库中附近位置进行排序?怎样计算两个经纬度之间的具体距离?下面雷雪松带大家看看具体的SQL语句实现附近经纬度排序的写法。

SQL根据经纬度计算距离的公式,第一点经纬度:lng1 lat1,第二点经纬度:lng2 lat2,单位米:
[cc lang=”sql” escaped=”true”]round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)* pow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2)))*1000)[/cc]

完整的SQL语句,只需要替换第一个点的经纬度和第二个点的经纬度即可。
[cc lang=”sql” escaped=”true”]select * from table order by round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)* pow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2)))*1000) asc limit 10[/cc]

来源:MySQL实现附近经纬度排序

2 评论 “MySQL实现附近经纬度排序

    poeoo搜图 评论:
    2019年5月8日 下午10:21

    好文章!666,学习了

    东方小说阅读网 评论:
    2019年5月10日 下午2:34

    前排留名,先回再看。等了好久额的新文章。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注