如何找到最近的纬度和经度形式的当前位置?

时间:2013-06-13 11:13:25

标签: ios math ios6 core-location

我有一个包含n个纬度,经度和地址的集合的字典。我想计算哪个(纬度和经度)点与ios中当前用户位置(纬度,纬度)最接近?

提前致谢

2 个答案:

答案 0 :(得分:0)

此问题类似于找到K最近邻(KNN)问题。 我建议您通过以下链接了解如何解决问题

  1. KNN Wiki
  2. blog有详细的概述

答案 1 :(得分:0)

如果您想根据坐标计算,这里有一个简单的场景:   只需从词典中取出所有"CLLocationCoordinate2D"即可。

例如:

MKPointAnnotation *annotaion=[MKPointAnnotaion alloc]alloc];

CLLocationCoordinate2D pointACoordinate = [annotation coordinate];
//  If you have the co-ordinates in hand , then just make " CLLocation *loc2; " using Co-ordinates  

loc2 = [[CLLocation alloc] initWithLatitude:pointACoordinate.latitude longitude:pointACoordinate.longitude];

然后通过与使用此

的所有比较来放置循环或任何您想要计算的距离
CLLocationDistance nearLocation=[ location distanceFromLocation:loc2]; // location --> your current Location

如果你想实现其他目的:那么只需按照saury answer,它们就可以很好地实现。