2016-06-30 3 views
0

iOS上でfirebaseのGeofireを使用しています。Firebaseデータベースからデータをロードしていますが、場所が少し遠い場合はマップにMKAnnotationとして表示されません。 ..Geofireが特定の距離の後に場所を表示しない

私はコードが

ある

..私は地理queryAtRegion:を見ていたが、それが使用されるべきものではありません ...それは検索すべきか半径でフィルタリングする方法が必要です

[[FIRAuth auth] addAuthStateDidChangeListener:^(FIRAuth * _Nonnull auth, FIRUser * _Nullable user) { 

[self.geo setLocation:[[CLLocation alloc] initWithLatitude: lat longitude:log] forKey:[NSString stringWithFormat:@"%@", user.displayName] withCompletionBlock:^(NSError *error) { 

     if (error){ 
     NSLog(@"%@", error.localizedDescription); 


} else { 

      } 

     }]; 
     }]; 

フェッチするのはこれです..

- (void)loadData{ 
    self.regionQuery = [self.geo queryWithRegion:region]; 

    NSDate *methodStart = [NSDate date]; 

    [_regionQuery observeEventType:GFEventTypeKeyEntered withBlock:^(NSString *key, CLLocation *location) { 
     pinAnnotation = [[Pin alloc] init]; 
     [pinAnnotation setKey: key]; 
     [pinAnnotation setCoordinate:location.coordinate]; 


     [pinAnnotation setTitle: [NSString stringWithFormat:@"%f",location.coordinate.latitude]]; 
     [pinAnnotation setSubtitle:keyy]; 


     [self.mapView addAnnotation:pinAnnotation]; 
     self.annotations[key] = pinAnnotation; 

     NSDate *methodFinish = [NSDate date]; 
     NSTimeInterval executionTime = [methodFinish timeIntervalSinceDate:methodStart]; 
     NSLog(@"executionTime = %f", executionTime); 
    }]; 

} 

答えて

0

半径でフィルタリングする場合は、geofireの円クエリを使用してみてください。 geofire githubページhereの例については、readmeを参照してください。

関連する問題