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

    }

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

4

1 回答 1

2

你的代码是对的。唯一的问题是,如果您将纬度 +1 和经度 +1,您将获得 138 公里的距离,但您的半径为 160 公里。所以,基本上你可以只添加 +1 到 lat/long 而不是 10 或 20...或者您需要增加半径...使用链接检查距离:http://www.movable-type.co。英国/脚本/latlong.html

于 2014-10-01T14:45:53.843 回答