越來越多的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米左右,誤差是可以接受的,是以推薦使用該方法。