前言

还在担心Parse不支持复杂的SQL查询,比如实现查找附近的人的功能,今天有认真的看了一遍文章《面向 Android 应用程序的基于 Parse 云的服务》,喜出望外,居然直接提供了API,不愧是专门做移动后台的!

声明
欢迎转载,但请保留文章原始出处:)

博客园:http://www.cnblogs.com

农民伯伯: http://over140.cnblogs.com

正文

一、系列

1、【Parse】开发笔记(1)—— 准备

2、【Parse】开发笔记(2)—— 从Mysql导入数据到Parse Data

二、简介

要实现查找附近的人的功能,一般步骤:通过设备定位获得地理位置信息,上传到服务端保存数据,通过比较排序获得数据。

三、Mysql版本

典型的SQL语句如:

ORDERBYABS(locationLatitude-?+locationLongitude-?)

(PS~~~,如果数据量大、还关联多个表,这语句要歇菜鸟~~~)

四、Parse版本

public staticList<ParseObject>queryAroundUsers( finalContextctx,POUseruser, intminute, intstartIndex, intpageSize) throwsParseException{
ParseQueryquery= newParseQuery("nmbb_user");
ParseGeoPointpoint= newParseGeoPoint();
point.setLatitude(user.locationLatitude);
point.setLongitude(user.locationLongitude);
query.whereWithinKilometers("location",point,5); // 最大5公里
query.setSkip(startIndex);
query.setLimit(pageSize);
returnquery.find();
}

代码说明:

1、ParseQuery提供了很贴心的方法:whereWithinKilometers(String key, ParseGeoPoint point, double maxDistance) 查找点值在给定点附近,并且在给定最大距离内的对象。 最后一个参数是用来限制范围,单位公里。

2、相关的两个方法:whereWithinRadians和whereWithinMiles,单位不同。

3、ParseGeoPoint这个对象是可以存储的,数据类型为GeoPoint,新增这个字段保存即可。

更多相关文章

  1. Android中使用HttpURLConnection实现GET POST JSON数据与下载图
  2. 在 Android(安卓)应用程序中使用 Internet 数据
  3. Android数据持久化,你还不会?
  4. android.util包下的几个集合类 SparseArray和ArrayMap等
  5. Android异步加载获取网络数据(图片)
  6. 第五章 以数据为中心—数据存取(2)
  7. Android(安卓)SharedPreferences详解
  8. Android之Content Providers
  9. android 关系型数据库 SQLiteDatabase的 增 删 改 查

随机推荐

  1. [Android UI界面] 求助大神!selector怎么
  2. Android内存使用研究
  3. Android滚轮实现LinearSnapHelper
  4. [android ndk]android studio动态库生成
  5. Android开发者e周报 第3期
  6. 获得联系人姓名,相关电话以及邮件地址sdk2
  7. Javascript判断浏览器终端是安卓Android
  8. Android显示时间和日期的控件的使用总结
  9. android新知识汇总
  10. Android的线程模型