嗨! 我是javascript的新手,我尝试计算球坐标中给出的两个(GNNS)点之间的距离?我的脚本:
function spherical_dist() {
fi_A = document.sphere.fi_A.value;
lambda_A = document.sphere.lambda_A.value;
fi_B = document.sphere.fi_B.value;
lambda_B = document.sphere.lambda_B.value;
R = 6378000;
dlambda_AB = lambda_B - lambda_A;
nu_AB = Math.acos( sin(fi_A) * Math.sin(fi_B) + Math.cos(fi_A) * Math.cos(fi_B) * Math.cos(dlambda_AB) );
ro = 180/Math.PI;
S_AB = R * nu_AB / ro;
document.sphere.S_AB.value=S_AB;
}
我的问题是:在语法上正确吗? 我想为我的一项家庭作业编写HTMH代码(也是HTML的新功能)。整个脚本:
<html>
<head>
<title>Distance between two coordinates in spherical coordinate system</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
</head>
<script language="JavaScript">
function init() {
document.sphere.S_AB.value="";
document.sphere.fi_A.value="";
document.sphere.lambda_A.value="";
document.sphere.fi_B.value="";
document.sphere.lambda_B.value="";
}
function sz_enter() {
if (event.keyCode==13) {
spherical_dist();
}
}
function spherical_dist() {
fi_A = document.sphere.fi_A.value;
lambda_A = document.sphere.lambda_A.value;
fi_B = document.sphere.fi_B.value;
lambda_B = document.sphere.lambda_B.value;
R = 6378000;
dlambda_AB = lambda_B - lambda_A;
nu_AB = Math.acos( sin(fi_A) * Math.sin(fi_B) + Math.cos(fi_A) * Math.cos(fi_B) * Math.cos(dlambda_AB) );
ro = 180/Math.PI;
S_AB = R * nu_AB / ro;
document.sphere.S_AB.value=S_AB;
}
</script>
<body bgcolor="#FFFFFF" text="#000000">
<form name="sphere" method="post" action="">
<p>P1 Longitude: <input type="text" name="fi_A"></p>
<p>P1 Latitude: <input type="text" name="lambda_A"></p>
<p>P2 Longitude: <input type="text" name="fi_B"></p>
<p>P2 Latitude: <input type="text" name="lambda_B" onFocus="init();"></p>
<p><input type="button" name="start" value="Calculate" onClick="spherical_dist();"></p>
<hr>
<p>
Distance between the two points [m]: <input type="text" name="S_AB" size="10" readonly>
</p>
</form>
Explanation: <br>
- Here comes some explanation
</body>
感谢您的帮助! :)