• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何从iOS中的位置数组中找到5m到10m范围内的最近位置?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 16:19:36 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

这是我的代码,我希望距离当前位置最近的位置在 10 米范围内,并且我想添加所有最近的位置以及此人的详细信息作为响应还添加 array.thanks

这是我来自服务器的响应

{
    born = 0;
    completed = 0;
    "emergency_id" = "-1";
    eyes = "";
    feet = 0;
    "first_name" = Neil;
    glasses = No;
    hair = "";
    inch = 0;
    language = "<null>";
    "last_name" = Ferris;
    latitude = "30.1456987";
    longitude = "76.69916";
    marks = "";
    "member_id" = 21634;
    picture = "";
    "profile_id" = 5826;
    type = 1;
    updated = "2015-09-16 06:32:08";
    weight = 0;
}        

像上面一样,我从服务器获得了 5000 个用户,在我通过当前位置以 10 米的距离进行过滤后,我需要在表格 View 中显示在 10 米以下范围内的列表

- (void)getdata
{
    NSString * apiURLStr =[NSString stringWithFormat"<MY API URL>"];

    NSString *outputStr = [NSString stringWithContentsOfURL:[NSURL URLWithString:apiURLStr] encoding:NSUTF8StringEncoding error:nil];
    NSDictionary *response;
    if (outputStr == nil)
    {
        return;

    }

    NSData* data = [outputStr dataUsingEncoding:NSUTF8StringEncoding];
    NSError *error;
    response = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

    NSMutableArray *array=[[NSMutableArray alloc]init];
    CLLocation *closestLocation = nil;
    for (NSDictionary *dict in response)
    {
        NSString *latitude=[dict valueForKey"latitude"];
        NSString *longitude=[dict valueForKey"longitude"];

        CLLocation *location = [[CLLocation alloc] initWithLatitude:latitude.doubleValue
        longitude:longitude.doubleValue];

        [array addObject:location];
    }

    CLLocationDistance closestLocationDistance = DBL_MIN;

    for (CLLocation *location in array)
    {
        if (!closestLocation) {
            closestLocation = location;
            closestLocationDistance = [currentUserLocation distanceFromLocation:location];
            continue;
        }
        CLLocationDistance currentDistance = [currentUserLocation distanceFromLocation:location];
        if (currentDistance < closestLocationDistance)
        {
            closestLocation = location;
            closestLocationDistance = currentDistance;
        }
    }

    NSLog(@"closestLocation %@",closestLocation.description);
    NSLog(@"closestLocationDistance %f", closestLocationDistance);
}



Best Answer-推荐答案


thanks for answer bro,but i want list of closest locations in below 10 meters range.

NSMutableArray *locationsInRange = [NSMutableArray new];

for (CLLocation *location in array)
{
    CLLocationDistance currentDistance = [currentUserLocation distanceFromLocation:location];
    if (currentDistance < 10)
    {
        [locationsInRange addObject:location];
    }
}

NSLog(@"locations in 10 metters %@",locationsInRange.description);

关于ios - 如何从iOS中的位置数组中找到5m到10m范围内的最近位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32758916/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap