您的位置:首页 > 数据库 > MySQL

mysql经纬度查询

2016-02-17 20:13 597 查看
1:直接计算计算指定坐标进行距离计算

select

latitude,longitude,ACOS(SIN((40.00537 * 3.1415) / 180 ) *SIN((latitude * 3.1415) / 180 ) +COS((40.00537 * 3.1415) / 180 ) * COS((latitude * 3.1415) / 180 ) *COS((116.47571 * 3.1415) / 180 - (longitude
* 3.1415) / 180 ) ) * 6380 as dis

from t_area_order order by dis

2:海量数据可以进行前置条件过滤,加条件过滤即可,经度纬度增加1度为111公里,即可以过滤出111公里以内的数据

select

latitude,longitude,ACOS(SIN((40.00537 * 3.1415) / 180 ) *SIN((latitude * 3.1415) / 180 ) +COS((40.00537 * 3.1415) / 180 ) * COS((latitude * 3.1415) / 180 ) *COS((116.47571 * 3.1415) / 180 - (longitude * 3.1415) / 180 ) ) * 6380 as dis

from t_area_order

where

latitude > 40.00537-1 and

latitude < 40.00537+1 and

longitude > 116.47571-1 and

longitude < 116.47571+1

order by dis

其他的检索方式可以扩展

以上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: