求算法:(高斯-克吕格、兰勃特、墨卡托坐标投影)算法,一个100分,最好是c++代码!先谢了!

wangweixing2000 2004-10-12 02:27:45
求算法:(高斯-克吕格、兰勃特、墨卡托坐标投影)算法,一个100分,最好是c++代码!先谢了!
...全文
699 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wangweixing2000 2004-10-18
to zhaofuhong(SeeSea(看海)) ,谢谢!我的数据现在都是从gps中获取的!不知道用什么投影算法才能达到米级别的精度呢?难道高程也要考虑进去吗?
  • 打赏
  • 举报
回复
zhaofuhong 2004-10-18
坐标转换问题的详细了解对于测量很重要,那么请和我一起来讨论这个问题。

首先,我们要弄清楚几种坐标表示方法。大致有三种坐标表示方法:经纬度和高程,空间直角坐标,平面坐标和高程。

我们通常说的WGS-84坐标是经纬度和高程这一种,北京54坐标是平面坐标和高程着一种。

现在,再搞清楚转换的严密性问题,在同一个椭球里的转换都是严密的,而在不同的椭球之间的转换这时不严密的。举个例子,在WGS-84坐标和北京54坐标之间是不存在一套转换参数可以全国通用的,在每个地方会不一样,因为它们是两个不同的椭球基准。

那么,两个椭球间的坐标转换应该是怎样的呢?一般而言比较严密的是用七参数法,即X平移,Y平移,Z平移,X旋转,Y旋转,Z旋转,尺度变化K。要求得七参数就需要在一个地区需要3个以上的已知点,如果区域范围不大,最远点间的距离不大于30Km(经验值),这可以用三参数,即X平移,Y平移,Z平移,而将X旋转,Y旋转,Z旋转,尺度变化K视为0,所以三参数只是七参数的一种特例。在本软件中提供了计算三参数、七参数的功能。

在一个椭球的不同坐标系中转换需要用到四参数转换,举个例子,在深圳既有北京54坐标又有深圳坐标,在这两种坐标之间转换就用到四参数,计算四参数需要两个已知点
  • 打赏
  • 举报
回复
zhaofuhong 2004-10-18
这方面得您自己找书看看了,网上的东东转换后的坐标往往和实际的坐标差的很多。不同椭球间的坐标转换,需要两个步骤,一是投影二是坐标系,网上的东东都只做了坐标系转换,所以得出的坐标是不正确的。关于这方面的东东书上介绍的也不是很明确。
  • 打赏
  • 举报
回复
syy64 2004-10-13
看地图投影。
  • 打赏
  • 举报
回复
wangweixing2000 2004-10-13
地图投影的书倒是看了!算出来的结果和GPS算得差的太远了!谁有对应的数据给我一份也行!能有个参照!
  • 打赏
  • 举报
回复
wangweixing2000 2004-10-12
没办法,只能求助了!哈哈!鹦鹉兄,谢谢,最主要的应该是F_Mercator个的实现!
  • 打赏
  • 举报
回复
快乐鹦鹉 2004-10-12
这是我翻到的我们的库中的一个函数:
int CNavigation::getPointLongLat(POINT markerPoint,Float & cur_fa,Float & cur_lamta)

{
Float cur_y,max_y;
Float work_coeef;
work_coeef=getN(displayChartData.fMainLat*M_PI/180.0)*cos(displayChartData.fMainLat*M_PI/180.0)/displayChartData.fMScale;
max_y=F_Mercator(displayChartData.fMaxLat);

cur_y=max_y-(markerPoint.y-displayChartRect.top)*vPixelSize/work_coeef;
cur_fa=2.0*atan(exp(cur_y))-M_PI/2;

cur_fa=(cur_fa+0.33560695588E-2*sin(2*cur_fa)+
0.65700353E-5*sin(4*cur_fa)+
0.176221E-7*sin(6*cur_fa)+
0.608E-10*sin(8*cur_fa))*180/M_PI;

cur_lamta=displayChartData.fMinLong+(markerPoint.x-displayChartRect.left)*hPixelSize/work_coeef*180.0/M_PI;

return 1;
}
是根据鼠标点markerPoint获取对应的经纬度的函数。我也看不懂
  • 打赏
  • 举报
回复
letheanwater 2004-10-12
呵呵,那我也没有办法了!
知识水平有限 ,实在抱歉哈
  • 打赏
  • 举报
回复
快乐鹦鹉 2004-10-12
哈哈,跑这儿来求救了啊
  • 打赏
  • 举报
回复
wangweixing2000 2004-10-12
to fengyun925 ,谢谢,已经看过!也用了他的dll算法,但是算出来的经度是错的!纬度还是很正确的!
  • 打赏
  • 举报
回复
letheanwater 2004-10-12
http://www.gissky.net/gaindetail.asp?ID=46

空间站上关于坐标定义及转换的知识
希望可以对你有帮助
  • 打赏
  • 举报
回复
wangweixing2000 2004-10-12
我的e-mail:wwx@3stonesoft.com
msn:wangweixing2003@hotmail.com
  • 打赏
  • 举报
回复
发帖
地理信息系统

1869

社区成员

它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
帖子事件
创建了帖子
2004-10-12 02:27
社区公告
暂无公告