Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
11
Task/Haversine-formula/JavaScript/haversine-formula-1.js
Normal file
11
Task/Haversine-formula/JavaScript/haversine-formula-1.js
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
function haversine() {
|
||||
var radians = Array.prototype.map.call(arguments, function(deg) { return deg/180.0 * Math.PI; });
|
||||
var lat1 = radians[0], lon1 = radians[1], lat2 = radians[2], lon2 = radians[3];
|
||||
var R = 6372.8; // km
|
||||
var dLat = lat2 - lat1;
|
||||
var dLon = lon2 - lon1;
|
||||
var a = Math.sin(dLat / 2) * Math.sin(dLat /2) + Math.sin(dLon / 2) * Math.sin(dLon /2) * Math.cos(lat1) * Math.cos(lat2);
|
||||
var c = 2 * Math.asin(Math.sqrt(a));
|
||||
return R * c;
|
||||
}
|
||||
console.log(haversine(36.12, -86.67, 33.94, -118.40));
|
||||
37
Task/Haversine-formula/JavaScript/haversine-formula-2.js
Normal file
37
Task/Haversine-formula/JavaScript/haversine-formula-2.js
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
((x, y) => {
|
||||
'use strict';
|
||||
|
||||
// haversine :: (Num, Num) -> (Num, Num) -> Num
|
||||
const haversine = ([lat1, lon1], [lat2, lon2]) => {
|
||||
// Math lib function names
|
||||
const [pi, asin, sin, cos, sqrt, pow, round] = [
|
||||
'PI', 'asin', 'sin', 'cos', 'sqrt', 'pow', 'round'
|
||||
]
|
||||
.map(k => Math[k]),
|
||||
|
||||
// degrees as radians
|
||||
[rlat1, rlat2, rlon1, rlon2] = [lat1, lat2, lon1, lon2]
|
||||
.map(x => x / 180 * pi),
|
||||
|
||||
dLat = rlat2 - rlat1,
|
||||
dLon = rlon2 - rlon1,
|
||||
radius = 6372.8; // km
|
||||
|
||||
// km
|
||||
return round(
|
||||
radius * 2 * asin(
|
||||
sqrt(
|
||||
pow(sin(dLat / 2), 2) +
|
||||
pow(sin(dLon / 2), 2) *
|
||||
cos(rlat1) * cos(rlat2)
|
||||
)
|
||||
) * 100
|
||||
) / 100;
|
||||
};
|
||||
|
||||
// TEST
|
||||
return haversine(x, y);
|
||||
|
||||
// --> 2887.26
|
||||
|
||||
})([36.12, -86.67], [33.94, -118.40]);
|
||||
Loading…
Add table
Add a link
Reference in a new issue