玩转地图投影公式,经过例题对兰伯特投影与墨卡托投影求取正反解

     hello~~今天yogurt要和你们分享的是如何玩转地图投影的公式,由正解公式求解:(Lat,Lon)-->(E,N),或者由反解公式求解:(E,N)-->(Lat,Lon)。关于怎么进行投影?你们能够参考我以前写过的一篇《.gen地图文件的投影编程实现(以墨卡托投影和兰伯特投影为例)》http://www.cnblogs.com/to-sunshine/p/6048438.html。接下来,yogurt先给你们简单介绍一下地球椭球及其参数,还有兰伯特投影和墨卡托投影公式,让你们对于投影这个概念和过程有个大体地了解。而后,经过两个例子分别对兰伯特投影和墨卡托投影进行正反算求解。html

============================yogurt小课堂开课了===========================编程

    什么叫作地球椭球?咱们都知道地球是一个两边宽上下扁的不规则椭球体。那么为了简化计算,咱们把这个椭球体近似看做一个标准椭球体,它拥有如下参数:函数

长半径:a    ;                                 短半径:b    ;spa

扁率: 3d

第一偏爱率:             第二偏爱率:       htm

 

扁率与偏爱率的关系为:e ² = 2 X f - f ²    。
blog

    固然,地球椭球体与普通标准椭球体仍是有必定区别的,下面的参数则是地球椭球体特有的:     首先,咱们要来了解这两个概念:数学

法截面:设过椭球表面上任意一点A作法线AL,经过法线的平面所截成的截面;sso

子午圈截面:包含子午圈的椭球体截面;       -->   对应曲率半径 (该半径对应的圆弧是与全部经线相平行的)im

卯酉圈截面:垂直于子午圈截面的法截面。    -->   对应曲率半径(该半径cos以后获得的半径是对应的纬线圈上的半径,对应的圆弧是与全部纬线相平行的)

如图:

 

假设某点   纬度:ρ    经度:λ

由   弧长 l = 半径 r X  弧度φ  获得:

南北方向弧长:dN = M X dρ   ,    东西方向弧长:dE = (N X cosρ) X dλ    。

------------------------------------------------------------------------------------------------------------------------------------------------

   

    什么叫作地图投影呢?即:创建平面上的点(用平面直角坐标或极坐标表示) 和地球表面上的点(用纬度Φ和经度λ表示)之间 的函数关系,用数学表达这种关系,就是:

    兰伯特投影:是等角正轴割圆锥投影;        墨卡托投影:是等角正切圆柱投影。

------------------------------------------------------------------------------------------------------------------------------------------------

   

一、  利用兰伯特等角投影正解和反解公式进行求解

正解公式由(Lat,Lon)à(E,N):

注:设原点纬度为,原点经度为,第一标准纬线φ1,第二标准纬线φ2,则:

(来自我老师课件)

反解公式由(E,N)à(Lat,Lon):

注:设原点纬度为,原点经度为,第一标准纬线φ1,第二标准纬线φ2,则:

(来自我老师课件)

 

二、  利用墨卡托投影的正解和反解公式进行求解

正解公式由(B,L)à(X,Y):

注:设标准纬度B0,原点纬度0,原点经度L0

(来自我老师课件)

 

反解公式由(X,Y)à(B,L):

注:设标准纬度B0,原点纬度0,原点经度L0

(来自我老师课件)

 

=================================下课了================================

    下面用两道例题来实践一下这个正反解算过程。

    第一题:根据Clarke 1986椭球体及如下参数,利用兰伯特投影求解 Lat = 28°30’ N ,Lon = 96° W的N、E坐标,而后反算Lat/Lon,写出主要步骤。已知该椭球体的参数以下:

    a = 6378206.400 m       1/f=294.97870    

    原点纬度: 27°50’N         原点经度: 99° W

    第一标准纬线纬度: 28°23’ N        第二标准纬线纬度:30°17’ N

    东偏移: 609,600 meter       北偏移: 0 meter

------------------------------------------------------------------------------------------------------------------------------------------------

1、正解

一、参数分析:

由公式

可知,须要求出未知参数r、rf和角度,这三个参数也有求解公式。

观察参数的求解公式:

可知,m公式能够算出m1和m2,;t公式能够算出t1和t2和tf;n和f的值是惟一的;还须要根据扁率f算出椭圆的第一偏爱率e。

 

二、求解过程:

(1)首先根据f的值求出基本参数e;

(2)而后就能够根据e的值和已知点的纬度以及第一和第二标准纬线算出m一、m2和t、t一、t二、tf的值;

(3)接着就能够根据m一、m2和t一、t2算出n的值;

(4)再根据m一、t1和n能够算出未知参数角度和F;

(5)最后根据这些参数能够算出最后的未知参数 r 和 rf 的值。

(6)将求解出来的r和角度带入公式,获得投影后的经度;

将求解出来的rf和角度带入公式,获得投影后的纬度。

 

三、结果:(903253.1578,169962.9044),过程超级难算的,这个结果yogurt也不敢保证正确哦(〒_〒)

 

2、反解

一、参数分析:

由公式:

可知,须要求出未知参数t’、e以及 θ‘ 和n,尤为第一个公式未知数 φ 同时在等式的两侧就须要迭代直到两次迭代的结果很是接近为止,另外的四个参数也有求解公式。

观察参数的求解公式:

可知,Ef、Nf是题目中已知的假东和假北值,e、n、F、rf能够用正解中算出的值对应,剩下的r’、t’、角度’是须要求的。

 

二、求解过程:

(1)根据E、Ef和rf、N、Nf求出r’和角度’;

(2)根据r’的值和a、F、n求出t’;

(3)最后把t’和e带入到公式,假设 φ 的值为25°N带入公式右边,

计算以后获得一个新的 φ1,将 φ1带入公式右边,计算获得 φ2,重复带入公式右边,直到某个 φ 带入后算出来的 φ 值和带入前很是接近为止,获得 φ 最终的结果;

把角度 θ’、和n还有原点经度带入公式,获得投影前的经度值。

 

三、结果:(96,28.5)过程超级难算的,这个结果yogurt也不敢保证正确哦(〒_〒)

========================================================================

    第二题:根据Krassowski 1940椭球体及如下参数,利用墨卡托投影求解 Lat = 53°00’ N ,Lon = 53° E的N、E坐标,而后反算Lat/Lon,写出主要步骤。已知该椭球体的参数以下:

    a = 6378245.0 m       1/f = 298.3

    原点经度:51° W        第一标准纬线纬度:42° N

    西偏移:300,000 meter         北偏移:300,000 meter

------------------------------------------------------------------------------------------------------------------------------------------------

 

1、正解

一、参数分析:

由公式:

可知,须要求出未知参数e和K,K也有求解公式。

观察参数的求解公式:

 

可知,除了题目已知参数外,还须要算出椭球体的短半轴和第二偏爱率e’。

 

二、求解过程:

(1)根据扁率 f 和第一偏爱率的关系算出第一偏爱率e;

(2)根据 e 和 a 的关系能够算出短半轴 b 的值;

(3)根据 a 和 b 能够算出第二偏爱率 e’;

(4)根据 K 的求解公式,利用a、b和 e’ 以及标准纬度 B0 的值算出K;

(5)将K和e代入公式,获得投影后的纬度;将K代入公式,获得投影后的经度值。

 

三、结果:(-162372.5867,5067861.1471)一样,过程超级难算的,这个结果yogurt也不敢保证正确哦(〒_〒)

 

2、反解

一、参数分析:

由公式其中参数EXP为天然对数底,

可知其余所需的参数分别是K和e能够用正解中算出值,以及题目中已知的原点纬度L0。

 

二、求解过程:

(1)根据Y、K和原点经度L0,利用公式直接获得投影前的经度;

根据EXP、K、X和e的值带入公式,假设B的值为50°N带入公式右边,,获得一个新的B1,再将B1带入公式右边获得B2,重复带入,直到带入前和带入后的值很是接近时为止,获得投影前的纬度值。

 

三、结果:(53,53)一样,过程超级难算的,这个结果yogurt也不敢保证正确哦(〒_〒)~~

 

    好啦,今天yogurt就和你们讲到这里啦,你们有什么不明白的能够评论提问,我看到就会解答哒~~

相关文章
相关标签/搜索