'a'和'c'在'Haversine formula'中代表什么来测量两点之间的距离?
What do 'a' and 'c' stand for in 'Haversine formula' to measure the distance between two points?
var R = 6371e3; // metres
var φ1 = lat1.toRadians();
var φ2 = lat2.toRadians();
var Δφ = (lat2-lat1).toRadians();
var Δλ = (lon2-lon1).toRadians();
var a = Math.sin(Δφ/2) * Math.sin(Δφ/2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ/2) * Math.sin(Δλ/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
这里在这个代码公式中使用的是JavaScript。但无论如何,原始公式中也使用了 a 和 c。它们是什么意思?
其实c
是两点之间的angular距离(以弧度为单位),a
是两点之间半弦长的平方
P. S. 参见 here。
var R = 6371e3; // metres
var φ1 = lat1.toRadians();
var φ2 = lat2.toRadians();
var Δφ = (lat2-lat1).toRadians();
var Δλ = (lon2-lon1).toRadians();
var a = Math.sin(Δφ/2) * Math.sin(Δφ/2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ/2) * Math.sin(Δλ/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
这里在这个代码公式中使用的是JavaScript。但无论如何,原始公式中也使用了 a 和 c。它们是什么意思?
其实c
是两点之间的angular距离(以弧度为单位),a
是两点之间半弦长的平方
P. S. 参见 here。