使用经纬度IOS搜索附近的人
Posted
技术标签:
【中文标题】使用经纬度IOS搜索附近的人【英文标题】:Search near by people by using Latitude & longitude IOS 【发布时间】:2015-03-04 04:29:39 【问题描述】:我正在 ios 中开发一个聊天应用程序。用户可以在其中搜索半径 1 公里范围内的人。 在注册时,我存储了每个用户的纬度和经度。 现在告诉我如何在 1 公里半径内搜索用户附近的人??
非常感谢
【问题讨论】:
可以使用google map API 【参考方案1】:您可以使用Haversine公式计算当前纬度、经度与目标纬度、经度之间的适当距离。
define DEG2RAD(degrees) (degrees * 0.01745327)
double currentLatitude = 40.727181;
// 登录用户当前纬度double currentLongitude = -73.986786;
// 登录用户当前经度double destinationLatitude = 42.896578;
// 目标用户纬度double destinationLongitude = -75.784537;
// 登录用户经度目标用户
//将得到的经纬度转换为RADS。double currentLatitudeRad = DEG2RAD(currentLatitude);
double currentLongitudeRad = DEG2RAD(currentLongitude);
double destinationLatitudeRad = DEG2RAD(destinationLatitude);
double destinationLongitudeRad = DEG2RAD(destinationLongitude);
//Haversine 公式。distance = acos(sin(currentLatitudeRad) * sin(destinationLatitudeRad) + cos(currentLatitudeRad) * cos(destinationLatitudeRad) * cos(currentLongitudeRad - destinationLongitudeRad)) * 6880.1295896;
这里获得的距离以公里为单位。
【讨论】:
【参考方案2】:我的解决方案是直接你不能使用 Radios 搜索用户。请按照以下步骤操作。
使用 Web 服务将纬度、经度和无线电信息发送到您的后端服务器。
为您的网络服务开发人员提出查询并获取附近用户使用您的信息。
请参考以下链接:
Geo Distance Search with mysql
【讨论】:
我喜欢 MYSQL。 MYSQL 是最大的工具......喜欢它【参考方案3】:您可以使用此方法比较两个位置
CLLocationDistance distanceInMeters = [locationA distanceFromLocation:locationB];
或者从后端(php 开发人员)计算距离,因为基本上他们只存储所有纬度,经度。(我认为)
【讨论】:
使用这种方法,我必须检查数据库中的每个用户,(例如,如果有数千个用户,则需要很长时间)以上是关于使用经纬度IOS搜索附近的人的主要内容,如果未能解决你的问题,请参考以下文章