Web services 计算地图中两点之间的距离(以Km为单位)

Web services 计算地图中两点之间的距离(以Km为单位),web-services,ios,Web Services,Ios,我到达了应用程序中最关键的一步,我的数据库中有一个服务站列表(带有它们的经度和纬度坐标),我必须将用户的经度和纬度发送到一个Web服务,该服务将尝试查找用户周围半径为5公里的站点。 是否有任何预构建的算法可以帮助我,任何建议、链接或任何你认为可以帮助我的东西都欢迎,thx提前:)看一看“”,它提供了除objective-c代码以外的所有你需要的东西:算法、工作javascript代码,要测试的表单和有关主题的大量信息。您可以使用CoreLocation框架: 使用纬度和经度为每个服务站初始化一个

我到达了应用程序中最关键的一步,我的数据库中有一个服务站列表(带有它们的经度和纬度坐标),我必须将用户的经度和纬度发送到一个Web服务,该服务将尝试查找用户周围半径为5公里的站点。
是否有任何预构建的算法可以帮助我,任何建议、链接或任何你认为可以帮助我的东西都欢迎,thx提前:)

看一看“”,它提供了除objective-c代码以外的所有你需要的东西:算法、工作javascript代码,要测试的表单和有关主题的大量信息。

您可以使用CoreLocation框架: 使用纬度和经度为每个服务站初始化一个CLLocation对象

CLLocation *loc = [[CLLocation alloc] initWithLatitude:serviceStation.latitude longitude:serviceStation.longitude];
完成此操作后,可以使用CLLocation的distanceFromLocation实例方法:

CLLocationDistance distance = [loc1 distanceFromLocation:loc2];
距离将是两个点之间的距离,单位为米(CLLocationDistance为双精度)。然后,您只需将其除以1000即可得到公里数;-)

编辑:

由于您的服务器上有数据库,因此在web服务中计算距离将更加有效。 由于没有distanceFromLocation的“反向方法”允许您给出距离并检索与当前用户位置相关联的最小和最大纬度和经度,因此您需要在服务器端执行计算


因此,解决方案是将用户的当前位置(纬度和经度)发送到您的web服务,让他计算与您的距离相关的最大和最小纬度和经度(对于服务站,正方形比圆形更容易计算和实现)。您有一些资源可以在这里执行这些计算:

Hi,您认为在webservice端计算距离比在应用程序内部更好吗??