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