日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GPS坐标转换

發布時間:2024/4/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GPS坐标转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前段時間,工作需要學習了一下GPS的坐標轉換,發現這個轉換過程不算難,但就是概念很容易混淆,結果無論是上網查資料,還是問一些資深人士,都能碰到或多或少的一些概念上的錯誤。

??? 經過一段時間的學習,綜合了不少資料,我終于搞明白了其中的道理,不敢獨享,決定寫出來讓大家批判一下,希望對大家有所幫助,同時也希望如果各位發現我的錯誤,也及時通知我。

??? 說到轉換,我不得不先提幾個概念:

1.???? 84坐標系――美國的GPS就用這個坐標系,也就是說我們從GPS接收過來的地心大地坐標就是在這個坐標系下的;

2.???? 54坐標系――中國常用的坐標系,一般來說,我們就是要得到該坐標系下的平面直角坐標;

3.???? 地心大地坐標――就是經緯度表示的大地位置數據(B、L、H);

4.???? 地心直角坐標--是以地心為原點,但表示方式采樣直角坐標(X、Y、Z);

5.???? 平面直角坐標――不用多解釋了,就是我們平常用來表示位置的坐標(x、y、z);

6.???? 橢球參數――地心大地坐標轉換到地心直角坐標需要使用的參數;

7.???? 七參數――不同橢球系下的地心直角坐標互換所使用到的參數;

8.???? 投影參數――同一橢球系下,地心大地坐標轉換為平面直角坐標所使用的參數;

9.???? 四參數――同一橢球系下,不同平面坐標系之間的轉換所使用的參數。

??? 有了以上概念,只要知道轉換過程就OK了。下面我就不羅嗦了,直接用方向線來說明過程,其中我以常用的北京54坐標系作為目標坐標系:

從GPS中接收到84坐標系下的地心大地坐標

使用84坐標系的橢球參數轉換為84坐標系下的地心直角坐標

使用七參數轉換為54坐標系下的地心直角坐標

使用54坐標系的橢球參數轉換為54坐標系下的地心大地坐標

使用投影參數轉換為54坐標系下的平面直角坐標

使用四參數轉換為其它區域坐標系下的平面直角坐標

上一章已經簡單說明了各坐標系的基本概念和相互的轉換關系(其實也不叫學習筆記了,所有轉換都做完了,只是一直在忙,沒有時間一次寫完,只能有時間就寫一章,一點一點來,實在愧對關注的朋友)。

??? 這一章就說一下84坐標系下的地心大地坐標如何使用84坐標系的橢球參數轉換為84坐標系下的地心直角坐標(好拗口……)。

??? 先來看看84坐標系的橢球參數:

??? ??? 橢圓長半徑A:6378137.000000

??? ??? 橢圓短半徑B:6356752.314245179497

??? 根據橢圓長短半徑,我們很容易就能算出橢圓第一偏心率e1,計算公式如下:

?????? e1 = sqrt(A×A-B×B)/ A;

??? 注意這里sqrt是開方的意思。

??? OK,上面我們通過一個簡單的公式就計算出了橢圓的第一偏心率e1,下面,我們就利用這個參數把地心大地坐標轉換為地心直角坐標。

??? 已知:B、L、H地心大地坐標

??? 求:X、Y、Z地心直角坐標

??? 計算步驟:

1.參數N:N=A/sqrt(1-e1×e1×sin(B)×sin(B));

2.X:X=(N+H)×cos(B)×cos(L);

3.Y:Y=(N+H)×cos(B)×sin(L);

4.Z:Z=(N×(1-e1×e1)+H)×sin(B);

??? 好了,就是這么簡單,BLH方式表示的大地坐標一下就轉換為XYZ表示的直角坐標了。不過大家要注意的是,就是BL這兩個數值是角度值,在C編程中,cos和sin函數要用弧度值,這個角度轉換問題要注意。?

上次說到在84坐標系下如何利用84坐標系的橢球參數把地心大地坐標轉換為地心直角坐標。有了84坐標系下的地心直角坐標就可以考慮如何得到54坐標系下的地心直角坐標了(不一定是54坐標系,不過為了描述方便,我選了54坐標系而已)。

??? 所以這次就講解一下如何把84坐標系下的地心直角坐標轉換成54坐標系下的地心直角坐標。

??? 轉換的方法有很多,但常用的是七參數法,這個方法還有一個外文翻譯過來的名稱,但我現在忘記了,也懶得追查,反正是一種空間轉換方法,顧名思義,需要七個參數才能進行轉換,七個參數分別是:

△X?△Y △Z——三個坐標方向的平移參數;

αβγ——三個方向的旋轉角參數

k——尺度參數

這七個參數不是固定的,而是不同的地區有不同數值,知道的當然可以直接填寫,不知道的一般就會找幾個已知地方坐標的位置獲取GPS采集的坐標再反算這七個參數,如何反算以后我再寫。

閑話少說,有了七參數后,把84坐標系下的地心直角坐標轉換成54坐標系下的地心直角坐標的計算方式是:

??? 已知:84坐標系下的地心直角坐標x,y,z

??? 求:54坐標系下的地心直角坐標X、Y、Z

?????? X = △X + k*x - β*z + γ*y + x

??? Y = △Y + k*y + α*z - γ*x + y

??? Z = △Z + k*z - α*y + β*x + z

??? 公式是推導的,倒沒有什么特別,主要是里面的計算單位不要弄錯,角度就肯定是弧度的,你別用了角度之類的單位,而那個k的尺度參數單位是ppm,一般坐標都是m為單位,所以k還有除以1000000才能參與計算。

總結

以上是生活随笔為你收集整理的GPS坐标转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。