我知道在一些论坛上已经谈过这个问题,而且我发现了几种不同的方法。举例来说,this is a stackoverflow post discussing it和this is an msdn post talking about it.两者似乎都很有趣,但似乎以不同的方式为原作者完成了它。他们似乎对提供的答案感到满意,但我没有得到满意的结果(阅读:未能正确排序)
问题有两个:
通过计算距离原点的距离和使用顺序(或其他方法),在C#post数据检索或SQL中对这些进行排序是否更有效?我最终可能需要按距离原点的距离排序3000多个位置(用lat和long表示)
最重要的是什么"正确"根据纬度/长度来源对这些点进行排序的方法?通过"纠正"我不是通过方法,而是通过距离原点的实际距离。当然,由于问题1,排序的位置起作用。
使用的技术是EF,SQL存储过程,C#。
答案 0 :(得分:0)
虽然可能有更有效的方法来做到这一点,仔细阅读这两篇文章并通过一些反复试验......
确定距离的公式如前所述 在我的问题中引用的帖子基本相同。
首先按顺序排列列表非常重要 根据给定的公式排序或分类。
在第一次排序后,再次对其进行排序,但要考虑到 teasel的回答中提到的“软糖”,无论是在sql还是代码中(在 我的情况,C#)。