微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Oracle中高效地计算坐标之间的距离

我有一个大的Oracle数据库(720,000条记录aprox),其中每条记录都有自己的地理坐标(lat& lng),我只需要选择距离某一点(特定半径内)特定距离的记录.

目前我已经实现了在oracle论坛中找到的距离函数(基于hasrsine),但由于数据库有点大,每次选择花费大约50秒.

关于如何有效地做任何建议?我知道有一个名为oracle spatial& amp;定位器,但我不知道我是否可以购买它甚至它是如何工作的.非常感谢提前.最好的祝福

解决方法

使用更好的算法.不需要计算需要平方根计算的实际欧几里德距离,而是选择仅需要减法和加法的线性距离.即如果您的点位于(10,10)且半径为5,则选择由(10 / – 5,10 / – 5)形成的正方形内的点的所有位置.

这将在广场的角落捕获少量误报.通过计算适当的欧几里德距离,仔细检查应用程序中的结果来消除这些.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐