JSFiddle - React, Tailwind, and code Playground

by BurpmanJunior

JavaScript

function measure(lat1, lon1, lat2, lon2){
    var R = 6378.137; // Radius of earth in KM
    var dLat = (lat2 - lat1) * Math.PI / 180; // Degrees lat
    var dLon = (lon2 - lon1) * Math.PI / 180; // Degrees lon
    var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) * Math.sin(dLon/2) * Math.sin(dLon/2);
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    var d = R * c;
    var heading = Math.atan2(lon2 - lon1, lat2 - lat1) * 180 / Math.PI;
    return {distance: d * 1000, heading: heading}; // meters
}

console.log(measure(
	51.2798154, -0.7514710000000001,
  51.29162004176985, -0.7558035850524902
));