【Android】Parse 开发笔记(3)—— 实现查找附近的功能(LBS)

一、系列

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

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

二、简介

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

三、Mysql版本

典型的SQL语句如:

ORDER BY ABS( locationLatitude - ? + locationLongitude - ?) 

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

四、Parse版本

     public  static List<ParseObject> queryAroundUsers( final Context ctx, POUser user,  int minute,  int startIndex,  int pageSize)  throws ParseException {
        ParseQuery query =  new ParseQuery("nmbb_user");
        ParseGeoPoint point =  new ParseGeoPoint();
        point.setLatitude(user.locationLatitude);
        point.setLongitude(user.locationLongitude);
        query.whereWithinKilometers("location", point, 5); // 最大5公里
        query.setSkip(startIndex);
        query.setLimit(pageSize);
         return query.find();
    }

  代码说明:

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

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

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

本文转自博客园农民伯伯的博客,原文链接:【Android】Parse 开发笔记(3)—— 实现查找附近的功能(LBS),如需转载请自行联系原博主。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值