hello~~今天yogurt要和大家分享的是如何玩轉地圖投影的公式,由正解公式求解:(Lat,Lon)-->(E,N),或者由反解公式求解:(E,N)-->(Lat,Lon)。關於怎么進行投影?大家可以參考我之前寫過的一篇《.gen地圖文件的投影編程實現(以墨卡托投影和蘭伯特投影為例)》http://www.cnblogs.com/to-sunshine/p/6048438.html。接下來,yogurt先給大家簡單介紹一下地球橢球及其參數,還有蘭伯特投影和墨卡托投影公式,讓大家對於投影這個概念和過程有個大致地了解。然后,通過兩個例子分別對蘭伯特投影和墨卡托投影進行正反算求解。
============================yogurt小課堂開課了===========================
什么叫做地球橢球?我們都知道地球是一個兩邊寬上下扁的不規則橢球體。那么為了簡化計算,我們把這個橢球體近似看作一個標准橢球體,它擁有以下參數:
長半徑:a ; 短半徑:b ;
扁率:
第一偏心率: 第二偏心率:
扁率與偏心率的關系為:e ² = 2 X f - f ² 。
當然,地球橢球體與普通標准橢球體還是有一定區別的,下面的參數則是地球橢球體特有的: 首先,我們要來了解這兩個概念:
法截面:設過橢球表面上任意一點A做法線AL,通過法線的平面所截成的截面;
子午圈截面:包含子午圈的橢球體截面; --> 對應曲率半徑 (該半徑對應的圓弧是與所有經線相平行的)
卯酉圈截面:垂直於子午圈截面的法截面。 --> 對應曲率半徑(該半徑cos之后得到的半徑是對應的緯線圈上的半徑,對應的圓弧是與所有緯線相平行的)
如圖:
假設某點 緯度:ρ 經度:λ
由 弧長 l = 半徑 r X 弧度φ 得到:
南北方向弧長:dN = M X dρ , 東西方向弧長:dE = (N X cosρ) X dλ 。
------------------------------------------------------------------------------------------------------------------------------------------------
什么叫做地圖投影呢?即:建立平面上的點(用平面直角坐標或極坐標表示) 和地球表面上的點(用緯度Φ和經度λ表示)之間 的函數關系,用數學表達這種關系,就是:
蘭伯特投影:是等角正軸割圓錐投影; 墨卡托投影:是等角正切圓柱投影。
------------------------------------------------------------------------------------------------------------------------------------------------
1、 利用蘭伯特等角投影正解和反解公式進行求解
正解公式由(Lat,Lon)à(E,N):
注:設原點緯度為,原點經度為,第一標准緯線φ1,第二標准緯線φ2,則:
(來自我老師課件)
反解公式由(E,N)à(Lat,Lon):
注:設原點緯度為,原點經度為,第一標准緯線φ1,第二標准緯線φ2,則:
(來自我老師課件)
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。
2、求解過程:
(1)首先根據f的值求出基本參數e;
(2)然后就可以根據e的值和已知點的緯度以及第一和第二標准緯線算出m1、m2和t、t1、t2、tf的值;
(3)接着就可以根據m1、m2和t1、t2算出n的值;
(4)再根據m1、t1和n可以算出未知參數角度和F;
(5)最后根據這些參數可以算出最后的未知參數 r 和 rf 的值。
(6)將求解出來的r和角度帶入公式,得到投影后的經度;
將求解出來的rf和角度帶入公式,得到投影后的緯度。
3、結果:(903253.1578,169962.9044),過程超級難算的,這個結果yogurt也不敢保證正確哦(〒_〒)
二、反解:
1、參數分析:
由公式:
可知,需要求出未知參數t’、e以及 θ‘ 和n,尤其第一個公式未知數 φ 同時在等式的兩側就需要迭代直到兩次迭代的結果非常接近為止,另外的四個參數也有求解公式。
觀察參數的求解公式:
可知,Ef、Nf是題目中已知的假東和假北值,e、n、F、rf可以用正解中算出的值對應,剩下的r’、t’、角度’是需要求的。
2、求解過程:
(1)根據E、Ef和rf、N、Nf求出r’和角度’;
(2)根據r’的值和a、F、n求出t’;
(3)最后把t’和e帶入到公式,假設 φ 的值為25°N帶入公式右邊,
計算之后得到一個新的 φ1,將 φ1帶入公式右邊,計算得到 φ2,重復帶入公式右邊,直到某個 φ 帶入后算出來的 φ 值和帶入前非常接近為止,得到 φ 最終的結果;
把角度 θ’、和n還有原點經度帶入公式,得到投影前的經度值。
3、結果:(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’。
2、求解過程:
(1)根據扁率 f 和第一偏心率的關系算出第一偏心率e;
(2)根據 e 和 a 的關系可以算出短半軸 b 的值;
(3)根據 a 和 b 可以算出第二偏心率 e’;
(4)根據 K 的求解公式,利用a、b和 e’ 以及標准緯度 B0 的值算出K;
(5)將K和e代入公式,得到投影后的緯度;將K代入公式
,得到投影后的經度值。
3、結果:(-162372.5867,5067861.1471)同樣,過程超級難算的,這個結果yogurt也不敢保證正確哦(〒_〒)
二、反解:
1、參數分析:
由公式其中參數EXP為自然對數底,
可知其他所需的參數分別是K和e可以用正解中算出值,以及題目中已知的原點緯度L0。
2、求解過程:
(1)根據Y、K和原點經度L0,利用公式直接得到投影前的經度;
根據EXP、K、X和e的值帶入公式,假設B的值為50°N帶入公式右邊,,得到一個新的B1,再將B1帶入公式右邊得到B2,重復帶入,直到帶入前和帶入后的值非常接近時為止,得到投影前的緯度值。
3、結果:(53,53)同樣,過程超級難算的,這個結果yogurt也不敢保證正確哦(〒_〒)~~
好啦,今天yogurt就和大家講到這里啦,大家有什么不明白的可以評論提問,我看到就會解答噠~~