我有一个包含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)问题。我建议您通过以下链接了解如何解决您的问题
- KNN Wiki
- 有详细概述的好博客