社区
VB基础类
帖子详情
投影转换 难题!
ffvcff
2009-01-06 08:53:23
我想用高斯投影公式将经纬度转换成直角坐标。用vb实现
谁有代码发过来下啊 谢谢了
祝大家新年快快!
...全文
96
7
打赏
收藏
投影转换 难题!
我想用高斯投影公式将经纬度转换成直角坐标。用vb实现 谁有代码发过来下啊 谢谢了 祝大家新年快快!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ffvcff
2009-01-22
打赏
举报
回复
谢谢大家的热心帮助,我已经用vc实现了
祝大家新年快乐!
马上结贴去 呵呵
ruiboil
2009-01-13
打赏
举报
回复
[Quote=引用 4 楼 ffvcff 的回复:]
很谢谢你 但里面的参数LO 是什么东西啊
[/Quote]
应该是指中央子午线的意思。
但对于子午线收敛角之类的个人不是很明白。
好久没碰书,找不到书去参考
ruiboil
2009-01-13
打赏
举报
回复
我有这方面的资料,
楼上需要的话可以加我qq聊。
公式和参数都有,
看你自己用vb实现吧。
我也在学习vb中
ffvcff
2009-01-13
打赏
举报
回复
很谢谢你 但里面的参数LO 是什么东西啊
goosen
2009-01-06
打赏
举报
回复
[code=VB]--------------------------------------------------------------------------------
'高斯反算
Private Sub DadiFs()
Dim t As Double, Itp As Double, X0 As Double, Bf As Double, N As Double
Dim v As Double, ll As Double, W As Double, M As Double, L0 As Double
L0 = Radian(Lo)
X0 = x * 0.000001
y = y - 500000#
If Tq = 0 Then
a = 6378245 '54椭球参数
b = 6356863.01877305
ep = 0.006693421622966
ep1 = 0.006738525414683
f = (a - b) / a
c = a ^ 2 / b
d = b ^ 2 / a
If X0 < 3 Then
Bf = 9.04353301294 * X0 - 0.00000049604 * X0 ^ 2 - 0.00075310733 * X0 ^ 3 - 0.00000084307 * X0 ^ 4 - 0.00000426055 * X0 ^ 5 - 0.00000010148 * X0 ^ 6
ElseIf X0 < 6 Then
Bf = 27.11115372595 + 9.02468257083 * (X0 - 3) - 0.00579740442 * (X0 - 3) ^ 2 - 0.00043532572 * (X0 - 3) ^ 3 + 0.00004857285 * (X0 - 3) ^ 4 + 0.00000215727 * (X0 - 3) ^ 5 - 0.00000019399 * (X0 - 3) ^ 6
End If
Else
a = 6378140 '75椭球参数
b = 6356755.28815753
ep = 0.006694384999588
ep1 = 0.006739501819473
f = (a - b) / a
c = a ^ 2 / b
d = b ^ 2 / a
If X0 < 3 Then
Bf = 9.04369066313 * X0 - 0.00000049618 * X0 ^ 2 - 0.00075325505 * X0 ^ 3 - 0.0000008433 * X0 ^ 4 - 0.00000426157 * X0 ^ 5 - 0.0000001015 * X0 ^ 6
ElseIf X0 < 6 Then
Bf = 27.11162289465 + 9.02483657729 * (X0 - 3) - 0.00579850656 * (X0 - 3) ^ 2 - 0.00043540029 * (X0 - 3) ^ 3 + 0.00004858357 * (X0 - 3) ^ 4 + 0.00000215769 * (X0 - 3) ^ 5 - 0.00000019404 * (X0 - 3) ^ 6
End If
End If
Bf = Bf * Pi / 180#
t = Tan(Bf)
Itp = ep1 * Cos(Bf) ^ 2
W = Sqr(1 - ep * Sin(Bf) ^ 2)
v = Sqr(1 + ep1 * Cos(Bf) ^ 2)
M = c / v ^ 3
N = a / W
Lat = Bf - 0.5 * v ^ 2 * t * ((y / N) ^ 2 - (5 + 3 * t * t + Itp - 9 * Itp * t * t) * (y / N) ^ 4 / 12 + (61 + 90 * t * t + 45 * t ^ 4) * (y / N) ^ 6 / 360)
ll = ((y / N) - (1 + 2 * t * t + Itp) * (y / N) ^ 3 / 6 + (5 + 28 * t * t + 24 * t ^ 4 + 6 * Itp + 8 * Itp * t * t) * (y / N) ^ 5 / 120) / Cos(Bf)
r = y * t / N - y ^ 3 * t * (1 + t * t - Itp) / (3 * N ^ 3) + y ^ 5 * t * (2 + 5 * t * t + 3 * t ^ 4) / (15 * N ^ 5)
Lat = Degree(Lat)
Lon = Degree(L0 + ll)
r = Degree(r)
End Sub
'高斯坐标正算
Private Sub DadiZs()
Dim t As Double, Itp As Double, X0 As Double, N As Double, L0 As Double
Dim v As Double, ll As Double, W As Double, M As Double
Lat = Radian(Lat)
Lon = Radian(Lon)
L0 = Radian(Lo)
If Tq = 0 Then
a = 6378245 '54椭球参数
b = 6356863.01877305
ep = 0.006693421622966
ep1 = 0.006738525414683
f = (a - b) / a
c = a ^ 2 / b
d = b ^ 2 / a
X0 = 111134.8611 * (Lat * 180# / Pi) - (32005.7799 * Sin(Lat) + 133.9238 * (Sin(Lat)) ^ 3 + 0.6973 * (Sin(Lat)) ^ 5 + 0.0039 * (Sin(Lat)) ^ 7) * Cos(Lat)
Else
a = 6378140 '75椭球参数
b = 6356755.28815753
ep = 0.006694384999588
ep1 = 0.006739501819473
f = (a - b) / a
c = a ^ 2 / b
d = b ^ 2 / a
X0 = 111133.0047 * (Lat * 180 / Pi) - (32009.8575 * Sin(Lat) + 133.9602 * (Sin(Lat)) ^ 3 + 0.6976 * (Sin(Lat)) ^ 5 + 0.0039 * (Sin(Lat)) ^ 7) * Cos(Lat)
End If
ll = Lon - L0
t = Tan(Lat)
Itp = ep1 * Cos(Lat) ^ 2
W = Sqr(1 - ep * Sin(Lat) ^ 2)
v = Sqr(1 + ep1 * Cos(Lat) ^ 2)
M = c / v ^ 3
N = a / W
x = X0 + N * t * (Cos(Lat)) ^ 2 * ll ^ 2 / 2 + N * t * (5 - t * t + 9 * Itp + 4 * Itp * Itp) * (Cos(Lat)) ^ 4 * ll ^ 4 / 24 + N * t * (61 - 58 * t ^ 2 + t ^ 4 + 270 * Itp - 330 * t ^ 2 * Itp) * (Cos(Lat)) ^ 6 * ll ^ 6 / 720 + N * t * (1385 - 3111 * t ^ 2 + 543 * t ^ 4 - t ^ 6) * Cos(Lat) ^ 8 * ll ^ 8 / 40320
y = N * Cos(Lat) * ll + N * (1 - t * t + Itp) * (Cos(Lat)) ^ 3 * ll ^ 3 / 6 + N * (5 - 18 * t * t + t ^ 4 + 14 * Itp - 58 * Itp * t * t) * (Cos(Lat)) ^ 5 * ll ^ 5 / 120 + N * (61 - 479 * t ^ 2 + 179 * t ^ 4 - t ^ 6) * Cos(Lat) ^ 7 * ll ^ 7 / 5040
r = Sin(Lat) * ll + Sin(Lat) * (Cos(Lat)) ^ 2 * ll ^ 3 * (1 + 3 * Itp + 2 * Itp ^ 2) / 3 + Sin(Lat) * (Cos(Lat)) ^ 4 * ll ^ 5 * (2 - t * t) / 15
r = Degree(r)
y = y + 500000#
End Sub
可能对你有用 ..很久以前在网上找到的.. 现在都还没搞明
ffvcff
2009-01-06
打赏
举报
回复
谢谢你
新年快乐
迈克揉索芙特
2009-01-06
打赏
举报
回复
太专业了,不懂。
找到了相关的算法:http://www.chxy.org/inf/educ/shownews.asp?NewsID=604
不知道能否有帮助,祝好运。
YTLWorld地质软件
如果没有底图,对许多人来说会感到非常的茫然,面对的是一个白板,比例尺、单位、
投影
类型及坐标系统无从对应统一,即使有光栅底图参照,也无法获得清晰明确的坐标数据,YTLWorld很好地为我们解决了这个
难题
,...
将数学公式
转换
为matlab代码-awesome-TikZ:精选的TikZ软件包和资源的精选清单
将数学公式
转换
为matlab代码很棒的TikZ 精选的TikZ软件包和资源的精选清单 TikZ是一个很棒的TeX / LaTeX / ConTeXt图形绘制软件包。 与其他TeX软件包不同,TikZ本身确实非常庞大。 其他软件包和服务器GUI应用程序也...
全网最新版openlayers视频教程
学习关于二维地理图层渲染,
投影
转换
,各种数据类型渲染,OGC服务,各种地图交互
压缩感知理论及其在成像技术中的应用 (2012年)
在传统的Shannon/Nyquist采样定理指导下,信号处理往往面临两大
难题
:A/D
转换
器技术的限制和海量采样数据的处理压力。压缩感知(CS)理论表明当信号具有稀疏性或可压缩性时,可以通过全局非自适应线性
投影
的方式,用远低于...
模拟信号仍在驱动数字显示器
数字视频
投影
机的性能价格比正在攀升新的高度。持续走低的价格,以及面板显示器明显的空间优势,使企业客户及个人消费者迅速远离传统的阴极射线管(CRT)显示器。 各种技术类型的高级家用娱乐显示器,已成为大众的...
VB基础类
7,763
社区成员
197,609
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章