阅读:3006回复:4
哪位大哥有“墨卡托投影”的计算公式呀
多谢!<img src="images/post/smile/dvbbs/em11.gif" />
|
|
|
1楼#
发布于:2004-03-17 21:34
墨卡托投影
基哈德斯·墨卡托于1512年出生在佛兰德。他的著作极大地帮助并影响了后来的深海航海者。墨卡托在卢慰恩大学攻读了哲学、数学以及天文学。他在那里还学会了雕刻和制作仪器。他的第一件重要作品是一幅非常详细的佛兰德地图。他的作品质量精绝,当时的皇帝查理五世大加赞赏,委派他制作地球仪。他于1541年完成了这项工作。 佛兰德后来逐渐变成了一个宗教斗争的中心,墨卡托被怀疑是路德教派的信徒,遭到逮捕。出狱后,他搬到了莱茵河畔的大学城——牡伊斯堡。在那里他成了克利夫斯伯爵的门客,出版了许多地图,并且绘制出第一张现代欧洲大陆和不列颠岛地图。 墨卡托不久便意识到,世界需要的是一张准确清晰的航海图。早期的航海家们发现很难将他们的航线画在图上,因为地球是圆形的球体,子午线像桔子瓣一样汇合在南北两极。那么怎样将球面上的一部分绘制在平面上,从而使航海者可以用直线来表示航线呢? 基哈德斯墨卡托找到了答案。他的办法是把地球表面切成若干份,将每一份展铺在平面上,然后每一部分好像都有弹力一样,将它们向两头伸拉,直到它们的两端连在一块儿。在离南北两极最近的地方伸拉的幅度最大,因此格陵兰岛会变得硕大无比。而在南北回归线之间的部分,尽管绝大多数的航海活动都是在这里进行的,但却伸拉的幅度最小。这样做的结果,每一部分都变成了一个长方形,和其它部分拼台起来就形成一幅完整的世界地图。平行的纬线同平行的经线相互交错形成了经纬网。这样一来,航海者就可以在平面上用直线画出他们的航线图来了。 |
|
|
2楼#
发布于:2004-03-18 08:36
能不能给个具体的公式呀?
|
|
|
3楼#
发布于:2004-10-11 17:37
<P>WGS84 Mercator project转换的算法(C#)</P><P> N0 = 6378137.0 / Math.Sqrt( 1-Math.Pow(0.081819190843,2)*Math.Pow(Math.Sin(RefLat*Math.PI/180),2) );
q1 = Math.Log( Math.Tan( (180.0/4.0+dLat/2.0)*Math.PI/180.0 ) ); q2 = 0.081819190843/2 * Math.Log( (1+0.081819190843*Math.Sin(dLat*Math.PI/180.0) ) / (1-0.081819190843*Math.Sin(dLat*Math.PI/180.0) ) ); q = q1 - q2 ; x = N0 * Math.Cos(RefLat*Math.PI/180.0) * ((dLong-CentralMeridian)/57.29577951) ; y = N0 * Math.Cos(RefLat*Math.PI/180.0) * q ; </P><P>式中的输入参数:dLat----纬度</P><P> dLong----经度</P><P> RefLat----基准纬度</P><P> CentralMeridian----中央子午线</P><P>输出:x----横坐标,y----纵坐标</P><P>其余参数为中间过程参数</P> |
|
4楼#
发布于:2004-10-12 04:03
<P>好复杂呀 不过 多谢版主啦</P>
|
|