搜索半径范围(可可触摸)

时间:2011-07-23 15:17:54

标签: objective-c ios core-location

我有一系列NSDictionaries。这些词典有纬度和经度。是否可以在该数组中搜索位于指定位置的特定半径内的所有字典。因此,例如,我可以指定“休斯顿,tx”或“77381”和半径500英里,它会搜索? 感谢。

2 个答案:

答案 0 :(得分:1)

你确实可以这样做,是的。可能有一种更简单的方法,但我看到和使用的方法是创建一个CLLocation实例,使用纬度和经度进行初始化,然后使用CLLocation Class Reference中找到的distanceFromLocation:方法}。如果您的比较位置有CLLocation个实例,则可以设置if语句来查询返回的值是否小于指定的距离。请务必释放临时CLLocation以免发生任何内存泄漏

答案 1 :(得分:0)

我不知道有任何捆绑功能可以做到这一点。

只需对数组进行迭代/枚举即可。 有十几种方式。

for (NSDictionary *withLatLong in arrayOfDicts) {
 // do work…
}

[arrayOfDicts enumerateObjectsUsingBlock:^(id x, NSUInteger index, BOOL *stop){
  NSDictionary *withLatLong = (NSDictionary *)x;
  // do work…
}];

NSMutableArray newArray = [arrayOfDicts mutableCopy];
[newArray filterUsingPredicate:predicate];