亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種顧及空間鄰近性的矢量空間數(shù)據(jù)編碼方法與流程

文檔序號(hào):11155173閱讀:680來(lái)源:國(guó)知局
一種顧及空間鄰近性的矢量空間數(shù)據(jù)編碼方法與制造工藝

本申請(qǐng)涉及地理領(lǐng)域,尤其涉及一種顧及空間鄰近性的矢量空間數(shù)據(jù)編碼方法。



背景技術(shù):

隨著大數(shù)據(jù)時(shí)代的到來(lái),數(shù)據(jù)不僅具有數(shù)據(jù)量大、實(shí)時(shí)性要求高、價(jià)值大等特點(diǎn),還具有復(fù)雜的空間位置關(guān)系,同時(shí)與空間位置相關(guān)的服務(wù)需求越來(lái)越大,如LBS(基于位置的服務(wù))、GPS(全球定位系統(tǒng))導(dǎo)航等相關(guān)服務(wù)。此外,由于柵格空間數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單,易于組織,云環(huán)境下的柵格空間數(shù)據(jù)存儲(chǔ)管理研究已有較好的成果,而矢量空間數(shù)據(jù)本身具有結(jié)構(gòu)復(fù)雜、關(guān)系復(fù)雜等特點(diǎn),云環(huán)境下,對(duì)于矢量空間大數(shù)據(jù)的研究還比較欠缺,因此如何對(duì)矢量空間大數(shù)據(jù)進(jìn)行存儲(chǔ)管理是當(dāng)前云環(huán)境下GIS(地理信息系統(tǒng))研究的熱點(diǎn)。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)在數(shù)據(jù)I/O(輸入/輸出)、擴(kuò)展性、容錯(cuò)性以及存取性能方面表現(xiàn)出極大的局限性,已經(jīng)不能適用于當(dāng)前矢量空間大數(shù)據(jù)的存儲(chǔ)、分析及處理要求。當(dāng)前NoSQL(非關(guān)系型數(shù)據(jù)庫(kù))已經(jīng)成為大數(shù)據(jù)存儲(chǔ)與管理的重要解決方案,其弱關(guān)系性以及稀松存儲(chǔ)等特點(diǎn),使得NoSQL具有更好的并行讀寫(xiě)性能。

作為NoSQL的代表——HBase(開(kāi)源數(shù)據(jù)庫(kù))不僅具有NoSQL的優(yōu)勢(shì),而且還具有高可靠性、容錯(cuò)性等特點(diǎn)。此外,HBase通過(guò)采用“列族”的方式將經(jīng)常需要一起訪問(wèn)的數(shù)據(jù)存儲(chǔ)在一起以提高數(shù)據(jù)的查詢(xún)分析效率。然而,當(dāng)前研究主要集中于對(duì)屬性以及幾何信息的存儲(chǔ),在對(duì)矢量空間數(shù)據(jù)的存儲(chǔ)方面, 對(duì)空間對(duì)象的空間鄰近性考慮不夠,使得空間上相距很遠(yuǎn)的對(duì)象有可能會(huì)被存儲(chǔ)到相同的節(jié)點(diǎn)上,或者相距很近的對(duì)象被存儲(chǔ)到不同的節(jié)點(diǎn)上,目標(biāo)對(duì)象將從多個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行訪問(wèn)和獲取,極大地影響了數(shù)據(jù)存取及查詢(xún)效率。

另一方面,在HBase數(shù)據(jù)庫(kù)中,數(shù)據(jù)按照Rowkey(行標(biāo)識(shí)符)的字典順序進(jìn)行存儲(chǔ),并提供了2種訪問(wèn)數(shù)據(jù)的方式:根據(jù)單個(gè)Rowkey值,調(diào)用Get(獲取)對(duì)象實(shí)現(xiàn)查詢(xún);根據(jù)Rowkey起始范圍,調(diào)用Scan(掃描)對(duì)象實(shí)現(xiàn)查詢(xún)。總結(jié)來(lái)看,在HBase中對(duì)數(shù)據(jù)的檢索訪問(wèn)必須通過(guò)Rowkey進(jìn)行,其中Rowkey(行標(biāo)識(shí)符)是列數(shù)據(jù)庫(kù)下空間對(duì)象的唯一標(biāo)識(shí)。在列數(shù)據(jù)庫(kù)中,所有的數(shù)據(jù)都按照Rowkey的字典順序進(jìn)行組織存儲(chǔ)。列數(shù)據(jù)庫(kù)查詢(xún)只能依靠Rowkey,然而在Rowkey編碼方面,傳統(tǒng)的Rowkey編碼只是一個(gè)唯一的ID順序或者是時(shí)間戳,沒(méi)有任何空間信息,不具備空間索引的能力,并且所有的空間對(duì)象將會(huì)根據(jù)序列的順序分開(kāi)存儲(chǔ)到多個(gè)存儲(chǔ)節(jié)點(diǎn)上,進(jìn)而在處理數(shù)據(jù)時(shí)會(huì)降低空間查詢(xún)性能,增加數(shù)據(jù)庫(kù)維護(hù)代價(jià)。



技術(shù)實(shí)現(xiàn)要素:

為了解決空間查詢(xún)性能低下的問(wèn)題,本發(fā)明了提供了一種顧及空間鄰近性的矢量空間數(shù)據(jù)編碼方法,以適應(yīng)列數(shù)據(jù)庫(kù)下矢量空間數(shù)據(jù)均衡存儲(chǔ),進(jìn)而優(yōu)化矢量空間數(shù)據(jù)存儲(chǔ),并提高查詢(xún)性能。

本發(fā)明提供了一種顧及空間鄰近性的矢量空間數(shù)據(jù)編碼方法,所述方法包括:

判斷給定的空間對(duì)象P是否為點(diǎn)對(duì)象;

若所述空間對(duì)象P不是點(diǎn)對(duì)象,計(jì)算能夠完全包含所述空間對(duì)象P的最小外包超矩的網(wǎng)格所在最大階數(shù)k;

計(jì)算0階到k階的k+1個(gè)ZG(P)j*,ZG(P)j*表示所述空間對(duì)象P在第j*階層上的編碼值,j*∈【0,k】,0≤k≤m,m為初始最大階數(shù),在【0,m】階下的所有網(wǎng)格中,第k階下的網(wǎng)格是能夠完全包含所述空間對(duì)象P的的最小網(wǎng)格;即該網(wǎng)格是能夠完全包含所述空間對(duì)象P的所有網(wǎng)格中的最小網(wǎng)格。

對(duì)k+1個(gè)ZG(P)j*按照空間填充曲線的編碼規(guī)則進(jìn)行編碼,獲得Geocode(f.geometry)*;其中,Geocode(f.geometry)*表示所述空間對(duì)象P基于空間填充曲線所形成的分層設(shè)計(jì)的編碼值;

根據(jù)公式Rowkey(f)*=Geocode(f.geometry)*+FID(f)*進(jìn)行編碼;

其中,Rowkey(f)*為所述空間對(duì)象P的行標(biāo)識(shí)符Rowkey編碼值,F(xiàn)ID(f)*為數(shù)據(jù)庫(kù)中唯一的順序標(biāo)識(shí)ID。

優(yōu)選的,所述若所述空間對(duì)象P不是點(diǎn)對(duì)象,計(jì)算能夠完全包含所述空間對(duì)象P的最小外包超矩形的網(wǎng)格所在最大階數(shù)k,包括:

若所述空間對(duì)象P為非點(diǎn)對(duì)象,從第0階到第m階中,通過(guò)公式找到能夠包含或者等于所述空間對(duì)象P的最小外包超矩形Mingrid(P)的最大階數(shù)k,所述公式為:

f(k)=Max{k|0≤k≤m,SZGrud(k)≤SMingrid,TZGrid(k)≥TMingrid};

其中,f(k)表示取出滿足條件的最大k值;SZGrid(k)表示在第k階下網(wǎng)格的左下點(diǎn)坐標(biāo)值;SMingrid表示所述空間對(duì)象P的最大外包超矩形左下點(diǎn)坐標(biāo)值;TZGrid(k)表示在第K階下網(wǎng)格的右上點(diǎn)坐標(biāo)值;TMingrid表示所述空間對(duì)象P的最大外包超矩形右上點(diǎn)坐標(biāo)值。

優(yōu)選的,所述計(jì)算0階到k階的k+1個(gè)ZG(P)j*,包括:

ZG(P)j*=(zg1*,...zgi*...,zgd*);

其中,zg1*表示所述空間對(duì)象P在第1維上經(jīng)過(guò)j*階劃分后的的二進(jìn)制 字符串;

zgd*表示所述空間對(duì)象P在第d*維上經(jīng)過(guò)j*階劃分后的的二進(jìn)制字符串,d*表示維度值;

其中,zgi*=pi*/((Ui*-Li*)/2k),1<i*<d*,其中,zgi*表示所述空間對(duì)象P在每一維度上經(jīng)過(guò)j*階劃分后的二進(jìn)制字符串;pi*表示所述空間對(duì)象P在維度i*上的具體坐標(biāo)值,Ui*表示第i*維度坐標(biāo)上的最大值,Li*表示第i*維度坐標(biāo)上的最小值,j*表示所述空間對(duì)象P當(dāng)前所處的階數(shù)。

優(yōu)選的,所述對(duì)k+1個(gè)ZG(P)j*按照空間填充曲線的編碼規(guī)則進(jìn)行編碼,獲得Geocode(f.geometry)*,包括:

Geocode(f.geometry)*=ZG(P)0*+ZG(P)1*+ZG(P)2*+...+ZG(P)k*;

其中,ZG(P)0*,ZG(P)1*,ZG(P)2*,...,ZG(P)k*是所述空間對(duì)象P在對(duì)應(yīng)的每一階下的空間填充曲線編碼值,公式中的“+”表示將每個(gè)編碼值拼接起來(lái)。

優(yōu)選的,所述判斷給定的空間對(duì)象P是否為點(diǎn)對(duì)象之后,包括:

若所述空間對(duì)象P是點(diǎn)對(duì)象,計(jì)算從0階到m階的m+1個(gè)ZG(P)j,j∈【0,m】,ZG(P)j是所述空間對(duì)象P在第j階下的空間填充曲線編碼值;

對(duì)m+1個(gè)ZG(P)j按照空間填充曲線的編碼規(guī)則進(jìn)行分層編碼,獲得Geocode(f.geometry);Geocode(f.geometry)表示所述空間對(duì)象P基于空間填充曲線所形成的分層設(shè)計(jì)的編碼值;

根據(jù)公式Rowkey(f)=Geocode(f.geometry)+FID(f)進(jìn)行編碼,其中,Rowkey(f)為所述空間對(duì)象P的Rowkey編碼值,F(xiàn)ID(f)為數(shù)據(jù)庫(kù)中唯一的順序ID。

優(yōu)選的,所述若所述空間對(duì)象P是點(diǎn)對(duì)象,計(jì)算從0階到m階的m+1個(gè)ZG(P)j,包括:

ZG(P)j=(zg1,...zgi...,zgd);

其中,zg1表示所述空間對(duì)象P在第1維上經(jīng)過(guò)j階劃分后的的二進(jìn)制字符串;

zgd表示空間對(duì)象P在第d個(gè)維度上經(jīng)過(guò)j階劃分后的二進(jìn)制字符串,d表示所述空間對(duì)象P所處的維度;

其中,zgi=pi/((Ui-Li)/2m),1<i<d,其中,zgi表示所述空間對(duì)象P在第i維度上經(jīng)過(guò)j階劃分后的二進(jìn)制字符串;pi表示所述空間對(duì)象P在維度i上的具體坐標(biāo)值,Ui表示第i個(gè)維度坐標(biāo)上的最大值,Li表示第i個(gè)維度坐標(biāo)上的最小值,j表示所述空間對(duì)象P當(dāng)前所處的階數(shù)。

優(yōu)選的,所述對(duì)m+1個(gè)ZG(P)j按照空間填充曲線的編碼規(guī)則進(jìn)行分層編碼,獲得Geocode(f.geometry),包括:

Geocode(f.geometry)=ZG(P)0+ZG(P)1+ZG(P)2+...+ZG(P)m;

其中,ZG(P)0,ZG(P)1,ZG(P)2,...,ZG(P)m是所述空間對(duì)象P在對(duì)應(yīng)的每一階下的空間填充曲線編碼值,公式符號(hào)“+”表示將每個(gè)編碼值拼接起來(lái)。

通過(guò)本發(fā)明的一個(gè)或者多個(gè)技術(shù)方案,本發(fā)明具有以下有益效果或者優(yōu)點(diǎn):

本發(fā)明公開(kāi)了一種顧及空間鄰近性的矢量空間數(shù)據(jù)編碼方法,通過(guò)判斷給定對(duì)象P是否為點(diǎn)對(duì)象;若所述空間對(duì)象P為非點(diǎn)對(duì)象,先計(jì)獲得能夠完全包含最小外包超矩的網(wǎng)格所在最大階數(shù)k,再計(jì)算從0階到k階的k+1個(gè)ZG(P)j*;ZG(P)j*表示所述空間對(duì)象P在第j*階層上的編碼值;再對(duì)k+1個(gè)ZG(P)j按照空間填充曲線的編碼規(guī)則進(jìn)行編碼,獲得Geocode(f.geometry)*;再根據(jù)公式Rowkey(f)*=Geocode(f.geometry)*+FID(f)*進(jìn)行編碼,通過(guò)基于空間填充曲線的分層編碼,使得在同一空間劃分中,不同的空間對(duì)象具有相同的前綴編碼, 再加上唯一的順序ID值作為后綴編碼,不僅顧及矢量空間對(duì)象的空間鄰近性,而且避免Rowkey的重復(fù),克服Rowkey僅能通過(guò)唯一的順序ID進(jìn)行編碼的缺點(diǎn),進(jìn)而使得空間上鄰近的數(shù)據(jù)可以被集中存儲(chǔ),考慮了矢量空間對(duì)象的空間鄰近性,Rowkey具備空間索引的基本特征,使在數(shù)據(jù)庫(kù)中直接進(jìn)行空間查詢(xún)成為可能。

附圖說(shuō)明

圖1A-圖1B為本發(fā)明實(shí)施例中二維空間中,對(duì)區(qū)域R2=[0,1]2進(jìn)行不同的分割,得到不同的Z曲線網(wǎng)格;

圖2A-圖2C為本發(fā)明實(shí)施例非點(diǎn)對(duì)象P包括線(圖2A)、面(圖2B)、體(圖2C)的最小網(wǎng)格Mingrid(P);

圖3A-圖3B為本發(fā)明實(shí)施例包含非點(diǎn)對(duì)象最小網(wǎng)格Mingrid的最大階數(shù)的確定;

圖4為本發(fā)明實(shí)施例一種顧及空間鄰近性的矢量空間數(shù)據(jù)編碼方法。

具體實(shí)施方式

為了使本申請(qǐng)所屬技術(shù)領(lǐng)域中的技術(shù)人員更清楚地理解本申請(qǐng),下面結(jié)合附圖,通過(guò)具體實(shí)施例對(duì)本申請(qǐng)技術(shù)方案作詳細(xì)描述。

Rowkey是列數(shù)據(jù)庫(kù)下空間對(duì)象的唯一標(biāo)識(shí)。在列數(shù)據(jù)庫(kù)中,所有的數(shù)據(jù)都按照Rowkey的字典順序進(jìn)行組織存儲(chǔ)。列數(shù)據(jù)庫(kù)查詢(xún)只能依靠Rowkey,傳統(tǒng)的Rowkey只是一個(gè)唯一的ID順序或者是時(shí)間戳,沒(méi)有任何空間信息,不具備空間索引的能力,并且所有的空間對(duì)象將會(huì)根據(jù)序列的順序分開(kāi)存儲(chǔ)到多個(gè)存儲(chǔ)節(jié)點(diǎn)上,這在處理大規(guī)模數(shù)據(jù)時(shí),會(huì)降低空間查詢(xún)性能,增加數(shù)據(jù)庫(kù)維護(hù)代價(jià)。

因此,本發(fā)明的Rowkey編碼設(shè)計(jì)將充分考慮以下兩個(gè)問(wèn)題:

1,將二維空間信息轉(zhuǎn)換成一維的行標(biāo)識(shí)符Rowkey編碼;

2,考慮空間對(duì)象的空間鄰近性,并將其整合到編碼算法中。

為此,我們選擇空間填充曲線的方法進(jìn)行Rowkey的設(shè)計(jì),它不僅能夠顧及空間鄰近性,并且已經(jīng)作為從n維到1維的映射機(jī)制被廣泛應(yīng)用。在設(shè)計(jì)Rowkey時(shí),不僅需要顧及空間數(shù)據(jù)的空間位置特性,還需要保持空間數(shù)據(jù)的唯一性。本專(zhuān)利的Rowkey設(shè)計(jì)方法結(jié)合傳統(tǒng)的Rowkey模式以及空間填充曲線,設(shè)計(jì)如下編碼方法:

Rowkey(f)=Geocode(f.geometry)+FID(f) 公式1

Geocode(f.geometry)表示基于空間填充曲線所形成的分層設(shè)計(jì)的編碼值,這里的參數(shù)是空間對(duì)象的幾何坐標(biāo);函數(shù)FID(f)產(chǎn)生數(shù)據(jù)庫(kù)中唯一的順序ID。

通過(guò)基于空間填充曲線的分層編碼,使得在同一空間劃分中,不同的空間對(duì)象具有相同的前綴編碼,再加上唯一的順序ID值作為后綴編碼,不僅顧及矢量空間對(duì)象的空間鄰近性,而且避免Rowkey的重復(fù),克服Rowkey僅能通過(guò)唯一的順序ID進(jìn)行編碼的缺點(diǎn)。通過(guò)公式1可知,空間上鄰近的數(shù)據(jù)可以被集中存儲(chǔ),考慮了空間鄰近性,Rowkey具備空間索引的基本特征,使在數(shù)據(jù)庫(kù)中直接進(jìn)行空間查詢(xún)成為可能。

常用的空間填充曲線主要有Hilbert曲線、Z曲線、Gray曲線,其中Hilbert曲線皮亞若曲線中的一員,由希爾伯特發(fā)明;Z曲線采用簡(jiǎn)單的二進(jìn)制位相交進(jìn)行編碼,且編碼后形成的形狀類(lèi)似于字母Z而得名Z曲線;Gray曲線因?yàn)樵诰幋a的過(guò)程中使用到格雷碼而得名Gray曲線。各個(gè)曲線的映射特點(diǎn)各不相同,Hilbert空間填充曲線的數(shù)據(jù)聚類(lèi)特性最優(yōu)秀,但映射算法的執(zhí)行過(guò)程最復(fù)雜;Z空間填充曲線的數(shù)據(jù)聚類(lèi)特性最差,但映射算法的執(zhí)行過(guò)程最簡(jiǎn)單,執(zhí) 行效率更高??筛鶕?jù)不同的需要,選擇不同的空間填充曲線進(jìn)行編碼設(shè)計(jì)。為了顧及算法的效率,本發(fā)明主要采用Z空間填充曲線來(lái)說(shuō)明此編碼設(shè)計(jì)思想。

下面具體介紹與Z空間填充曲線相關(guān)的定義及設(shè)計(jì)思想。

定義1:

在d維空間D1×…Di×…×Dd中,其中,給定一個(gè)空間對(duì)象P(p1,p2,…,pd),每個(gè)維度上的劃分?jǐn)?shù)量為2m(m∈N),則空間對(duì)象P的Z空間填充曲線分層編碼值為:

Geocode(f.geometry)=ZG(P)0+ZG(P)1+ZG(P)2+...+ZG(P)m 公式2

其中,空間對(duì)象P在第j階層上的編碼值為:

ZG(P)j=(zg1,...zgi...,zgd);

其中zgi=pi/((Ui-Li)/2m) 公式3

其中,j∈【0,m】,zgi表示所述空間對(duì)象P在第i維度上經(jīng)過(guò)j階劃分后的二進(jìn)制字符串;pi表示所述空間對(duì)象P在維度i上的具體坐標(biāo)值,Ui表示第i個(gè)維度坐標(biāo)上的最大值,Li表示第i個(gè)維度坐標(biāo)上的最小值,j表示所述空間對(duì)象P當(dāng)前所處的階數(shù)。

定義2:

Z曲線網(wǎng)格的定義是d維空間經(jīng)過(guò)k(0≤k≤m)次分割空間Rd=[0,1]d形成的d維網(wǎng)格,可以由對(duì)角線上的兩個(gè)端點(diǎn):左下角點(diǎn)Sk=(s1,...,sd)和右上角點(diǎn)Tk=(t1,...,td)表示,即:

ZGrid(k)=<Sk,Tk> 公式4

網(wǎng)格邊長(zhǎng)r=(ti-si)×2-k。

在二維空間中,Z曲線k次分割封閉正方形區(qū)域R2=[0,1]2形成22k(0≤k≤m)個(gè)大小相同的網(wǎng)格,如圖1A-圖1B所示,每個(gè)網(wǎng)格的邊長(zhǎng)是r=2-k,在 相同網(wǎng)格中的任一空間對(duì)象都具有相同的Z空間填充曲線編碼。圖1A-圖1B表示為二維空間中,對(duì)區(qū)域R2=[0,1]2進(jìn)行不同的分割,得到不同的Z曲線網(wǎng)格:圖1A表示對(duì)區(qū)域R2=[0,1]2進(jìn)行1次分割,得到邊長(zhǎng)為1/21的22×1個(gè)Z曲線網(wǎng)格。圖1B表示對(duì)區(qū)域R2=[0,1]2進(jìn)行2次分割,得到邊長(zhǎng)為1/22的22×2個(gè)Z曲線網(wǎng)格。

定義3:

空間對(duì)象G的最小網(wǎng)格即為包含對(duì)象所有點(diǎn)的最小網(wǎng)格,表示為MingridG=<SMingrid,TMingrid>,圖2A-圖2C。

根據(jù)以上的定義,給定一個(gè)空間數(shù)據(jù)對(duì)象P,Z空間填充曲線的最高階為m。

該空間對(duì)象P的Z空間填充曲線編碼方式請(qǐng)參看下列描述:

S1,給定空間對(duì)象P,初始最大階數(shù)m。

S2,判斷P是否是點(diǎn)對(duì)象。

S3,計(jì)算0階到m階的m+1個(gè)ZG(P)j。

S4,對(duì)m+1個(gè)ZG(P)j依規(guī)則拼接。

S5,計(jì)算包含Mingrid(P)的最大階數(shù)k。

S6,計(jì)算0階到k階的k+1個(gè)ZG(P)j*。

S7,對(duì)k+1個(gè)ZG(P)j*依規(guī)則拼接。

S8,形成Z曲線編碼。

下面進(jìn)行具體的分析說(shuō)明。

步驟1,獲得一空間對(duì)象P。

步驟2,判斷所述空間對(duì)象P是否為點(diǎn)對(duì)象。

在本發(fā)明的實(shí)施例中,若空間對(duì)象P是點(diǎn)對(duì)象,則進(jìn)行如下處理:

步驟3,若所述空間對(duì)象P是點(diǎn)對(duì)象,計(jì)算從0階到m階的m+1個(gè)ZG(P)j,j∈【0,m】;ZG(P)j是所述空間對(duì)象P在第j階下的空間填充曲線編碼值。

在具體的實(shí)施過(guò)程中,利用以下公式5計(jì)算獲得0階到m階的m+1個(gè)ZG(P)j。

ZG(P)j=(zg1,...zgi...,zgd) 公式5

其中,zg1表示所述空間對(duì)象P在第1維上經(jīng)過(guò)j階劃分后的的二進(jìn)制字符串;

zgd表示空間對(duì)象P在第d個(gè)維度上經(jīng)過(guò)j階劃分后的二進(jìn)制字符串,d表示所述空間對(duì)象P所處的維度編號(hào)。

zg1和zgd的計(jì)算公式和zgi的計(jì)算公式類(lèi)似,例如計(jì)算zg1時(shí),可將i取值為1。而計(jì)算zgd時(shí),可將i取值為d,但是公式都是一樣的,進(jìn)而本申請(qǐng)?jiān)诖瞬辉儋樖觥?/p>

其中,zgi=pi/((Ui-Li)/2m),1<i<d,其中,zgi表示所述空間對(duì)象P在第i維度上經(jīng)過(guò)j階劃分后的二進(jìn)制字符串;pi表示所述空間對(duì)象P在維度i上的具體坐標(biāo)值,Ui表示第i個(gè)維度坐標(biāo)上的最大值,Li表示第i個(gè)維度坐標(biāo)上的最小值,j表示所述空間對(duì)象P當(dāng)前所處的階數(shù)。

步驟4,對(duì)m+1個(gè)ZG(P)j按照規(guī)則進(jìn)行分層編碼,獲得Geocode(f.geometry)。

Geocode(f.geometry)表示所述空間對(duì)象P基于空間填充曲線所形成的分層設(shè)計(jì)的編碼值。

在具體的實(shí)施過(guò)程中,基于公式6獲得Geocode(f.geometry)。

Geocode(f.geometry)=ZG(P)0+ZG(P)1+ZG(P)2+...+ZG(P)m 公式6

其中,ZG(P)0,ZG(P)1,ZG(P)2,...,ZG(P)m是所述空間對(duì)象P在對(duì)應(yīng)的每一階下 的空間填充曲線編碼值。

步驟5,根據(jù)公式Rowkey(f)=Geocode(f.geometry)+FID(f)進(jìn)行編碼,其中,Rowkey(f)為所述空間對(duì)象P的行標(biāo)識(shí)符Rowkey編碼值,F(xiàn)ID(f)為數(shù)據(jù)庫(kù)中唯一的順序ID。

在另一個(gè)實(shí)施例中,若空間對(duì)象P不是點(diǎn)對(duì)象則進(jìn)行如下處理:

請(qǐng)注意,在本實(shí)施例中的處理公式和上述實(shí)施例中的處理公式類(lèi)似,因此本實(shí)施例中的增加上標(biāo)“*”加以區(qū)分。

若所述空間對(duì)象P不是點(diǎn)對(duì)象(即:所述空間對(duì)象P為非點(diǎn)對(duì)象),先計(jì)算該空間對(duì)象的最小外包超矩形,然后比較每一階下的網(wǎng)格與最小外包超矩形的關(guān)系,獲得能夠完全包含(完全包含的意思是:包含或者等于)所述空間對(duì)象P的最小外包超矩形Mingrid(P)的最大階數(shù)k,即:

f(k)=Max{k|0≤k≤m,SZGrud(k)≤SMingrid,TZGrid(k)≥TMingrid} 公式7

其中,f(k)表示取出滿足條件的最大k值;SZGrid(k)表示在第k階下網(wǎng)格的左下點(diǎn)坐標(biāo)值;SMingrid表示該空間對(duì)象的最大外包超矩形左下點(diǎn)坐標(biāo)值;TZGrid(k)表示在第K階下網(wǎng)格的右上點(diǎn)坐標(biāo)值;TMingrid表示該空間對(duì)象的最大外包超矩形右上點(diǎn)坐標(biāo)值。

圖2A-圖2C表示的是:非點(diǎn)對(duì)象P包括線(圖2A)、面(圖2B)、體(圖2C)的最小網(wǎng)格Mingrid(P),以黑色虛線邊框表示。

圖3A-圖3B表示包含非點(diǎn)對(duì)象最小網(wǎng)格Mingrid的最大階數(shù)的確定,正如公式7進(jìn)行判斷,圖3A中兩個(gè)非點(diǎn)對(duì)象的Mingrid已由黑色虛線邊框表示,k階時(shí),SZGrid(k)≤SMingrid&&TZGrid(k)≥TMingrid說(shuō)明在第K階時(shí),該網(wǎng)格完全包含空間對(duì)象;k+1階時(shí),SZGrid(k+1)≥SMingrid||TZGrid(k+1)≤TMingrid,已經(jīng)不存在某個(gè)網(wǎng)格完全包含空間對(duì)象。由此可知,圖3A-圖3B中,包含兩個(gè)非點(diǎn)對(duì)象最小網(wǎng)格Mingrid 的最大階數(shù)為k。

計(jì)算0階到k階的k+1個(gè)ZG(P)j*,ZG(P)j*表示所述空間對(duì)象P在第j*階層上的編碼值,j*∈【0,k】,0≤k≤m,m為初始最大階數(shù),在第k階下的網(wǎng)格恰好能夠包含所述空間對(duì)象P。即:在【0,m】階下的所有網(wǎng)格中,第k階下的網(wǎng)格是能夠完全包含所述空間對(duì)象P的所有階層網(wǎng)格中的最小網(wǎng)格。

具體的實(shí)施方式為:

ZG(P)j*=(zg1*,...zgi*...,zgd*) 公式8

其中,zg1*表示所述空間對(duì)象P在第1維上經(jīng)過(guò)j*階劃分后的的二進(jìn)制字符串;

zgd*表示所述空間對(duì)象P在第d*維上經(jīng)過(guò)j*階劃分后的的二進(jìn)制字符串,d*表示維度值;

zg1*和zgd*的計(jì)算公式和zgi*的計(jì)算公式類(lèi)似,例如計(jì)算zg1*時(shí),可將i取值為1。而計(jì)算zgd*時(shí),可將i取值為d,但是公式都是一樣的,進(jìn)而本申請(qǐng)?jiān)诖瞬辉儋樖觥?/p>

其中,zgi*=pi*/((Ui*-Li*)/2k),1<i*<d*,其中,zgi*表示所述空間對(duì)象P在每一維度上經(jīng)過(guò)j*階劃分后的二進(jìn)制字符串;pi*表示所述空間對(duì)象P在維度i*上的具體坐標(biāo)值,Ui*表示第i*維度坐標(biāo)上的最大值,Li*表示第i*維度坐標(biāo)上的最小值,j*表示所述空間對(duì)象P當(dāng)前所處的階數(shù)。

對(duì)k+1個(gè)ZG(P)j*按照空間填充曲線的編碼規(guī)則進(jìn)行編碼,獲得Geocode(f.geometry)*;其中,Geocode(f.geometry)*表示所述空間對(duì)象P基于空間填充曲線所形成的分層設(shè)計(jì)的編碼值。

具體為:

Geocode(f.geometry)*=ZG(P)0*+ZG(P)1*+ZG(P)2*+...+ZG(P)k*

其中,ZG(P)0*,ZG(P)1*,ZG(P)2*,...,ZG(P)k*是所述空間對(duì)象P在對(duì)應(yīng)的每一階下的空間填充曲線編碼值,公式中的“+”表示將每個(gè)編碼值拼接起來(lái)。

根據(jù)公式Rowkey(f)*=Geocode(f.geometry)*+FID(f)*進(jìn)行編碼;

其中,Rowkey(f)*為所述空間對(duì)象P的行標(biāo)識(shí)符Rowkey編碼值,F(xiàn)ID(f)*為數(shù)據(jù)庫(kù)中唯一的順序標(biāo)識(shí)ID。

通過(guò)本發(fā)明的一個(gè)或者多個(gè)實(shí)施例,本發(fā)明具有以下有益效果或者優(yōu)點(diǎn):

本發(fā)明公開(kāi)了一種顧及空間鄰近性的矢量空間數(shù)據(jù)編碼方法,通過(guò)判斷給定對(duì)象P是否為點(diǎn)對(duì)象;若所述空間對(duì)象P為非點(diǎn)對(duì)象,先計(jì)獲得能夠完全包含最小外包超矩的網(wǎng)格所在最大階數(shù)k,再計(jì)算從0階到k階的k+1個(gè)ZG(P)j*;ZG(P)j*表示所述空間對(duì)象P在第j*階層上的編碼值;再對(duì)k+1個(gè)ZG(P)j按照空間填充曲線的編碼規(guī)則進(jìn)行編碼,獲得Geocode(f.geometry)*;再根據(jù)公式Rowkey(f)*=Geocode(f.geometry)*+FID(f)*進(jìn)行編碼,通過(guò)基于空間填充曲線的分層編碼,使得在同一空間劃分中,不同的空間對(duì)象具有相同的前綴編碼,再加上唯一的順序ID值作為后綴編碼,不僅顧及矢量空間對(duì)象的空間鄰近性,而且避免Rowkey的重復(fù),克服Rowkey僅能通過(guò)唯一的順序ID進(jìn)行編碼的缺點(diǎn),進(jìn)而使得空間上鄰近的數(shù)據(jù)可以被集中存儲(chǔ),考慮了空間鄰近性,Rowkey具備空間索引的基本特征,使在數(shù)據(jù)庫(kù)中直接進(jìn)行空間查詢(xún)成為可能。

盡管已描述了本申請(qǐng)的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的普通技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)范圍的所有變更和修改。

顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)進(jìn)行各種改動(dòng)和變型而不脫離本申請(qǐng)的精神和范圍。這樣,倘若本申請(qǐng)的這些修改和變型屬于本申請(qǐng)權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1