1

Parse に PFGeoPoint があり、ユーザーが半径をマイル単位で入力する serachView があります。そのため、距離の半径内にいるユーザーのリストが返されます。

座標から距離を取得できることはわかっていますが、そこにすべてのユーザーを取得して 1 つずつ確認する方法がわかりません。

iOSとParseが初めてなので、誰かが私に何か提案できるなら、それは私にとって大きな助けになるでしょう.

4

1 に答える 1

2

編集済み

解析には、実際にはそれに対する簡単な解決策があります。

int radiusInKilometers = 400; //Example
PFGeoPoint * myGeoPoint = [PFUser currentUser][@"geoPoint"]; // Your geoPoint

PFQuery *query = [PFUser query];
[query whereKey:@"geoPoint" nearGeoPoint:myGeoPoint withinKilometers:radiusInKilometers];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {

        NSLog(@"Successfully retrieved %d scores.", objects.count);
        // Do something with the found objects

        for (PFObject *object in objects) {

            // DISTANCE
            PFGeoPoint * geoPoint1 = [PFUser currentUser][@"geoPoint"];
            PFGeoPoint * geoPoint2 = userObject[@"geoPoint"];

            CLLocation *location1 = [[CLLocation alloc]
                                 initWithLatitude:geoPoint1.latitude
                                 longitude:geoPoint1.longitude];

            CLLocation *location2 = [[CLLocation alloc]
                                 initWithLatitude:geoPoint2.latitude
                                 longitude:geoPoint2.longitude];


            CLLocationDistance distance = [location1 distanceFromLocation:location2];

            // Print out the distance
            NSLog(@"There's %d km between you and this user", distance);
        }

    } else {
        // Details of the failure
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }
}];

に変更できwithinKilometersますwithinMiles

于 2015-05-26T07:46:07.430 に答える