天天看點

搜尋附近人和商鋪功能

越來越多的android應用都加入了“附近的人”的功能,比如微信、陌陌、淘寶等,今天分享一個demo,簡單的來實作這一功能。主要原理為:手機端上傳gps資料到伺服器,伺服器從資料庫中查詢其他使用者的gps資料,分别計算2個pgs之間的距離,然後将計算好的資料傳回給手機,手機進行展示。

手機端項目:nearbydemo

伺服器端項目:nearbyserverdemo

手機端代碼講解:

mainactivity是項目的入口activity

檢視附近的人,是需要使用使用者資訊的,是以在oncreate方法中先判斷使用者是不是第一次打開應用,如果是第一次打開應用,跳轉到loginactivity,進行使用者資訊登記:

搜尋附近人和商鋪功能

之後便進入mainactivity:

搜尋附近人和商鋪功能

點選actionbar上的附近的人,便會顯示從伺服器擷取到的使用者資訊(目前伺服器是把所有使用者資訊全部傳回):

搜尋附近人和商鋪功能

請求網絡使用的是Google在IO大會上才推出的Volley.

伺服器端是使用java web編寫的。在這裡不詳細介紹了。計算距離的邏輯是從android的提供的接口(location.distancebetween)中拔來的,應該是最精确的方法了

下面再提供了一種更簡單的方法(感謝@l給未來的自己)

這裡是把地球當成圓球來處理的

經過測試,對于4千米的2點,相差為10米左右,誤差是可以接受的,是以推薦使用該方法。

繼續閱讀