gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 18:18:31 25 4
gpt4 key购买 nike

我有一个大型 Oracle 数据库(大约 720,000 条记录),其中每条记录都有自己的地理坐标(纬度和经度),我只需要选择距点(特定半径内)特定距离内的记录。

目前我已经实现了我在 oracle 论坛中找到的距离函数(基于半正弦),但是因为数据库有点大,所以每次选择花费大约 50 秒。

关于如何有效地做到这一点的任何建议?我知道有一个名为 oracle spatial & locator 的扩展,但我不知道我是否可以购买它,甚至不知道它是如何工作的。非常感谢。此致

最佳答案

使用更好的算法。不要计算需要平方根计算的实际欧几里得距离,而是选择只需要减法和加法的线性距离。 IE。如果您的点位于 (10, 10) 并且您的半径为 5,请选择所有点位于由 (10 +/- 5, 10 +/- 5) 形成的正方形内的所有位置。

这将在正方形的角落捕获少量误报。通过计算适当的欧几里得距离来仔细检查应用程序中的结果来消除这些。

关于oracle - 如何在 Oracle 中有效地计算坐标之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com