Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用总的纬度/经度计算最近点的距离?_C#_Sql_Google Maps_Geolocation - Fatal编程技术网

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

C# 使用总的纬度/经度计算最近点的距离?,c#,sql,google-maps,geolocation,C#,Sql,Google Maps,Geolocation,我试图从理论上找出,如何找到离一个点最近的点。所有这些点(75000多个点)都用纬度和经度绘制出来。哈弗森距离公式是我用来计算两点之间距离的公式,但这个公式是否可以动态缩放 我使用的是web前端+SQL Server后端。我甚至无法想象如何做到这一点。。。快速查找所有距离,然后根据距离对其进行排序?同样,我想知道这是否可以扩展到我拥有的那么多点。我假设您在SQL数据库中有lat和long 对于这样的问题,你能做的最好的事情就是找到所有的距离,并按值对它们进行排序 选择(哈弗森公式)作为距离 从桌

我试图从理论上找出,如何找到离一个点最近的点。所有这些点(75000多个点)都用纬度和经度绘制出来。哈弗森距离公式是我用来计算两点之间距离的公式,但这个公式是否可以动态缩放


我使用的是web前端+SQL Server后端。我甚至无法想象如何做到这一点。。。快速查找所有距离,然后根据距离对其进行排序?同样,我想知道这是否可以扩展到我拥有的那么多点。

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

对于这样的问题,你能做的最好的事情就是找到所有的距离,并按值对它们进行排序

选择(哈弗森公式)作为距离 从桌子上 《按距离排序》杂志详细介绍了这个主题


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

是的,所有lat/long都在数据库中。我还没有实现一个解决方案,但我认为哈弗森公式x75000将是一个需要执行的长查询,因此我的问题。它看起来很重。你的意见?哈弗森公式不太重数学。大多数计算机使用查找表来计算正弦和余弦,所以这是一个非常快速的计算。75000行其实并不多。即使是每行128字节(对于两个数字来说很多),也只有10MB的数据。这只需要几秒钟,也许一两分钟就可以完成。哇,我真不敢相信有这么一篇利基文章。很好的链接。没有意识到索引是关键。我不认为它是真正的利基——想想所有使用您当前位置查找内容的移动应用程序。(还有,哈,“索引是关键。”:)