使用 MySQL 查找附近的位置
2015-03-16 16:24
302 查看
使用 MySQL 查找附近的位置
以下 SQL 语句将会在与坐标 37, -122 相距 25 英里的半径范围内查找最近的 20 个位置。该语句根据行的纬度/经度以及目标纬度/经度计算距离,然后只请求距离值小于 25 的行,最后再按距离对整个查询进行排序,并将查询结果限制为只显示 20 个。要按公里而非英里进行搜索,请将 3959 替换为 6371。
其中 37 和 -122 为经纬度,实际代码业务流程放当前用户的实际动态数据。
以下 SQL 语句将会在与坐标 37, -122 相距 25 英里的半径范围内查找最近的 20 个位置。该语句根据行的纬度/经度以及目标纬度/经度计算距离,然后只请求距离值小于 25 的行,最后再按距离对整个查询进行排序,并将查询结果限制为只显示 20 个。要按公里而非英里进行搜索,请将 3959 替换为 6371。
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
其中 37 和 -122 为经纬度,实际代码业务流程放当前用户的实际动态数据。
相关文章推荐
- 使用 MySQL 查找附近的位置
- 使用 MySQL 查找附近的位置
- 使用Http请求 查找指定位置附近的景点(google 地图)
- 使用HTTP请求 查找指定位置附近的景点(GOOGLE 地图)
- iphone--使用HTTP请求 查找指定位置附近的景点(GOOGLE 地图)
- 使用boost查找区分大小写查找,查找一个字符串在另外一个字符串的位置,返回索引。
- exe程序运行出错退出,使用windbg查找出错位置
- 【捷哥浅谈PHP】第三弹---使用二分查找法查找数组中的元素位置
- 使用MySQL自身日志功能查找慢查询
- MySQL中使用like查找汉字的问题 乱码或者准确性不足问题
- mysql data文件夹位置查找
- 【Mysql基础】使用limit限制结果集的位置和大小
- 查找使用CharacterController的人物移动位置出错的问题
- 浅谈PHP第三弹---使用二分查找法查找数组中的元素位置
- 我使用过的Linux命令之whereis - 查找命令的位置
- php根据二分查找法从普通csv文件中获取ip的地理位置(效率比使用mysql提高近800倍)
- 使用命令实现IP地理位置的批量查找
- 使用SQL语句查询Mysql日志存放位置
- C++算法库学习__std::sort__对 vector进行排序_排序后就可以进行使用std::lower_bound进行二分查找(查找第一个大于等于指定值的迭代器的位置)__std::unique