按纬度/经度排序列表

时间:2011-04-05 19:16:05

标签: c# asp.net-mvc-2 google-maps sorting

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

首先,列表将根据其纬度/经度属性删除不在地图区域内的任何对象,然后根据哪些对象最接近地图中心对其余对象进行排序

要做到这一点,我必须从前端传递给服务器,一旦它在服务器上,我将如何进行这种排序?

3 个答案:

答案 0 :(得分:4)

计算great_circle_distance,然后按最小数字排序。

答案 1 :(得分:1)

使用Haversine公式计算大圆距离:

http://en.wikipedia.org/wiki/Haversine_formula

然后以最短距离(=最接近)排序。

答案 2 :(得分:1)

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