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);