计算ApiController(WebApi)

时间:2015-12-25 12:46:37

标签: c# asp.net asp.net-web-api

在我的ASP.NET MVC 5应用程序中,我有一个ApiController(WebApi),其方法返回按Name排序的机构列表(存储在我的数据库中)。它工作正常。

现在我希望能够按距离对此列表进行排序。因此,使用Web服务的移动应用程序会将用户位置作为参数发送,而在服务器端,我需要计算用户位置与每个机构的位置之间的距离。

我可以使用哪些工具来执行此操作? Google Maps API?另一个?我已经搜索过,但没有找到任何有用的东西...... 如果有人知道在哪里找到如何开始这个的例子,那将非常有帮助。

更新

以下是一些更多细节:

  • 我的数据库位于SQL Server 2014中;
  • 每个机构已经存储在我的数据库中的纬度和经度;

我宁愿乘汽车到达最短路径的距离......

1 个答案:

答案 0 :(得分:1)

假设您将每个机构的地理位置存储在数据库中(纬度+经度),使用Harvesine formula计算2点之间的距离非常简单(此处为' s其中一些online demo在行动中)。一旦你知道距离,你就可以对结果进行排序。您还没有提供有关您正在使用的数据库的任何详细信息,但有些数据存储已经开箱即用,因此您无需在客户端进行这些计算。

另一方面,如果您没有将企业的坐标存储在数据存储区中,那么第一步当然是从某些在线服务中获取它们。有很多,只需选择最适合你的。显然,在这种情况下,此计算的性能取决于第三方服务的速度。