羅泳
(南昌縣土地測量隊 江西南昌 330200)
淺談平面坐標系間的轉換及程序設計
羅泳
(南昌縣土地測量隊江西南昌330200)
摘要:推導不同坐標系間的之間的簡便轉換關系,用VC++語言編制轉換程序,從而解決了實際工作中的問題。對于各類坐標變換及城市坐標系統(tǒng)的統(tǒng)一的借鑒作用。
關鍵詞:坐標轉換;坐標旋轉;坐標平移;平面四參數(shù)法
在城市建設中,經(jīng)常會遇到坐標系統(tǒng)不統(tǒng)一的問題。如建筑設計部門通常采用獨立坐標系統(tǒng),規(guī)劃測繪部門大多采用城市地方坐標系,有的卻采用國家坐標系。有的城市國土部門也有自己的一套獨立的坐標系統(tǒng)。許多城市都會存在多套坐標系統(tǒng)共存的問題,這給相互間的資源共享帶來不少麻煩。本人基于以上原因,并根據(jù)兩套坐標系的旋轉、平移、比例縮放關系,利用VC++語言編制了轉換程序以解決坐標系的變換問題。
2.1控制網(wǎng)聯(lián)測
為確保轉換精度應以現(xiàn)有坐標系下的高等級控制點為起算點,盡可能多(最少不少于3個點)的聯(lián)測原坐標系下的等級控制點。聯(lián)測點的點位分布要盡量均勻,避免集中在一起,否則周邊變形難以控制。
2.2求轉換參數(shù)
根據(jù)聯(lián)測的坐標及其在原坐標系下的坐標,利用最小二乘法原理求出平面坐標轉換的四個參數(shù)Δx,Δy,m,θ(x0,y0),這就是我們通常講的平面四參數(shù)法坐標轉換。其中:
Δx:x方向平移量
Δy:y方向平移量
m:縮放比例因子
θ:旋轉角
x0:旋轉中心X坐標
y0:旋轉中心Y坐標
2.3轉換數(shù)字化地形圖數(shù)據(jù)
通常我們需要轉換的地形圖數(shù)據(jù)量非常大,測點數(shù)有幾十萬。用原始的計算方法難以滿足實際生產(chǎn)的需要,編制轉換程序是非常必要的。
利用計算機編程技術可以實現(xiàn)數(shù)字化地形圖的批量轉換,對于歷史成果資料需要轉換的可先通過掃描矢量化,然后再進行轉換。
3.1坐標平移
x=x'+Δx;
y=y'+Δy;
3.2坐標旋轉
x=x0+cos(Φ-θ)·L;
y=y0+sin(Φ-θ)·L;
其中Φ:旋轉中心到轉換點的方位角;
L:旋轉中心到轉換點的距離;
3.3比例縮放
x=x0+L·m·cos(Φ);
y=y0+L·m·cos(Φ);
4.1程序流程
4.2程序設計界面及主要功能描述
主要功能:
該軟件在VC++語言環(huán)境下編寫,輸入必要的轉換參數(shù)后能夠?qū)⑼鈽I(yè)測點文件轉化為新的坐標系統(tǒng)文件;
輸入的參數(shù)可以保存,并可導入已經(jīng)建立好的轉換模版避免輸入?yún)?shù)錯誤;
4.3主要代碼
x_2.x=x_2.x+m_xpy;/*x_2.x:x;m_xpy:Δx*/
x_2.y=x_2.y+m_ypy;/*x_2.y:y;m_ypy:Δy*/
xp=m_zxx+m_xpy;/*m_zxx:x0*/
yp=m_zxy+m_ypy;/*m_zxy:y0*/
af=fwj(xp,yp,x_2.x,x_2.y)+StoHD(m_xzj);
/*fwj():計算方位角函數(shù)*/
l=jl(xp,yp,x_2.x,x_2.y);
/*StoHD():度轉化為弧度函數(shù)*/
l=l+m_bl*l;
/*jl():距離計算函數(shù);m_bl:m*/
x_2.x=xp+l*cos(af);
x_2.y=yp+l*sin(af);
4.4實例
假設某兩套坐標系統(tǒng)經(jīng)控制點聯(lián)測后,求得轉換參數(shù)如下:
x0=81280.6458;y0=69327.5537;θ=-3.2744;Δx =-0.8469;Δy=-0.386;m=-4.0643e-006
原始坐標列表:56988.477,37628.906
57031.934,37636.719
57030.469,37732.422
57084.668,37720.703
轉換后坐標列表:56987.525,37628.964
57030.982,37636.775
57029.519,37732.478
57083.718,37720.759
利用該坐標變換原理,對某網(wǎng)進行了成功的改造。在實際工作中共接測四等點20余個,利用GPS平差解算軟件進行轉換參數(shù)計算,并采用本人編制的坐標系變換程序?qū)Υ竺娣e的數(shù)字地形圖進行了批量轉換,取的了較好的效果。
參考文獻:
[1]孔祥元,梅是義編,《控制測量學》下冊,武漢出版社
[2]《VisualC++6.0MFC類庫參考手冊》人民郵電出版社