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 к широте и +1 к долготе, вы получите расстояние 138 км, но ваш радиус составляет 160 км. Итак, в основном вы можете добавить только +1 к широте / длине, но не к 10 или 20... Или вам нужно увеличить радиус... используйте ссылку, чтобы проверить расстояния: http://www.movable-type.co.uk/scripts/latlong.html