2014-04-13 113 views
1

我想要计算两个位置之间的距离和方位。这是我在互联网上找到的代码,但它返回不同的值。android中两个位置之间的距离和方位

double currentLat = 51.43376; 
    double currentLng = -2.86221; 

    double destLat = 51.43503; 
    double destLng = -2.86869; 

    final float[] results= new float[3]; 
    Location.distanceBetween(currentLat, currentLng, destLat, destLng, results); 
    System.out.println("GPS" + "results[0]: " + results[0]); 
    System.out.println("GPS" + "results[1]: " + results[1]); 
    System.out.println("GPS" + "results[2]: " + results[2]); 


    Location here = new Location("Current"); 
    here.setLatitude(currentLat); 
    here.setLatitude(currentLng); 

    Location dest = new Location("Destination2"); 
    dest.setLatitude(destLat); 
    dest.setLongitude(destLng); 


    System.out.println("GPS" + "Bearing to dest: " + here.bearingTo(dest)); 
    System.out.println("GPS" + "Distance to dest: " + here.distanceTo(dest)); 

的logcat的:

04-13 17:46:13.056: I/System.out(1349): GPSresults[0]: 472.2533 
04-13 17:46:13.056: I/System.out(1349): GPSresults[1]: -72.5882 
04-13 17:46:13.066: I/System.out(1349): GPSresults[2]: -72.59327 
04-13 17:46:13.066: I/System.out(1349): GPSBearing to dest: -2.2131138 
04-13 17:46:13.066: I/System.out(1349): GPSDistance to dest: 6023135.0 

所以任何一个可以帮助我,这些方法并告诉我哪一个是正确的使用。 谢谢

回答

0

在您的代码:

Location here = new Location("Current"); 
here.setLatitude(currentLat); 
here.setLatitude(currentLng); 

设置纬度两次。更正后,它会给出绝对正确的结果。

+0

哦,我真的为这个愚蠢的错误感到尴尬。感谢您的帮助。 – user3474318

+0

不客气) –

相关问题