C# 按纬度/经度排序列表

C# 按纬度/经度排序列表,c#,asp.net-mvc-2,google-maps,sorting,C#,Asp.net Mvc 2,Google Maps,Sorting,所以,我的网站上有一个谷歌地图。我需要用户能够将地图居中放置在某个位置,然后我希望在服务器端,能够根据前端地图的可见部分对对象列表进行排序(每个对象都有一个lat和long属性)。这有意义吗?想想Yelp.com根据用户可以放大/缩小的地图对餐馆进行分类的方式 因此,首先列表将根据对象的lat/long属性除去不在地图区域中的任何对象,然后根据最靠近地图中心的对象对剩余对象进行排序 要做到这一点,我必须从前端向服务器传递什么,一旦服务器上了,我将如何进行排序?计算大圆距离,然后按最小的数字排序。

所以,我的网站上有一个谷歌地图。我需要用户能够将地图居中放置在某个位置,然后我希望在服务器端,能够根据前端地图的可见部分对对象列表进行排序(每个对象都有一个lat和long属性)。这有意义吗?想想Yelp.com根据用户可以放大/缩小的地图对餐馆进行分类的方式

因此,首先列表将根据对象的lat/long属性除去不在地图区域中的任何对象,然后根据最靠近地图中心的对象对剩余对象进行排序


要做到这一点,我必须从前端向服务器传递什么,一旦服务器上了,我将如何进行排序?

计算大圆距离,然后按最小的数字排序。

使用哈弗公式计算大圆距离:


然后排序,首先使用最短距离(=最近距离)。

从它的声音来看,您可能希望将瓷砖或您正在检索的任何东西存储在类似四叉树的东西中。然后,您可以将坐标传递给服务器,服务器可以为您检索该光圈中可见的对象,对它们进行排序,然后将它们发送回。

我将如何计算该坐标,以及需要使用哪些信息进行计算?这是一个参考,您可以传递纬度和经度