web-services – 计算MAP中两点之间的距离(以Km为单位)
发布时间:2020-12-14 23:46:03 所属栏目:资源 来源:网络整理
导读:我到达我的应用程序中最批评的一步,我的数据库有一个服务站列表(带有经度和纬度坐标),我必须将用户的经度和纬度发送到一个web服务,它将尝试找到哪个站点位于用户周围,半径为5公里. 是否有任何预先建立的算法可以帮助我,任何建议,链接,或任何你认为可以帮助我
我到达我的应用程序中最批评的一步,我的数据库有一个服务站列表(带有经度和纬度坐标),我必须将用户的经度和纬度发送到一个web服务,它将尝试找到哪个站点位于用户周围,半径为5公里.
是否有任何预先建立的算法可以帮助我,任何建议,链接,或任何你认为可以帮助我的欢迎,thx提前:) 解决方法
您可以使用CoreLocation框架来执行此操作:
使用纬度和经度为每个服务站初始化一个CLLocation对象 CLLocation *loc = [[CLLocation alloc] initWithLatitude:serviceStation.latitude longitude:serviceStation.longitude]; 完成后,您可以使用CLLocation的distanceFromLocation实例方法: CLLocationDistance distance = [loc1 distanceFromLocation:loc2]; 距离将是您以米为单位的距离(CLLocationDistance是双倍).然后你只需将它除以1000即可得到它;-) 编辑: 由于您的服务器上有数据库,因此计算Web服务中的距离会更有效. 所以解决方案是将用户的当前位置(纬度和经度)发送到您的网络服务,让他计算与您的距离相关的最大和最小纬度和经度(正方形将比圆形更容易计算和实施服务站).您有一些资源可以在此处执行这些计算:Haversine formula (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |