Android 不一致的值
我在计算用户当前位置和给定坐标之间的距离。但我得到的两个测试设备Galaxy S3和Galaxy S4的值不同Android 不一致的值,android,distance,Android,Distance,我在计算用户当前位置和给定坐标之间的距离。但我得到的两个测试设备Galaxy S3和Galaxy S4的值不同 public static double getDistance(double lat1, double lon1, double lat2,double lon2,String unit) { double theta = lon1 - lon2; double dist = (Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(la
public static double getDistance(double lat1, double lon1, double lat2,double lon2,String unit) {
double theta = lon1 - lon2;
double dist = (Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2))) * Math.cos(deg2rad(theta));
dist = Math.acos(dist):
dist = rad2deg(dist);
dist = dist * 60 * 1.1515;
if (unit == 'K'){
dist = dist * 1.609344 * 1000;
}else if (unit=='N') {
dist = dist * 0.8684;
}
DecimalFormat df = new DecimalFormat("#.0");
double metres = (Double.valueOf(df.format(dist)));
return metres;
}
private static double deg2rad(double deg) {
return (deg*Math.PI / 180.0);
}
private static double rad2deg(double rad){
return (rad*180.0 / Math.PI);
}
可能的重复您能否解释更多关于我的2台测试设备Galaxy S3和Galaxy S4的不同值是什么意思?举个例子会很有用。您是否在S3和S4上获得了相同的当前位置latlng?如果没有,那么您的设备可能会返回您之前保存的最后一个已知位置。我正在读取latlng.Ex的相同文件。我目前的位置是lat 1.3316535 lon 103.8487563。Im计算当前位置到lat 1.3367406266337 lon 103.8505371999740的距离。在我的s3设备中,它显示600.5m,在我的s4设备中,它显示1.154667E7m