2016-05-25 59 views
0

我正在計算兩個位置之間使用經度和緯度的距​​離...我很容易獲得距​​離並將其轉換爲英里......但第一個差值的格式不正確,其他值正確。distanceto functon返回錯誤格式Android

第一距離來這樣= 2.0E-4 雖然其他這樣= 48.8881

我已經使用以下代碼

Location l1 = new Location("One"); 
     l1.setLatitude(cur_latitude); 
     l1.setLongitude(cur_longitude); 

     for (int i = 0; i < lctn.size(); i++) { 
      Location l2 = new Location("LocationB"); 
      l2.setLatitude(lctn.get(i).getLocation_lat()); 
      l2.setLongitude(lctn.get(i).getLocation_lng()); 
      float distance = l1.distanceTo(l2); 
      distance =Float.parseFloat(new DecimalFormat("##.####").format(distance/1000.0f)); 
      Double mile = Double.parseDouble(new DecimalFormat("##.####").format(distance * 0.6214)); 

      Log.e("km_", "" + distance); 
      Log.e("miles_", "" + mile); 

也請檢查是否我使用權的公式計算英里....預先感謝

回答

0

距離是爲什麼它發生的點,你需要使用精度變量,併爲這個變量分配一些值, 在我的情況下我使用

int accuracy = 20; 

然後比較定位精度

if(l2.getAccuracy() <= accuracy) { 
Log.e("km_", "" + distance); 
Log.e("miles_", "" + mile); 
} 

這樣的精度,我建議你使用融合位置API進行精確的距離。