首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLCircularRegion获取半径1英里内的随机点

CLCircularRegion获取半径1英里内的随机点
EN

Stack Overflow用户
提问于 2014-10-01 21:58:56
回答 1查看 1.4K关注 0票数 1

到目前为止,我已经尝试生成随机的纬度和经度,并使用"CLLocationCoordinate2DIsValid“验证它。但问题是我永远得不到我指定的"CLCircularRegion“中的坐标。下面是我写的逻辑:

代码语言:javascript
复制
    CLLocationCoordinate2D myCoordinates = { currentLocationLatitude, currentLocationLongitude };

    CLCircularRegion *myRegion = [[CLCircularRegion alloc] initWithCenter:myCoordinates radius:160934 identifier:@"myID"];


    for (int i=0; i< 15; i++) {

    double latitude = (arc4random()%20) + (myCoordinates.latitude);
    double longitude = (myCoordinates.longitude)  + arc4random()%10;

    CLLocationCoordinate2D randomCoordinate = CLLocationCoordinate2DMake(latitude, longitude);

        if(CLLocationCoordinate2DIsValid(randomCoordinate) != NO)
        {
            NSLog(@"randomCoordinate: %f  %f", randomCoordinate.latitude, randomCoordinate.longitude);
            if([myRegion containsCoordinate:randomCoordinate])
            {
                NSLog(@"Point contains inside your region.");
            }
        }

    }

这个实现有什么问题吗?或者有没有其他方法可以找到随机点?

EN

回答 1

Stack Overflow用户

发布于 2014-10-01 22:45:54

您的代码是正确的。唯一的问题是,如果你在纬度上加+1,在经度上加+1,你会得到138公里的距离,但你的半径是160公里。所以,基本上你只能将+1添加到经度/经度,但不能添加10或20...Or,您需要增加半径...使用link检查距离:http://www.movable-type.co.uk/scripts/latlong.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26143194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档