0

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

提前致谢

4

2 回答 2

0

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

  1. KNN 维基
  2. 有详细概述的好博客
于 2013-06-13T11:20:43.247 回答
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,它们就可以完美实现。

于 2013-06-13T11:48:56.293 回答