I am trying to calculate distance between two locations, I tried both location.distanceTo and Location.distanceBetween method but in both cases 0 is returned, I am not sure what am I doing wrong. Here is my method:
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;
}
The unit test I am running to ensure that the test run is:
@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);
}
And result I am getting is:
java.lang.AssertionError:
Expected :20.0
Actual :0.0
Thanks in advance