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

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

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

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

解决方法

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

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

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...