【发布时间】:2017-08-13 12:20:06
【问题描述】:
我正在尝试计算两个位置之间的距离,我尝试了 location.distanceTo 和 Location.distanceBetween 方法,但在这两种情况下都返回 0,我不确定我做错了什么。这是我的方法:
public static double distance(double lat1, double lon1, double lat2, double lon2, DistanceUnit unit) {
Location location1 = new Location("");
location1.setLatitude(lat1);
location1.setLongitude(lon1);
Location location2 = new Location("");
location2.setLatitude(lat2);
location2.setLongitude(lon2);
// Distance in km
double dist = location1.distanceTo(location2) / 1000;
if (unit == DistanceUnit.Miles) {
// Distance in miles
dist = dist / 1.6;
}
return dist;
}
我正在运行的单元测试,以确保测试运行是:
@Test
public void testDistance() {
double lat1 = 40.2582279;
double lon1 = -75.2654062;
double lat2 = 40.476492;
double lon2 = -75.355655;
double distance = LocationUtils.distance(lat1, lon1, lat2, lon2, DistanceUnit.Kilometer);
Assert.assertEquals(20, distance, 2);
}
我得到的结果是:
java.lang.AssertionError:
Expected :20.0
Actual :0.0
提前致谢
【问题讨论】: