2017-05-29 73 views
-1

我有一個關於位置的問題,我的程序將應用程序的位置保存到firebase數據庫中,沒關係,我需要將我的位置與數據庫中的位置進行比較,我使用userData對象將座標保存到它:無法找到兩點之間的距離

Location dbLocation = new Location("dbLocation"); 
dbLocation.setLatitude(userData.lat); 
dbLocation.setLongitude(userData.lng); 

,我得到我的位置,GPSTracker服務座標:

Location crntLocation = new Location("crntLocation"); 
crntLocation.setLongitude(gpstracker.getLongitude()); 
crntLocation.setLatitude(gpstracker.getLatitude()); 

我需要比較這個座標,找到距離2點的位置

之間

但它不起作用,我不知道爲什麼,請你幫助解決它嗎?

+0

做u得到什麼值的距離在'distanceBetween'? – tahsinRupam

+0

你嘗試過'distanceBetween'方法嗎? https://developer.android.com/reference/android/location/Location.html#distanceBetween%28double,%20double,%20double,%20double,%20float%5B%5D%29 –

+0

可能的重複[Android之間的距離點](https://stackoverflow.com/questions/11534323/android-distance-between-two-points) –

回答

0

得到的位置,是緯度,經度電流後,你就可以檢查從原點(緯度經度)

float[] results = new float[1]; 
Location.distanceBetween(currentlatitude, currentlongitude, originLat, originLon, results); 
float distanceInMeters = results[0]; 
0

我希望這有助於

public static double distance(Location start, Location end) { 
    try { 
     double distance = start.distanceTo(end); 
     DecimalFormat decimalFormat = new DecimalFormat("#.#"); 
     DecimalFormatSymbols custom = new DecimalFormatSymbols(); 
     custom.setDecimalSeparator('.'); 
     decimalFormat.setDecimalFormatSymbols(custom); 
     double distanceFormated = 
     Double.parseDouble(decimalFormat.format(distance)); 
     return distanceFormated; 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return 0; 
}