WebGIS矢量數(shù)據(jù)高效傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)地理信息系統(tǒng)技術(shù),尤其是一種面向網(wǎng)絡(luò)的WebGIS矢量數(shù)據(jù)高效傳輸方法。
【背景技術(shù)】
[0002]矢量數(shù)據(jù)高效傳輸是網(wǎng)絡(luò)地理信息系統(tǒng)(WebGIS)中需要解決的重要問題之一,地理坐標(biāo)點(diǎn)是矢量數(shù)據(jù)的重要組成部分,要提高WebGIS中矢量數(shù)據(jù)的網(wǎng)絡(luò)傳輸效率,必須首先解決地理坐標(biāo)點(diǎn)的高效傳輸問題。將矢量數(shù)據(jù)的地理坐標(biāo)數(shù)值轉(zhuǎn)換為字符串格式,然后使用字符串壓縮算法對字符串進(jìn)行壓縮,可以達(dá)到減小網(wǎng)絡(luò)數(shù)據(jù)傳輸量的目的,但壓縮算法耗時(shí),地理坐標(biāo)點(diǎn)越多,壓縮時(shí)間越長,且客戶端接收數(shù)據(jù)后還需要進(jìn)行數(shù)據(jù)解壓縮,難以滿足對實(shí)時(shí)性要求較高的WebGIS服務(wù)的需求。為了使客戶端能夠快速的解析矢量數(shù)據(jù),目前常用的WebGIS服務(wù)中大多都沒有采用壓縮轉(zhuǎn)換方法,而是將矢量數(shù)據(jù)坐標(biāo)點(diǎn)的數(shù)值直接轉(zhuǎn)換為字符串形式返回給客戶端,傳輸量較大,難以支持面向大規(guī)模矢量數(shù)據(jù)的WebGIS 服務(wù)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問題在于針對現(xiàn)有技術(shù)中的缺陷,提供一種WebGIS矢量數(shù)據(jù)高效傳輸方法,將矢量數(shù)據(jù)坐標(biāo)點(diǎn)的數(shù)值直接轉(zhuǎn)換為在計(jì)算機(jī)內(nèi)存中存儲的原始二進(jìn)制的字節(jié)數(shù)組,在不增加服務(wù)端和客戶端額外的計(jì)算開銷下,實(shí)現(xiàn)矢量數(shù)據(jù)的快速壓縮,減小矢量數(shù)據(jù)坐標(biāo)點(diǎn)在網(wǎng)絡(luò)中的傳輸大小。
[0004]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種WebGIS矢量數(shù)據(jù)高效傳輸方法,其包括以下步驟:
步驟I)根據(jù)客戶端傳遞的檢索條件在服務(wù)器端檢索矢量數(shù)據(jù);
步驟2)提取檢索到的矢量數(shù)據(jù)的地理坐標(biāo)點(diǎn);
步驟3)根據(jù)矢量數(shù)據(jù)地理坐標(biāo)點(diǎn)的數(shù)值類型判斷坐標(biāo)值在計(jì)算機(jī)內(nèi)存中的二進(jìn)制位寬b,獲取每個(gè)坐標(biāo)值在計(jì)算機(jī)內(nèi)存中的二進(jìn)制數(shù)據(jù),根據(jù)坐標(biāo)值二進(jìn)制位寬計(jì)算坐標(biāo)值字節(jié)長度B=b/8,依次獲取每個(gè)坐標(biāo)值的各個(gè)字節(jié),將每個(gè)坐標(biāo)點(diǎn)快速壓縮為B個(gè)字節(jié),將矢量數(shù)據(jù)的各個(gè)地理坐標(biāo)點(diǎn)的數(shù)值快速轉(zhuǎn)換為二進(jìn)制字節(jié)數(shù)組;
這里需要說明的是:因?yàn)楦鱾€(gè)數(shù)值類型在計(jì)算機(jī)內(nèi)存中占用的位寬都是固定的,所以數(shù)據(jù)壓縮轉(zhuǎn)換過程中不需要考慮不足位的處理;
步驟4)將地理坐標(biāo)點(diǎn)以二進(jìn)制字節(jié)流的形式發(fā)送給客戶端;
步驟5)客戶端接收地理坐標(biāo)點(diǎn)的二進(jìn)制字節(jié)流數(shù)據(jù);
步驟6)將各個(gè)地理坐標(biāo)點(diǎn)的二進(jìn)制字節(jié)數(shù)組快速轉(zhuǎn)換為數(shù)值類型,提供給WebGIS客戶端使用。
[0005]按上述方案,所述步驟3)中還包括將轉(zhuǎn)換后的二進(jìn)制的每個(gè)坐標(biāo)點(diǎn)數(shù)值壓縮為長度固定的字節(jié)數(shù)組的步驟。
[0006]本發(fā)明產(chǎn)生的有益效果是:本發(fā)明的有益效果是能夠快速的對矢量數(shù)據(jù)進(jìn)行壓縮,減小矢量數(shù)據(jù)網(wǎng)絡(luò)傳輸數(shù)據(jù)量,提高矢量數(shù)據(jù)網(wǎng)絡(luò)傳輸效率,同時(shí)能夠保證WebGIS客戶端能夠?qū)κ噶繑?shù)據(jù)地理坐標(biāo)點(diǎn)進(jìn)行快速的解析,為WebGIS大規(guī)模用戶的并發(fā)訪問提供技術(shù)支持。
[0007]
【附圖說明】
[0008]下面將結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步說明,附圖中:
圖1是本發(fā)明的方法流程圖;
圖2是是本發(fā)明以一個(gè)點(diǎn)要素查詢功能為實(shí)施例的方法流程圖。
【具體實(shí)施方式】
[0009]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0010]如圖1所示,圖1是本發(fā)明提供的WebGIS矢量數(shù)據(jù)高效傳輸方法流程圖,所述方法包括以下步驟:
在步驟I)中,WebGIS服務(wù)器端根據(jù)客戶端傳遞的矢量數(shù)據(jù)檢索條件從矢量數(shù)據(jù)中檢索客戶端請求的矢量數(shù)據(jù);
在步驟2)中,服務(wù)器端提取檢索到的矢量數(shù)據(jù)的地理坐標(biāo)點(diǎn),得到每個(gè)坐標(biāo)點(diǎn)的數(shù)值;
在步驟3)中,服務(wù)器端獲取矢量數(shù)據(jù)地理坐標(biāo)點(diǎn)的數(shù)值類型,根據(jù)數(shù)值類型判斷坐標(biāo)點(diǎn)數(shù)值在計(jì)算機(jī)內(nèi)存中占用的字節(jié)長度(如:浮點(diǎn)型字節(jié)長度為4,32位整型字節(jié)長度為4,64位整型字節(jié)長度為8),將各個(gè)地理坐標(biāo)點(diǎn)的數(shù)值直接快速轉(zhuǎn)換為在計(jì)算機(jī)內(nèi)存中存儲的二進(jìn)制形式,將每個(gè)坐標(biāo)點(diǎn)數(shù)值快速壓縮為長度固定的字節(jié)數(shù)組;
這里需要說明的是:不同的數(shù)值類型在計(jì)算機(jī)內(nèi)存中占用字節(jié)長度不同,但其壓縮轉(zhuǎn)換方法是相同的,只是不同數(shù)值類型的坐標(biāo)值壓縮后得到的字節(jié)數(shù)組的長度不同而已。
[0011]在步驟4)中,服務(wù)器端將所有地理坐標(biāo)點(diǎn)以二進(jìn)制字節(jié)流的形式發(fā)送給客戶端; 在步驟5)中,客戶端接收請求的矢量數(shù)據(jù)的地理坐標(biāo)點(diǎn)的二進(jìn)制字節(jié)數(shù)組數(shù)據(jù); 在步驟6)中,客戶端將各個(gè)地理坐標(biāo)點(diǎn)的二進(jìn)制字節(jié)數(shù)組裝載到計(jì)算機(jī)內(nèi)存中,然后快速地將其直接轉(zhuǎn)換為數(shù)值類型,得到原始的地理坐標(biāo)數(shù)值,提供給WebGIS客戶端使用,過程結(jié)束。
[0012]本發(fā)明最明顯的不同在于利用了數(shù)值類型數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲特點(diǎn),直接獲得矢量數(shù)據(jù)地理坐標(biāo)點(diǎn)數(shù)值在內(nèi)存中的字節(jié)數(shù)組,然后將其發(fā)送給客戶端,既實(shí)現(xiàn)了矢量數(shù)據(jù)的快速壓縮,又保證了客戶端能夠快速地進(jìn)行數(shù)據(jù)解析。
[0013]實(shí)施例一:
為了更清晰的說明本發(fā)明的思想,下面結(jié)合附圖2以客戶端請求一個(gè)點(diǎn)圖層中的一個(gè)點(diǎn)要素(x,y)的地理坐標(biāo)為實(shí)施例進(jìn)行進(jìn)一步的說明,其中χ=114.364757588563,y=30.8765486547617。設(shè)點(diǎn)圖層中矢量數(shù)據(jù)地理坐標(biāo)的數(shù)值類型采用浮點(diǎn)型(一個(gè)浮點(diǎn)型數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中占用4個(gè)字節(jié))。某個(gè)點(diǎn)要素的地理坐標(biāo)高效傳輸方法的具體步驟如下:
步驟201)、服務(wù)器端根據(jù)客戶端的請求參數(shù)從點(diǎn)圖層中檢索客戶端請求的目標(biāo)點(diǎn)要素;
步驟202)、服務(wù)器端從點(diǎn)圖層中提取目標(biāo)點(diǎn)要素的地理坐標(biāo)(X,y)數(shù)值;
步驟203)、服務(wù)器端將轉(zhuǎn)換為計(jì)算機(jī)內(nèi)存中的二進(jìn)制存儲形式并壓縮,分別獲得X的4個(gè)字節(jié)數(shù)組和y的4個(gè)字節(jié)數(shù)組;
步驟204)、服務(wù)器端將X和y的4個(gè)字節(jié)拼接為8個(gè)字節(jié)數(shù)組,并將其以二進(jìn)制字節(jié)流的形式返回給客戶端;
步驟205)、客戶端接收8個(gè)字節(jié)組成的目標(biāo)點(diǎn)要素的地理坐標(biāo)數(shù)據(jù);
步驟206)、客戶端解析字節(jié)數(shù)組,將第O至第3個(gè)字節(jié)加載到計(jì)算機(jī)內(nèi)存,直接將其轉(zhuǎn)換為浮點(diǎn)型數(shù)值,獲得X的原始數(shù)值;將第4至第7個(gè)字節(jié)加載到計(jì)算機(jī)內(nèi)存,直接將其轉(zhuǎn)換為浮點(diǎn)型數(shù)值,獲得y的原始數(shù)值。至此完成了目標(biāo)點(diǎn)要素從服務(wù)端到客戶端的整個(gè)傳輸過程。
[0014]如果用目前WebGIS服務(wù)中將坐標(biāo)值轉(zhuǎn)換為字符串形式在網(wǎng)絡(luò)中傳輸,例如轉(zhuǎn)換為“114.364757588563,30.8765486547617”,則每個(gè)坐標(biāo)值需要占用16個(gè)字節(jié),再加上每個(gè)坐標(biāo)值的數(shù)字位數(shù)可能不同,必須在X和y之間添加分隔符以區(qū)分,總共至少需要傳輸33個(gè)字節(jié)。而該實(shí)施例中本發(fā)明將X和I分別壓縮到4個(gè)字節(jié),因?yàn)槠渥止?jié)長度相同,中間不需要添加分隔符,客戶端可直接按4個(gè)字節(jié)長度依次解析,因此總共只需要8個(gè)字節(jié),與現(xiàn)在方法相比,數(shù)據(jù)壓縮比約為4倍。一方面實(shí)現(xiàn)了地理坐標(biāo)數(shù)據(jù)的快速壓縮,提高傳輸效率,另一方面客戶端能夠進(jìn)行快速的解析,不需要使用專用的字符串壓縮算法,避免了壓縮和解壓縮耗時(shí)問題。
[0015]應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種WebGIS矢量數(shù)據(jù)高效傳輸方法,其特征在于,一種WebGIS矢量數(shù)據(jù)高效傳輸方法,其包括以下步驟: 步驟I)根據(jù)客戶端傳遞的檢索條件在服務(wù)器端檢索矢量數(shù)據(jù); 步驟2)提取檢索到的矢量數(shù)據(jù)的地理坐標(biāo)點(diǎn); 步驟3)將矢量數(shù)據(jù)的各個(gè)地理坐標(biāo)點(diǎn)的數(shù)值快速轉(zhuǎn)換為二進(jìn)制字節(jié)數(shù)組形式; 步驟4)將地理坐標(biāo)點(diǎn)以二進(jìn)制字節(jié)流的形式發(fā)送給客戶端; 步驟5)客戶端接收地理坐標(biāo)點(diǎn)的二進(jìn)制字節(jié)流數(shù)據(jù); 步驟6)將各個(gè)地理坐標(biāo)點(diǎn)的二進(jìn)制字節(jié)數(shù)組快速轉(zhuǎn)換為數(shù)值類型,提供給WebGIS客戶端使用。2.根據(jù)權(quán)利要求1所述的傳輸方法,其特征在于,所述步驟3)中還包括將轉(zhuǎn)換后的二進(jìn)制的每個(gè)坐標(biāo)點(diǎn)數(shù)值壓縮為長度固定的字節(jié)數(shù)組的步驟。3.根據(jù)權(quán)利要求1所述的傳輸方法,其特征在于,所述步驟3)中將矢量數(shù)據(jù)的各個(gè)地理坐標(biāo)點(diǎn)的數(shù)值快速轉(zhuǎn)換為二進(jìn)制字節(jié)數(shù)組形式的具體步驟如下: 根據(jù)矢量數(shù)據(jù)地理坐標(biāo)點(diǎn)的數(shù)值類型判斷坐標(biāo)值在計(jì)算機(jī)內(nèi)存中的二進(jìn)制位寬b,獲取每個(gè)坐標(biāo)值在計(jì)算機(jī)內(nèi)存中的二進(jìn)制數(shù)據(jù);根據(jù)坐標(biāo)值二進(jìn)制位寬計(jì)算坐標(biāo)值字節(jié)長度B=b/8,依次獲取每個(gè)坐標(biāo)值的各個(gè)字節(jié),將每個(gè)坐標(biāo)點(diǎn)快速壓縮為B個(gè)字節(jié),將矢量數(shù)據(jù)的各個(gè)地理坐標(biāo)點(diǎn)的數(shù)值快速轉(zhuǎn)換為二進(jìn)制字節(jié)數(shù)組形式。
【專利摘要】本發(fā)明公開了一種WebGIS矢量數(shù)據(jù)高效傳輸方法,其包括以下步驟:步驟1)服務(wù)器端根據(jù)客戶端傳遞的檢索條件檢索矢量數(shù)據(jù);步驟2)提取矢量數(shù)據(jù)的地理坐標(biāo)點(diǎn);步驟3)將矢量數(shù)據(jù)的所有地理坐標(biāo)數(shù)值快速轉(zhuǎn)換為二進(jìn)制形式;步驟4)將轉(zhuǎn)換后的所有地理坐標(biāo)值的二進(jìn)制數(shù)據(jù)發(fā)送給客戶端;步驟5)客戶端接收二進(jìn)制格式的地理坐標(biāo)值數(shù)據(jù);步驟6)將地理坐標(biāo)從二進(jìn)制形式快速轉(zhuǎn)換為數(shù)值類型,提供給WebGIS客戶端使用。本發(fā)明能夠快速的將矢量數(shù)據(jù)的地理坐標(biāo)值進(jìn)行壓縮,減小WebGIS中矢量數(shù)據(jù)地理坐標(biāo)在網(wǎng)絡(luò)中的傳輸大小,提高數(shù)據(jù)傳輸效率,為大規(guī)模用戶的并發(fā)訪問提供支持。
【IPC分類】G06F17/30
【公開號】CN104899311
【申請?zhí)枴緾N201510328632
【發(fā)明人】郭明強(qiáng), 謝忠, 吳亮, 羅顯剛, 黃穎
【申請人】中國地質(zhì)大學(xué)(武漢)
【公開日】2015年9月9日
【申請日】2015年6月15日