我试图在理论基础上弄清楚如何找到最接近单点的点。所有这些点(75,000+点)都用纬度和经度绘制出来。 Haversine距离公式是我用来找到两点之间距离的方法,但这个公式是否可以动态扩展?
我正在使用网络前端+ SQL Server后端。我甚至无法想象如何做到这一点......在飞行中找到所有距离然后根据距离对它们进行排序?再一次,我想知道这是否可以扩展到与我一样多的点。
答案 0 :(得分:2)
This article详细介绍了这个问题。
主要优化是在lat / long上使用索引。如果您知道在查询的某个距离内必须有一个点,则可以使用该已知距离仅检查该框内的点。由于索引,数据库会进行范围扫描。
答案 1 :(得分:1)
我假设您在SQL数据库中有lat和long。
对这样的问题你能做的最好就是找到所有距离并按值排序。
SELECT(哈瑟林公式)作为距离 从表 ORDER BY距离ASC