经纬度
BL
换算到高斯平面直角坐标
XY
(高斯投影正算)的源码及算法
在
gis
的帖子
"
用
excel
完成
gps
坐标转换的简易方法
"
基础上
,
我给出对应的
vb
程序段
,
我在
evb
开发的
gps
定位功能中,用它实现坐标换算
(
具体的参数请参考
gis
的帖子
)
。
感觉速度比较快,效果比较好。所以帖上来,希望与名位交流:
=====================================
'
经纬度
bl
换算到高斯平面直角坐标
xy
(高斯投影正算)
private
function
bl2xy(byref
a2
as
double,
byref
f2
as
double,
byref
e
2
as
double,
_
byref
s2
as
double,
byref
t2
as
double)
as
boolean
'a2
输入中央子午线,以度
.
分形式输入,如
115
度
30
分则输入
115.30;
起算数据
l0
'f2
以度小数形式输入经度值
,
l
'e2
以度小数形式输入纬度值,
b
's2
计算结果,横坐标
y
't2
计算结果,纵坐标
x
'
投影带号计算
n=[l/6]+1
如:测得经度
103.xxxx
,故
n=[103.x/6]+1=17+1=18
'
中央经线经度
l0
=
n*6-3
=
[l/6]*6+3
dim
b2
as
double
'dim
g2
as
double
dim
h2
as
double
dim
i2
as
double
dim
j2
as
double
dim
k2
as
double
dim
l2
as
double
dim
m2
as
double
dim
n2
as
double
dim
o2
as
double
dim
p2
as
double
dim
q2
as
double
dim
r2
as
double
b2
=
int(a2)
+
(int(a2
*
100)
-
int(a2)
*
100)
/
60
+
(a2
*
10000
-
int(a2
*
100)
*
100)
/
3600
'
把
l0
化成度
(a2)
'g2
=
f2
-
b2
'
l
-l0
'h2
=
g2
/
57.2957795130823
'
化作弧度
h2
=
(f2
-
b2)
/
57.2957795130823
'
将经差的单位化为弧度
i2
=
tan(e2
/
57.2957795130823)
'tan
(b)
j2
=
cos(e2
/
57.2957795130823)
'
cos
(b)
k2
=
0.006738525415
*
j2
*
j2
l2
=
i2
*
i2