關(guān)于GPS坐標(biāo)轉(zhuǎn)換(轉(zhuǎn))(一)說到轉(zhuǎn)換,我不得不先提幾個(gè)概念: 1. 84坐標(biāo)系――美國的GPS就用這個(gè)坐標(biāo)系,也就是說我們從GPS接收過來的地心大地坐標(biāo)就是在這個(gè)坐標(biāo)系下的; 2. 54坐標(biāo)系――中國常用的坐標(biāo)系,一般來說,我們就是要得到該坐標(biāo)系下的平面直角坐標(biāo); 3. 地心大地坐標(biāo)――就是經(jīng)緯度表示的大地位置數(shù)據(jù)(B、L、H); 4. 地心直角坐標(biāo)--是以地心為原點(diǎn),但表示方式采樣直角坐標(biāo)(X、Y、Z); 5. 平面直角坐標(biāo)――不用多解釋了,就是我們平常用來表示位置的坐標(biāo)(x、y、z); 6. 橢球參數(shù)――地心大地坐標(biāo)轉(zhuǎn)換到地心直角坐標(biāo)需要使用的參數(shù); 7. 七參數(shù)――不同橢球系下的地心直角坐標(biāo)互換所使用到的參數(shù); 8. 投影參數(shù)――同一橢球系下,地心大地坐標(biāo)轉(zhuǎn)換為平面直角坐標(biāo)所使用的參數(shù); 9. 四參數(shù)――同一橢球系下,不同平面坐標(biāo)系之間的轉(zhuǎn)換所使用的參數(shù)。 有了以上概念,只要知道轉(zhuǎn)換過程就OK了。下面我就不羅嗦了,直接用方向線來說明過程,其中我以常用的北京54坐標(biāo)系作為目標(biāo)坐標(biāo)系: 從GPS中接收到84坐標(biāo)系下的地心大地坐標(biāo) ↓ 使用84坐標(biāo)系的橢球參數(shù)轉(zhuǎn)換為84坐標(biāo)系下的地心直角坐標(biāo) ↓ 使用七參數(shù)轉(zhuǎn)換為54坐標(biāo)系下的地心直角坐標(biāo) ↓ 使用54坐標(biāo)系的橢球參數(shù)轉(zhuǎn)換為54坐標(biāo)系下的地心大地坐標(biāo) ↓ 使用投影參數(shù)轉(zhuǎn)換為54坐標(biāo)系下的平面直角坐標(biāo) ↓ 使用四參數(shù)轉(zhuǎn)換為其它區(qū)域坐標(biāo)系下的平面直角坐標(biāo) (二) 下面說一下84坐標(biāo)系下的地心大地坐標(biāo)如何使用84坐標(biāo)系的橢球參數(shù)轉(zhuǎn)換為84坐標(biāo)系下的地心直角坐標(biāo)。 先來看看84坐標(biāo)系的橢球參數(shù): 橢圓長半徑A:6378137.000000 橢圓短半徑B:6356752.314245179497 根據(jù)橢圓長短半徑,我們很容易就能算出橢圓第一偏心率e1,計(jì)算公式如下: e1 = sqrt(A×A-B×B)/ A; 注意這里sqrt是開方的意思。 OK,上面我們通過一個(gè)簡單的公式就計(jì)算出了橢圓的第一偏心率e1,下面,我們就利用這個(gè)參數(shù)把地心大地坐標(biāo)轉(zhuǎn)換為地心直角坐標(biāo)。 已知:B、L、H地心大地坐標(biāo) 求:X、Y、Z地心直角坐標(biāo) 計(jì)算步驟: 1.參數(shù)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方式表示的大地坐標(biāo)一下就轉(zhuǎn)換為XYZ表示的直角坐標(biāo)了。不過大家要注意的是,就是BL這兩個(gè)數(shù)值是角度值,在C編程中,cos和sin函數(shù)要用弧度值,這個(gè)角度轉(zhuǎn)換問題要注意。 (三) 在84坐標(biāo)系下如何利用84坐標(biāo)系的橢球參數(shù)把地心大地坐標(biāo)轉(zhuǎn)換為地心直角坐標(biāo)。有了84坐標(biāo)系下的地心直角坐標(biāo)就可以考慮如何得到54坐標(biāo)系下的地心直角坐標(biāo)了(不一定是54坐標(biāo)系,不過為了描述方便,我選了54坐標(biāo)系而已)。 所以這次就講解一下如何把84坐標(biāo)系下的地心直角坐標(biāo)轉(zhuǎn)換成54坐標(biāo)系下的地心直角坐標(biāo)。 轉(zhuǎn)換的方法有很多,但常用的是七參數(shù)法,這個(gè)方法還有一個(gè)外文翻譯過來的名稱,但我現(xiàn)在忘記了,也懶得追查,反正是一種空間轉(zhuǎn)換方法,顧名思義,需要七個(gè)參數(shù)才能進(jìn)行轉(zhuǎn)換,七個(gè)參數(shù)分別是: △X △Y △Z——三個(gè)坐標(biāo)方向的平移參數(shù); αβγ——三個(gè)方向的旋轉(zhuǎn)角參數(shù) k——尺度參數(shù) 這七個(gè)參數(shù)不是固定的,而是不同的地區(qū)有不同數(shù)值,知道的當(dāng)然可以直接填寫,不知道的一般就會找?guī)讉€(gè)已知地方坐標(biāo)的位置獲取GPS采集的坐標(biāo)再反算這七個(gè)參數(shù),如何反算以后我再寫。 閑話少說,有了七參數(shù)后,把84坐標(biāo)系下的地心直角坐標(biāo)轉(zhuǎn)換成54坐標(biāo)系下的地心直角坐標(biāo)的計(jì)算方式是: 已知:84坐標(biāo)系下的地心直角坐標(biāo)x,y,z 求:54坐標(biāo)系下的地心直角坐標(biāo)X、Y、Z X = △X + k*x - β*z + γ*y + x Y = △Y + k*y + α*z - γ*x + y Z = △Z + k*z - α*y + β*x + z 注意:里面的計(jì)算單位不要弄錯(cuò),角度就肯定是弧度的,你別用了角度之類的單位,而那個(gè)k的尺度參數(shù)單位是ppm,一般坐標(biāo)都是m為單位,所以k還有除以1000000才能參與計(jì)算。 |
|