没有三角函数的SQL距离查询
发布时间:2021-03-06 20:05:10 所属栏目:MsSql教程 来源:网络整理
导读:我有一个SQLite数据库,它不支持trig函数.与第二个lat,lng对相比,我想按距离对我的表中的一组lat,lng对进行排序.我熟悉用于按距离分类lat,lng对的标准hasrsine距离公式. 在这种情况下,我并不特别关心精度,我的点被远距离分开,所以我不介意通过将曲线视为直线来
|
我有一个SQLite数据库,它不支持trig函数.与第二个lat,lng对相比,我想按距离对我的表中的一组lat,lng对进行排序.我熟悉用于按距离分类lat,lng对的标准hasrsine距离公式. 在这种情况下,我并不特别关心精度,我的点被远距离分开,所以我不介意通过将曲线视为直线来舍入距离. 我的问题是,这种查询是否有普遍接受的公式?记住没有触发功能! 解决方法如果你的点在彼此的合理距离内(即不是在世界的一半,而不是在日期线上),你可以对纬度和经度之间的差异进行校正(因为经度较短,除赤道外) ),然后计算距离,好像地球是平坦的.由于您只想对值进行排序,您甚至不必使用平方根,只需添加差异的平方即可. 例如,@ lat和@lng是你当前的位置,2是差异修正: select * from Points order by (lat - @lat) * (lat - @lat) + ((lng - @lng) * 2) * ((lng - @lng) * 2) 您可以将特定纬度的差异校正计算为1 / cos(lat). Cees Timmerman想出了这个公式,它也适用于日期线: pow(lat-lat2,2) + pow(2 * min(abs(lon-lon2),360 - abs(lon-lon2)),2) (编辑:海洋资讯信息网_我爱站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 服务代理已备份,现在正在接收,但似乎没有处理
- 在多个参数和条件下检测SQL岛
- sql-server – 为什么UNIQUE约束只允许一个NULL?
- 使用.NET或MS SQL模拟MySql的密码()加密
- 高版本sql数据库备份还原低版本怎样实现?
- 数据库设计 – 在SQL中实现与多个参与约束的多对多关系
- SQL Server中怎么样实现数字辅助表?一文带你看懂
- 执行sp_executeSql以选择…到#table但不能选择临时表数据
- sql-server-2005 – ShareWebDb_log.ldf是97GB – 如何减少
- sql-server – 统计信息更新的样本大小的奇怪行为
站长推荐
- sql中order by和group by分别是什么?怎样使用?
- 有效地包含不在SQL查询的Group By中的列
- sql中go的作用是什么?一文带你了解go的用法
- sql-server – SQL Server遇到的前3个性能问题是
- sql-server – 如何判断为什么某个表上的插入很慢
- sql-server – 为什么SQL Server 2008在简单的SQ
- sql – 选择具有匹配标记的所有项目
- sql-server-2005 – 移动SQL 2000 32位数据库
- sql-server-2008 – SELECT/UPDATE上的死锁
- HTML iframe和frameset的区别_动力节点Java学院整
热点阅读

