使用谷歌纵横搜索附近的人;经度IOS

时间:2015-03-04 04:29:39

标签: ios core-location

我正在开发iOS中的聊天应用。其中用户能够在1千米半径的人附近搜索。 在注册时,我存储了每个用户的经度和纬度。 现在告诉我如何在1千米半径范围内搜索用户附近的人?

非常感谢

3 个答案:

答案 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搜索用户。请执行以下步骤。

  1. 使用网络服务向您的后端服务器发送纬度,经度和无线电信息。

  2. 为您的网络服务开发者提供查询并使用您的信息吸引附近的用户。

  3. 请参阅以下链接:

    Geo Distance Search with MySQL