不支持解析 GeoQuery 'withinKilometres'

Posted

技术标签:

【中文标题】不支持解析 GeoQuery \'withinKilometres\'【英文标题】:Parse GeoQuery 'withinKilometres' is not supported不支持解析 GeoQuery 'withinKilometres' 【发布时间】:2015-07-01 06:55:40 【问题描述】:

这是一个有趣的:

我有一个 UIPickerView,其中包含值“10 公里”、“25 公里”、“50 公里”和“100 公里”。选择的值将是值 [queryLocation ... withinKilometers: value here ];也是平等的。 由于 'withinKilometers' 的值需要是双精度值,我有以下代码将 X 公里转换为只是 X 作为双精度值:

    if ([self.selectedData isEqualToString:@"10 km"]) 
    self.selectedDataConverted = @"10"; 
    self.stringToDouble = [self.selectedDataConverted doubleValue];
    NSLog(@"Double Value: %f", self.stringToDouble);

... and so on...

这是查询的代码:

PFQuery *queryLocation = [PFUser query];
[queryLocation whereKey:@"location" nearGeoPoint:self.userLocation withinKilometers:self.stringToDouble];

if (!error) 
            NSLog(@"Great Success");
            //Do the stuff here
        
        else 
            NSLog(@"Error");
        
    ];

现在当我运行它时,我收到错误 [Error]: geo query within or is not supported (Code: 102, Version: 1.7.4)。我很困惑,不知道如何解决这个问题。在网上也找不到与我的问题类似的东西。

编辑:我开始认为可能是因为我已将 2 个查询连接到 1 个:

    PFQuery *finalQuery = [PFQuery orQueryWithSubqueries:@[queryMale, queryLocation]];
    [finalQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) 
        if (!error) 
            NSLog(@"Great Success");
        
        else 
            NSLog(@"Error");
        
    ];

这是在所需公里范围内同时查找性别为“男性”的帐户。

【问题讨论】:

【参考方案1】:

你是对的。错误geo query within or is not supported 表示您不能将此查询与orQueryWithSubqueries 一起使用。您需要将它们作为 2 个单独的查询运行,然后自己组合结果集。

【讨论】:

以上是关于不支持解析 GeoQuery 'withinKilometres'的主要内容,如果未能解决你的问题,请参考以下文章

geoQuery不输出数据怎么办?

使用GEOquery下载GEO数据--转载

在包 GEOquery 中使用 getGEO() 时出错

如何使用 GEOquery 包提取示例标题(名称)?

Firebase / GeoQuery - 最大半径 IF 语句

使用 GEOquery 从 GEO 检索数据表标题