使用纬度/经度计算最近点的距离?

时间:2015-07-29 02:10:49

标签: c# sql google-maps geolocation

我试图在理论基础上弄清楚如何找到最接近单点的点。所有这些点(75,000+点)都用纬度和经度绘制出来。 Haversine距离公式是我用来找到两点之间距离的方法,但这个公式是否可以动态扩展?

我正在使用网络前端+ SQL Server后端。我甚至无法想象如何做到这一点......在飞行中找到所有距离然后根据距离对它们进行排序?再一次,我想知道这是否可以扩展到与我一样多的点。

2 个答案:

答案 0 :(得分:2)

This article详细介绍了这个问题。

主要优化是在lat / long上使用索引。如果您知道在查询的某个距离内必须有一个点,则可以使用该已知距离仅检查该框内的点。由于索引,数据库会进行范围扫描。

答案 1 :(得分:1)

我假设您在SQL数据库中有lat和long。

对这样的问题你能做的最好就是找到所有距离并按值排序。

SELECT(哈瑟林公式)作为距离 从表 ORDER BY距离ASC

相关问题