KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Is it even that inaccurate? I re-implented the whole thing with Apfloat arbitrary precision and it made no difference which I should have known to start with!! public static double bearing(LatLng latLng1, LatLng latLng2) { double deltaLong = toRadians(latLng2.longitude - latLng1.longitude); double lat1 = toRadians(latLng1.latitude); double lat2 = toRadians(latLng2.latitude); double y = sin(deltaLong) * cos(lat2); double x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(deltaLong); double result = toDegrees(atan2(y, x)); return (result + 360.0) % 360.0; } @Test public void testBearing() { LatLng first = new LatLng(36.0, 174.0); LatLng second = new LatLng(36.0, 175.0); assertEquals(270.0, LatLng.bearing(second, first), 0.005); assertEquals(90.0, LatLng.bearing(first, second), 0.005); } The first assertion in the test gives this: java.lang.AssertionError: expected:<270.0> but was:<270.29389750911355> 0.29 seems to quite a long way off? Is this the formula i chose to implement?
Tags (comma-separated)
Save Edits
Cancel