你如何计算谷歌地图 V3 中五个标记之间的距离?我知道我必须使用我研究过的 Haversine 公式,甚至在这里找到了一篇关于计算两个标记之间距离的帖子。如果我想在五个标记之间计算它怎么办?尝试了几个小时,但计算出的公里数非常错误。谢谢
以下代码如下:
// compute distance between the two points
var R = 6371; // KM
var dLat = toRad(location5.lat()-location4.lat()-location3.lat()-location2.lat()-location1.lat());
var dLon = toRad(location5.lng()-location4.lng()-location3.lng()-location2.lng()-location1.lng());
var dLat1 = toRad(location1.lat());
var dLat2 = toRad(location2.lat());
var dLat3 = toRad(location3.lat());
var dLat4 = toRad(location4.lat());
var dLat5 = toRad(location5.lat());
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(dLat1) * Math.cos(dLat1) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
document.getElementById("distance_direct").innerHTML = "<br/><br/><br/>The distance between the five points (in a straight line) is: "+d +" Km.";
}
function toRad(deg)
{
return deg * Math.PI/180;
}
我想我的错误部分是以 var a 公式开头的行。如果我错了,请指出我的错误,也许有帮助的解决方案?