会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
从绝望中寻找希望,人生终将辉煌!
但管努力,莫问前程,事在人为,功不唐捐,玉汝于成。
博客园
首页
新随笔
联系
订阅
管理
用C#根据经纬度求两点间距离的函数代码
Code
public
static
double
DistanceOfTwoPoints(
double
lng1,
double
lat1,
double
lng2,
double
lat2, GaussSphere gs)
{
double
radLat1
=
Rad(lat1);
double
radLat2
=
Rad(lat2);
double
a
=
radLat1
-
radLat2;
double
b
=
Rad(lng1)
-
Rad(lng2);
double
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
*
(gs
==
GaussSphere.WGS84
?
6378137.0
: (gs
==
GaussSphere.Xian80
?
6378140.0
:
6378245.0
));
s
=
Math.Round(s
*
10000
)
/
10000
;
return
s;
}
private
static
double
Rad(
double
d)
{
return
d
*
Math.PI
/
180.0
;
}
GaussSphere 为自定义枚举类型
/**/
///
<summary>
///
高斯投影中所选用的参考椭球
///
</summary>
public
enum
GaussSphere
{
Beijing54,
Xian80,
WGS84,
}
从Google Map上弄来的根据经纬度求地球表面两点间距离的实现,稍微改编了一下,对于我国境内空间距离计算,该实现已经够用,以米为单位。.Net2.0,C#实现。
发表于
2009-05-31 23:01
xionglee
阅读(
6054
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
公告