1
지금까지 "CLLocationCoordinate2DIsValid"로 랜덤 위도와 경도를 생성하고 유효성 검사를 시도했습니다. 하지만 문제는 내가 지정한 "CLCircularRegion"내에서 좌표를 얻지 못한다는 것입니다. 다음은 내가 작성한 논리입니다.CLCircularRegion 반경 1 마일 이내의 임의의 점을 얻으십시오
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처럼 동일한 현재 위치에 대해 동일한 좌표 세트를 다시 생성합니다. 그래서 저는 매번 새로운 값을 생성하기 위해 "arc4random()"을 포함 시켰습니다. 하지만 더 깨끗한 솔루션이 필요합니다. – RoHaN
아마도 -1과 1 사이의 임의의 double을 lat/long으로 더하기 대신 무작위 int로 가져 오는 메서드가 필요합니다. – kabarga
음, 위도/경도 논리를 임의의 값으로 갱신했습니다 : 이중 위도 = ((arc4random() % 100) + (myCoordinates.latitude * 100))/100; 이중 경도 = ((myCoordinates.longitude * 100) - (arc4random() % 100))/100; – RoHaN