2017-02-19 73 views
-1

對不起,不提供任何示例代碼,因爲我沒有關於如何做到這一點的想法。如何找到解決應用的用戶所在地附近的用戶

我編碼,它使用火力地堡作爲後端的Android應用程序。 我使用fusedlocationapi存儲當前當前用戶位置思想報分貝。

現在,當用戶登錄到應用程序時,他/她被賦予一個選項,以顯示周圍25公里半徑只有用戶列表(假設爲例)。任何人都可以引導我與這個功能請。

我don.t想這樣做在客戶端...有什麼辦法,因此用mysql

+0

你想要什麼?顯示半徑25公里的用戶? –

+0

是Mr.Roshan..could你幫這一點。,,請 –

+0

的【如何有效地找到附近最近的位置給定的位置]可能的複製(http://stackoverflow.com/questions/3922404/how-to-有效地找到的最最接近-位置,附近-A-給定地點) – halfer

回答

0

您可以使用谷歌地圖API的Android工具庫

public class DistanceHelper { 
private static final Double RADIUS = 25000.0; 

public static double getDistance(LatLng user1, LatLng user2){ 
    double distance = SphericalUtil.computeDistanceBetween(user1, user2); 

    return distance; 
} 

public static Double getRadius(){ 
    return RADIUS; 
} 

public static String formatNumber(double distance) { 
    String unit = "m"; 
    if (distance < 1) { 
     distance *= 1000; 
     unit = "mm"; 
    } else if (distance > 1000) { 
     distance /= 1000; 
     unit = "km"; 
    } 

    return String.format("%4.3f%s", distance, unit); 
} 

}

LatLng user1 = new LatLng(currentUser.getLatitude(), currentUser.getLongitude()); 
      LatLng user2 = new LatLng(otherUser.getLatitude(), otherUser.getLongitude()); 
      Double distance = DistanceHelper.getDistance(user1, user2); 
      if (distance <= DistanceHelper.getRadius()) { 
       //code here 
      } 

我使用GPS和的LocationManager存儲用戶的經度和緯度FB數據庫。將計算放入您的ChildEventListener中以獲取25公里範圍內的用戶。

但是我認爲這個實現是錯誤的,因爲計算是在客戶端完成的,所以如果你有一百萬或十億用戶,那麼你必須在客戶端的設備上逐一計算,這可能會導致你的應用程序性能非常低。

+0

是的,你是絕對正確的,我不能像檢查您的this..thank每個用戶的回覆 –

+0

你歡迎先生。 – pastillas

相關問題