gpt4 book ai didi

ios - 使用 Parse nearGeoPoint 检索用户位置

转载 作者:行者123 更新时间:2023-11-29 02:35:51 28 4
gpt4 key购买 nike

我有一个用户表,每个用户都有自己的位置(PFGeoPoint 对象)。现在我要做的是从最近到最远的位置对用户进行排序和检索。问题是有些用户没有任何位置信息(纬度、经度、地理点)。他们的 currentLocation 列是空的。这就是查询无法按我预期工作的方式。

我将代码放在下面以保存用户位置以进行解析

    [PFGeoPoint geoPointForCurrentLocationInBackground:^(PFGeoPoint *geoPoint, NSError *error) {

NSLog(@"User is currently at %f, %f", geoPoint.latitude, geoPoint.longitude);
self.userLocation = geoPoint;
[[PFUser currentUser] setObject:geoPoint forKey:@"currentLocation"];
[[PFUser currentUser] saveInBackground];

}];

然后将下面的代码放在我的检索查询方法中

PFGeoPoint *userGeoPoint = self.userLocation; //pass user location to PFGeoPoint

[query whereKey:@"currentLocation" nearGeoPoint:userGeoPoint]; //retrieve users from nearest to rarest

最佳答案

如果用户没有地理点信息或不允许应用程序使用位置,我将手动将用户地理点信息更新为纬度 0.0、经度 0.0。然后我可以从最近到最远检索用户是否没有 geoopint 信息。我在 viewDidLoad 中使用的代码如下。

    CLAuthorizationStatus status = [CLLocationManager authorizationStatus];

if(status == kCLAuthorizationStatusAuthorized ||
status == kCLAuthorizationStatusAuthorizedAlways ||
status == kCLAuthorizationStatusAuthorizedWhenInUse) {

[PFGeoPoint geoPointForCurrentLocationInBackground:^(PFGeoPoint *geoPoint, NSError *error) {

NSLog(@"User is currently at %f, %f", geoPoint.latitude, geoPoint.longitude);
self.userLocation = geoPoint;
[[PFUser currentUser] setObject:geoPoint forKey:@"currentLocation"];
[[PFUser currentUser] saveInBackground];

}];
}

else if (status == kCLAuthorizationStatusNotDetermined ||
status == kCLAuthorizationStatusRestricted ||
status == kCLAuthorizationStatusDenied) {

PFGeoPoint *geoPoint = [PFGeoPoint geoPointWithLatitude:0.0 longitude:0.0];

[[PFUser currentUser] setObject:geoPoint forKey:@"currentLocation"];
[[PFUser currentUser] saveInBackground];
}

关于ios - 使用 Parse nearGeoPoint 检索用户位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26376749/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com