【Android】Parse 開發筆記(3)—— 實現尋找附近的功能(LBS)

來源:互聯網
上載者:User

前言

還在擔心Parse不支援複雜的SQL查詢,比如實現尋找附近的人的功能,今天有認真的看了一遍文章《面向 Android 應用程式的基於 Parse 雲的服務》,喜出望外,居然直接提供了API,不愧是專門做移動背景!

 

聲明
歡迎轉載,但請保留文章原始出處:)

部落格園:http://www.cnblogs.com

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

 

本文

一、系列

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,新增這個欄位儲存即可。 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.