在ApiController(WebApi)中计算两点之间的距离
本文关键字:之间 两点 距离 计算 ApiController WebApi | 更新日期: 2023-09-27 18:28:12
在我的ASP.NET MVC 5应用程序中,我有一个ApiController(WebApi),它的方法返回按名称排序的机构列表(存储在我的数据库中)。它运行良好。
现在我想能够按距离对这个列表进行排序。因此,使用web服务的移动应用程序将发送用户位置作为参数,并且在服务器端,我需要计算用户位置和每个机构的位置之间的距离。
我可以用什么工具来做这件事?谷歌地图API?另一个?我搜索过,但没有找到任何有用的东西。。。如果有人知道在哪里可以找到一个如何开始的例子,那将是非常有帮助的。
更新
以下是更多详细信息:
- 我的数据库在SQL Server 2014中
- 每个机构都已经在我的数据库中存储了纬度和经度
我宁愿坐汽车走最短的路。。。
假设您将每个机构的地理位置存储在数据库中(纬度+经度),使用Harvesine formula
计算2个点之间的距离是非常简单的(这里有一些在线演示)。一旦你知道了距离,你就可以对结果进行排序。您还没有提供有关正在使用的数据库的任何详细信息,但一些数据存储已经开箱即用地提供了这种计算,因此您不需要在客户端上进行这些计算。
另一方面,如果您没有将机构的坐标存储在数据存储中,那么第一步当然是从一些在线服务中获取它们。它们很多,只要选一个最适合你的就行了。显然,在这种情况下,该计算的性能将取决于第三方服务的速度。