2016-04-01 12 views
0

GPS noktalarını kullanarak, bir seferde bir mesafeye her seferinde bir katma değer ekleyerek, location1.distanceTo (location2) ile önceki ve geçerli noktaları tutarak hesaplıyorum. Araç hareket mesafesini almak için iyi bir yaklaşım mı? Hareket halindeki araçta doğru hareket mesafesine ulaşmak için daha iyi bir yaklaşım var mı?Android: mobil cihazı kullanarak araç hareket mesafesini hesaplayın

+0

Eğer metre cinsinden uzaklığınız yuvarlaklaşmıyorsa, olabilirim. –

cevap

0

Aşağıdaki kodu kullanın. Umarım yardımcı olur.

public double CalculationByDistance(LatLng StartP, LatLng EndP) { 
    int Radius = 6371;// radius of earth in Km 
    double lat1 = StartP.latitude; 
    double lat2 = EndP.latitude; 
    double lon1 = StartP.longitude; 
    double lon2 = EndP.longitude; 
    double dLat = Math.toRadians(lat2 - lat1); 
    double dLon = Math.toRadians(lon2 - lon1); 
    double a = Math.sin(dLat/2) * Math.sin(dLat/2) 
      + Math.cos(Math.toRadians(lat1)) 
      * Math.cos(Math.toRadians(lat2)) * Math.sin(dLon/2) 
      * Math.sin(dLon/2); 
    double c = 2 * Math.asin(Math.sqrt(a)); 
    double valueResult = Radius * c; 
    double km = valueResult/1; 
    DecimalFormat newFormat = new DecimalFormat("####"); 
    int kmInDec = Integer.valueOf(newFormat.format(km)); 
    double meter = valueResult % 1000; 
    int meterInDec = Integer.valueOf(newFormat.format(meter)); 
    Log.i("Radius Value", "" + valueResult + " KM " + kmInDec 
      + " Meter " + meterInDec); 

    return Radius * c; 
} 



float[] results = new float[1]; 
Location.distanceBetween(oldPosition.latitude, oldPosition.longitude, 
      newPosition.latitude, newPosition.longitude, results); 
İlgili konular