地理位置編碼方法
【專利摘要】本發(fā)明公開了一種地理位置編碼方法,包括以下步驟:獲取地理位置;將經(jīng)度編碼為n比特的二進制,將經(jīng)度的符號編碼至符號段內(nèi),將經(jīng)度絕對值編碼至數(shù)據(jù)段內(nèi),其中,第一數(shù)據(jù)段表示經(jīng)度絕對值的整數(shù)部分,第二數(shù)據(jù)段表示經(jīng)度絕對值的小數(shù)部分;將緯度編碼為n比特的二進制,將緯度的符號編碼至符號段內(nèi),將緯度絕對值編碼至數(shù)據(jù)段內(nèi);將n比特的二進制經(jīng)度編碼和n比特的二進制緯度編碼進行交叉合并,以獲取位置編碼。本發(fā)明實施例的方法通過將n比特的二進制經(jīng)度編碼和n比特的二進制緯度編碼進行交叉合并,以獲取位置編碼,既使得生成的位置編碼以類似互聯(lián)網(wǎng)地址分層的形式展現(xiàn)出來,同時也方便了地理位置數(shù)據(jù)的分析、存儲和映射。
【專利說明】
地理位置編碼方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,特別涉及一種地理位置編碼方法。
【背景技術(shù)】
[0002]目前,已經(jīng)有很多上網(wǎng)裝置能夠通過附著至網(wǎng)絡(luò)的裝置進行地理定位,以確定其自身的地理位置。然而,處于一個位置的上網(wǎng)裝置,仍然很難接接收到針對這一位置的特定信息,也難于和周邊的上網(wǎng)裝置進行通訊。雖然目前已經(jīng)有一些應(yīng)用如微信等能夠查詢周邊的用戶,一方面由于地理位置信息局限于某個應(yīng)用,另一方面由于地理位置信息格式復(fù)雜,通常由幾個數(shù)據(jù)表示,導(dǎo)致不便于表示和呈現(xiàn),以及地理位置信息難于表達(dá)一個地理位置范圍,不能夠?qū)Φ乩砦恢眯畔⑦M行聚類,導(dǎo)致位置應(yīng)用難于設(shè)計實現(xiàn)。
[0003]具體地,地理位置通常以經(jīng)度、緯度的方式呈現(xiàn),由于有二元甚至更多元數(shù)據(jù)如高度的存在,導(dǎo)致數(shù)據(jù)通常不便于存儲、呈現(xiàn),尤其是在互聯(lián)網(wǎng)使用時,由于數(shù)據(jù)結(jié)構(gòu)較為復(fù)雜,導(dǎo)致數(shù)據(jù)不便于使用。相關(guān)技術(shù)中,通常是通過HTTP(HTTP-Hypertext transferprotocol,超文本傳輸協(xié)議)之上用復(fù)雜的數(shù)據(jù)結(jié)構(gòu)來進行包裝呈現(xiàn),例如,Google或者百度所使用的API (Applicat1n Programming Interface,應(yīng)用程序編程接口)都是采用了較為復(fù)雜的數(shù)據(jù)包裝形式。然而,各個應(yīng)用系統(tǒng)分別使用自己定義的API,地理位置信息割裂在各個應(yīng)用之中,導(dǎo)致難以建立一個互聯(lián)網(wǎng)上統(tǒng)一的位置服務(wù)借口。
【發(fā)明內(nèi)容】
[0004]本發(fā)明旨在至少在一定程度上解決上述相關(guān)技術(shù)中的技術(shù)問題之一。
[0005]為此,本發(fā)明的目的在于提出一種方便數(shù)據(jù)分析、存儲和映射的地理位置編碼方法。
[0006]為達(dá)到上述目的,本發(fā)明實施例提出了一種地理位置編碼方法,包括以下步驟:獲取地理位置,其中,所述地理位置包括經(jīng)度和緯度;將所述經(jīng)度編碼為η比特的二進制,其中,所述η比特的二進制包括符號段和數(shù)據(jù)段,所述數(shù)據(jù)段包括第一數(shù)據(jù)段和第二數(shù)據(jù)段,將所述經(jīng)度的符號編碼至所述符號段內(nèi),將所述經(jīng)度絕對值編碼至所述數(shù)據(jù)段內(nèi),其中,所述第一數(shù)據(jù)段表示所述經(jīng)度絕對值的整數(shù)部分,所述第二數(shù)據(jù)段表示所述經(jīng)度絕對值的小數(shù)部分,η為大于9的正整數(shù);將所述緯度編碼為所述η比特的二進制,將所述緯度的符號編碼至所述符號段內(nèi),將所述緯度絕對值編碼至所述數(shù)據(jù)段內(nèi);以及將所述經(jīng)度編碼的η比特的二進制和所述緯度編碼的η比特的二進制進行交叉合并,以獲取所述位置編碼。
[0007]根據(jù)本發(fā)明實施例提出的地理位置編碼方法,通過分別將經(jīng)度和緯度的符號編碼至η比特的二進制的符號段內(nèi),并將經(jīng)度和緯度的絕對值編碼至η比特的二進制的數(shù)據(jù)段內(nèi),從而將經(jīng)度編碼的η比特的二進制和緯度編碼的η比特的二進制進行交叉合并,以獲取位置編碼,既使得生成的位置編碼以類似互聯(lián)網(wǎng)地址分層的形式展現(xiàn)出來,同時也方便了地理位置數(shù)據(jù)的分析、存儲和映射。
[0008]另外,根據(jù)本發(fā)明上述實施例的地理位置編碼方法還可以具有如下附加的技術(shù)特征:
[0009]進一步地,在本發(fā)明的一個實施例中,所述將所述經(jīng)度編碼為η比特的二進制與所述將所述緯度編碼為η比特的二進制,具體包括:通過將I個比特表示符號和8個比特表示小數(shù)點左側(cè)的數(shù)據(jù),并且將余下的η-9比特表示小數(shù)點右側(cè)的數(shù)據(jù),以將所述經(jīng)度編碼為η比特的二進制;通過將I個比特表示符號和7個比特表示小數(shù)點左側(cè)的數(shù)據(jù),并且將余下的η-8比特表示小數(shù)點右側(cè)的數(shù)據(jù),以將所述緯度編碼為η比特的二進制。
[0010]進一步地,在本發(fā)明的一個實施例中,所述將所述經(jīng)度編碼的η比特的二進制和所述緯度編碼的η比特的二進制進行交叉合并,以獲取所述位置編碼,具體包括:將等長的所述經(jīng)度編碼的η比特的二進制和所述緯度編碼的η比特的二進制進行交叉合并,奇數(shù)位放所述經(jīng)度編碼的η比特的二進制,偶數(shù)位放所述緯度編碼的η比特的二進制,或者,奇數(shù)位放所述緯度編碼的η比特的二進制,偶數(shù)位放所述經(jīng)度編碼的η比特的二進制,以獲取所述位置編碼。
[0011]進一步地,在本發(fā)明的一個實施例中,上述方法還包括:通過所述位置編碼和k所表示的位置掩碼描述地理位置范圍,其中,所述位置掩碼為k表示所有編碼的前2k比特與所述位置編碼的前2k比特相同的所有位置組成的區(qū)域,其中,k為大于2小于等于η的正整數(shù)。
[0012]進一步地,在本發(fā)明的一個實施例中,上述方法還包括:通過第一經(jīng)度和第二經(jīng)度所描述的經(jīng)度范圍以及第一緯度和第二緯度所描述的緯度范圍得到覆蓋這一地塊的位置編碼、掩碼系列,其中,所述第二經(jīng)度大于所述第一經(jīng)度,所述第二緯度大于所述第一緯度,具體包括以下步驟:
[0013]I)計算所述第一經(jīng)度和所述第一緯度所生成的編碼a和所述第二經(jīng)度和所述第二緯度生成的編碼b ;
[0014]2)設(shè)置變量X為a,變量k為I ;
[0015]3)讓X和4k_l的二進制表示求按位比特與,判斷所得結(jié)果是否為0,如果為O則進入步驟4,否則進入步驟5 ;
[0016]4)判斷x+4k是否大于b,如果大于則進入步驟5,否則讓k = k+Ι后重復(fù)步驟3 ;
[0017]5)輸出 x,k_l;
[0018]6)設(shè)置X = X+4H,判斷X是否大于b,如果大于b,則退出,否則設(shè)置k = I重復(fù)步驟3。
[0019]進一步地,在本發(fā)明的一個實施例中,上述方法還包括:將所述位置編碼和所述位置掩碼映射到組播地址的第24比特到第95比特中,其中,所述組播地址為128位的IPv6地址;根據(jù)所述組播地址加入相應(yīng)的組播組中,以通過所述組播組進行通信。
[0020]優(yōu)選地,在本發(fā)明的一個實施例中,組播為任意源組播或特定源組播。
[0021]進一步地,在本發(fā)明的一個實施例中,上述方法還包括:隨著地理位置的改變,重新獲得的地理位置和預(yù)先設(shè)置的位置掩碼,生成所述組播地址,并自動退出原位置所在的組播組,加入到新位置所在的組播組中。
[0022]進一步地,在本發(fā)明的一個實施例中,上述方法還包括:修改所述預(yù)先設(shè)置的位置掩碼,以便加入到更大的地理范圍所形成的組播組,或者進入到更細(xì)致的地理范圍所形成的組播組;同時加入不同的位置編碼及掩碼映射成的組播組中,以同時接收來自于多個位置范圍的信息。
[0023]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【專利附圖】
【附圖說明】
[0024]本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
[0025]圖1為根據(jù)本發(fā)明一個實施例的地理位置編碼方法的流程圖;
[0026]圖2為根據(jù)本發(fā)明一個實施例的十進制實數(shù)的小數(shù)點右側(cè)部分轉(zhuǎn)換為二進制編碼的方法流程圖;
[0027]圖3為根據(jù)本發(fā)明一個實施例的位置編碼的生成方法流程圖;
[0028]圖4為根據(jù)本發(fā)明一個實施例的位置掩碼的使用方法流程圖;
[0029]圖5為根據(jù)本發(fā)明一個實施例的不同長度位置編碼所對應(yīng)的地理范圍精度示意圖;
[0030]圖6為根據(jù)本發(fā)明一個實施例的通過一個經(jīng)度、緯度范圍得到一系列位置編碼和位置掩碼的方法流程圖;
[0031]圖7為根據(jù)本發(fā)明一個實施例的組播機制,數(shù)據(jù)包可以同時轉(zhuǎn)給多個接收方的示意圖;
[0032]圖8為根據(jù)本發(fā)明一個實施例的組播地址的規(guī)范示意圖;以及
[0033]圖9為根據(jù)本發(fā)明一個實施例的將位置編碼和位置掩碼映射入組播地址的方法流程圖。
【具體實施方式】
[0034]下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
[0035]此外,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括一個或者更多個該特征。在本發(fā)明的描述中,“多個”的含義是兩個或兩個以上,除非另有明確具體的限定。
[0036]在本發(fā)明中,除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”、“固定”等術(shù)語應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
[0037]在本發(fā)明中,除非另有明確的規(guī)定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接觸,也可以包括第一和第二特征不是直接接觸而是通過它們之間的另外的特征接觸。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或僅僅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正上方和斜上方,或僅僅表示第一特征水平高度小于第二特征。
[0038]下面參照附圖描述根據(jù)本發(fā)明實施例提出的地理位置編碼方法。參照圖1所示,該方法包括以下步驟:
[0039]S101,獲取地理位置,其中,地理位置包括經(jīng)度和纟韋度。
[0040]地理位置通常用經(jīng)度和緯度進行描述。經(jīng)度是地球上一個地點離一根被稱為本初子午線的南北方向走線以東或以西的度數(shù)。其中,本初子午線的經(jīng)度是0°,地球上其它地點的經(jīng)度是向東到180°或向西到180°,不像緯度有赤道作為自然的起點,經(jīng)度沒有自然的起點,英國的制圖學(xué)家使用經(jīng)過倫敦格林尼治天文臺的子午線作為起點,過去其它國家或人也使用過其它的子午線做起點,比如羅馬、哥本哈根、耶路撒冷、圣彼德堡、比薩、巴黎和費城等。在1884年的國際本初子午線大會上格林尼治的子午線被正式定為經(jīng)度的起點。東經(jīng)180°即西經(jīng)180°,約等同于國際換日線,國際換日線的兩邊,日期相差一日。具體地,經(jīng)度是指通過某地的經(jīng)線面與本初子午面所成的二面角。在本初子午線以東的經(jīng)度叫東經(jīng),在本初子午線以西的叫西經(jīng)。東經(jīng)用“E”表示,西經(jīng)用“W”表示。經(jīng)度的每一度被分為60角分,每一分被分為60秒。一個經(jīng)度因此一般看上去是這樣的:東經(jīng)23° 27' 30〃或西經(jīng)23° 27' 30〃。更精確的經(jīng)度位置中秒被表示為分的小數(shù),比如:東經(jīng)23° 27.500'。
[0041]一個經(jīng)度和一個緯度一起確定地球上一個地點的精確位置。緯度是指某點與地球球心的連線和地球赤道面所成的線面角,其數(shù)值在O至90度之間。位于赤道以北的點的緯度叫北緯,記為N ;位于赤道以南的點的緯度稱南緯,記為S,緯度的每個度大約相當(dāng)于Illkm0
[0042]經(jīng)緯度有多種表示方法,如ddd.ddddd度是經(jīng)度或緯度的十進制實數(shù)表示,例如:31.12035° ;而ddd.mm._則是度.分,其中分為十進制實數(shù)如31° 10.335’ ;或者ddd.mm.ss,度.分.秒,例如 31。12’ 42"。
[0043]在本發(fā)明的一個實施例中,本發(fā)明實施例所使用的是經(jīng)度或緯度的實數(shù)表示方式,把經(jīng)纟韋度轉(zhuǎn)換成十進制實數(shù)的方法很簡單,按照如下公式即可Decimal Degrees=Degrees+minutes/60+seconds/3600,如:57 ° 55’56.6〃 = 57+55/60+56.6/3600 =57.9323888888888。經(jīng)度在-180°到180。之間,東經(jīng)正數(shù),西經(jīng)為負(fù)數(shù),而緯度則在-90°到90°之間,北緯為正數(shù),南緯為負(fù)數(shù)。
[0044]S102,將經(jīng)度編碼為η比特的二進制,其中,η比特的二進制包括符號段和數(shù)據(jù)段,數(shù)據(jù)段包括第一數(shù)據(jù)段和第二數(shù)據(jù)段,將經(jīng)度的符號編碼至符號段內(nèi),將經(jīng)度絕對值編碼至數(shù)據(jù)段內(nèi),其中,第一數(shù)據(jù)段表示經(jīng)度絕對值的整數(shù)部分,第二數(shù)據(jù)段表示經(jīng)度的小數(shù)部分,η為大于9的正整數(shù)。
[0045]S103,將緯度編碼為η比特的二進制,將緯度的符號編碼至符號段內(nèi),將緯度絕對值編碼至數(shù)據(jù)段內(nèi)。
[0046]進一步地,在本發(fā)明的一個實施例中,本發(fā)明實施例將經(jīng)度或緯度編碼成二進制表示。對于十進制轉(zhuǎn)為二進制的實數(shù),ΙΕΕΕ754標(biāo)準(zhǔn)中的方案提出數(shù)字系統(tǒng)中的浮點數(shù)是對數(shù)學(xué)中的實數(shù)(小數(shù))的近似,同時該標(biāo)準(zhǔn)規(guī)定表達(dá)浮點數(shù)的O、I序列被分為三部分(三個域):以32位單精度浮點數(shù)為例,其具體的轉(zhuǎn)換規(guī)則是:首先把二進制小數(shù)用二進制科學(xué)計數(shù)法表示,符號位sign表示數(shù)的正負(fù)(O為正,I為負(fù)),故此處填O。本發(fā)明實施例并沒有采用這一標(biāo)準(zhǔn),主要原因在于,指數(shù)位的存在使得形成的編碼結(jié)構(gòu)較為復(fù)雜,此外,經(jīng)度和緯度都具有固定范圍,不必要留出額外的指數(shù)位。
[0047]在本發(fā)明的一個實施例中,將經(jīng)度編碼為η比特的二進制與將緯度編碼為η比特的二進制,具體包括:通過將I個比特表示符號和8個比特表示小數(shù)點左側(cè)的數(shù)據(jù),并且將余下的η-9比特表示小數(shù)點右側(cè)的數(shù)據(jù),以將經(jīng)度編碼為η比特的二進制;通過將I個比特表示符號和7個比特表示小數(shù)點左側(cè)的數(shù)據(jù),并且將余下的η-8比特表示小數(shù)點右側(cè)的數(shù)據(jù),以將緯度編碼為η比特的二進制。
[0048]具體地,對于經(jīng)度而言,小數(shù)點左側(cè)的部分用9比特來表示,其中第一比特即符號段為符號位;對于緯度而言,小數(shù)點左側(cè)的部分用8比特來表示,其中第一比特即符號段為符號位。符號位可以用任何一種約定來表示正負(fù),例如,第一比特為I表示為負(fù)。對于不足I度的部分,轉(zhuǎn)換成二進制小數(shù)采用乘2取整,順序排列法。參照圖2所示,具體做法是:用2乘十進制小數(shù),可以得到積,將積的整數(shù)部分取出,再用2乘余下的小數(shù)部分,又得到一個積,再將積的整數(shù)部分取出,如此進行,直到積中的小數(shù)部分為零或者達(dá)到所要求的精度為止,然后把取出的整數(shù)部分按順序排列起來,先取的整數(shù)作為二進制小數(shù)的高位有效位,后取的整數(shù)作為低位有效位。
[0049]S104,將經(jīng)度編碼的η比特的二進制和緯度編碼的η比特的二進制進行交叉合并,以獲取位置編碼。
[0050]具體地,在本發(fā)明的一個實施例中,將經(jīng)度編碼的η比特的二進制和緯度編碼的η比特的二進制進行交叉合并,以獲取位置編碼,具體包括:將等長的經(jīng)度編碼的η比特的二進制和緯度編碼的η比特的二進制進行交叉合并,奇數(shù)位放經(jīng)度編碼的η比特的二進制,偶數(shù)位放緯度編碼的η比特的二進制,或者,奇數(shù)位放緯度編碼的η比特的二進制,偶數(shù)位放經(jīng)度編碼的η比特的二進制,以獲取位置編碼。
[0051]進一步地,本發(fā)明實施例設(shè)定的編碼長度為2η,也就是說經(jīng)度和緯度所使用的比特數(shù)均為η,η>9。將按照以上方法轉(zhuǎn)換來的經(jīng)緯度按照這一比特數(shù)截斷,注意為了保持精度的統(tǒng)一,緯度小數(shù)后部分比經(jīng)度多I比特。為了讓所轉(zhuǎn)成的位置標(biāo)識便于聚類,本發(fā)明實施例使用了經(jīng)緯度的交叉表示,參照圖3所示,例如將二進制編碼為a1&2…an_ian的經(jīng)度和二進制編碼為的纟韋度交織編碼成,其中,數(shù)據(jù)段的第一數(shù)據(jù)段即圖中標(biāo)示小數(shù)點前部分,數(shù)據(jù)段的第二數(shù)據(jù)段即圖中標(biāo)示小數(shù)點后部分。在實際使用中,既可以采用奇數(shù)為經(jīng)度,偶數(shù)為緯度的表示方式,也可以采用偶數(shù)為經(jīng)度,奇數(shù)位緯度的表
,」、O
[0052]在本發(fā)明的一個具體實施例中,對于經(jīng)度而言,第一比特為符號位,小數(shù)點左側(cè)直接轉(zhuǎn)為8比特二進制編碼,小數(shù)點右側(cè)則根據(jù)以下步驟生成:用2乘十進制小數(shù),可以得到積,將積的整數(shù)部分取出,再用2乘余下的小數(shù)部分,又得到一個積,再將積的整數(shù)部分取出,如此進行,直到達(dá)到η-9比特為止。然后把取出的整數(shù)部分按順序排列起來,先取的整數(shù)作為二進制小數(shù)的高位有效位,后取的整數(shù)作為低位有效位。符號位、整數(shù)位的二進制表示和小數(shù)位的二進制表示相連就形成了經(jīng)度的編碼。對于緯度而言,第一比特為符號位,小數(shù)點左側(cè)直接轉(zhuǎn)為7比特二進制編碼,小數(shù)點右側(cè)則根據(jù)以下步驟生成:用2乘十進制小數(shù),可以得到積,將積的整數(shù)部分取出,再用2乘余下的小數(shù)部分,又得到一個積,再將積的整數(shù)部分取出,如此進行,直到達(dá)到η-8比特為止。然后把取出的整數(shù)部分按順序排列起來,先取的整數(shù)作為二進制小數(shù)的高位有效位,后取的整數(shù)作為低位有效位。符號位、整數(shù)位的二進制表示和小數(shù)位的二進制表示相連就形成了緯度的編碼,等長的經(jīng)緯度的二進制表示進行交叉合并,奇數(shù)位放經(jīng)度的編碼,偶數(shù)位放緯度的編碼,或者偶數(shù)位放經(jīng)度的編碼,奇數(shù)位放緯度的編碼均可,形成最后的2η比特位置編碼。
[0053]其中,在本發(fā)明的一個實施例中,對于較短比特的位置編碼,則使用如下的算法更為便捷。對于經(jīng)度而言,第一比特為符號位,經(jīng)度的絕對值乘以2η_9后取整,符號位與這一整數(shù)的二進制表示相連就形成了經(jīng)度的編碼。對于緯度而言,經(jīng)度的絕對值乘以2η_8后取整,符號位與這一整數(shù)的二進制表示相連就形成了緯度的編碼。等長的經(jīng)緯度的二進制表示進行交叉合并,奇數(shù)位放經(jīng)度的編碼,偶數(shù)位放緯度的編碼,或者偶數(shù)位放經(jīng)度的編碼,奇數(shù)位放緯度的編碼均可,形成最后2η比特的位置編碼。
[0054]進一步地,在本發(fā)明的一個實施例中,上述方法還包括:通過位置編碼和k所表示的位置掩碼描述地理位置范圍,其中,位置掩碼為k表示所有編碼的前2k比特與位置編碼的前2k比特相同的所有位置組成的區(qū)域,其中,k為大于2小于等于η的正整數(shù)。
[0055]其中,在本發(fā)明的實施例中,如上所述的2η比特的位置編碼L可以和一個小于η整數(shù)k所表示的位置掩碼共同使用,來描述一個位置范圍。地址掩碼為k表示所有編碼的前2k比特與L的前2k比特相同的所有位置組成的區(qū)域。由于在進行指定地理位置的信息發(fā)布或者通信時,一個上網(wǎng)設(shè)備例如移動終端如手機等不僅對一個小區(qū)域的信息感興趣,也同時對更大范圍內(nèi)的指定信息感興趣,本發(fā)明實施例使得生成地理位置編碼以類似互聯(lián)網(wǎng)地址分級的形式展現(xiàn)出來,從而便于進行多尺度的地理位置信息發(fā)布。
[0056]具體地,在進行位置編碼之后,本發(fā)明實施例使用位置掩碼k來標(biāo)識這個位置的范圍,其中2〈k〈 = n,如上所述的2n比特的位置編碼L可以和一個小于等于η的整數(shù)k所表示的位置掩碼共同使用,來描述一個位置范圍。地址掩碼為k表示所有編碼后前2k比特與位置編碼L的前2k比特相同的所有位置組成的區(qū)域,參照圖4所示,圖4給出了判斷一個位置編碼是否在該范圍的方法流程圖。位置掩碼與網(wǎng)絡(luò)中網(wǎng)絡(luò)掩碼的概念相類似,可以用來表示一個范圍。舉例而言,設(shè)η = 24,也就是說,位置編碼的長度為48比特,則經(jīng)緯度為(116.3156326940,39.9953253066)位置的轉(zhuǎn)化為24比特后為(001110100010100001100110,001001111111111011001101) 16 進制描述則為(3a2866,27fecd),相對應(yīng)的位置編碼則是 000011101001110101011101110101000111100001111001 (用16進制表示則為0e9d5dd47879)。如果位置掩碼為22,則說明這個區(qū)域涵蓋了所有位置編碼的前 44 比特為 00001110100111010101110111010100011110000111 (用 16進制表示為0e9d5dd4787)的位置,具體而言,這個區(qū)域覆蓋了經(jīng)度從116.315551758到116.315673828,緯度從 39.995300293 到 39.9953613281 的所有位置。
[0057]本發(fā)明實施例的編碼方法將經(jīng)度和緯度交叉編碼成一個位置編碼,既使得所生成的位置編碼以類似互聯(lián)網(wǎng)地址分層的形式展現(xiàn)出來,同時也方便了位置數(shù)據(jù)的分析、存儲和映射。此外,通過引入位置掩碼,可以容易的指定不同地理區(qū)域的大小,具有更短位置掩碼的地理區(qū)域可以包含多個具有相同前綴的但掩碼更長的位置編碼所描述的區(qū)域,實現(xiàn)編碼與互聯(lián)網(wǎng)IP地址具有類似的特性,從而便于與互聯(lián)網(wǎng)進行結(jié)合。
[0058]進一步地,在本發(fā)明的另一個實施例中,位置編碼轉(zhuǎn)變?yōu)榻?jīng)度、緯度的步驟為:將編碼的奇數(shù)比特作為經(jīng)度的轉(zhuǎn)換值,將編碼的偶數(shù)比特作為緯度的轉(zhuǎn)換值,對于經(jīng)度而言,第一比特為符號位,第2到9比特的8個比特為經(jīng)度的整數(shù)部分,之后為經(jīng)度的小數(shù)部分;對于緯度而言,第一比特為符號位,第2到8比特為緯度的整數(shù)部分,之后為緯度的小數(shù)部分。編碼長度與所覆蓋的位置精度的近似關(guān)系參照圖5所示,由于經(jīng)度每一度的長度隨著緯度的不同而不同,因此,所列出的范圍是最大可能范圍。對于位置掩碼而言,不同的位置掩碼長度所覆蓋的位置范圍和位置精度相同。
[0059]進一步地,面向指定位置信息發(fā)布者,可以根據(jù)所要發(fā)布的位置,以及所需要覆蓋的范圍來確定所覆蓋的位置編碼。根據(jù)經(jīng)緯度范圍的塊來計算所需要發(fā)布的組播地址范圍可以有多種策略可以選擇,既可以選擇能夠覆蓋這一范圍的單一范圍,也可以采用多個范圍置加而進行。
[0060]在本發(fā)明的一個實施例中,上述方法還包括:通過第一經(jīng)度和第二經(jīng)度所描述的經(jīng)度范圍以及第一緯度和第二緯度所描述的緯度范圍得到覆蓋這一地塊的位置編碼、掩碼系列,其中,第二經(jīng)度大于第一經(jīng)度,第二緯度大于第一緯度,具體包括以下步驟:
[0061]I)計算第一經(jīng)度和第一緯度所生成的編碼a和第二經(jīng)度和第二緯度生成的編碼b ;
[0062]2)設(shè)置變量X為a,變量k為I ;
[0063]3)讓X和4k_l的二進制表示求按位比特與,判斷所得結(jié)果是否為0,如果為O則進入步驟4,否則進入步驟5 ;
[0064]4)判斷x+4k是否大于b,如果大于則進入步驟5,否則讓k = k+Ι后重復(fù)步驟3 ;
[0065]5)輸出 X, k-Ι ;
[0066]6)設(shè)置X = X+4H,判斷X是否大于b,如果大于b,則退出,否則設(shè)置k = I重復(fù)步驟3。
[0067]具體地,由上所得,在本發(fā)明的另一個實施例中,本發(fā)明實施例可以根據(jù)地理位置范圍得到覆蓋這一地理位置范圍的位置編碼和位置掩碼,即言本發(fā)明實施例能夠使得在給出一個經(jīng)度范圍和緯度范圍后,能夠得到覆蓋這一地塊的位置編碼、掩碼所構(gòu)成的系列。參照圖6所示,通過第一經(jīng)度即較小經(jīng)度和第二經(jīng)度即較大經(jīng)度所描述的經(jīng)度范圍以及第一緯度即較小緯度和第二緯度即較大緯度所描述的緯度范圍,得到覆蓋這一地塊的位置編碼、掩碼系列的步驟為:
[0068]I)計算較小的經(jīng)度和較小的緯度所生成的編碼a和較大經(jīng)度和較大緯度生成的編碼b ;
[0069]2)設(shè)置 X = a, k = I ;
[0070]3)讓X和4k_l的二進制表示求按位比特與,所得結(jié)果是否為0,如果為O則進入步驟4,否則進入步驟5;
[0071]4)判斷x+4k是否大于b,如果大于則步驟5,否則讓k = k+Ι后重復(fù)步驟3,否則步驟5 ;
[0072]5)輸出 X,k-Ι ;
[0073]6)設(shè)置X = X+4H,判斷X是否大于b,如果大于b,則退出,否則設(shè)置k = I重復(fù)步驟3。
[0074]進一步地,在本發(fā)明的一個實施例中,上述方法還包括:將位置編碼和位置掩碼映射到組播地址的第24比特到第95比特中,其中,組播地址為128位的IPv6地址;根據(jù)組播地址加入相應(yīng)的組播組中,以通過組播組進行通信。其中,本發(fā)明實施例利用位置編碼和位置掩碼生成IPv6組播地址,在IPv6協(xié)議中,組播地址為128位的IPv6地址,本發(fā)明實施例可以將位置掩碼和位置編碼映射到IPv6組播地址的第24比特到第95比特中,通過這樣構(gòu)成的組播地址,從而方便了各種在同一位置或鄰近位置的上網(wǎng)設(shè)備進行通信。
[0075]在本發(fā)明的實施例中,位置編碼和位置掩碼可以映射到IPv6組播地址中,以進行針對指定范圍的地理位置信息發(fā)布。組播技術(shù)是IP網(wǎng)絡(luò)數(shù)據(jù)傳輸三種方式之一,在傳統(tǒng)的單播(Unicast)傳輸中,在發(fā)送者和每一接收者之間實現(xiàn)點對點網(wǎng)絡(luò)連接。如果一臺發(fā)送者同時給多個的接收者傳輸相同的數(shù)據(jù),也必須相應(yīng)的復(fù)制多份的相同數(shù)據(jù)包。如果有大量主機希望獲得數(shù)據(jù)包的同一份拷貝時,將導(dǎo)致發(fā)送者負(fù)擔(dān)沉重、延遲長、網(wǎng)絡(luò)擁塞;為保證一定的服務(wù)質(zhì)量需增加硬件和帶寬。廣播(Broadcast)傳輸是指在IP子網(wǎng)內(nèi)廣播數(shù)據(jù)包,所有在子網(wǎng)內(nèi)部的主機都將收到這些數(shù)據(jù)包。廣播意味著網(wǎng)絡(luò)向子網(wǎng)每一個主機都投遞一份數(shù)據(jù)包,不論這些主機是否樂于接收該數(shù)據(jù)包。所以廣播的使用范圍非常小,只在本地子網(wǎng)內(nèi)有效,通過路由器和網(wǎng)絡(luò)設(shè)備控制廣播傳輸。組播解決了單播和廣播方式效率低的問題。參照圖7所示,當(dāng)網(wǎng)絡(luò)中的某些用戶需求特定信息時,組播源(即組播信息發(fā)送者)僅發(fā)送一次信息,組播路由器借助組播路由協(xié)議為組播數(shù)據(jù)包建立樹型路由,被傳遞的信息在盡可能遠(yuǎn)的分叉路口才開始復(fù)制和分發(fā)。
[0076]在IPv6中,組播技術(shù)得到了更廣泛的應(yīng)用。IPv6是下一代IP尋址方案,其將IP地址長度從IPv4中采用的32位提高到128位。將IPv6表示為八個具有十六進制格式的十六位整數(shù)(例如,X:X:X:X:X:X:X:X,其中,每一個X表示一個16位整數(shù))。通常將IPv6地址劃分為網(wǎng)絡(luò)ID (Identity,身份標(biāo)識號)段和主機ID段。例如,對IPv6地址N:N:N:N:H:H:H:H而言,N:N:N:N整數(shù)(64位)代表網(wǎng)絡(luò)ID,而H:H:H:H整數(shù)(64位)則代表主機ID。同IPv4組播一樣,在IPv6中,使用組播地址來確定一個組播組,如果用戶希望接收某個IPv6組播時,必須要知道 IPv6 的組播組地址,通過 MLD (Multicast Listener Discovery Protocol,組播偵聽者發(fā)現(xiàn)協(xié)議))協(xié)議的管理,接收者才能夠獲取IPv6的組播流。MLD用于IPv6路由器在其直連網(wǎng)段上發(fā)現(xiàn)組播偵聽者。組播偵聽者(Multicast Listener)是那些希望接收組播數(shù)據(jù)的主機節(jié)點。路由器通過MLD協(xié)議,可以了解自己的直連網(wǎng)段上是否有IPv6組播組的偵聽者,并在數(shù)據(jù)庫里做相應(yīng)記錄。同時,路由器還維護與這些IPv6組播地址相關(guān)的定時器信息。
[0077]參照圖8所示,圖8為IPv6的組播組地址格式示意圖,其中,最高的8個比特為OxFF,標(biāo)識此地址為組播地址。接著的4個比特為Flag位,F(xiàn)lag位的最高位為O ;R比特表示是否是內(nèi)嵌RP的組播地址;P比特表示組播地址是否是基于單播前綴生成的;T比特表示組播地址是永久分配的還是臨時分配的??梢钥闯觯現(xiàn)lag根據(jù)一個組播地址的功能、生成方式等屬性進行了標(biāo)識,之后的4個比特為表示組播的范圍,常見的范圍有節(jié)點本地、鏈路本地、站點本地、機構(gòu)本地等。其余的比特為Group ID,用于在組播地址中用來標(biāo)識一個組播組。進一步的,在基于單播前綴的組播地址規(guī)范中,規(guī)定第16比特之后的8比特為保留位,必須為0,而最后的32比特則規(guī)定為32比特的組播ID,用于直接映射為組播的MAC (MediaAccess Control, MAC地址、硬件地址)地址。
[0078]具體地,位置編碼、位置掩碼可以一起編入到IPv6的組播地址中,IPv6的組播地址可以容納112比特的Group ID,因此,本發(fā)明實施例可以任意采用這112比特中的部分來表示編碼。需要說明的是,具體選擇哪些位置取決于地址的可用性以及其他因素。IPv6組播地址中高8比特為FF固定值,之后的4比特為標(biāo)志位,之后的4比特用于限制范圍,而在基于單播前綴的組播地址規(guī)范中,之后的8比特規(guī)定為保留位,必須為O,而最后的32比特規(guī)定為32比特的組播ID,用于直接映射為組播的MAC地址。因此,為了與這些規(guī)范相兼容,本發(fā)明實施例將第16比特到23比特設(shè)置為非O的值以和基于單播前綴生成的組播地址相區(qū)分,而第24到95比特這72比特用于放置生成的位置編碼。對于η比特而言,位置編碼需要int(log2(n-l))+2n+l比特,則最多允許η = 33的位置編碼。如果設(shè)置η = 24,則需要53比特,轉(zhuǎn)化的方式可以是直接將位置掩碼k放在第24到31位,而將位置編碼和((l?2k)-l)?(2n-2k)的按位與設(shè)置在32到79比特,80到95比特設(shè)置為0,參照圖9所示,則經(jīng)緯度為(116.3156326940,39.9953253066),掩碼為22的區(qū)域所對應(yīng)的組播地址就是FF3X:Y16:0e9d:5dd4:7870::Z(X為組播限制的范圍,Y為8比特非O的值,用于和單播前綴的組播地址相區(qū)分,Z為32比特的用于映射為MAC地址的組ID)。需要說明的是,實際使用時也可能采用更復(fù)雜的編碼方案如格雷碼等進行編碼。
[0079]進一步地,在本發(fā)明的一個實施例中,上網(wǎng)設(shè)備首先獲得自己的位置信息,通過這一信息得到與此位置相關(guān)的組播地址,通過這一組播地址和預(yù)先指定的范圍,上網(wǎng)設(shè)備可以互相知曉并且接收到該位置上的信息。
[0080]在本發(fā)明的實施例中,通過加入由地理位置信息編碼得到的組播IPv6地址,上網(wǎng)裝置可以容易地接受指定位置的特定信息。上網(wǎng)裝置在某一個地理位置時,通過定位設(shè)施得到自己的經(jīng)緯度,根據(jù)這一經(jīng)緯度信息,以及預(yù)先設(shè)置的范圍值,生成與該位置關(guān)聯(lián)的IPv6組播地址。通過加入到這一組,能夠與同在這一位置范圍的其他上網(wǎng)裝置進行互相通信。處在這一位置的上網(wǎng)裝置可能分散于不同的運營商網(wǎng)絡(luò)中,甚至可能并沒有接入到互聯(lián)網(wǎng),只是在局域網(wǎng)絡(luò)中,只要網(wǎng)絡(luò)中的交換機和路由器支持組播并向有需求者復(fù)制并轉(zhuǎn)發(fā)其所需數(shù)據(jù),主機就可以與這一位置相關(guān)的信息。
[0081]在本發(fā)明的一個實施例中,上述方法還包括:隨著地理位置的改變,重新獲得的地理位置和預(yù)先設(shè)置的位置掩碼,生成組播地址,并自動退出原位置所在的組播組,加入到新位置所在的組播組中。
[0082]在本發(fā)明的一個實施例中,上述方法還包括:修改預(yù)先設(shè)置的位置掩碼,以便加入到更大的地理范圍所形成的組播組,或者進入到更細(xì)致的地理范圍所形成的組播組;同時加入不同的位置編碼及掩碼映射成的組播組中,以同時接收來自于多個位置范圍的信息。
[0083]進一步地,在本發(fā)明的一個實施例中,例如上網(wǎng)設(shè)備通過定位模塊獲得該設(shè)備所在的地理位置,然后根據(jù)該地理位置獲得相應(yīng)的組播地址,然后加入該組播地址所指定的組中。隨著地理位置的切換,該上網(wǎng)設(shè)備自動生成新的組播地址,并自動退出原位置所在的組,加入到新地理位置所在的組中。而且,如果用戶對地理范圍的修改(包括希望進入到更大的地理范圍,或者進入到更細(xì)致的地理范圍),上網(wǎng)設(shè)備可以加入不同的組播組中。該上網(wǎng)設(shè)備也可以同時加入到多個不同范圍所針對的組播組中,以同時接收來自于多個位置范圍的信息。
[0084]在本發(fā)明的實施例中,隨著地理位置的切換,上網(wǎng)設(shè)備自動生成新的組播地址,并自動退出原位置所在的組,加入到新地理位置所在的組中。而且,如果用戶對地理范圍的修改(包括希望進入到更大的地理范圍,或者進入到更細(xì)致的地理范圍),上網(wǎng)設(shè)備可以加入不同的組播組中。該上網(wǎng)設(shè)備也可以同時加入到多個不同范圍所針對的組播組中,以同時接收來自于多個位置范圍的信息。
[0085]在本發(fā)明的一個實施例中,組播可以為任意源組播或特定源組播。其中,如上所述的上網(wǎng)設(shè)備在加入到特定地理位置所對應(yīng)的組播組后,若這一組播組是ASM(Any-SourceMulticast,任意源組播),則還可以彼此之間進行通信,實現(xiàn)同一位置的上網(wǎng)設(shè)備互相通信,通過采用任意源組播ASM方式,如上所述的上網(wǎng)設(shè)備在加入到特定地理位置所指定的組播后,還可以彼此之間進行通信。在ASM中,加入組播組的上網(wǎng)設(shè)備都可以向該組播組發(fā)布信息而讓其他用戶知曉,這樣就構(gòu)成了一個基于組播的特定位置的交流群體。
[0086]在本發(fā)明的實施例中,根據(jù)接收者對組播源處理方式的不同,組播可以分為ASM和SSM(Source-Specific Multicast,特定源組播)兩種。在ASM中,任意一個發(fā)送者都可以做發(fā)布者,眾多接收者通過加入由該組播組地址標(biāo)識的組播組以獲得發(fā)往該組播組的組播信息。而SSM則有所不同,在SSM中,用戶可能只對某些組播源發(fā)送的組播信息感興趣直接建立由(S,G)標(biāo)識的一個組播最短路徑樹,其中(G)表示一個特定的IP組播組地址,而
(S)表示發(fā)向組播組G的特定源的IP地址時。
[0087]本發(fā)明實施例的方法通過將自己的地理位置進行編碼,使得位置編碼不僅可以定位某個位置,還可以覆蓋一個區(qū)域,根據(jù)這一位置編碼,可以生成特定的組播地址,并利用組播接收與自己所在的指定位置相關(guān)的信息,能夠讓在同一個位置或者指定位置區(qū)域的上網(wǎng)設(shè)備互相知曉,相互通信,以及得到與特定位置相關(guān)的信息,使指定位置的信息發(fā)布和通信變得更為容易,實現(xiàn)與同在這一位置的其他上網(wǎng)設(shè)備進行通訊。
[0088]根據(jù)本發(fā)明實施例提出的地理位置編碼方法,通過分別將經(jīng)度和緯度的符號編碼至η比特的二進制的符號段內(nèi),并將經(jīng)度和緯度的絕對值編碼至η比特的二進制的數(shù)據(jù)段內(nèi),從而將經(jīng)度編碼的η比特的二進制和緯度編碼的η比特的二進制進行交叉合并,以獲取位置編碼,既使得生成的位置編碼以類似互聯(lián)網(wǎng)地址分層的形式展現(xiàn)出來,同時也方便了地理位置數(shù)據(jù)的分析、存儲和映射。
[0089]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實施例所屬【技術(shù)領(lǐng)域】的技術(shù)人員所理解。
[0090]在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實現(xiàn)在任何計算機可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計算機的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,"計算機可讀介質(zhì)"可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計算機可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀存儲器(ROM),可擦除可編輯只讀存儲器(EPR0M或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(⑶ROM)。另外,計算機可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因為可以例如通過對紙或其他介質(zhì)進行光學(xué)掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。
[0091]應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
[0092]本【技術(shù)領(lǐng)域】的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
[0093]此外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。
[0094]上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0095]在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
[0096]盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在不脫離本發(fā)明的原理和宗旨的情況下在本發(fā)明的范圍內(nèi)可以對上述實施例進行變化、修改、替換和變型。
【權(quán)利要求】
1.一種地理位置編碼方法,其特征在于,包括以下步驟: 獲取地理位置,其中,所述地理位置包括經(jīng)度和緯度; 將所述經(jīng)度編碼為η比特的二進制,其中,所述η比特的二進制包括符號段和數(shù)據(jù)段,所述數(shù)據(jù)段包括第一數(shù)據(jù)段和第二數(shù)據(jù)段,將所述經(jīng)度的符號編碼至所述符號段內(nèi),將所述經(jīng)度絕對值編碼至所述數(shù)據(jù)段內(nèi),其中,所述第一數(shù)據(jù)段表示所述經(jīng)度絕對值的整數(shù)部分,所述第二數(shù)據(jù)段表示所述經(jīng)度絕對值的小數(shù)部分,η為大于9的正整數(shù); 將所述緯度編碼為所述η比特的二進制,將所述緯度的符號編碼至所述符號段內(nèi),將所述緯度絕對值編碼至所述數(shù)據(jù)段內(nèi);以及 將所述經(jīng)度編碼的η比特的二進制和所述緯度編碼的η比特的二進制進行交叉合并,以獲取所述位置編碼。
2.根據(jù)權(quán)利要求1所述的地理位置編碼方法,其特征在于,所述將所述經(jīng)度編碼為η比特的二進制與所述將所述緯度編碼為η比特的二進制,具體包括: 通過將I個比特表示符號和8個比特表示小數(shù)點左側(cè)的數(shù)據(jù),并且將余下的η-9比特表示小數(shù)點右側(cè)的數(shù)據(jù),以將所述經(jīng)度編碼為η比特的二進制; 通過將I個比特表示符號和7個比特表示小數(shù)點左側(cè)的數(shù)據(jù),并且將余下的η-8比特表示小數(shù)點右側(cè)的數(shù)據(jù),以將所述緯度編碼為η比特的二進制。
3.根據(jù)權(quán)利要求1所述的地理位置編碼方法,其特征在于,所述將所述經(jīng)度編碼的η比特的二進制和所述緯度編碼的η比特的二進制進行交叉合并,以獲取所述位置編碼,具體包括: 將等長的所述經(jīng)度編碼的η比特的二進制和所述緯度編碼的η比特的二進制進行交叉合并,奇數(shù)位放所述經(jīng)度編碼的η比特的二進制,偶數(shù)位放所述緯度編碼的η比特的二進制,或者,奇數(shù)位放所述緯度編碼的η比特的二進制,偶數(shù)位放所述經(jīng)度編碼的η比特的二進制,以獲取所述位置編碼。
4.根據(jù)權(quán)利要求1所述的地理位置的編碼方法,其特征在于,還包括: 通過所述位置編碼和k所表示的位置掩碼描述地理位置范圍,其中,所述位置掩碼為k表示所有編碼的前2k比特與所述位置編碼的前2k比特相同的所有位置組成的區(qū)域,其中,k為大于2小于等于η的正整數(shù)。
5.根據(jù)權(quán)利要求4所述的地理位置編碼方法,其特征在于,還包括: 通過第一經(jīng)度和第二經(jīng)度所描述的經(jīng)度范圍以及第一緯度和第二緯度所描述的緯度范圍得到覆蓋這一地塊的位置編碼、掩碼系列,其中,所述第二經(jīng)度大于所述第一經(jīng)度,所述第二緯度大于所述第一緯度,具體包括以下步驟: 1)計算所述第一經(jīng)度和所述第一緯度所生成的編碼a和所述第二經(jīng)度和所述第二緯度生成的編碼b ; 2)設(shè)置變量X為a,變量k為I; 3)讓X和4k_l的二進制表示求按位比特與,判斷所得結(jié)果是否為O,如果為O則進入步驟4,否則進入步驟5 ; 4)判斷x+4k是否大于b,如果大于則進入步驟5,否則讓k= k+Ι后重復(fù)步驟3 ;
5)輸出X, k-Ι ; 6)設(shè)置X= X+415-1,判斷X是否大于b,如果大于b,則退出,否則設(shè)置k = I重復(fù)步驟
30
6.根據(jù)權(quán)利要求4所述的地理位置的編碼方法,其特征在于,還包括: 將所述位置編碼和所述位置掩碼映射到組播地址的第24比特到第95比特中,其中,所述組播地址為128位的IPv6地址; 根據(jù)所述組播地址加入相應(yīng)的組播組中,以通過所述組播組進行通信。
7.根據(jù)權(quán)利要求6所述的地理位置的編碼方法,其特征在于,組播為任意源組播或特定源組播。
8.根據(jù)權(quán)利要求6所述的地理位置的編碼方法,其特征在于,還包括: 隨著地理位置的改變,重新獲得的地理位置和預(yù)先設(shè)置的位置掩碼,生成所述組播地址,并自動退出原位置所在的組播組,加入到新位置所在的組播組中。
9.根據(jù)權(quán)利要求7所述的地理位置的編碼方法,其特征在于,還包括: 修改所述預(yù)先設(shè)置的位置掩碼,以便加入到更大的地理范圍所形成的組播組,或者進入到更細(xì)致的地理范圍所形成的組播組; 同時加入不同的位置編碼及掩碼映射成的組播組中,以同時接收來自于多個位置范圍的信息。
【文檔編號】G06F17/30GK104298740SQ201410528170
【公開日】2015年1月21日 申請日期:2014年10月9日 優(yōu)先權(quán)日:2014年10月9日
【發(fā)明者】張千里, 王繼龍, 李星 申請人:清華大學(xué)