如何使用相应的纬度和经度值计算两个地方之间的距离?

时间:2012-11-24 12:43:09

标签: javascript latitude-longitude

我知道这是一个重复的问题,但我不得不问,因为我的代码无效。我不知道为什么不。

我的代码:

<!DOCTYPE html>
<html>
<head>
<script>
function displayDistance()
{

var R = 6371; // km
var dLat = (23.87284-23.76119).toRad();
var dLon = (90.39603-90.43491).toRad(); 
var a = Math.sin(dLat/2) * Math.sin(dLat/2) + 
        Math.cos(23.76119.toRad()) * Math.cos(23.87284.toRad()) *
        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("demo").innerHTML=d;
}
</script>
</head>
<body>
<div id="demo"></div>
<button type="button" onclick="displayDistance()">Display Distance</button>

</body>
</html> 

但是没有任何反应。 感谢

1 个答案:

答案 0 :(得分:2)

toRad不是原生的javascript函数。您必须在使用它之前声明它。

/** Converts numeric degrees to radians */
if (typeof(Number.prototype.toRad) === "undefined") {
  Number.prototype.toRad = function() {
    return this * Math.PI / 180;
  }
}

此处的代码:toRad() Javascript function throwing error

您可以查看此jsfiddle:http://jsfiddle.net/ySsQ3/

顺便说一下,你真的应该把你的javascript代码放在body的末尾(而不是head