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 km になりますが、半径は 160 km になります。したがって、基本的に、緯度/経度に +1 しか追加できませんが、10 または 20 は追加できません...または、半径を増やす必要があります...リンクを使用して距離を確認してください: http://www.movable-type.co. uk/scripts/latlong.html

于 2014-10-01T14:45:53.843 に答える