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



到目前为止,我已经尝试生成随机纬度和经度,并使用"CLLocationCoordinate2DIsValid"进行验证。但问题是,我从来没有在我指定的"CLCircularRegion"中获得坐标。以下是我写的逻辑:

    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.");
            }
        }
    }

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

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

相关内容

  • 没有找到相关文章

最新更新