基于大圖切割的矢量數(shù)據(jù)瓦片裁圖加速方法
【技術領域】
[0001]本發(fā)明涉及網(wǎng)絡地理信息系統(tǒng)技術,尤其涉及一種基于大圖切割的矢量數(shù)據(jù)瓦片裁圖加速方法。
【背景技術】
[0002]對矢量數(shù)據(jù)進行裁圖并以瓦片地圖的形式進行發(fā)布是目前廣泛采用的矢量地圖網(wǎng)絡發(fā)布方法。瓦片裁圖過程非常耗時,瓦片級數(shù)越大,耗時越長。為了提高瓦片裁圖效率,目前主要有多進程并行裁圖和集群環(huán)境下并行裁圖兩類優(yōu)化方案,這兩類方案的共同點都是將瓦片裁圖任務分配給多個裁圖工作單元并行執(zhí)行,以縮短總體裁圖時間,但對于大規(guī)模矢量數(shù)據(jù),每個裁圖工作單元的效率仍然很低。通過提升裁圖服務器的硬件配置或增加集群中裁圖工作結(jié)點數(shù)目可以提高裁圖的效率,但是資源利用率低、硬件成本高。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術問題在于針對現(xiàn)有技術中的缺陷,提供一種基于大圖切割的矢量數(shù)據(jù)瓦片裁圖加速方法,該方法能夠減少瓦片裁圖過程中矢量數(shù)據(jù)的檢索次數(shù),有效地提高瓦片裁圖工作單元的裁圖效率,提高資源利用率,降低硬件成本,為大規(guī)模矢量數(shù)據(jù)的實時瓦片裁圖提供支持。
[0004]本發(fā)明解決其技術問題所采用的技術方案是:基于大圖切割的矢量數(shù)據(jù)瓦片裁圖加速方法,包括以下步驟:
[0005]1)打開矢量地圖,獲取矢量地圖操作對象;所述矢量地圖操作對象為map對象;
[0006]2)設置瓦片裁圖參數(shù),所述參數(shù)包括裁圖原點、每個瓦片級別的分辨率、每張瓦片圖像的像素大小和裁圖的空間范圍;
[0007]3)設置大圖像素大小,大圖像素大小是單張瓦片圖像像素大小的21咅,η為自然數(shù);
[0008]4)根據(jù)大圖像素大小計算每個瓦片級別中大圖的行列號區(qū)間;
[0009]5)根據(jù)瓦片級別、大圖的行列號和瓦片裁圖參數(shù)計算大圖對應的矢量數(shù)據(jù)空間范圍;
[0010]6)使用Map對象根據(jù)大圖對應的空間范圍檢索后提取矢量數(shù)據(jù),循環(huán)繪制所有矢量圖形,生成大圖圖像;
[0011]7)使用圖形設備接口將大圖圖像快速切割為多個瓦片圖像,保存到存儲設備中;
[0012]8)循環(huán)生成所有大圖圖像并進行切割,最終完成所有瓦片的裁圖工作。
[0013]本發(fā)明產(chǎn)生的有益效果是:本發(fā)明能夠有效地減少瓦片裁圖過程中檢索矢量數(shù)據(jù)的次數(shù),縮短每個瓦片裁圖工作單元的裁圖時間,實現(xiàn)瓦片裁圖過程的加速。有助于提高集群環(huán)境下裁圖工作結(jié)點的資源利用率、降低硬件成本,為大規(guī)模矢量數(shù)據(jù)的實時裁圖提供技術支持。
【附圖說明】
[0014]下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中:
[0015]圖1是本發(fā)明實施例的方法流程圖;
[0016]圖2是本發(fā)明實施例用于加速經(jīng)典的四叉樹形式組織的第3級瓦片的裁圖過程示意圖。
【具體實施方式】
[0017]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0018]如圖1所示,基于大圖切割的矢量數(shù)據(jù)瓦片裁圖加速方法,以經(jīng)典的四叉樹瓦片裁圖為例,瓦片裁圖原點位于左上角,其包括以下步驟:
[0019]步驟1),調(diào)用GIS平臺組件中提供的矢量地圖操作接口,打開矢量地圖文件,獲得矢量地圖操作對象(Map);
[0020]步驟2),設置瓦片裁圖參數(shù),包括裁圖原點(ox,oy)、每個瓦片級別的分辨率reSl、每張瓦片圖像的像素大小P、裁圖的空間范圍和瓦片數(shù)據(jù)的存儲目錄,將參數(shù)信息保存到內(nèi)存中;
[0021]步驟3),設置大圖像素大小,其是單張瓦片圖像像素大小的2n倍,η為自然數(shù);
[0022]步驟4),根據(jù)步驟3)中設置的大圖像素大小,計算每個瓦片級別i中大圖的行(列)號區(qū)間,最小行(列)號BN_= 0,最大行(列)號BN_計算方法如公式⑴所示;
[0023]BNnax= 2 V2n-1 公式⑴
[0024]步驟5),根據(jù)瓦片級別、大圖的行列號、瓦片裁圖原點和瓦片分辨率計算大圖B(i,r,c)對應的矢量數(shù)據(jù)空間范圍(xmin, x_, ymin, ymax),如公式(2)-(5)所示;
[0025]xmin= ox+c.2 n.p.res;公式(2)
[0026]xmax= ox+(c+l).2 n.p.res;公式(3)
[0027]ymin= oy- (r+1).2 n.p.res;公式(4)
[0028]ymax= oy-r.2 n.p.res;公式(5)
[0029]步驟6),使用步驟1)中獲得的Map對象檢索并提取大圖對應的空間范圍內(nèi)的矢量數(shù)據(jù),并使用圖形設備接口循環(huán)繪制所有矢量圖形,生成大圖圖像;
[0030]步驟7),根據(jù)步驟3)中設置的大圖像素大小和大圖的行列號,計算大圖包括的每個瓦片圖像的真實行列號,使用圖形設備接口將大圖圖像快速切割為2η.2η個瓦片圖像,保存到存儲設備中,從而達到加速瓦片裁圖過程的目的;
[0031]步驟8)重復步驟4)至步驟7),循環(huán)生成每個瓦片級別中的所有大圖圖像并進行切割,當所有瓦片圖像都生成并保存到存儲設備中時,裁圖過程結(jié)束。
[0032]本發(fā)明與現(xiàn)有方法最明顯的不同在于采用了先生成大圖,再將其快速切割為多個瓦片的裁圖方法,以成倍的減少對矢量數(shù)據(jù)的檢索次數(shù),達到加速瓦片裁圖效率的目的。
[0033]如圖2所示,以經(jīng)典的四叉樹形式組織的第3級瓦片的裁圖過程為例進行說明,瓦片總數(shù)為23*23= 64張,瓦片像素大小設置為256,大圖像素大小設置為256*2 2= 1024,基于大圖切割實現(xiàn)瓦片裁圖加速的具體步驟如下:
[0034]步驟200)、先計算第3級瓦片大圖行列號區(qū)間,大圖行數(shù)(列數(shù))=23*256/1024=2,大圖的最大行(列)號BN_= 2 3/22-1 = 1,大圖的行號(列號)的區(qū)間為[0,1],根據(jù)公式(2)-(5)計算第0個大圖B(0,0)的空間范圍;
[0035]步驟201)、使用地圖操作對象從空間數(shù)據(jù)庫中檢索大圖空間范圍內(nèi)的矢量數(shù)據(jù);
[0036]步驟202)、從空間數(shù)據(jù)庫中提取分布在大圖空間范圍內(nèi)的矢量數(shù)據(jù);
[0037]步驟203)、使用圖形設備接口循環(huán)繪制提取到的所有矢量數(shù)據(jù)到大圖圖像中;
[0038]步驟204)、生成與大圖空間范圍相一致的大圖圖像文件;
[0039]步驟205)、使用圖形設備接口將大圖圖像快速切割為22.22= 16張瓦片圖像;
[0040]步驟206)、將16張瓦片圖像存儲到硬盤或其它存儲設備中;
[0041]按以上步驟依次完成大圖B(0,1)、B(1,0)、B(l,1)的裁圖工作,最終完成第三級瓦片的整個裁圖工作,在該實施例中使用大圖切割技術,將矢量數(shù)據(jù)的檢索次數(shù)從64次縮減到了 4次,有效地實現(xiàn)了瓦片裁圖過程的加速。
[0042]應當理解的是,對本領域普通技術人員來說,可以根據(jù)上述說明加以改進或變換,而所有這些改進和變換都應屬于本發(fā)明所附權利要求的保護范圍。
【主權項】
1.一種基于大圖切割的矢量數(shù)據(jù)瓦片裁圖加速方法,其特征在于,包括以下步驟: 1)打開矢量地圖,獲取矢量地圖操作對象;所述矢量地圖操作對象為map對象; 2)設置瓦片裁圖參數(shù),所述參數(shù)包括裁圖原點、每個瓦片級別的分辨率、每張瓦片圖像的像素大小和裁圖的空間范圍; 3)設置大圖像素大小,大圖像素大小是單張瓦片圖像像素大小的2n倍,η為自然數(shù); 4)根據(jù)大圖像素大小計算每個瓦片級別中大圖的行列號區(qū)間; 5)根據(jù)瓦片級別、大圖的行列號和瓦片裁圖參數(shù)計算大圖對應的矢量數(shù)據(jù)空間范圍; 6)使用Map對象根據(jù)大圖對應的空間范圍檢索后提取矢量數(shù)據(jù),循環(huán)繪制所有矢量圖形,生成大圖圖像; 7)使用圖形設備接口將大圖圖像快速切割為多個瓦片圖像,保存到存儲設備中; 8)循環(huán)生成所有大圖圖像并進行切割,最終完成所有瓦片的裁圖工作。
【專利摘要】本發(fā)明公開了一種基于大圖切割的矢量數(shù)據(jù)瓦片裁圖加速方法,其包括以下步驟:步驟1)打開矢量地圖,獲取矢量地圖操作對象;步驟2)設置瓦片裁圖參數(shù);步驟3)設置大圖像素大小;步驟4)計算每個瓦片級別中大圖的行列號區(qū)間;步驟5)計算大圖對應的矢量數(shù)據(jù)空間范圍;步驟6)根據(jù)大圖對應的空間范圍檢索、提取矢量數(shù)據(jù),并繪制生成大圖圖像;步驟7)將大圖圖像快速切割為多個瓦片圖像,保存到存儲設備中;步驟8)循環(huán)生成所有大圖圖像并進行切割,最終完成所有瓦片的裁圖工作。本發(fā)明能夠減少瓦片裁圖過程中矢量數(shù)據(jù)的檢索次數(shù),有效地加速瓦片裁圖過程,為大規(guī)模矢量數(shù)據(jù)的實時瓦片裁圖提供支持。
【IPC分類】G06F17/30
【公開號】CN105354206
【申請?zhí)枴緾N201510328502
【發(fā)明人】郭明強, 謝忠, 吳亮, 羅顯剛, 黃穎
【申請人】中國地質(zhì)大學(武漢)
【公開日】2016年2月24日
【申請日】2015年6月15日