我正在开发iOS中的聊天应用。其中用户能够在1千米半径的人附近搜索。 在注册时,我存储了每个用户的经度和纬度。 现在告诉我如何在1千米半径范围内搜索用户附近的人?
非常感谢
答案 0 :(得分: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 Formula。
distance = acos(sin(currentLatitudeRad) * sin(destinationLatitudeRad) + cos(currentLatitudeRad) * cos(destinationLatitudeRad) * cos(currentLongitudeRad - destinationLongitudeRad)) * 6880.1295896;
这里获得的距离以公里为单位。
答案 1 :(得分:0)
您可以使用此方法比较两个位置
CLLocationDistance distanceInMeters = [locationA distanceFromLocation:locationB];
或者从后端(PHP开发人员)计算以找到距离,因为基本上它们只存储所有lat,long。(我认为)
答案 2 :(得分:0)
我的解决方案是您无法使用Radios搜索用户。请执行以下步骤。
使用网络服务向您的后端服务器发送纬度,经度和无线电信息。
为您的网络服务开发者提供查询并使用您的信息吸引附近的用户。
请参阅以下链接: