到目前为止,我已尝试生成随机纬度和经度,并使用“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.");
}
}
}
此实现有什么问题,还是有其他方法可以找到随机点?
答案 0 :(得分:2)
你的代码是对的。唯一的事情是,如果你为纬度增加+1,经度增加+1,你将获得138公里的距离,但你的半径是160公里。所以,基本上你只能添加+1到lat / long而不是10或20 ......或者你需要增加半径...使用link来检查距离:http://www.movable-type.co.uk/scripts/latlong.html