function rad(d)
{
return d * Math . PI / 180.0;
}
function GetDistance(lat1, lng1, lat2, lng2)
{
hide("warning");
if ((Math . abs(lat1) > 90) || (Math . abs(lat2) > 90)) {
document . getElementById("warning") . innerHTML = ("兄台,这哪里是纬度啊?分明是想忽悠我嘛");
show("warning");
return "耍我?拒绝计算!";
} else {
hide("warning");
}
if ((Math . abs(lng1) > 180) || (Math . abs(lng2) > 180)) {
show("warning");
document . getElementById("warning") . innerHTML = ("兄台,这哪里是经度啊?分明是想忽悠我嘛");
return "耍我?拒绝计算!";
} else {
hide("warning");
}
var radLat1 = rad(lat1);
var radLat2 = rad(lat2);
var a = radLat1 - radLat2;
var b = rad(lng1) - rad(lng2);
var s = 2 * Math . asin(Math . sqrt(Math . pow(Math . sin(a / 2), 2) +
Math . cos(radLat1) * Math . cos(radLat2) * Math . pow(Math . sin(b / 2), 2)));
s = s * 6378.137;// EARTH_RADIUS 地球赤道长度;
s = Math . round(s * 10000) / 10000;
return s;
}
function calDis()
{
//A:纬度(lat1) 经度(lng1)B:纬度(lat2) 经度(lng2)
var lat1 = document . getElementById("lat1") . value * 1;
var lat2 = document . getElementById("lat2") . value * 1;
var lng1 = document . getElementById("lng1") . value * 1;
var lng2 = document . getElementById("lng2") . value * 1;
var dis = GetDistance(lat1, lng1, lat2, lng2);
document . getElementById("distance") . value = dis;
}
调用 calDis()