專利名稱:電子海圖實現(xiàn)方向選擇的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子海圖顯示與信息系統(tǒng),特別涉及一種電子海圖實現(xiàn)方向選擇的方法。
技術(shù)背景 一
電子海圖顯示與信息系統(tǒng)(Electronic Chart Display and Information System, ECDIS) 是隨著航海事業(yè)及科技的發(fā)展而產(chǎn)生的一種集成實時導(dǎo)航信息系統(tǒng),它能將海圖信息、導(dǎo)航 信息以及雷達(dá)目標(biāo)信息疊加在一個屏幕上顯示,在保障航行安全和提高航行工作效率方面發(fā) 揮著顯著的作用。它在顯示電子海圖的基礎(chǔ)上完成多種有關(guān)海上工程設(shè)施和船舶航運安全的 監(jiān)控功能,具有海圖顯示、船位跟蹤與顯示、航行危險報警、航行記錄、雷達(dá)圖像疊加以及 其他輔助操船決策等功能。因為它能有效地提高航行預(yù)報的安全性,所以被國內(nèi)外的運輸船 舶和VTS岸站監(jiān)測管理系統(tǒng)廣泛使用。
目前絕大多數(shù)的電子海圖系統(tǒng)中,海圖的顯示方向都是固定的,即與紙地圖一樣,上北 下南。
在電子海圖系統(tǒng)應(yīng)用中,實現(xiàn)旋轉(zhuǎn)功能的一種方案是在繪制海圖時通過旋轉(zhuǎn)畫筆功能來 實現(xiàn)海圖的旋轉(zhuǎn),這樣實現(xiàn)起來非常方便。但是通過旋轉(zhuǎn)畫筆功能所繪制的海像有失真 的情況,漢字和圖形都有扯動變形的效果,例如文字經(jīng)過旋轉(zhuǎn)繪制后會有出現(xiàn)點的不連續(xù)情 況,不容易辨認(rèn),這樣會導(dǎo)致定位不準(zhǔn),而且用戶視覺上也十分不舒服,因此電子海圖上實 現(xiàn)不失真旋轉(zhuǎn)圖像就成了一個亟待解決的難題。
發(fā)明內(nèi)容
本發(fā)明的目的就是針對現(xiàn)有技術(shù)存在的問題,提供一種解決方案,以求有效且高質(zhì)量的
解決了以上的難題,電子海圖上實現(xiàn)可選擇任意方向為視角,達(dá)到任意角度旋轉(zhuǎn)圖像而不失 真的效果。
本發(fā)明是通過這樣的技術(shù)方案實現(xiàn)的 一種電子海圖實現(xiàn)方向選擇的方法,根據(jù)建立的 坐標(biāo)系,建立數(shù)學(xué)模型,推導(dǎo)出地理坐標(biāo)到屏幕坐標(biāo)的計算方法,讀取數(shù)據(jù)庫中海圖的每一 坐標(biāo)點的信息,然后根據(jù)旋轉(zhuǎn)角度通過坐標(biāo)轉(zhuǎn)換來確定要繪制的點的屏幕坐標(biāo)點,最后繪制 出旋轉(zhuǎn)后的海圖,所述方法包括如下步驟
(1) 在電子海圖系統(tǒng)中建立坐標(biāo)系;以海圖的左下角為原點,以經(jīng)度增長的方向為X軸 的正方向,以緯度增長的方向為y軸的正方向,建立平面直角坐標(biāo)系;
(2) 在已有坐標(biāo)系的基礎(chǔ)上建立坐標(biāo)旋轉(zhuǎn)數(shù)學(xué)模型
在X-Y坐標(biāo)系中某一點(x, y)與中心點的連線與X軸正方向所形成的夾角為Q ,中心點 取屏幕的坐標(biāo)的中心點(CenterX, CenterY),則旋轉(zhuǎn)后的屏幕坐標(biāo)(xl, yl):
ange 1=arctan-+ a + ;r x < Cew/eM
ange 1 = arctan ^~Ce她rJf + " x> Cew/e/T
xl=
+ Ce她rZ ; + Ce她r卩;
上式為坐標(biāo)旋轉(zhuǎn)數(shù)學(xué)模型,其中angel為中間變量; (3)將海圖旋轉(zhuǎn)角度值輸入坐標(biāo)旋轉(zhuǎn)數(shù)學(xué)模型,根據(jù)輸入海圖旋轉(zhuǎn)角度值計算地理坐標(biāo)到 屏幕坐標(biāo)轉(zhuǎn)換;(4) 根據(jù)步驟3結(jié)果判斷角度象限值;
(5) 根據(jù)所要求旋轉(zhuǎn)的角度繪制出旋轉(zhuǎn)后的海圖。
本發(fā)明的優(yōu)點是,能實現(xiàn)電子海圖的任意角度旋轉(zhuǎn),能使電子海圖系統(tǒng)中各種運動物體 的前行方向與海圖顯示的上方保持一致,會讓駕駛員更加方便、輕松、直觀地使用該系統(tǒng), 并且以前還沒有電子海圖系統(tǒng)應(yīng)用過此方案。對于空中的飛機和大海中的船舶,這一功能將 顯得更為重要。這一功能將涉及坐標(biāo)系的建立、海圖顯示算法以及各種地理坐標(biāo)的換算等技 術(shù)問題。
圖l是海圖旋轉(zhuǎn)繪制流程圖并作為摘要附圖; 圖2是坐標(biāo)旋轉(zhuǎn)模型示意圖。
具體實施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā) 明進(jìn)行進(jìn)一步詳細(xì)說明,應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用 于限定本發(fā)明。
第一步在電子海圖系統(tǒng)中建立坐標(biāo)系
ECDIS系統(tǒng)的基礎(chǔ)是海圖的數(shù)字化,即就是將紙海圖轉(zhuǎn)換成數(shù)字航圖,但數(shù)字海圖并不是 單純地將紙海圖的內(nèi)容直接復(fù)制在屏幕上,它必須具有獨特的數(shù)據(jù)結(jié)構(gòu),使海圖上的信息與 實際的地理信息建立一一對應(yīng)關(guān)系。也就是說,ECDIS顯示器上所有的點一定屬于某個地理 實體(如海島、陸地、燈塔等),反之,所有的地理實體都可以用屏幕上的點、線、面等表 示。為確切地描述這種對應(yīng)關(guān)系,必須建立適合于ECDIS的坐標(biāo)體系。建立了電子海圖顯示 及信息系統(tǒng)的坐標(biāo)系后,可以降低海圖作業(yè)的復(fù)雜程序,提高了導(dǎo)航定位的精度.坐標(biāo)系建立 后才能進(jìn)一步推算出屏幕坐標(biāo)和地理坐標(biāo)的換算關(guān)系。
下面說明電子屏幕上的坐標(biāo)系的建立過程
如圖l、圖2所示,以海圖的左下角為原點,以經(jīng)度增長的方向為x軸的正方向,以緯 度增長的方向為y軸的正方向,建立平面直角坐標(biāo)系,并稱之為x-y坐標(biāo)系,這樣就確定了 屏幕坐標(biāo)。對于海圖上的任意點,都能計算出該點的經(jīng)緯度值,從而可以檢索與該點有關(guān)的 資料,若是海域中的點,則可知道該處的海深;若是限制區(qū),則可知道有何限制;若是燈塔, 則可得到燈塔的詳細(xì)資料。反之,可通過GPS或其它定位設(shè)備,測定艦船的經(jīng)緯度,并自動 地將其換算成屏幕坐標(biāo),繪制在屏幕上。
第二步在已有坐標(biāo)系的基礎(chǔ)上建立數(shù)學(xué)模型。
建立好坐標(biāo)系后,就可以建立數(shù)學(xué)模型來計算地理坐標(biāo)到屏幕坐標(biāo)的轉(zhuǎn)換。下面是建立 的數(shù)學(xué)模型如圖2所示為坐標(biāo)旋轉(zhuǎn)模型;
圖中a表示在X-Y坐標(biāo)系中某一點與中心點的連線與X軸正方向所形成的夾角,中心點 取屏幕的坐標(biāo)的中心點。
第三步根據(jù)輸入角度值計算地理坐標(biāo)到屏幕坐標(biāo)轉(zhuǎn)換 下面敘述一下如何計算地理坐標(biāo)到屏幕坐標(biāo)的轉(zhuǎn)換
取海圖中的某一坐標(biāo)點q,q的經(jīng)緯度為(入,S),q點的旋轉(zhuǎn)角度為a (當(dāng)旋轉(zhuǎn)角度為零時 a為零,此時是沒有旋轉(zhuǎn)時的情況),屏幕中心點的坐標(biāo)值分別為centerX和centerY,求q 點的屏幕坐標(biāo)xl和yl是多少。
首先根據(jù)q點的經(jīng)緯度坐標(biāo)值計算出q點旋轉(zhuǎn)前的屏幕坐標(biāo)為(x,y),然后根據(jù)(x,y) 和旋轉(zhuǎn)角度a來求出旋轉(zhuǎn)點的坐標(biāo)。 取變量a和b:
a = x- CenterX; (1) b = y- CenterY; (2)
取變量R:上式代表R等于a和b的平方根。 取變量angel :
angel = arctan (b / a) (4) 上式表示angel等于b比a的反正切角度值,可以通過a來得出angel為第幾象限的角
度
假如a小于零那么
angel = angel + a + 兀 (5) 假如a大于零那么
angel = angel+ a ; (6) 最后可以根據(jù)以上算出的條件來計算旋轉(zhuǎn)后的屏幕點的xl和yl的坐標(biāo)值
xl= L"cos(朋ge/)」+ CenterX; (7)
yl= L及承sin(""gW)」+ CenterY; (8) 得出了地理坐標(biāo)到屏幕坐標(biāo)的算法后,則可以根據(jù)所要求旋轉(zhuǎn)的角度繪制出旋轉(zhuǎn)后的海圖。
例如繪制某個地理實體如海島時,首先取出海島的每一點的地理坐標(biāo)(經(jīng)緯度值),以經(jīng) 度為122.09,緯度為-31.45的點為例,計算旋轉(zhuǎn)45度時的屏幕坐標(biāo)點。
先算出沒有旋轉(zhuǎn)前的屏幕坐標(biāo)值為x等于491.2, y等于60.9,則得出a等于-18. 7, b等 于-264.04,可判斷出angel為第三象限的角,得出angel等于5. 42,最后算出旋轉(zhuǎn)后的屏 幕坐標(biāo)值x等于683, y等于125。
最后,當(dāng)系統(tǒng)需要根據(jù)屏幕中的某一坐標(biāo)點求出地理坐標(biāo)時,則需要屏幕坐標(biāo)到地理坐 標(biāo)的反推導(dǎo)過程。在電子海圖系統(tǒng)上通過坐標(biāo)系建立起屏幕坐標(biāo)與大地坐標(biāo)之間的對應(yīng)關(guān)系 后只需將光標(biāo)指到電子海圖上的任一點,系統(tǒng)就會自動推算出該點的經(jīng)緯度值并在屏幕上顯 示出來,并可查出該點的詳細(xì)資料。如是否是安全深度海域,是不是塔等。下面描述屏幕 坐標(biāo)到地理坐標(biāo)的轉(zhuǎn)換方法-
取海圖中的某一坐標(biāo)點P, P的屏幕坐標(biāo)為(x2,y2), p點的旋轉(zhuǎn)角度為a,屏幕中心點的 坐標(biāo)值分別為CenterX和CenterY,求p點的經(jīng)緯度是多少。 取變量a和b:
a = x2 - CenterX; (9) b = y2 - CenterY; (10) 假如a和b都等于零的話表示旋轉(zhuǎn)角度為零可以直接計算地理坐標(biāo)值,假如不為零的話 可以通過以下式子來計算-取變量R:
R =Va2+&2 ; (11)
上式代表R為a和b的平方根。 取變量angel
angel = atan (b / a); (12) 上式表示angel等于b比a的反正切角度值,可以通過a來得出angel為第幾象限的角
度,
假如a小于零那么
angel = angel - a + n ; (13) 假如a大于零那么
angel = angel -a ; (14) 然后求出旋轉(zhuǎn)前的屏幕坐標(biāo)點(x3, y3)的值X3= R * cos(emgel) + CenterX: (15) Y3= R * sin(angel) + CenterY; (16) 最后通過旋轉(zhuǎn)前的屏幕坐標(biāo)點(x3, y3)得出旋轉(zhuǎn)前的點的地理坐標(biāo)值。
本發(fā)明采用的方法實現(xiàn)旋轉(zhuǎn)功能后,電子海圖的失真小,定位更準(zhǔn)確。并且可以從屏幕 坐標(biāo)反推出地理坐標(biāo)值,為海圖的查詢、搜索提供了便利。電子海圖在現(xiàn)代海圖系統(tǒng)中發(fā)揮 著越來越大的作用,本發(fā)明也會給海圖的廣泛應(yīng)用帶來方便。
根據(jù)上述說明,結(jié)合本領(lǐng)域公知技術(shù)可實現(xiàn)本發(fā)明的技術(shù)方案。
權(quán)利要求
1、一種電子海圖實現(xiàn)方向選擇的方法,根據(jù)建立的坐標(biāo)系,建立數(shù)學(xué)模型,推導(dǎo)出地理坐標(biāo)到屏幕坐標(biāo)的計算方法,讀取數(shù)據(jù)庫中海圖的每一坐標(biāo)點的信息,然后根據(jù)旋轉(zhuǎn)角度通過坐標(biāo)轉(zhuǎn)換來確定要繪制的點的屏幕坐標(biāo)點,最后繪制出旋轉(zhuǎn)后的海圖,所述方法包括如下步驟(1)在電子海圖系統(tǒng)中建立坐標(biāo)系以海圖的左下角為原點,以經(jīng)度增長的方向為x軸的正方向,以緯度增長的方向為y軸的正方向,建立平面直角坐標(biāo)系;(2)在已有坐標(biāo)系的基礎(chǔ)上建立坐標(biāo)旋轉(zhuǎn)數(shù)學(xué)模型在X-Y坐標(biāo)系中某一點(x,y)與中心點的連線與X軸正方向所形成的夾角α,中心點取屏幕的坐標(biāo)的中心點(CenterX,CenterY),則旋轉(zhuǎn)后的屏幕坐標(biāo)(x1,y1)以公式<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><mi>angel</mi><mo>=</mo><mi>arctan</mi><mfrac> <mrow><mi>x</mi><mo>-</mo><mi>CenterX</mi> </mrow> <mrow><mi>y</mi><mo>-</mo><mi>CenterY</mi> </mrow></mfrac><mo>+</mo><mi>α</mi><mo>+</mo><mi>π</mi> </mrow>]]></math> id="icf0001" file="A2009100688460002C1.tif" wi="55" he="9" top= "77" left = "43" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>x<CenterX<maths id="math0002" num="0002" ><math><![CDATA[ <mrow><mi>angel</mi><mo>=</mo><mi>arctan</mi><mfrac> <mrow><mi>x</mi><mo>-</mo><mi>CenterX</mi> </mrow> <mrow><mi>y</mi><mo>-</mo><mi>CenterY</mi> </mrow></mfrac><mo>+</mo><mi>α</mi> </mrow>]]></math> id="icf0002" file="A2009100688460002C2.tif" wi="51" he="9" top= "93" left = "42" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>x>CenterY為坐標(biāo)旋轉(zhuǎn)數(shù)學(xué)模型,其中angel為中間變量;(3)將海圖旋轉(zhuǎn)角度值輸入坐標(biāo)旋轉(zhuǎn)數(shù)學(xué)模型根據(jù)輸入海圖旋轉(zhuǎn)角度值計算地理坐標(biāo)到屏幕坐標(biāo)轉(zhuǎn)換;(4)根據(jù)步驟3結(jié)果判斷角度象限值;(5)根據(jù)所要求旋轉(zhuǎn)的角度繪制出旋轉(zhuǎn)后的海圖。
全文摘要
本發(fā)明涉及一種電子海圖實現(xiàn)方向選擇的方法,根據(jù)建立的坐標(biāo)系,建立數(shù)學(xué)模型,推導(dǎo)出地理坐標(biāo)到屏幕坐標(biāo)的計算方法,讀取數(shù)據(jù)庫中海圖的每一坐標(biāo)點的信息,然后根據(jù)旋轉(zhuǎn)角度通過坐標(biāo)轉(zhuǎn)換來確定要繪制的點的屏幕坐標(biāo)點,最后繪制出旋轉(zhuǎn)后的海圖,本發(fā)明的優(yōu)點是,能實現(xiàn)電子海圖的任意角度旋轉(zhuǎn),能使電子海圖系統(tǒng)中各種運動物體的前行方向與海圖顯示的上方保持一致,會讓駕駛員更加方便、輕松、直觀地使用該系統(tǒng),對于空中的飛機和大海中的船舶,這一功能將顯得更為重要。
文檔編號G06T3/00GK101645166SQ20091006884
公開日2010年2月10日 申請日期2009年5月15日 優(yōu)先權(quán)日2009年5月15日
發(fā)明者孔令輝, 李廣濤, 熊平民, 肖文雄, 寧 郭, 陳維琨 申請人:天津七一二通信廣播有限公司