计算经纬度距离 asp vb

我在网上找到下面一段代码
Public Function Distance(lon1 As Double, lat1 As Double, lon2 As Double, lat2 As Double) As Double

Dim a_2d As Double
Dim e_2d As Double
Dim h_2d As Integer
Dim DEG_2_RAD As Double
Dim RAD_2_DEG As Double

Dim x_rads As Double
Dim y_rads As Double
Dim n_2ds As Double
Dim x_2d As Double
Dim y_2d As Double
Dim z_2d As Double
Dim x_radm As Double
Dim y_radm As Double
Dim n_2dm As Double
Dim x_2d_mark As Double
Dim y_2d_mark As Double
Dim z_2d_mark As Double
Dim curdistance As Double

a_2d = 6378137
e_2d = 0.00669438
h_2d = 15
DEG_2_RAD = 0.01745329252
RAD_2_DEG = 57.2957795129

x_rads = Abs(lon1) * DEG_2_RAD
y_rads = Abs(lat1) * DEG_2_RAD

n_2ds = a_2d / Sqr(1 - e_2d * Sin(y_rads) * Sin(y_rads))

x_2d = (n_2ds + h_2d) * Cos(y_rads) * Cos(x_rads)
y_2d = (n_2ds + h_2d) * Cos(y_rads) * Sin(x_rads)
z_2d = (n_2ds * (1 - e_2d) + h_2d) * Sin(y_rads)

x_radm = Abs(lon2) * DEG_2_RAD
y_radm = Abs(lat2) * DEG_2_RAD

n_2dm = a_2d / Sqr(1 - e_2d * Sin(y_radm) * Sin(y_radm))

x_2d_mark = (n_2dm + h_2d) * Cos(y_radm) * Cos(x_radm)
y_2d_mark = (n_2dm + h_2d) * Cos(y_radm) * Sin(x_radm)
z_2d_mark = (n_2dm * (1 - e_2d) + h_2d) * Sin(y_radm)

curdistance = (x_2d_mark - x_2d) * (x_2d_mark - x_2d) + (y_2d_mark - y_2d) * (y_2d_mark - y_2d) + (z_2d_mark - z_2d) * (z_2d_mark - z_2d)
curdistance = Sqr(curdistance)

Distance = curdistance
End Function

是用VB开发的函数 已经是很牛了。 但是目前只能进行度的计算 无法进行分和秒的计算。那位兄弟能参考这个网站把分和秒的计算做出来。
http://www.srpa.com.cn/calcdistance.aspx

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title></title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<LINK href="Style.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">BODY { MARGIN: 0px }
</style>
<script language="javascript">

function init()
{

}
function defaultend()
{

//人民广场经纬度
Form1.txt_EJingDu.value="121";
Form1.txt_EJingFen.value="28";
Form1.txt_EJingMiao.value="10";

Form1.txt_EWeiDu.value="31";
Form1.txt_EWeiFen.value="13";
Form1.txt_EWeiMiao.value="54";

}

function clearall()
{

Form1.txt_SJingDu.value="";
Form1.txt_SJingFen.value="";
Form1.txt_SJingMiao.value="";

Form1.txt_SWeiDu.value="";
Form1.txt_SWeiFen.value="";
Form1.txt_SWeiMiao.value="";

Form1.txt_EJingDu.value="";
Form1.txt_EJingFen.value="";
Form1.txt_EJingMiao.value="";

Form1.txt_EWeiDu.value="";
Form1.txt_EWeiFen.value="";
Form1.txt_EWeiMiao.value="";
}

</script>
</HEAD>
<body onLoad="init();">
<form name="Form1" method="post" action="calcdistance.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwtOTQ5NTk1MzY5Ozs+pdKEyyAZu9YzSyoG/NHMn7pvGDM=" />

<table cellSpacing="1" cellPadding="0" align="center" bgColor="#999999" border="0">
<tr align="center" bgColor="#ffffff">
<td height="25" colSpan="2">空距计算</td>
</tr>
<tr bgColor="#ffffff">
<TD colSpan="2" height="25" align="center">
<span id="lb_Result"></span></TD>
</tr>
<tr bgColor="#ffffff">
<td align="right" height="25">起点经度:</td>
<td height="25"><FONT face="宋体">
<input name="txt_SJingDu" type="text" id="txt_SJingDu" style="width:20px;" />度
<input name="txt_SJingFen" type="text" id="txt_SJingFen" style="width:20px;" />分
<input name="txt_SJingMiao" type="text" id="txt_SJingMiao" style="width:20px;" />秒</FONT></td>
</tr>
<tr bgColor="#ffffff">
<td align="right" height="25">起点纬度:</td>
<td height="25"><input name="txt_SWeiDu" type="text" id="txt_SWeiDu" style="width:20px;" />度
<input name="txt_SWeiFen" type="text" id="txt_SWeiFen" DESIGNTIMEDRAGDROP="109" style="width:20px;" />分
<input name="txt_SWeiMiao" type="text" id="txt_SWeiMiao" style="width:20px;" />秒</td>
</tr>
<tr bgColor="#ffffff">
<td align="right" height="25">终点经度:</td>
<td height="25"><FONT face="宋体">
<input name="txt_EJingDu" type="text" id="txt_EJingDu" DESIGNTIMEDRAGDROP="106" style="width:20px;" />度
<input name="txt_EJingFen" type="text" id="txt_EJingFen" DESIGNTIMEDRAGDROP="107" style="width:20px;" />分
<input name="txt_EJingMiao" type="text" id="txt_EJingMiao" style="width:20px;" />秒</FONT></td>
</tr>
<tr bgColor="#ffffff">
<td align="right" height="25">终点纬度:</td>
<td height="25"><input name="txt_EWeiDu" type="text" id="txt_EWeiDu" style="width:20px;" />度
<input name="txt_EWeiFen" type="text" id="txt_EWeiFen" DESIGNTIMEDRAGDROP="109" style="width:20px;" />分
<input name="txt_EWeiMiao" type="text" id="txt_EWeiMiao" style="width:20px;" />秒</td>
<tr align="center" bgColor="#ffffff">
<td colSpan="2" height="25"><input type="submit" value="计算"> <input type="button" onClick="clearall();" value="清空">
<input type="button" onClick="defaultend();" value="人民广场"></td>
</tr>
</table>
</form>
</body>
</HTML>
温馨提示:答案为网友推荐,仅供参考
相似回答