多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)及繪制方法
【專利摘要】本發(fā)明涉及一種多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)及方法,該系統(tǒng)包括:確定繪圖范圍單元,用于對多比例尺的矢量海圖數(shù)據(jù)確定有效范圍;第一畫圖單元,與所述確定繪圖范圍單元連接,用于繪制最小比例尺的矢量海圖數(shù)據(jù);第二畫圖單元,與所述確定繪圖范圍單元連接,用于繪制除最小比例尺外的其余比例尺的矢量海圖數(shù)據(jù);以及合成單元,與所述第一畫圖單元和所述第二畫圖單元連接,用于合成所述第一畫圖單元形成的底圖數(shù)據(jù)和所述第二畫圖單元形成的頂圖數(shù)據(jù),形成顯示圖像并予以顯示。減小了最小比例尺矢量海圖數(shù)據(jù)所需描畫的物標,在節(jié)約系統(tǒng)的畫圖資源的情況下,加快了海圖的顯示速度。
【專利說明】
多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)及繪制方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及電子海圖顯示領(lǐng)域,特指一種多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)及繪制方法。
【背景技術(shù)】
[0002]在現(xiàn)有的電子海圖顯示中,對多比例尺的矢量海圖數(shù)據(jù)需要逐一的描畫全部的矢量圖并予以顯示,這樣使得顯示方式對處理系統(tǒng)的要求較高,由于需要描畫的矢量圖較多,使得電子海圖顯示的時間長,速度慢。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)及繪制方法,解決現(xiàn)有技術(shù)中逐一的描畫全部的矢量圖進行顯示時存在的時間長,速度慢的問題。
[0004]實現(xiàn)上述目的的技術(shù)方案是:
[0005]本發(fā)明提供了一種多比例尺矢量海圖數(shù)據(jù)的繪制方法,包括:
[0006]將多比例尺的矢量海圖數(shù)據(jù)與顯示屏的顯示范圍取交集以形成多比例尺的矢量海圖數(shù)據(jù)的有效范圍;
[0007]將多比例尺中最小比例尺的矢量海圖數(shù)據(jù)的有效范圍與其余比例尺的矢量海圖數(shù)據(jù)的有效范圍取差集以形成最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍;
[0008]根據(jù)所形成的最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍進行畫圖處理以形成底圖數(shù)據(jù),根據(jù)其余比例尺的矢量海圖數(shù)據(jù)的有效范圍進行畫圖處理以形成頂圖數(shù)據(jù);以及
[0009]將底圖數(shù)據(jù)和頂圖數(shù)據(jù)合成顯示圖像并予以顯示。
[0010]由于最小比例尺的矢量海圖數(shù)據(jù)為底圖,會被其他比例尺的矢量海圖數(shù)據(jù)所覆蓋,本發(fā)明在畫圖處理前,將最小比例尺的矢量海圖數(shù)據(jù)的有效范圍中除去被其他比例尺的矢量海圖數(shù)據(jù)覆蓋的范圍,形成了繪制范圍,減小了最小比例尺矢量海圖數(shù)據(jù)所需描畫的物標,在節(jié)約系統(tǒng)的畫圖資源的情況下,加快了海圖的顯示速度。且最小比例尺的矢量海圖數(shù)據(jù)和其余比例尺的矢量海圖數(shù)據(jù)進行并行繪制,進一步地提供了海圖的處理時間,加快了海圖顯示的速度。
[0011]本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制方法的進一步改進在于,根據(jù)所形成的最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍進行畫圖處理包括:
[0012]讀取最小比例尺的矢量海圖數(shù)據(jù)中的第一個物標;
[0013]判斷所讀取的物標是否在最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍內(nèi),若在繪制范圍內(nèi)則將所讀取的物標描畫于第一內(nèi)存圖片中;
[0014]判斷所讀取的物標是否為最小比例尺的矢量海圖數(shù)據(jù)中最后一個物標,若否則讀取下一個物標并重復(fù)進行上述的判斷,若是則將描畫形成的第一內(nèi)存圖片作為底圖數(shù)據(jù)。
[0015]本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制方法的進一步改進在于,根據(jù)其余比例尺的矢量海圖數(shù)據(jù)的有效范圍進行畫圖處理,包括:
[0016]讀取其余比例尺的矢量海圖數(shù)據(jù)中的第一個矢量圖;
[0017]讀取矢量圖中的第一個物標;
[0018]判斷所讀取的物標是否在所述矢量圖的有效范圍內(nèi),若在有效范圍內(nèi)則將所取得的物標描畫于第二內(nèi)存圖片中;
[0019]判斷所讀取的物標是否為所述矢量圖中最后一個物標,所否則讀取下一個物標并重復(fù)進行上述的判斷,若是則判斷所述矢量圖是否為其余比例尺的矢量海圖數(shù)據(jù)中的最后一個矢量圖,若否則繼續(xù)讀取下一個矢量圖并重復(fù)進行上述的讀取物標,若是則將描畫形成的第二內(nèi)存圖片作為頂圖數(shù)據(jù)。
[0020]本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制方法的進一步改進在于,進行畫圖處理時,為最小比例尺的矢量海圖數(shù)據(jù)分配空閑內(nèi)核進行處理,為其余比例尺的矢量海圖數(shù)據(jù)分配另一空閑內(nèi)核進行處理。
[0021]本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制方法的進一步改進在于,將底圖數(shù)據(jù)和頂圖數(shù)據(jù)合成顯示圖像,包括:
[0022]將頂圖數(shù)據(jù)覆于底圖數(shù)據(jù)之上合成為顯示圖像;
[0023]將所述頂圖數(shù)據(jù)和所述底圖數(shù)據(jù)刪除。
[0024]本發(fā)明還提供了一種多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng),包括:
[0025]確定繪圖范圍單元,用于對多比例尺的矢量海圖數(shù)據(jù)確定有效范圍,通過將多比例尺的矢量海圖數(shù)據(jù)與顯示屏的顯示范圍取交集形成多比例尺矢量海圖數(shù)據(jù)的有效范圍,通過將最小比例尺的矢量海圖數(shù)據(jù)的有效范圍與其余比例尺的矢量海圖數(shù)據(jù)的有效范圍取差集形成最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍;
[0026]第一畫圖單元,與所述確定繪圖范圍單元連接,用于繪制最小比例尺的矢量海圖數(shù)據(jù),通過所述確定繪圖范圍單元形成的最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍進行畫圖處理形成底圖數(shù)據(jù);
[0027]第二畫圖單元,與所述確定繪圖范圍單元連接,用于繪制除最小比例尺外的其余比例尺的矢量海圖數(shù)據(jù),通過所述確定繪圖范圍單元形成的其余比例尺的矢量海圖數(shù)據(jù)的有效范圍進行畫圖處理形成頂圖數(shù)據(jù);以及
[0028]合成單元,與所述第一畫圖單元和所述第二畫圖單元連接,用于合成所述第一畫圖單元形成的底圖數(shù)據(jù)和所述第二畫圖單元形成的頂圖數(shù)據(jù),形成顯示圖像并予以顯示。
[0029]本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)的進一步改進在于,所述第一畫圖單元包括第一讀取模塊、第一判斷模塊以及第一繪制模塊;
[0030]所述第一讀取模塊用于按序讀取最小比例尺的矢量海圖數(shù)據(jù)中的物標;
[0031]所述第一判斷模塊與所述第一讀取模塊連接,用于判斷所讀取的物標是否在最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍內(nèi),還用于判斷所讀取的物標是否為最小比例尺的矢量海圖數(shù)據(jù)中最后一個物標;
[0032]所述第一繪制模塊與所述第一判斷模塊連接,用于在所述第一判斷模塊判斷得出所讀取的物標在最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍內(nèi)時,將該物標描畫于第一內(nèi)存圖片中,還用于在所述第一判斷模塊判斷得出所讀取的物標為最小比例尺的矢量海圖數(shù)據(jù)中最后一個物標時,將所描畫的第一內(nèi)存圖片作為底圖數(shù)據(jù)并發(fā)送給所述合成單元。
[0033]本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)的進一步改進在于,所述第二畫圖單元包括第二讀取模塊、第二判斷模塊以及第二繪制模塊;
[0034]所述第二讀取模塊用于讀取其余比例尺的矢量海圖數(shù)據(jù)中的矢量圖,還用于讀取所述矢量圖中的物標;
[0035]所述第二判斷模塊與所述第二讀取模塊連接,用于判斷所述第二讀取模塊所讀取的物標是否在矢量圖的有效范圍內(nèi),還用于判斷所讀取的物標是否為矢量圖中最后一個物標,還用于判斷所讀取的矢量圖是否為其余比例尺的矢量海圖數(shù)據(jù)中的最后一個矢量圖;
[0036]所述第二繪制模塊與所述第二判斷模塊連接,用于在所述第二判斷模塊判斷得出所讀取的物標在矢量圖的有效范圍內(nèi)時,將所讀取的物標描畫于第二內(nèi)存圖片中;還用于在所述第二判斷模塊判斷得出所讀取的物標為矢量圖中最后一個物標和所述所讀取的矢量圖為最后一個矢量圖時,將描畫形成的第二內(nèi)存圖片作為頂圖數(shù)據(jù)并發(fā)送給所述合成單
J L ο
[0037]本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)的進一步改進在于,所述第一畫圖單元與一空閑內(nèi)核進行任務(wù)綁定,所述第二畫圖單元與另一空閑內(nèi)核進行任務(wù)綁定。
[0038]本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)的進一步改進在于,所述合成單元在將頂圖數(shù)據(jù)覆于底圖數(shù)據(jù)之上合成為顯示圖像之后,將所述頂圖數(shù)據(jù)和所述底圖數(shù)據(jù)刪除。
【附圖說明】
[0039]圖1為本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)的系統(tǒng)圖。
[0040]圖2為本發(fā)明中確定多比例尺矢量海圖數(shù)據(jù)有效范圍的流程圖。
[0041 ]圖3為本發(fā)明中畫圖處理的流程圖。
[0042]圖4為本發(fā)明中合成單元處理的流程圖。
【具體實施方式】
[0043]下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明。
[0044]本發(fā)明提供了多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)及繪制方法,用于船舶航行時提供電子海圖的顯示,特別適用于多個比例尺的矢量海圖數(shù)據(jù)的顯示。最小比例尺的矢量圖作為底圖會被比例尺大的矢量圖覆蓋,本發(fā)明對最小比例尺的矢量海圖數(shù)據(jù)進行取樣鎖定,去掉會被大比例尺的矢量海圖數(shù)據(jù)覆蓋的取樣,以形成繪制范圍,在畫面處理時,對物標進行判斷,若不在該繪制范圍內(nèi),將不會對物標進行轉(zhuǎn)換處理與描畫,從而加快了海圖的顯示速度。下面結(jié)合附圖對本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)及繪制方法進行說明。
[0045]參閱圖1所示,顯示了本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)的系統(tǒng)圖。下面結(jié)合圖1,對本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)進行說明。
[0046]如圖1所示,本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng)包括篩選矢量圖單元11、確定繪制范圍單元12、第一畫圖單元13、第二畫圖單元14、以及合成單元15,篩選矢量圖單元
11余確定繪制范圍單元12連接,確定繪制范圍單元12與第一畫圖單元13和第二畫圖單元14連接,第一畫圖單元13和第二畫圖單元14與合成單元15連接。篩選矢量圖單元11用于根據(jù)當前的比例尺和中心點確定當前要畫(需顯示)的矢量圖,形成多比例尺矢量海圖數(shù)據(jù)發(fā)送給確定繪制范圍單元12。確定繪制范圍單元12用于對多比例尺矢量海圖數(shù)據(jù)中的每一矢量圖進行有效范圍的確定,再根據(jù)有效范圍確定矢量圖的繪制范圍。第一畫圖單元13和第二畫圖單元14根據(jù)確定繪制范圍單元12確定的有效范圍進行畫圖處理形成底圖數(shù)據(jù)和頂圖數(shù)據(jù)。合成單元15再將底圖數(shù)據(jù)和頂圖數(shù)據(jù)合成為顯示圖像并予以顯示。在進行畫圖處理之前,利用確定繪制范圍單元12確定矢量圖的有效范圍,將最小比例尺的矢量海圖數(shù)據(jù)中被其余比例尺矢量海圖數(shù)據(jù)覆蓋的區(qū)域裁剪掉,避免了畫圖處理上的浪費,節(jié)約了系統(tǒng)資源,且提高了海圖的顯示速度。
[0047]篩選矢量圖單元11根據(jù)當前海圖將要顯示的中心點與比例尺,從當前系統(tǒng)中保存的所有矢量圖中,挑選合適的幾張能夠填充屏幕的矢量圖作為本次描畫的完整海圖的源數(shù)據(jù),并按照比例尺從大到小的順序進行保存。篩選矢量圖單元11是根據(jù)用戶的海圖顯示操作指令來確定各個矢量圖的,形成多比例尺矢量海圖數(shù)據(jù),每一比例尺矢量海圖數(shù)據(jù)為一個矢量圖,篩選矢量圖單元11將各個比例尺矢量海圖數(shù)據(jù)依據(jù)比例尺的大小進行排序保存。
[0048]確定繪圖范圍單元12接收到篩選矢量圖單元11形成的多比例尺矢量海圖數(shù)據(jù),用于對多比例尺的矢量海圖數(shù)據(jù)進行有效范圍的確定。該確定繪圖范圍單元12通過將多比例尺的矢量海圖數(shù)據(jù)與顯示屏的顯示范圍取交集形成多比例尺矢量海圖數(shù)據(jù)的有效范圍,通過將最小比例尺的矢量海圖數(shù)據(jù)的有效范圍與其余比例尺的矢量海圖數(shù)據(jù)的有效范圍取差集形成最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍,也就是在最小比例尺的矢量海圖數(shù)據(jù)的有效范圍內(nèi)將其余比例尺的矢量海圖數(shù)據(jù)的有效范圍去除,就形成了繪制范圍。較佳地,該確定繪圖范圍單元12按照篩選矢量圖單元11保存的順序進行確定范圍,先確定大比例尺的矢量海圖數(shù)據(jù)的有效范圍,該比例尺的矢量海圖數(shù)據(jù)的有效范圍為陸地物標和海洋物標所圍成的多邊形與當前的顯示區(qū)域的交集,為當前的海圖的矢量圖的有效范圍,并臨時保存當前的有效范圍,當檢查到最后一個矢量圖時,即最小比例尺的矢量海圖數(shù)據(jù),該矢量圖的有效范圍不僅要取當前矢量圖與顯示區(qū)域的交集,還要將該范圍與臨時保存的所有的其余比例尺矢量海圖數(shù)據(jù)的有效范圍取差集來最終確定該矢量圖的繪制范圍。具體確定有效范圍的流程為:如圖2所示,設(shè)定當前所選擇的矢量圖的總數(shù)為n,當前正在處理的矢量圖為i,初始化i為第一張海圖。讀取第i張矢量圖,此時i為I,第一張矢量圖為最大比例尺的矢量海圖數(shù)據(jù);接著設(shè)定該矢量圖的覆蓋范圍與顯示范圍的交集為該矢量圖的有效范圍,顯示范圍是顯示屏的范圍,這樣所取的交集就是該矢量圖最終需要顯示的范圍;接著將有效范圍進行臨時保存;然后判斷當前是否為第η-1張矢量圖,若不是,設(shè)定i為下一張矢量圖,繼續(xù)讀取矢量圖并設(shè)定有效范圍,若是,將第η張矢量圖(最小比例尺的矢量海圖數(shù)據(jù))的覆蓋范圍與屏幕的覆蓋范圍的交集設(shè)為有效范圍,在將第η張矢量圖的有效范圍與臨時保存的所有的有效范圍取差集作為該第η張矢量圖的繪制范圍。
[0049]第一畫圖單元13用于繪制最小比例尺的矢量海圖數(shù)據(jù),通過確定繪圖范圍單元12形成的最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍進行畫圖處理形成底圖數(shù)據(jù)。該第一畫圖單元13包括第一讀取模塊、第一判斷模塊以及第一繪制模塊,第一讀取模塊與第一判斷模塊連接,第一判斷模塊與第一繪制模塊連接,其中的第一讀取模塊用于按序讀取最小比例尺的矢量海圖數(shù)據(jù)中的物標,第一判斷模塊用于判斷第一讀取模塊所讀取的物標是否在最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍內(nèi),還用于判斷所讀取的物標是否為最小比例尺的矢量海圖數(shù)據(jù)中最后一個物標,第一繪制模塊用于根據(jù)第一判斷模塊的判斷結(jié)果進行繪制操作,在第一判斷模塊判斷得出所讀取的物標在最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍內(nèi)時,將該物標描畫于第一內(nèi)存圖片中,在第一判斷模塊判斷得出所讀取的物標為最小比例尺的矢量海圖數(shù)據(jù)中最后一個物標時,將所描畫的第一內(nèi)存圖片作為底圖數(shù)據(jù)并發(fā)送給合成單元。
[0050]第二畫圖單元14用于繪制除最小比例尺外的其余比例尺的矢量海圖數(shù)據(jù),通過確定繪圖范圍單元12形成的其余比例尺的矢量海圖數(shù)據(jù)的有效范圍進行畫圖處理形成頂圖數(shù)據(jù)。該第二畫圖單元14包括第二讀取模塊、第二判斷模塊以及第二繪制模塊,第二讀取模塊與第二判斷模塊連接,第二判斷模塊與第二繪制模塊連接,其中的第二讀取模塊用于讀取其余比例尺的矢量海圖數(shù)據(jù)中的矢量圖,還用于讀取每一矢量圖中的物標;第二判斷模塊用于判斷第二讀取模塊所讀取的物標是否在矢量圖的有效范圍內(nèi),還用于判斷所讀取的物標是否為矢量圖中最后一個物標,還用于判斷所讀取的矢量圖是否為其余比例尺的矢量海圖數(shù)據(jù)中的最后一個矢量圖;第二繪制模塊用于根據(jù)第二判斷模塊的判斷結(jié)果進行繪制操作,在第二判斷模塊判斷得出所讀取的物標在矢量圖的有效范圍內(nèi)時,將所讀取的物標描畫于第二內(nèi)存圖片中,還用于在第二判斷模塊判斷得出所讀取的物標為矢量圖中最后一個物標和所讀取的矢量圖為最后一個矢量圖時,將描畫形成的第二內(nèi)存圖片作為頂圖數(shù)據(jù)并發(fā)送給合成單元。
[0051]第一畫圖單元13和第二畫圖單元14采用并行處理的方式,其中第一畫圖單元13與一空閑內(nèi)核進行任務(wù)綁定,第二畫圖單元14與另一空閑內(nèi)核進行任務(wù)綁定,通過兩個空閑內(nèi)核對第一畫圖單元13和第二畫圖單元14的繪制操作進行并行處理,能夠提高電子海圖顯示的處理速度。下面結(jié)合圖3對第一畫圖單元13和第二畫圖單元14的處理流程進行說明。在確定了所有矢量圖各自的有效范圍之后,將所有矢量圖中比例尺最小的矢量圖的繪制任務(wù)分配給第一畫圖單元13進行處理,將其余比例的矢量圖的繪制任務(wù)分配給第二畫圖單元14進行處理。在確定繪制范圍單元12將各個需要繪制的矢量圖的有效范圍確定好之后,通知合成單元15進行準備,系統(tǒng)會設(shè)定一個空閑的內(nèi)核與合成單元15進行任務(wù)綁定。確定繪制范圍單元12將最小比例尺的矢量圖發(fā)送給第一畫圖單元13,系統(tǒng)會將于合成單元15綁定的內(nèi)核與第一畫圖單元13進行任務(wù)綁定,第一畫圖單元13進行最小比例尺的矢量圖的繪制任務(wù)。確定繪制范圍單元12將除最小比例尺之外的所有矢量圖發(fā)送給第二畫圖單元14,系統(tǒng)會設(shè)定一個空閑內(nèi)核與該第二畫圖單元14進行任務(wù)綁定,第二畫圖單元14進行其余比例尺的的繪制任務(wù)。第一畫圖單元13和第二畫圖單元14并將處理最小比例尺的矢量圖和其余比例尺的矢量圖的繪制任務(wù),第一畫圖單元13讀取最小比例尺的矢量圖中的第一個物標,然后判斷當前的物標是否在繪制范圍內(nèi),若在則在第一內(nèi)存圖片中描畫該物標,若不在就放棄描畫并執(zhí)行下一步,判斷當前的物標是否是該矢量圖中最后一個物標,若不是最后一個物標則繼續(xù)讀取下一個物標并繼續(xù)判斷該物標是否在繪制范圍內(nèi),若是最后一個物標則表示該矢量圖繪制完成,將當前的第一內(nèi)存圖片作為底圖數(shù)據(jù),第一畫圖單元13在繪制過程中,將非繪制范圍處理成透明區(qū)域,繪制形成的第一內(nèi)存圖片作為底圖數(shù)據(jù)發(fā)送給合成單元15。第二畫圖單元14按照順序描畫其余比例尺的矢量圖,先讀取一個矢量圖,然后讀取該矢量圖中的第一個物標,判斷當前的物標是否在有效范圍內(nèi),若在則在第二內(nèi)存圖片中描畫該物標,若不在則放棄描畫并執(zhí)行下一步,判斷當前物標是否是該矢量圖中最后一個物標,若不是最后一個則繼續(xù)讀取下一個物標并判斷是否在有效范圍內(nèi),若在最后一個物標則表示該矢量圖描畫完成,然后判斷該矢量圖是否是最后一個矢量圖,所不是最后一個矢量圖則繼續(xù)讀取下一個矢量圖,然后讀取該矢量圖中的物標并進行判斷再予以描畫直至所有矢量圖均描畫完成,若是最后一個矢量圖則表明所有矢量圖均描畫完成,此時將第二內(nèi)存圖片作為頂圖數(shù)據(jù),第二畫圖單元14在形成頂圖數(shù)據(jù)時,將第二內(nèi)存圖片中非有效范圍的區(qū)域處理成透明區(qū)域,然后將該頂圖數(shù)據(jù)發(fā)送給合成單元15。
[0052]合成單元15用于合成第一畫圖單元13形成的底圖數(shù)據(jù)和第二畫圖單元14形成的頂圖數(shù)據(jù),形成顯示圖像并予以顯示。該合成單元15強頂圖數(shù)據(jù)覆于底圖數(shù)據(jù)之上合成為顯示圖像,然后將頂圖數(shù)據(jù)和底圖數(shù)據(jù)刪除以釋放內(nèi)存。合成單元15中包括有兩個標識位和兩個內(nèi)存圖像指針,兩個標識位分別為底圖繪制完成標識位和頂圖繪制完成標識位,用于標識當前的各個矢量圖是否繪制完成,兩個內(nèi)存圖像指針分別記錄頂圖數(shù)據(jù)和底圖數(shù)據(jù),即第一內(nèi)存圖片和第二內(nèi)存圖片所在的內(nèi)存地址,通過內(nèi)存地址來讀取第一內(nèi)存圖片和第二內(nèi)存圖片。合成單元15在運行后,一直等待第一畫圖單元13和第二畫圖單元14的觸發(fā)以進行合成處理,如圖4所示,下面對合成單元15的處理流程進行說明。合成單元15被創(chuàng)建運行后,初始化,將底圖繪制完成標識位和頂圖繪制完成標識位設(shè)置為未完成,將兩個內(nèi)存圖像指針設(shè)為空。然后等待消息隊列傳遞設(shè)置消息,當?shù)谝划媹D單元13繪制完成底圖時,將底圖繪制完成標識位設(shè)置為已完成,并將第一內(nèi)存圖片的內(nèi)存地址(即底圖數(shù)據(jù))存放到對應(yīng)的內(nèi)存圖像指針內(nèi),此時觸發(fā)合成單元15查看另一個標識位是否為完成,若未完成則繼續(xù)等待,當?shù)诙媹D單元14繪制完成頂圖時,將頂圖繪制完成標識位設(shè)置為已完成,并將第二內(nèi)存圖片的內(nèi)存地址(即頂圖數(shù)據(jù))存放到對應(yīng)的內(nèi)存圖像指針內(nèi),此時觸發(fā)合成單元15查看另一個標識位是否為完成,此時兩個標識位均為已完成,合成單元15將按照內(nèi)存地址讀取到作為底圖的第一內(nèi)存圖片和作為頂圖的第二內(nèi)存圖片,然后按照底圖在下頂圖在上的順序合成為顯示圖像,并在顯示屏上予以顯示,顯示后將第一內(nèi)存圖片和第二內(nèi)存圖片予以刪除清理。
[0053]本發(fā)明的提速效果在于,讀取多比例尺的矢量海圖數(shù)據(jù)時,確定最小比例的矢量海圖數(shù)據(jù)的有效范圍,并將該有效范圍內(nèi)被其余比例尺矢量海圖數(shù)據(jù)覆蓋的范圍去除以形成繪制范圍,減少了不必要的海圖物標的處理,節(jié)約了操作系統(tǒng)的畫圖資源,同時加快了海圖的顯不。
[0054]下面結(jié)合附圖對本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制方法進行說明。
[0055]本發(fā)明多比例尺矢量海圖數(shù)據(jù)的繪制方法包括如下步驟:
[0056]根據(jù)當前的比例尺和中心度確定當前要畫的矢量圖,即篩選出需描畫處理的多比例尺矢量海圖數(shù)據(jù);依據(jù)多比例尺矢量海圖數(shù)據(jù)確定各矢量圖的有效范圍,將多比例尺的矢量海圖數(shù)據(jù)與顯示屏的顯示范圍取交集以形成多比例尺的矢量海圖數(shù)據(jù)的有效范圍,其中針對最下比例尺的矢量海圖數(shù)據(jù)的有效范圍,再對該有效范圍與其余比例尺的矢量海圖數(shù)據(jù)的有效范圍取差集以形成最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍,由于最小比例尺的矢量海圖數(shù)據(jù)在顯示時作為底圖,會被作為頂圖的其余比例尺的矢量海圖數(shù)據(jù)覆蓋,故此時將最小比例的矢量海圖的有效范圍中裁去其余比例尺的矢量海圖數(shù)據(jù)的有效范圍,不會影響電子海圖最終的顯示效果,會提升畫圖的處理速度和顯示速度。根據(jù)所形成的最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍進行畫圖處理以形成底圖數(shù)據(jù),同時根據(jù)其余比例尺的矢量海圖數(shù)據(jù)的有效范圍進行畫圖處理以形成頂圖數(shù)據(jù),將底圖數(shù)據(jù)和頂圖數(shù)據(jù)合成顯示圖像并予以顯示。
[0057]在進行矢量圖的篩選時,根據(jù)當前海圖將要顯示的中心點與比例尺,從當前系統(tǒng)中保存的所有的矢量圖中,挑選合適的幾張能夠填充屏幕的矢量圖作為本次描畫的完整海圖的源數(shù)據(jù),并按照比例尺從大到小的順序進行保存。
[0058]如圖2所示,下面對確定多比例尺矢量海圖數(shù)據(jù)有效范圍的流程步驟進行說明。
[0059]確定每張矢量圖的有效范圍,以比例尺從大到小的順序進行確定,假設(shè)矢量圖的數(shù)量為η,初始化i為I,確定范圍的步驟包括:
[0060]執(zhí)行步驟S21,讀取第i張矢量圖,此時i為I,讀取多比例尺中最大比例尺的矢量海圖數(shù)據(jù),接著執(zhí)行步驟S22。
[0061]執(zhí)行步驟S22,設(shè)定第i張矢量圖的覆蓋范圍與顯示范圍的交集為該圖的有效范圍,該比例尺的矢量圖的有效范圍是陸地物標和海洋物標所圍成的多邊形與當前的顯示區(qū)域的交集。接著執(zhí)行步驟S23。
[0062]執(zhí)行步驟S23,臨時保存有效范圍,將步驟S22中獲取的有效范圍進行臨時保存。接著執(zhí)行步驟S24。
[0063]執(zhí)行步驟S24,判斷當前是否為第η-1張矢量圖,若是則執(zhí)行步驟S25,若否則執(zhí)行步驟S27。
[0064]執(zhí)行步驟S25,將第η張矢量圖的覆蓋范圍與屏幕的覆蓋范圍的交集為有效范圍,最后一張矢量圖是最小比例尺的矢量海圖,根據(jù)該最小比例尺的矢量海圖數(shù)據(jù)的覆蓋范圍與屏幕的現(xiàn)實范圍取交集形成有效范圍,接著執(zhí)行步驟S26。
[0065]執(zhí)行步驟S26,將第η張矢量圖的有效范圍與臨時保存的有效范圍取差集作為該圖的繪制范圍,即將最小比例尺的有效范圍與其余比例尺的有效范圍取差集,作為該最小比例尺的繪制范圍。
[0066]執(zhí)行步驟S27,設(shè)定i為下一張矢量圖,將i+Ι,接著執(zhí)行步驟S21。
[0067]如圖3所示,下面對畫圖處理的流程進行說明。
[0068]畫圖處理過程包括:
[0069]執(zhí)行步驟S301,確定矢量圖的有效范圍,多比例尺的矢量海圖數(shù)據(jù)中的每一矢量圖的有效范圍均確定之后,接著執(zhí)行步驟S302。
[0070]執(zhí)行步驟S302,通知合成單元進行準備,設(shè)定一個空閑的內(nèi)核與合成單元進行綁定,系統(tǒng)將空閑的內(nèi)核與合成單元進行綁定,以執(zhí)行該合成單元的任務(wù)。接著執(zhí)行步驟S303o
[0071]執(zhí)行步驟S303,獲取比例尺最小的一張并設(shè)定與合成單元相同的內(nèi)核與該任務(wù)進行綁定,由于合成單元的合成操作需在畫圖處理結(jié)束之后才執(zhí)行,故將該空閑的內(nèi)核與畫圖任務(wù)和合成任務(wù)進行綁定,不會影響處理的效率。接著執(zhí)行步驟S304和步驟S305。
[0072]執(zhí)行步驟S304,設(shè)定一個空閑的內(nèi)核與剩余的其他比例尺矢量圖的畫圖任務(wù)進行綁定,利用另外一個空閑的內(nèi)核處理除最小比例尺的矢量圖之外的所有矢量圖的畫圖任務(wù),使得兩個內(nèi)核能夠同時進行畫圖任務(wù)的執(zhí)行。接著執(zhí)行步驟S312。
[0073]執(zhí)行步驟S305,開始畫最小比例尺矢量圖,接著執(zhí)行步驟S306。
[0074]執(zhí)行步驟S306,讀取該矢量圖中第一個物標,接著執(zhí)行步驟S307。
[0075]執(zhí)行步驟S307,判斷當前物標是否在繪制范圍內(nèi),若是則執(zhí)行步驟S308,若否則執(zhí)行步驟S309。
[0076]執(zhí)行步驟S308,處理并在第一內(nèi)存圖片中描畫該物標,接著執(zhí)行步驟S309。
[0077]執(zhí)行步驟S309,判斷當前物標是否為最后一個,若是則執(zhí)行步驟S311,若否則執(zhí)行步驟S310。
[0078]執(zhí)行步驟S310,讀取下一個物標,在讀取矢量圖的物標時,依序?qū)κ噶繄D的物標進行讀取。接著執(zhí)行步驟S307。
[0079]執(zhí)行步驟S311,將當前第一內(nèi)存圖片作為底圖數(shù)據(jù)傳遞給合成單元以進行合成操作。
[0080]執(zhí)行步驟S312,開始畫其余比例尺矢量圖,接著執(zhí)行步驟S313。
[0081]執(zhí)行步驟S313,讀取第一個矢量圖,接著執(zhí)行步驟S314。
[0082]執(zhí)行步驟S314,讀取該矢量圖中第一個物標,接著執(zhí)行步驟S315。
[0083]執(zhí)行步驟S315,判斷當前物標是否在有效范圍內(nèi),若是則執(zhí)行步驟S316,若否則執(zhí)行步驟S317。
[0084]執(zhí)行步驟S316,處理并在第二內(nèi)存圖片中描畫該物標,接著執(zhí)行步驟S317。
[0085]執(zhí)行步驟S317,判斷當前物標是否為最后一個,若是則執(zhí)行步驟S318,若否則執(zhí)行步驟S319。
[0086]執(zhí)行步驟S318,讀取下一個物標,接著執(zhí)行步驟S315。
[0087]執(zhí)行步驟S319,判斷該矢量圖是否為最后一個,若是則執(zhí)行步驟S321,若否則執(zhí)行步驟S320。
[0088]執(zhí)行步驟S320,讀取下一個矢量圖,接著執(zhí)行步驟S314。
[0089]執(zhí)行步驟S321,將當前的第二內(nèi)存圖片作為頂圖數(shù)據(jù)傳遞給合成單元,以進行合成操作。
[0090]如圖4所示,下面對合成圖像的處理流程進行說明。
[0091]合成圖像的處理包括:
[0092]執(zhí)行步驟S41,設(shè)置繪制底圖完成標識位和繪制頂圖完成標志位為未完成并設(shè)置兩個內(nèi)存指針為空,通過底圖完成標識位和頂圖完成標識位來知曉頂圖和底圖的繪制結(jié)果,通過內(nèi)存指針來讀取指定內(nèi)存地址存放的頂圖和底圖。接著執(zhí)行步驟S42。
[0093]執(zhí)行步驟S42,等待消息隊列傳遞設(shè)置消息,在繪制底圖完成標識位和繪制頂圖完成標志位被修改時,會形成設(shè)置消息以觸發(fā)合成操作的執(zhí)行,接著執(zhí)行步驟S43。
[0094]執(zhí)行步驟S43,畫圖單元設(shè)置某一個標識位為完成并設(shè)置對應(yīng)的內(nèi)存圖片的內(nèi)存地址,底圖繪制完成或者頂圖繪制完成后,會設(shè)置對應(yīng)的標識位為已完成,并將存放底圖或頂圖的地址存放到對應(yīng)的內(nèi)存指針內(nèi)。接著執(zhí)行步驟S44。
[0095]執(zhí)行步驟S44,查看另一個標識位是否為完成,若已完成則執(zhí)行步驟S45,若未完成則執(zhí)行步驟S41。
[0096]執(zhí)行步驟S45,將底圖和頂圖按照底圖在下頂圖在上的順序合成最終的圖像并顯示在顯示區(qū),依據(jù)內(nèi)存指針內(nèi)的地址讀取到內(nèi)存圖片,然后將頂圖數(shù)據(jù)覆于底圖數(shù)據(jù)之上進行合成處理。接著執(zhí)行步驟S46。
[0097]執(zhí)行步驟S46,清理頂圖和底圖的內(nèi)存圖像,將頂圖數(shù)據(jù)和底圖數(shù)據(jù)刪除。
[0098]本發(fā)明的畫圖處理可以通過畫圖單元予以實現(xiàn),合成圖像的處理可以通過合成單元予以實現(xiàn)。
[0099]以上結(jié)合附圖實施例對本發(fā)明進行了詳細說明,本領(lǐng)域中普通技術(shù)人員可根據(jù)上述說明對本發(fā)明做出種種變化例。因而,實施例中的某些細節(jié)不應(yīng)構(gòu)成對本發(fā)明的限定,本發(fā)明將以所附權(quán)利要求書界定的范圍作為本發(fā)明的保護范圍。
【主權(quán)項】
1.一種多比例尺矢量海圖數(shù)據(jù)的繪制方法,其特征在于,包括: 將多比例尺的矢量海圖數(shù)據(jù)與顯示屏的顯示范圍取交集以形成多比例尺的矢量海圖數(shù)據(jù)的有效范圍; 將多比例尺中最小比例尺的矢量海圖數(shù)據(jù)的有效范圍與其余比例尺的矢量海圖數(shù)據(jù)的有效范圍取差集以形成最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍; 根據(jù)所形成的最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍進行畫圖處理以形成底圖數(shù)據(jù),根據(jù)其余比例尺的矢量海圖數(shù)據(jù)的有效范圍進行畫圖處理以形成頂圖數(shù)據(jù);以及將底圖數(shù)據(jù)和頂圖數(shù)據(jù)合成顯示圖像并予以顯示。2.如權(quán)利要求1所述的多比例尺矢量海圖數(shù)據(jù)的繪制方法,其特征在于,根據(jù)所形成的最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍進行畫圖處理包括: 讀取最小比例尺的矢量海圖數(shù)據(jù)中的第一個物標; 判斷所讀取的物標是否在最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍內(nèi),若在繪制范圍內(nèi)則將所讀取的物標描畫于第一內(nèi)存圖片中; 判斷所讀取的物標是否為最小比例尺的矢量海圖數(shù)據(jù)中最后一個物標,若否則讀取下一個物標并重復(fù)進行上述的判斷,若是則將描畫形成的第一內(nèi)存圖片作為底圖數(shù)據(jù)。3.如權(quán)利要求1或2所述的多比例尺矢量海圖數(shù)據(jù)的繪制方法,其特征在于,根據(jù)其余比例尺的矢量海圖數(shù)據(jù)的有效范圍進行畫圖處理,包括: 讀取其余比例尺的矢量海圖數(shù)據(jù)中的第一個矢量圖; 讀取矢量圖中的第一個物標; 判斷所讀取的物標是否在所述矢量圖的有效范圍內(nèi),若在有效范圍內(nèi)則將所取得的物標描畫于第二內(nèi)存圖片中; 判斷所讀取的物標是否為所述矢量圖中最后一個物標,所否則讀取下一個物標并重復(fù)進行上述的判斷,若是則判斷所述矢量圖是否為其余比例尺的矢量海圖數(shù)據(jù)中的最后一個矢量圖,若否則繼續(xù)讀取下一個矢量圖并重復(fù)進行上述的讀取物標,若是則將描畫形成的第二內(nèi)存圖片作為頂圖數(shù)據(jù)。4.如權(quán)利要求1所述的多比例尺矢量海圖數(shù)據(jù)的繪制方法,其特征在于,進行畫圖處理時,為最小比例尺的矢量海圖數(shù)據(jù)分配空閑內(nèi)核進行處理,為其余比例尺的矢量海圖數(shù)據(jù)分配另一空閑內(nèi)核進行處理。5.如權(quán)利要求1所述的多比例尺矢量海圖數(shù)據(jù)的繪制方法,其特征在于,將底圖數(shù)據(jù)和頂圖數(shù)據(jù)合成顯示圖像,包括: 將頂圖數(shù)據(jù)覆于底圖數(shù)據(jù)之上合成為顯示圖像; 將所述頂圖數(shù)據(jù)和所述底圖數(shù)據(jù)刪除。6.一種多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng),其特征在于,包括: 確定繪圖范圍單元,用于對多比例尺的矢量海圖數(shù)據(jù)確定有效范圍,通過將多比例尺的矢量海圖數(shù)據(jù)與顯示屏的顯示范圍取交集形成多比例尺矢量海圖數(shù)據(jù)的有效范圍,通過將最小比例尺的矢量海圖數(shù)據(jù)的有效范圍與其余比例尺的矢量海圖數(shù)據(jù)的有效范圍取差集形成最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍; 第一畫圖單元,與所述確定繪圖范圍單元連接,用于繪制最小比例尺的矢量海圖數(shù)據(jù),通過所述確定繪圖范圍單元形成的最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍進行畫圖處理形成底圖數(shù)據(jù); 第二畫圖單元,與所述確定繪圖范圍單元連接,用于繪制除最小比例尺外的其余比例尺的矢量海圖數(shù)據(jù),通過所述確定繪圖范圍單元形成的其余比例尺的矢量海圖數(shù)據(jù)的有效范圍進行畫圖處理形成頂圖數(shù)據(jù);以及 合成單元,與所述第一畫圖單元和所述第二畫圖單元連接,用于合成所述第一畫圖單元形成的底圖數(shù)據(jù)和所述第二畫圖單元形成的頂圖數(shù)據(jù),形成顯示圖像并予以顯示。7.如權(quán)利要求6所述的多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng),其特征在于,所述第一畫圖單元包括第一讀取模塊、第一判斷模塊以及第一繪制模塊; 所述第一讀取模塊用于按序讀取最小比例尺的矢量海圖數(shù)據(jù)中的物標; 所述第一判斷模塊與所述第一讀取模塊連接,用于判斷所讀取的物標是否在最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍內(nèi),還用于判斷所讀取的物標是否為最小比例尺的矢量海圖數(shù)據(jù)中最后一個物標; 所述第一繪制模塊與所述第一判斷模塊連接,用于在所述第一判斷模塊判斷得出所讀取的物標在最小比例尺的矢量海圖數(shù)據(jù)的繪制范圍內(nèi)時,將該物標描畫于第一內(nèi)存圖片中,還用于在所述第一判斷模塊判斷得出所讀取的物標為最小比例尺的矢量海圖數(shù)據(jù)中最后一個物標時,將所描畫的第一內(nèi)存圖片作為底圖數(shù)據(jù)并發(fā)送給所述合成單元。8.如權(quán)利要求6或7所述的多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng),其特征在于,所述第二畫圖單元包括第二讀取模塊、第二判斷模塊以及第二繪制模塊; 所述第二讀取模塊用于讀取其余比例尺的矢量海圖數(shù)據(jù)中的矢量圖,還用于讀取所述矢量圖中的物標; 所述第二判斷模塊與所述第二讀取模塊連接,用于判斷所述第二讀取模塊所讀取的物標是否在矢量圖的有效范圍內(nèi),還用于判斷所讀取的物標是否為矢量圖中最后一個物標,還用于判斷所讀取的矢量圖是否為其余比例尺的矢量海圖數(shù)據(jù)中的最后一個矢量圖; 所述第二繪制模塊與所述第二判斷模塊連接,用于在所述第二判斷模塊判斷得出所讀取的物標在矢量圖的有效范圍內(nèi)時,將所讀取的物標描畫于第二內(nèi)存圖片中;還用于在所述第二判斷模塊判斷得出所讀取的物標為矢量圖中最后一個物標和所述所讀取的矢量圖為最后一個矢量圖時,將描畫形成的第二內(nèi)存圖片作為頂圖數(shù)據(jù)并發(fā)送給所述合成單元。9.如權(quán)利要求6所述的多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng),其特征在于,所述第一畫圖單元與一空閑內(nèi)核進行任務(wù)綁定,所述第二畫圖單元與另一空閑內(nèi)核進行任務(wù)綁定。10.如權(quán)利要求6所述的多比例尺矢量海圖數(shù)據(jù)的繪制系統(tǒng),其特征在于,所述合成單元在將頂圖數(shù)據(jù)覆于底圖數(shù)據(jù)之上合成為顯示圖像之后,將所述頂圖數(shù)據(jù)和所述底圖數(shù)據(jù)刪除。
【文檔編號】G06T5/50GK106097413SQ201610389447
【公開日】2016年11月9日
【申請日】2016年6月3日 公開號201610389447.1, CN 106097413 A, CN 106097413A, CN 201610389447, CN-A-106097413, CN106097413 A, CN106097413A, CN201610389447, CN201610389447.1
【發(fā)明人】呂明
【申請人】大連陸??萍脊煞萦邢薰?br>