【发布时间】:2011-04-25 17:32:15
【问题描述】:
我正在寻找一种从西到东和从南到北对位置点(纬度和经度)进行排序的算法。
排序时,点应从西、南开始排序。比较两点时,先比较经度。值越大(越西)点在列表中越高。如果两个点具有相同的经度,不太可能但可能,则比较两个点的纬度。最低值(越靠南)在列表中的位置越高。
这个算法是否存在于某个地方?也许在 C# 中?
ps- 这些计算将仅限于美国大陆内的点。不会有负纬度/经度值。
【问题讨论】:
-
我不清楚为什么这需要比 .NET Framework 中的普通内置排序函数更复杂的东西(例如
List.Sort、Enumerable.OrderBy。)排序的比较函数正如您所描述的那样,大概会先比较经度,然后再比较纬度。 -
在此处查看第二个答案:stackoverflow.com/questions/289010/c-list-sort-by-x-then-y。或者,定义您自己的比较函数并将其传递给任何标准排序算法。
-
我会知道如何在 php 中做到这一点,或者尝试查看 LINQ