使用Latitude&;经度IOS
我正在iOS中开发聊天应用程序。其中,用户可以搜索半径为1千米的附近人群。 注册时,我存储了每个用户的纬度和经度。 现在告诉我如何在1千米半径范围内搜索用户附近的人使用Latitude&;经度IOS,ios,core-location,Ios,Core Location,我正在iOS中开发聊天应用程序。其中,用户可以搜索半径为1千米的附近人群。 注册时,我存储了每个用户的纬度和经度。 现在告诉我如何在1千米半径范围内搜索用户附近的人 非常感谢您可以使用此方法比较两个位置 CLLocationDistanceInMeters=[locationA distanceFromLocation:locationB] 或者从后端(PHP开发人员)计算距离,因为基本上他们只存储所有的lat、long。(我认为)我的解决方案是直接使用无线电搜索用户。请执行以下步骤 使用web
非常感谢您可以使用此方法比较两个位置
CLLocationDistanceInMeters=[locationA distanceFromLocation:locationB]代码>
或者从后端(PHP开发人员)计算距离,因为基本上他们只存储所有的lat、long。(我认为)我的解决方案是直接使用无线电搜索用户。请执行以下步骤
使用web服务将纬度、经度和无线电信息发送到后端服务器
对于您的web服务开发人员,使用您的信息进行查询并获取附近的用户
请参阅以下连结:
您可以使用哈弗森公式计算当前纬度、经度和目标纬度、经度之间的适当距离
定义DEG2RAD(度)(度*0.01745327)
双电流纬度=40.727181代码>//已登录用户的当前纬度
double currentLength=-73.986786代码>//已登录用户的当前经度
double destination=42.896578代码>//目标用户的纬度
double destinationlongity=-75.784537代码>//目标用户的经度
//将获得的纬度和经度转换为RADS。
double currentLatitudeRad=DEG2RAD(当前纬度)代码>
double currentLongitudeRad=DEG2RAD(currentLongitude)代码>
double destinationlatuderad=DEG2RAD(destinationlatude)代码>
double destinationlongitentialrad=DEG2RAD(destinationlongitential)代码>
//哈弗森公式。
distance=acos(sin(currentLatitudeRad)*sin(destinationLatitudeRad)+cos(currentLatitudeRad)*cos(destinationLatitudeRad)*cos(CurrentLongtuderad-DestinationLongientRad))*6880.1295896代码>
此处获得的距离以公里为单位 使用google map API是可能的。使用这种方法,我必须检查数据库中的每个用户(例如,如果有数千个用户,则需要很多时间),我喜欢MYSQL。MYSQL是最大的工具。。。喜欢它