ios - 检查 IOS 中两个位置的接近度

标签 ios objective-c cocoa-touch

我有一个位置数组,当我添加另一个位置时,我希望能够检查数组中的其他位置是否在新位置的一个 block 内。这是我必须找到当前位置的代码:

//Geocoding Block
[self.geoCoder reverseGeocodeLocation: locationManager.location completionHandler:
 ^(NSArray *placemarks, NSError *error) {

     //Get nearby address
     CLPlacemark *placemark = [placemarks objectAtIndex:0];

     //String to hold address
    locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"]    componentsJoinedByString:@", "];

数组尚未创建,因为我想先弄清楚,我不知道数组中应该保存什么(字符串...)。我知道如何进行搜索 我只需要知道如何比较位置。

最佳答案

您可以使用 the distanceFromLocation: method 获取两个位置之间的距离在 CLLocation 上。 (您可以使用 myPlacemark.location 从 CLPlacemark 中获取 CLLocation。)因此,如果您有一组 CLLocation 对象,并且您想找到一个 block (1/20 英里)内的对象,或大约 80 米),您可以这样做:

NSMutableArray *locationsWithinOneBlock = [NSMutableArray new];
for (CLLocation *location in myLocations) {
    if ([location distanceFromLocation:targetLocation] <= 80.0)
        [locationsWithinOneBlock addObject:location];
}

这假设您有一个 CLLocation 对象数组 myLocations,您希望针对名为 targetLocation 的单个 CLLocation 进行过滤。

关于ios - 检查 IOS 中两个位置的接近度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15950595/

相关文章:

ios - 使用 UIImageRenderingModeAlwaysTemplate 从界面生成器中为 UIButton 的图像着色

ios - 在 iOS 中,segue 是否会实例化新的 View Controller ?还是已经实例化了?

objective-c - 如何在不同的类中设置委托(delegate)

ios - 在 iOS 模拟器中禁用 Google Analytics

ios - 构造具有唯一中心的 UIView 对象的 NSArray

ios - UITableView 不响应 UITableViewCell 的选择

iphone - 试图触摸位于我的标记顶部的 CALayer

iphone - iOS 上的矢量 PDF 图形元素

ios - 如何防止用户名在 Firebase 中重复注册?

ios - 如何解决我的 iOS 应用程序崩溃