如何从当前位置找到最近的经纬度



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

Thanks in advance

如果你想根据坐标计算,下面是一个简单的场景:把所有的"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];

然后放置loop或任何你想通过与所有使用此

的人进行比较来计算更短的距离
CLLocationDistance nearLocation=[ location distanceFromLocation:loc2]; // location --> your current Location

如果你想达到其他的,那么只要遵循saury answer,他们很好地达到完美。

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

  1. KNN Wiki
  2. 有详细概述的好博客