欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種電子海圖中船舶電子標(biāo)牌的自動(dòng)排列方法_2

文檔序號(hào):8543781閱讀:來(lái)源:國(guó)知局
,因?yàn)檫@里是將標(biāo)牌進(jìn)行橫向排列,所以取船舶的經(jīng)度為關(guān)鍵值進(jìn)行排序,將經(jīng)度值小的船舶電子標(biāo)牌排在序列前部,經(jīng)度值大的排在后部,然后根據(jù)船舶電子標(biāo)牌排列區(qū)域的右側(cè)橫坐標(biāo)和船舶符號(hào)外接矩形下方縱坐標(biāo)確定第一個(gè)船舶電子標(biāo)牌的屏幕位置,接著沿第一個(gè)船舶電子標(biāo)牌右側(cè)依次排列下一個(gè)船舶電子標(biāo)牌,完成船舶電子標(biāo)牌的重新排列,本發(fā)明中標(biāo)牌間的間隔常數(shù)為5像素。
[0029]有益效果:
[0030]當(dāng)接收到船舶航跡的報(bào)文后,VTS臺(tái)位軟件根據(jù)報(bào)文中船舶的經(jīng)瑋度位置信息,在電子海圖的相應(yīng)經(jīng)瑋度位置繪制出船舶標(biāo)號(hào)以及電子標(biāo)牌,這些標(biāo)牌可能會(huì)相互遮蔽。同時(shí)當(dāng)船舶報(bào)文更新船舶位置信息,或者用戶對(duì)電子海圖漫游后,電子標(biāo)牌的屏幕坐標(biāo)位置會(huì)發(fā)生改變,產(chǎn)生新的遮蔽。經(jīng)過(guò)本發(fā)明處理后,將聚集在一起的船舶標(biāo)牌根據(jù)用戶要求在電子海圖指定區(qū)域?qū)⒅付ù暗碾娮訕?biāo)牌和在指定位置一鍵自動(dòng)重新排列,高效快捷,既節(jié)省了用戶繁瑣的拖動(dòng)操作,又充分利用了電子海圖上空閑區(qū)域。此外使用希爾排序算法,可以盡可能地減少電子標(biāo)牌與船舶標(biāo)號(hào)間連接線的交叉現(xiàn)象,便于用戶對(duì)電子標(biāo)牌和船舶符號(hào)進(jìn)行交叉查找。
【附圖說(shuō)明】
[0031]下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明做更進(jìn)一步的具體說(shuō)明,本發(fā)明的上述和/或其他方面的優(yōu)點(diǎn)將會(huì)變得更加清楚。
[0032]圖1為本發(fā)明排列方法總流程圖。
[0033]圖2為四種船舶標(biāo)牌排列模式示意圖。
[0034]圖3為船舶標(biāo)牌單列排列示意圖。
[0035]圖4為船舶標(biāo)牌雙列排列模式一示意圖。
[0036]圖5為船舶標(biāo)牌雙列排列模式二示意圖。
[0037]圖6為船舶標(biāo)牌底部追加單行排列示意圖。
[0038]圖7為船舶標(biāo)牌排列前效果圖。
[0039]圖8為船舶標(biāo)牌使用排序算法前效果圖。
[0040]圖9為船舶標(biāo)牌使用排序算法后效果圖。
[0041]圖10為船舶標(biāo)牌使用排序算法雙列排列效果圖。
【具體實(shí)施方式】
[0042]實(shí)施例1
[0043]如圖1所示,本發(fā)明電子海圖中船舶電子標(biāo)牌的自動(dòng)排列方法關(guān)鍵步驟如下:
[0044]前提步驟,非本發(fā)明必要技術(shù)特征:
[0045]VTS臺(tái)位顯示軟件收到船舶航跡報(bào)文(包括船舶名稱、類型、國(guó)籍、經(jīng)瑋度位置、方向、航速等信息),其中船舶的經(jīng)瑋度位置,單位為度,例如船舶位置東經(jīng)108度30分表示為108.5度(正值為東經(jīng),負(fù)值為西經(jīng)),北瑋21度30分表示為21.5度(正值為北瑋,負(fù)值為南瑋),生成船舶信息結(jié)構(gòu)體并存儲(chǔ)在內(nèi)存中的船舶信息結(jié)構(gòu)體列表中。船舶信息結(jié)構(gòu)體中還包括與之對(duì)應(yīng)的電子標(biāo)牌結(jié)構(gòu)體,其中包含電子標(biāo)牌位置信息,即左上角點(diǎn)與船舶符號(hào)定位點(diǎn)的相對(duì)距離,單位為屏幕像素;電子標(biāo)牌的尺寸,即電子標(biāo)牌根據(jù)內(nèi)容長(zhǎng)短自適應(yīng)的標(biāo)牌寬度和高度,單位為屏幕像素。
[0046]VTS臺(tái)位軟件在電子海圖上自動(dòng)繪制船舶目標(biāo)時(shí),首先遍歷內(nèi)存中維護(hù)的船舶信息結(jié)構(gòu)體列表,取出船舶的經(jīng)瑋度位置,然后調(diào)用電子海圖提供的經(jīng)瑋度屏幕坐標(biāo)轉(zhuǎn)換函數(shù),將船舶的位置信息由經(jīng)瑋度值轉(zhuǎn)換為屏幕坐標(biāo),單位為屏幕像素,并在該屏幕坐標(biāo)位置繪制船舶符號(hào);然后取出船舶的電子標(biāo)牌結(jié)構(gòu)體,讀取電子標(biāo)牌與船舶符號(hào)的相對(duì)距離,再結(jié)合前一步船舶符號(hào)的屏幕坐標(biāo)求出電子標(biāo)牌左上角點(diǎn)的屏幕坐標(biāo),單位屏幕像素;最后根據(jù)電子標(biāo)牌結(jié)構(gòu)體中的標(biāo)牌寬度和標(biāo)牌高度,在屏幕的相應(yīng)位置繪制出電子標(biāo)牌,并用直線將標(biāo)牌和其對(duì)應(yīng)的船舶符號(hào)相連,如圖7所示,默認(rèn)情況下,船舶的電子標(biāo)牌可能彼此遮蔽或者和船舶符號(hào)相互遮蔽,影響用戶使用。此外隨著船舶航跡報(bào)文的更新,船舶位置會(huì)發(fā)生移動(dòng),或者用戶對(duì)電子地圖進(jìn)行漫游、縮放操作,原本不遮蔽的船舶符號(hào)和電子標(biāo)牌也有可能再次聚集,產(chǎn)生遮蔽。本發(fā)明針對(duì)這種情況進(jìn)行處理。
[0047]步驟I,提取船舶信息結(jié)構(gòu)體列表匹配電子標(biāo)牌排列模式,包括:
[0048]步驟1-1,生成框選航跡所對(duì)應(yīng)的船舶信息結(jié)構(gòu)體列表;
[0049]在電子海圖上,如果用戶關(guān)注的船舶目標(biāo)正好聚集在一個(gè)較小的范圍,那么這些船舶的標(biāo)牌往往也聚集在一起,發(fā)生相互遮蔽,如圖7所示。用戶可以使用標(biāo)牌框選功能,框選中這些標(biāo)牌。本實(shí)施例中,根據(jù)選中的電子標(biāo)牌找到其對(duì)應(yīng)的船舶信息,在內(nèi)存中生成一個(gè)船舶信息結(jié)構(gòu)體列表。船舶信息結(jié)構(gòu)體中包括船舶當(dāng)前的經(jīng)瑋度位置以及電子標(biāo)牌結(jié)構(gòu)體信息。
[0050]步驟1-2,提取船舶符號(hào)位置在屏幕分布的最小外接矩形區(qū)域;被用戶框選的多個(gè)船舶符號(hào)在屏幕上呈現(xiàn)多個(gè)點(diǎn)集,求出這些點(diǎn)集的最小外接矩形。本發(fā)明調(diào)用GIS的經(jīng)瑋度轉(zhuǎn)換屏幕坐標(biāo)函數(shù),得到船舶信息列表中船舶符號(hào)的屏幕坐標(biāo),單位屏幕像素。遍歷船舶符號(hào)的屏幕坐標(biāo)的橫坐標(biāo)X值,和縱坐標(biāo)I值;然后記錄最小X1值、y工值和最大X 2值、y 2值;如果下一個(gè)船舶符號(hào)的X值小于當(dāng)前最小X值,則更新最小X值X1;如果X值大于當(dāng)前最大X值,則更新最大X值X2;用同樣的方法可以求出最小y值y工和最大y值y 2。最后根據(jù)矩形左上角點(diǎn)(Xl,yi)和矩形右下角點(diǎn)(x2,y2)可以求出該矩形區(qū)域的寬度X2-X1和高度H。
[0051]步驟1-3,根據(jù)框選電子標(biāo)牌的累積高度匹配排列模型
[0052]如圖2所示,本實(shí)施例中共有四種船舶電子標(biāo)牌排列模式。遍歷船舶電子標(biāo)牌結(jié)構(gòu)體中的標(biāo)牌高度屬性,并計(jì)算出累積高度值Hsum。首先匹配排列在右側(cè)區(qū)域的模型。如圖3所示,右側(cè)可利用區(qū)域的最大高度H1為矩形區(qū)域高度y 2-yi,與矩形區(qū)域底部到屏幕下邊框的高度dy2,以及一個(gè)經(jīng)驗(yàn)常量Cly1的三者之和,單位為屏幕像素。如果累積高度Hsum小于右側(cè)可利用的最大高度H1,那么匹配單列排列模式。
[0053]如果累積高度大于右側(cè)可利用最大高度,那么對(duì)超出的高度值Hex進(jìn)行判斷。如圖4所示,如果超出的高度值Hex小于第一閾值,第一閾值為矩形區(qū)域高度的一半(y2_yi)/2與矩形區(qū)域底部到屏幕下邊框的高度dy2之和,那么匹配雙列排列模式一。
[0054]對(duì)超出的高度值Hex判斷,如圖5所示。如果超出的高度值Hex大于第二閾值,第二閾值為矩形區(qū)域高度的一半(Y2-Y1)/2與矩形區(qū)域底部到屏幕下邊框高度dy2之和,但小于矩形區(qū)域高度(J2-1)與矩形區(qū)域底部到屏幕下邊框高度dy2之和,那么匹配雙列排列模式二。
[0055]如果超出高度值Hex大于矩形區(qū)域高度(y2_yi)與矩形區(qū)域底部到屏幕下邊框高度dy2之和,如圖6所示,那么匹配底部追加單行排列模式。
[0056]步驟2,對(duì)用戶選中的聚集在一起的船舶電子標(biāo)牌列表進(jìn)行排序。
[0057]生成框選標(biāo)牌所對(duì)應(yīng)的船舶信息結(jié)構(gòu)體列表;
[0058]以船舶信息結(jié)構(gòu)體中存儲(chǔ)的瑋度位置為關(guān)鍵值,對(duì)船舶信息結(jié)構(gòu)體列表進(jìn)行希爾排序,使得瑋度值大的船舶信息結(jié)構(gòu)體排在表列前部,瑋度值小的標(biāo)牌排在表列后部。經(jīng)過(guò)該步處理,可以最大限度地減少船舶圖標(biāo)與其電子標(biāo)牌的連線發(fā)生交叉。如圖8、圖9所示,分別為不使用該算法和使用該算法的效果圖。
[0059]步驟3,遍歷電子標(biāo)牌列表,根據(jù)步驟I中獲得的匹配模式重排電子標(biāo)牌
[0060]步驟3-1,如果是單列排列模式,將標(biāo)牌排列在船舶符號(hào)右側(cè)。以船舶符號(hào)外接矩形的寬度的一半為間隔,確定右側(cè)電子標(biāo)牌區(qū)的起始橫坐標(biāo),以船舶符號(hào)外接矩形上部縱坐標(biāo)Y1減去經(jīng)驗(yàn)值dy ^乍為右側(cè)電子標(biāo)牌區(qū)的縱坐標(biāo),確定第一個(gè)電子標(biāo)牌的位置。然后沿第一個(gè)電子標(biāo)牌下方依次排列下一個(gè)電子標(biāo)牌,完成電子標(biāo)牌重新排列,本發(fā)明中標(biāo)牌間的間隔常數(shù)為5像素。
[0061]步驟3-2,如果是雙列排列模式一,則在完成步驟3-1的基礎(chǔ)上,對(duì)超出高度的電子標(biāo)牌進(jìn)行第二列排列。首先遍歷超出高度的電子標(biāo)牌,確定標(biāo)牌的最大寬度;然后在船舶符號(hào)外接矩形左側(cè),以船舶符號(hào)矩陣的寬度為間隔并加上標(biāo)牌最大寬度,確定第二列起始位置的橫坐標(biāo),以船舶符號(hào)外接矩形高度的一半作為第二列起始位置的縱坐標(biāo),可以確定第一個(gè)標(biāo)牌的屏幕位置。然后沿第一個(gè)電子標(biāo)牌下方依次排列下一個(gè)電子標(biāo)牌,完成電子標(biāo)牌重新排列,本發(fā)明中標(biāo)牌間的間隔常數(shù)為
當(dāng)前第2頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
上犹县| 太原市| 特克斯县| 韩城市| 岳阳市| 吉水县| 铁岭县| 临高县| 中宁县| 高邑县| 永川市| 三台县| 巴彦淖尔市| 渝北区| 仙居县| SHOW| 徐闻县| 墨竹工卡县| 花垣县| 宝丰县| 白河县| 海丰县| 双流县| 黄平县| 易门县| 巧家县| 临沂市| 新乡县| 马关县| 蒙阴县| 互助| 清丰县| 六枝特区| 麟游县| 河源市| 汶上县| 双鸭山市| 金溪县| 鄂温| 阿瓦提县| 乌鲁木齐市|