JSFiddle - React, Tailwind, and code Playground
JavaScript
function calcCrow(lat1, lon1, lat2, lon2) {
var R = 6371; // km
var dLat = toRad(lat2 - lat1);
var dLon = toRad(lon2 - lon1);
var lat1 = toRad(lat1);
var lat2 = toRad(lat2);
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.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c;
return d;
}
function toRad(Value) {
return Value * Math.PI / 180;
}
a = Date.now();
seed = [30, 110];
for (let i = 0; i < 10000; i++) {
//随机生成一个服务员的位置
let p1 = [seed[0] + Math.random(), seed[1] + Math.random()];
let p1d = [];
for (let k = 0; k < 10000; k++) {
//随机生成一个服务地址的位置
let p2 = [seed[0] + Math.random(), seed[1] + Math.random()];
let d = calcCrow(p1[0], p1[1], p2[0], p2[1]);
//p1d.push(d);
}
//p1d.sort();
}
b = Date.now();
alert(b - a);