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

基于ais系統(tǒng)的船舶數(shù)據(jù)表繪制方法

文檔序號:6375459閱讀:211來源:國知局
專利名稱:基于ais系統(tǒng)的船舶數(shù)據(jù)表繪制方法
技術領域
本發(fā)明涉及一種航海領域,特別設計一種基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法。
背景技術
AIS 系統(tǒng)(AIS 全稱Automatic Identification System ;中文名稱船舶自動識別系統(tǒng))下船舶數(shù)據(jù)一般以船舶數(shù)據(jù)表的形式顯示在海圖上,用戶通過海圖即可觀察周圍船舶及其動向。所述船舶數(shù)據(jù)包括船舶的國旗、國籍、船名、MMSI (中文名稱海上移動通信業(yè)務標識)、航速、船舶的經(jīng)度 緯度等。在海圖上顯示船舶基本信息時,船舶數(shù)據(jù)表不經(jīng)處理,直接顯示在海圖(如圖I所示)。海圖在較大比例尺下,如果船舶數(shù)量大,船舶數(shù)據(jù)表相互疊加,在海圖上顯示成一團,這就導致部分船舶被船舶數(shù)據(jù)表遮擋,無法準確獲取船舶基本信息,同時降低計算機硬件系統(tǒng)的響應速度。

發(fā)明內容
本發(fā)明要解決的技術問題,在于提供一種基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法,其在海圖上顯示的船舶數(shù)據(jù)表更清晰,用戶查看更方便,且提升了計算機硬件系統(tǒng)的響應速度。本發(fā)明是這樣實現(xiàn)的
基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法,包括如下步驟
步驟I、確定海圖顯示比例尺,然后將顯示屏幕劃分為大小相同的單元格,各單元格均未被標記;
步驟2、通過計算機串口接收船舶數(shù)據(jù),判斷接收到的船舶數(shù)據(jù)的AIS語句是否正確,不正確返回,正確則解析船舶數(shù)據(jù),提取船舶數(shù)據(jù)中的MMSI號,判斷該MMSI號是否存在于AIS數(shù)據(jù)鏈表中,若已存在,則根據(jù)麗SI號從AIS數(shù)據(jù)鏈表中取出對應的船舶數(shù)據(jù)進行比對,若有更新,則將接收到的船舶數(shù)據(jù)更新至所述AIS數(shù)據(jù)鏈表中,若無更新,則丟棄接收到的船舶數(shù)據(jù),繼續(xù)接收下一條船舶數(shù)據(jù);
若不存在,則將接收到的船舶數(shù)據(jù)記錄至所述AIS數(shù)據(jù)鏈表;所述AIS數(shù)據(jù)鏈表用于記錄各船舶的船舶數(shù)據(jù);
將海圖區(qū)域內所有船舶的船舶數(shù)據(jù)都記錄在所述AIS數(shù)據(jù)鏈表后,執(zhí)行步驟3 ;
步驟3、判斷所述AIS數(shù)據(jù)鏈表中所有的船舶數(shù)據(jù)是否都以船舶數(shù)據(jù)表的形式在海圖上繪制完畢,若否執(zhí)行步驟4,若是,則結束繪制;
步驟4、從所述AIS數(shù)據(jù)鏈表中提取一條船舶數(shù)據(jù),根據(jù)船舶數(shù)據(jù)表的屏幕坐標判斷該條船舶數(shù)據(jù)表所需要占用的單元格是否已被標記,若已標記,則表示單元格已被使用,放棄繪制,執(zhí)行步驟3 ;若未標記,則開始繪制船舶數(shù)據(jù)表,并對被使用的單元格進行標記,繪制完成后執(zhí)彳了步驟3。進一步地,所述步驟4具體為從所述AIS數(shù)據(jù)鏈表中提取一條船舶數(shù)據(jù),根據(jù)該船舶數(shù)據(jù)表的屏幕坐標,若船舶數(shù)據(jù)表左上角的屏幕坐標為(top,left),左下角的屏幕坐標為(bottom, left),右上角的屏幕坐標為(top, right),右下角的屏幕坐標為(bottom,right),單元格的高度為height,單元格的寬度為width,則該船舶數(shù)據(jù)表需要占用的左上角的單元格的行、列分別為top/height、left/width ;該船舶數(shù)據(jù)表需要占用的左下角的單元格行、列分別為bottom/height、left/width ;該船舶數(shù)據(jù)表需要占用的右上角的單元格行、列分別為top/height, right/width ;該船舶數(shù)據(jù)表需要占用的右下角的單元格行、列分別為bottom/height、right /width ;根據(jù)該船舶數(shù)據(jù)表四個頂角所形成的區(qū)域,判斷該區(qū)域內的單元格以及四個頂角所處的單元格是否已被標記,若已標記,則表示單元格已被使用,放棄繪制,執(zhí)行步驟3 ;若未標記,則開始繪制船舶數(shù)據(jù)表,并對被使用的單元格進打標記,繪制完成后執(zhí)彳了步驟3。進一步地,在所述步驟2中,將接收到的船舶數(shù)據(jù)更新至所述AIS數(shù)據(jù)鏈表或將接收到的船舶數(shù)據(jù)記錄至所述AIS數(shù)據(jù)鏈表的同時,將所述AIS數(shù)據(jù)鏈表和所述MMSI號的船舶數(shù)據(jù)均設置更新標志,通過定時器設置刷新間隔時間,周期性地查詢所述AIS數(shù)據(jù)鏈表的更新標志,若有更新標志,則提取所述AIS數(shù)據(jù)鏈表中設有更新標志的船舶數(shù)據(jù),并在海圖上重新繪制該船舶數(shù)據(jù)的船舶數(shù)據(jù)表。進一步地,所述AIS數(shù)據(jù)鏈表中船舶數(shù)據(jù)全部繪制完,修改海圖顯示比例尺,則重新執(zhí)行步驟3和步驟4。進一步地,所述顯示屏幕被劃分呈列數(shù)為顯示屏幕寬/單元格寬;行數(shù)為顯示
屏幕高/單元格高。進一步地,所述AIS數(shù)據(jù)鏈表存儲在內存中。進一步地,所述AIS數(shù)據(jù)鏈表通過AIS數(shù)據(jù)查詢表呈現(xiàn)給用戶。本發(fā)明具有如下優(yōu)點通過對顯示屏幕劃分單元格,利用單元格過濾不必繪制的船舶數(shù)據(jù)表,減少繪制工作量,提高了計算機硬件系統(tǒng)的響應速度,且海圖顯示更清晰,方便用戶查看,而未被顯示的船舶數(shù)據(jù)表又可通過AIS數(shù)據(jù)查詢表進行查詢。


下面參照附圖結合實施例對本發(fā)明作進一步的說明。圖I是現(xiàn)有技術中顯示船舶數(shù)據(jù)表的海圖。圖2是本發(fā)明更新AIS數(shù)據(jù)鏈表的流程圖。圖3是本發(fā)明AIS數(shù)據(jù)查詢表的示意圖。圖4是本發(fā)明船舶數(shù)據(jù)表的繪制流程圖。圖5是本發(fā)明船舶數(shù)據(jù)表占用單元格的示意圖。
具體實施例方式基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法,所述繪制方法包括如下步驟
步驟I、確定海圖顯示比例尺,然后將顯示屏幕劃分為大小相同的單元格,各單元格均未被標記,即各單元格均未被使用;所述顯示屏幕被劃分呈列數(shù)為顯示屏幕寬/單元格寬;行數(shù)為顯示屏幕高/單元格高;
步驟2、請參閱圖2和圖3,通過計算機串口接收船舶數(shù)據(jù),判斷接收到的船舶數(shù)據(jù)的AIS語句是否正確,不正確返回,正確則解析船舶數(shù)據(jù),提取船舶數(shù)據(jù)中的麗SI號,判斷該麗SI號是否存在于AIS數(shù)據(jù)鏈表中,
若已存在,則根據(jù)MMSI號從所述AIS數(shù)據(jù)鏈表中取出對應的船舶數(shù)據(jù)進行比對,若有更新,則將接收到的船舶數(shù)據(jù)更新至所述AIS數(shù)據(jù)鏈表中,并將所述AIS數(shù)據(jù)鏈表和所述MMSI號的船舶數(shù)據(jù)均設置更新標志,若無更新,則丟棄接收到的船舶數(shù)據(jù),繼續(xù)接收下一條船舶數(shù)據(jù);
若不存在,則將接收到的船舶數(shù)據(jù)記錄至所述AIS數(shù)據(jù)鏈表,并將所述AIS數(shù)據(jù)鏈表和所述MMSI號的船舶數(shù)據(jù)均設置更新標志;所述AIS數(shù)據(jù)鏈表用于記錄各船舶的船舶數(shù)據(jù);所述船舶數(shù)據(jù)包括船舶的國旗、國籍、船名、MMSI (中文名稱海上移動通信業(yè)務標識)、航速以及船舶的經(jīng)度緯度等;所述AIS數(shù)據(jù)鏈表存儲在內存中,所述AIS數(shù)據(jù)鏈表用于記錄各船舶的船舶數(shù)據(jù)并通過AIS數(shù)據(jù)查詢表呈現(xiàn)給用戶;
將海圖區(qū)域內的所有船舶的船舶數(shù)據(jù)都記錄在所述AIS數(shù)據(jù)鏈表后,執(zhí)行步驟3;
步驟3、請參閱圖4,判斷所述AIS數(shù)據(jù)鏈表中的船舶數(shù)據(jù)是否都以船舶數(shù)據(jù)表的形式在海圖上繪制完畢,若否執(zhí)行步驟4,若是,則結束繪制;
步驟4、從所述AIS數(shù)據(jù)鏈表中提取一條船舶數(shù)據(jù),根據(jù)船舶數(shù)據(jù)表的屏幕坐標判斷該條船舶數(shù)據(jù)表所需要占用的單元格是否已被標記,若已標記,則表示單元格已被使用,放棄繪制,執(zhí)行步驟3 ;若未標記,則開始繪制船舶數(shù)據(jù)表,并對被使用的單元格進行標記,繪制完成后執(zhí)彳了步驟3 ;
具體地,從所述AIS數(shù)據(jù)鏈表中提取一條船舶數(shù)據(jù),根據(jù)該船舶數(shù)據(jù)表的屏幕坐標,若船舶數(shù)據(jù)表左上角的屏幕坐標為(top,left),左下角的屏幕坐標為(bottom,left),右上角的屏幕坐標為(top,right),右下角的屏幕坐標為(bottom,right),單元格的高度為height,單元格的寬度為width,則該船舶數(shù)據(jù)表需要占用的左上角的單元格的行、列分別為top/height、left/width ;該船舶數(shù)據(jù)表需要占用的左下角的單元格行、列分別為bottom/height、left/width ;該船舶數(shù)據(jù)表需要占用的右上角的單元格行、列分別為top/height, right/width ;該船舶數(shù)據(jù)表需要占用的右下角的單元格行、列分別為bottom/height、right /width ;根據(jù)該船舶數(shù)據(jù)表四個頂角所形成的區(qū)域,判斷該區(qū)域內的單元格以及四個頂角所處的單元格是否已被標記,若已標記,則表示單元格已被使用,放棄繪制,執(zhí)行步驟3,因為繪制該船舶數(shù)據(jù)表的單元格已被使用,說明該位置已繪制有某一船舶的船舶數(shù)據(jù)表,若再次繪制或多次繪制,只會導致多張船舶數(shù)據(jù)表的信息相互疊加,用戶無法辨清各船舶數(shù)據(jù)表的具體信息,因此,通過判斷單元格是否已被使用再決定是否繪制,可以避免海圖上船舶數(shù)據(jù)表的顯示混亂以及計算機硬件系統(tǒng)響應遲鈍;我們將被放棄繪制的船舶數(shù)據(jù)表稱之為不必繪制的船舶數(shù)據(jù)表;若未標記,則開始繪制船舶數(shù)據(jù)表,并對被使用的單元格進行標記,繪制完成后執(zhí)行步驟3。本實施例中,船舶數(shù)據(jù)表的屏幕坐標是通過以下步驟獲得的
設置船舶數(shù)據(jù)表顯示在船位右側;
設船位坐標為x,y (通過船舶的經(jīng)度緯度換算成顯示屏幕上的船位坐標)
設船位圖標的寬為ship_width,船位圖標和數(shù)據(jù)表的間隔為data_padding 設船舶數(shù)據(jù)表的寬,高為data_width,data_height
則船舶數(shù)據(jù)表最左邊的坐標為left = x + ship_width/2 + data_padding -data_width / 2船舶數(shù)據(jù)表最右邊的坐標為right = left + data_width 船舶數(shù)據(jù)表最上邊的坐標為top = y + data_height / 2 船舶數(shù)據(jù)表最下邊的坐標為bottom = top + data_height。本發(fā)明還可通過定時器設置刷新間隔時間,周期性地查詢所述AIS數(shù)據(jù)鏈表的更新標志,若有更新標志,則提取所述AIS數(shù)據(jù)鏈表中設有更新標志的船舶數(shù)據(jù)表,并在海圖上重新繪制該船舶數(shù)據(jù)表。所述AIS數(shù)據(jù)鏈表中船舶數(shù)據(jù)表全部繪制完,修改海圖顯示比例尺,則重新執(zhí)行步驟3和步驟4,重新繪制船舶數(shù)據(jù)表。在本實施例中,取單元格的高和寬分別船舶數(shù)據(jù)包的高和寬的1/4,則判斷每條船舶數(shù)據(jù)表需要占用的單元格I不會超過25個,如圖5所示。因此相對繪制來說,所需要的CPU指令數(shù)可忽略,因此可降低CPU資源占用率,提高系統(tǒng)響應速度。船舶數(shù)據(jù)表的大小,可通過系統(tǒng)設置的數(shù)據(jù)顯示開關進行控制,縮放海圖不影響船舶數(shù)據(jù)表的大小,也就不影響單元格大小。本發(fā)明通過對顯示屏幕劃分單元格,利用單元格過濾不必繪制的船舶數(shù)據(jù)表,減少繪制工作量,提高了計算機硬件系統(tǒng)的響應速度,且海圖顯示更清晰,方便用戶查看,而未被顯示的船舶數(shù)據(jù)表又可通過AIS數(shù)據(jù)查詢表進行查詢。雖然以上描述了本發(fā)明的具體實施方式
,但是熟悉本技術領域的技術人員應當理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領域的技術人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應當涵蓋在本發(fā)明的權利要求所保護的范圍內。
權利要求
1.基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法,其特征在于,包括如下步驟 步驟I、確定海圖顯示比例尺,然后將顯示屏幕劃分為大小相同的單元格,各單元格均未被標記; 步驟2、通過計算機串口接收船舶數(shù)據(jù),判斷接收到的船舶數(shù)據(jù)的AIS語句是否正確,不正確返回,正確則解析船舶數(shù)據(jù),提取船舶數(shù)據(jù)中的MMSI號,判斷該麗SI號是否存在于AIS數(shù)據(jù)鏈表中, 若已存在,則根據(jù)MMSI號從AIS數(shù)據(jù)鏈表中取出對應的船舶數(shù)據(jù)進行比對,若有更新,則將接收到的船舶數(shù)據(jù)更新至所述AIS數(shù)據(jù)鏈表中,若無更新,則丟棄接收到的船舶數(shù)據(jù),繼續(xù)接收下一條船舶數(shù)據(jù); 若不存在,則將接收到的船舶數(shù)據(jù)記錄至所述AIS數(shù)據(jù)鏈表;所述AIS數(shù)據(jù)鏈表用于記錄各船舶的船舶數(shù)據(jù); 將海圖區(qū)域內所有船舶的船舶數(shù)據(jù)都記錄在所述AIS數(shù)據(jù)鏈表后,執(zhí)行步驟3 ; 步驟3、判斷所述AIS數(shù)據(jù)鏈表中所有的船舶數(shù)據(jù)是否都以船舶數(shù)據(jù)表的形式在海圖上繪制完畢,若否執(zhí)行步驟4,若是,則結束繪制; 步驟4、從所述AIS數(shù)據(jù)鏈表中提取一條船舶數(shù)據(jù),根據(jù)船舶數(shù)據(jù)表中的屏幕坐標判斷該條船舶數(shù)據(jù)表所需要占用的單元格是否已被標記,若已標記,則表示單元格已被使用,放棄繪制,執(zhí)行步驟3 ;若未標記,則開始繪制船舶數(shù)據(jù)表,并對被使用的單元格進行標記,繪制完成后執(zhí)彳了步驟3。
2.根據(jù)權利要求I所述的基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法,其特征在于所述步驟4具體為從所述AIS數(shù)據(jù)鏈表中提取一條船舶數(shù)據(jù),根據(jù)該船舶數(shù)據(jù)表的屏幕坐標,若船舶數(shù)據(jù)表左上角的屏幕坐標為(top,left),左下角的屏幕坐標為(bottom,left),右上角的屏幕坐標為(top,right),右下角的屏幕坐標為(bottom,right),單元格的高度為height,單元格的寬度為width,則該船舶數(shù)據(jù)表需要占用的左上角的單元格的行、列分別為top/height、left/width ;該船舶數(shù)據(jù)表需要占用的左下角的單元格行、列分別為bottom/height、left/width ;該船舶數(shù)據(jù)表需要占用的右上角的單元格行、列分別為top/height, right/width ;該船舶數(shù)據(jù)表需要占用的右下角的單元格行、列分別為bottom/height、right /width ;根據(jù)該船舶數(shù)據(jù)表四個頂角所形成的區(qū)域,判斷該區(qū)域內的單元格以及四個頂角所處的單元格是否已被標記,若已標記,則表示單元格已被使用,放棄繪制,執(zhí)行步驟3 ;若未標記,則開始繪制船舶數(shù)據(jù)表,并對被使用的單元格進行標記,繪制完成后執(zhí)行步驟3。
3.根據(jù)權利要求I所述的基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法,其特征在于在所述步驟2中,將接收到的船舶數(shù)據(jù)更新至所述AIS數(shù)據(jù)鏈表或將接收到的船舶數(shù)據(jù)記錄至所述AIS數(shù)據(jù)鏈表的同時,將所述AIS數(shù)據(jù)鏈表和所述MMSI號的船舶數(shù)據(jù)均設置更新標志,通過定時器設置刷新間隔時間,周期性地查詢所述AIS數(shù)據(jù)鏈表的更新標志,若有更新標志,則提取所述AIS數(shù)據(jù)鏈表中設有更新標志的船舶數(shù)據(jù),并在海圖上重新繪制該船舶數(shù)據(jù)的船舶數(shù)據(jù)表。
4.根據(jù)權利要求I所述的基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法,其特征在于所述AIS數(shù)據(jù)鏈表中船舶數(shù)據(jù)表全部繪制完,修改海圖顯示比例尺,則重新執(zhí)行步驟3和步驟4。
5.根據(jù)權利要求I所述的基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法,其特征在于所述顯示屏幕被劃分呈列數(shù)為顯示屏幕寬/單元格寬;行數(shù)為顯示屏幕高/單元格高。
6.根據(jù)權利要求I所述的基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法,其特征在于所述步驟2中的AIS數(shù)據(jù)鏈表存儲在內存中。
7.根據(jù)權利要求I所述的基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法,其特征在于所述AIS數(shù)據(jù)鏈表通過AIS數(shù)據(jù)查詢表呈現(xiàn)給用戶。
全文摘要
本發(fā)明提供一種基于AIS系統(tǒng)的船舶數(shù)據(jù)表繪制方法,首先將顯示屏幕劃分為大小相同的單元格,其次將接收到的船舶數(shù)據(jù)表記錄在AIS數(shù)據(jù)鏈表中,然后提取船舶數(shù)據(jù)表進行繪制,若船舶數(shù)據(jù)表所需要占用的單元格已經(jīng)被標記,則放棄繪制,若船舶數(shù)據(jù)表所需要占用的單元格未被標記,則在海圖上進行繪制。本發(fā)明通過對顯示屏幕劃分單元格,利用單元格過濾不必繪制的船舶數(shù)據(jù)表,減少繪制工作量,提高了計算機硬件系統(tǒng)的響應速度,且海圖顯示更清晰,方便用戶查看,而未被顯示的船舶數(shù)據(jù)表又可通過AIS數(shù)據(jù)查詢表進行查詢或通過選中船舶、縮放海圖查詢。
文檔編號G06F17/30GK102855308SQ20121029979
公開日2013年1月2日 申請日期2012年8月22日 優(yōu)先權日2012年8月22日
發(fā)明者王維 申請人:廈門新諾科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
岳池县| 容城县| 太谷县| 攀枝花市| 牙克石市| 拜城县| 交城县| 台北市| 成武县| 洪湖市| 淄博市| 金坛市| 将乐县| 邳州市| 神池县| 资中县| 集安市| 岳池县| 达日县| 交城县| 镇江市| 长子县| 和龙市| 武城县| 岳西县| 郁南县| 毕节市| 三门峡市| 龙井市| 蒙自县| 道真| 鹿邑县| 乌拉特中旗| 长顺县| 白山市| 缙云县| 孙吴县| 洮南市| 田林县| 长丰县| 保靖县|