JSFiddle - React, Tailwind, and code Playground

by andypotanin

JavaScript

var andy = {
    lat: "34.4007430",
    lon: "-77.6484680"
}

// 34.4007430,-77.6484680
var places = {
    raleigh : {
        lat: "35.773854",
        lon: "-78.637416"
    },
    miami: {
        lat: "25.784476",
        lon: "-80.193136"
    },
    denver: {
        lat: "39.753724",
        lon: "-104.995497"
    }
    
};
console.clear();

var i = 0;
while (i < 200) {
    
console.log( 'raleigh', distance( andy.lat, andy.lon, places.raleigh.lat, places.raleigh.lon, 'M' ) );
console.log( 'miami', distance( andy.lat, andy.lon, places.miami.lat, places.miami.lon, 'M' ) );
console.log( 'denver', distance( andy.lat, andy.lon, places.denver.lat, places.denver.lon, 'M' ) );
    
    i++;
}


function distance(lat1, lon1, lat2, lon2, unit) {
//    console.log( arguments);
	var radlat1 = Math.PI * lat1/180
	var radlat2 = Math.PI * lat2/180
	var radlon1 = Math.PI * lon1/180
	var radlon2 = Math.PI * lon2/180
	var theta = lon1-lon2
	var radtheta = Math.PI * theta/180
	var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
	dist = Math.acos(dist)
	dist = dist * 180/Math.PI
	dist = dist * 60 * 1.1515
	if (unit=="K") { dist = dist * 1.609344 }
	if (unit=="N") { dist = dist * 0.8684 }
	return dist
}