JSFiddle - React, Tailwind, and code Playground

by blesh

JavaScript

/*
    lat2: =ASIN(SIN(lat1)*COS(d/ER) + COS(lat1)*SIN(d/ER)*COS(brng))
lon2: =lon1 + ATAN2(COS(d/ER)-SIN(lat1)*SIN(lat2), SIN(brng)*SIN(d/ER)
*COS(lat1))
    */

function getCoords(coords, d, brng) {
    var ER = 6374;
    var lat1 = coords.lat;
    var long1 = coords.long;
    var lat2 = Math.asin(Math.sin(lat1) * Math.cos(d, ER) * Math.cos(brng));
    var long2 = Math.atan2(Math.cos(d / ER) - (Math.sin(lat1) * Math.sin(lat2)), Math.sin(brng) * Math.sin(d / ER));
    return {
        lat: lat2,
        long: long2
    };
}

var c2 = getCoords({
    lat: 40.5862,
    long: -80.009
}, 80.4672, 0);
console.log(c2);

function getCoords2(lon1, lat1, d, tc) {
    var pi = Math.PI;
    var lat = Math.asin( Math.sin(lat1) * Math.cos(d) + Math.cos(lat1) * Math.sin(d) * Math.cos(tc))
    var dlon = Math.atan2( Math.sin(tc) * Math.sin(d) * Math.cos(lat1), Math.cos(d) - Math.sin(lat1) * Math.sin(lat))
    var lon = ( ( lon1 - dlon + pi ) % ( 2 * pi ) ) - pi;
    return { long: lon, lat: lat };
}

var c3 = getCoords2({
    lat: 40.5862,
    long: -80.009
}, 80.4672, 0);
console.log(c3);