2015-02-06 23 views
0

基本上,我想對Parse進行如下僞查詢。但我不能設法找到一個可行的辦法這樣做:如何在Parse Query中使用子查詢或謂詞?

SELECT * FROM UserPhoto WHERE DISTANCE(UserLocation,ImageLocation) <= VisibleRadius 

這裏,距離的函數得到UserLocationImageLocation,誰都是PFGeoPoint之間的距離。 VisibleRadius以及ImageLocation是數據庫中的兩個值。

在解析中,通常我會做query.where('ImageLocation', lessThan: SomeValue)的權利。但是我的情況在我需要考慮的數據庫中有兩個值。我該怎麼辦?

我真的很感謝任何幫助!

+0

所以,你要選擇是用戶位置的半徑X內的所有照片?如「在我目前的位置附近10公里內拍攝所有照片」? – 2015-02-06 20:39:51

+0

只有它的一部分。我想要「如果我的當前位置也在照片的可見半徑範圍內,請將我在當前位置周圍10公里範圍內拍攝的所有照片」 – donkey 2015-02-07 18:56:33

回答

0

假設currentLocation保存用戶的當前位置確定使用CLLocationManager,試試這個:

PFQuery *query = [PFQuery queryWithClassName: @"<the_class_name>"]; 
PFGeoPoint *point = [PFGeoPoint geoPointWithLatitude: currentLocation.coordinate.latitude longitude: currentLocation.coordinate.longitude]; 
[query whereKey: @"ImageLocation" nearGeoPoint: point withinKilometers: VisibleRadius]; 
+0

在哪裏獲取VisibleRadius的值 – donkey 2015-02-06 14:00:18

+0

對於數據庫中的每條記錄,「VisibleRadius」 ,還是它可以事先獲取的常量值? – Romain 2015-02-06 14:24:05

+0

每個數據可以不同,它基本上是一個列。數據由用戶在發佈照片時設置 – donkey 2015-02-06 14:25:07