我是解析器中的一个初学者,我一直在关注解析Anywall教程for android https://www.parse.com/tutorials/anywall-android
在示例代码中,有一个自定义查询,它根据项目的创建顺序对项目进行排序。
// Set up a customized query
ParseQueryAdapter.QueryFactory<AnywallPost> factory =
new ParseQueryAdapter.QueryFactory<AnywallPost>() {
public ParseQuery<AnywallPost> create() {
Location myLoc = (currentLocation == null) ? lastLocation : currentLocation;
ParseQuery<AnywallPost> query = AnywallPost.getQuery();
query.include("user");
query.orderByDescending("createdAt");
query.whereWithinKilometers("location", geoPointFromLocation(myLoc), radius
* METERS_PER_FEET / METERS_PER_KILOMETER);
query.setLimit(MAX_POST_SEARCH_RESULTS);
return query;
}
};
在代码的这一部分中,我已经拥有了用户的位置(myLoc var),并且检索到的每个对象都带有它的位置(在&#34;位置&#34;字段下)。我的问题是,我如何根据他们与活跃用户的距离来使用这些字段来订购帖子?
答案 0 :(得分:2)
距离查询默认排序最接近最远,除非您使用orderByAscending()
/ orderByDescending()
指定其他排序顺序。
只需从查询中删除任何orderBy语句,您就可以获得所需的排序。
答案 1 :(得分:0)
Amswering自己:)
https://parse.com/docs/android_guide#geo-query
现在您有一堆具有空间坐标的对象,它 很高兴找出哪个对象最接近一个点。这个 可以通过使用添加另一个限制来完成ParseQuery whereNear。
ParseQuery<ParseObject> query = ParseQuery.getQuery("PlaceObject");
query.whereNear("location", userLocation);