From 6fbed62f6f5a545121bb8373b4021b89d8f32356 Mon Sep 17 00:00:00 2001 From: marko Date: Tue, 25 Aug 2020 10:37:08 -0400 Subject: [PATCH] Fix great circle formula in gpsnav --- apps/gpsnav/app.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/gpsnav/app.js b/apps/gpsnav/app.js index 1e70b0cd3..3bbc756b7 100644 --- a/apps/gpsnav/app.js +++ b/apps/gpsnav/app.js @@ -93,9 +93,8 @@ function bearing(a,b){ } function distance(a,b){ - var x = radians(a.lon-b.lon) * Math.cos(radians((a.lat+b.lat)/2)); - var y = radians(b.lat-a.lat); - return Math.round(Math.sqrt(x*x + y*y) * 6371000); + var dsigma = Math.acos(Math.sin(radians(a.lat))*Math.sin(radians(b.lat))+Math.cos(radians(a.lat))*Math.cos(radians(b.lat))*Math.cos(radians(a.lon-b.lon))); + return Math.round(dsigma*6371000); } var selected = false;