專利名稱:興趣點檢索方法及裝置的制作方法
技術(shù)領域:
本發(fā)明涉及導航地理信息系統(tǒng),具體涉及一種興趣點(point of interest)檢索方法和興趣點檢索裝置。
背景技術(shù):
手機作為一種新型導航終端,得到了越來越廣泛的應用,興趣點檢索是手機導航一個很重要的應用。用戶如需查找當前位置周邊的興趣點,只需輸入興趣點類型或名稱,然后,觸發(fā)導航終端啟動興趣點檢索方法,查找距離用戶當前位置最近的并且符合檢索條件的興趣點。 關于興趣點檢索方法,現(xiàn)有技術(shù)采取的是根據(jù)用戶輸入的興趣點類型和用戶當前的經(jīng)度/緯度,由經(jīng)度/緯度計算出用戶輸入的當前點所在的圖幅及其旁邊的幾個圖幅,讀取這些圖幅中的興趣點數(shù)據(jù),計算周邊距離,若周邊距離小于預置的周邊距離,如5公里,則是符合檢索條件的興趣點,反之則為不符合檢索條件的興趣點,對符合檢索條件的興趣點進行排序,現(xiàn)有技術(shù)采用排序方法包括邊插邊排方法或符合檢索條件的興趣點達到一定數(shù)量進行一次排序的方法。 對于當前的手機終端,由于處理器速度較慢,內(nèi)存較小,現(xiàn)有技術(shù)存在以下缺點 1)要對當前城市的一個或幾個圖幅的所有數(shù)據(jù)即興趣點進行比較查找,而一個圖
幅包含幾萬個數(shù)據(jù),故讀取的數(shù)據(jù)量非常大。而且,圖幅中的每個興趣點數(shù)據(jù)點都要計算周
邊距離,而計算周邊距離的速度相對較慢,所以耗費的時間較長。 2)在周邊查找時,用于計算兩個興趣點周邊距離的時間比較長。 3)在周邊查找時,查找到的符合結(jié)果的數(shù)據(jù)要按周邊距離由小到大排序。 4)由于是動態(tài)分配內(nèi)存,系統(tǒng)和別的地方也要共用內(nèi)存,勢必影響速度。
發(fā)明內(nèi)容
本發(fā)明本發(fā)明旨在解決上述現(xiàn)有技術(shù)中的問題,提出一種能夠快速檢索興趣點的方法。 本發(fā)明的第二個目的是提供一種興趣點檢索裝置。 為了解決上述問題并達到上述目的,本發(fā)明的興趣點檢索方法包括以下步驟l)讀取圖幅中的興趣點的數(shù)據(jù);2)計算周邊范圍興趣點和周邊距離;3)用固定結(jié)點個數(shù)n的周邊二叉排序樹篩選符合要求的興趣點;4)把符合要求的興趣點取出來。
在本發(fā)明的興趣點檢索方法中,所有興趣點的經(jīng)度和緯度放在一起存儲,興趣點的其余數(shù)據(jù)放在它的后面一起存儲。 這樣就能把興趣點的詳細數(shù)據(jù)中的經(jīng)度和緯度與其余數(shù)據(jù)分開處理,每次計算周邊距離和周邊范圍興趣點時,只需讀出經(jīng)度和緯度,而不需要讀出其它數(shù)據(jù),從而縮短讀數(shù)據(jù)的時間。 在本發(fā)明的興趣點檢索方法中,在計算周邊距離前,判斷周邊范圍興趣點是不是在一個矩形范圍內(nèi)。矩形范圍在經(jīng)度和緯度上的范圍分別為A*B和A*C,其中A為最大允許長度,B為經(jīng)度系數(shù),C為緯度系數(shù)。如不是,就可判斷此興趣點不在要查找的范圍內(nèi)。如果當前位置興趣點與其他興趣點的經(jīng)度與經(jīng)度相減、緯度與緯度相減分別小于AAB、AW,則該興趣點在矩形范圍內(nèi),否則,該興趣點不在所述矩形范圍內(nèi)。 這樣,對于不是矩形范圍內(nèi)的興趣點,不需要再計算周邊距離,從而減少了計算周邊距離的時間。 在本發(fā)明的興趣點檢索方法中,引入固定結(jié)點個數(shù)n的周邊二叉排序樹,且二叉排序樹中所有結(jié)點的周邊距離總是最小的前面n個。并把最右邊即周邊距離最大的結(jié)點保存起來。這樣就可用如下步驟降低排序的時間。 步驟l :假如固定結(jié)點個數(shù)的周邊二叉排序樹中結(jié)點個數(shù)小于n, (n為固定結(jié)點個數(shù)的周邊二叉排序樹的固定結(jié)點個數(shù)即二叉排序樹結(jié)點個數(shù)的最大值),則按二叉排序樹插入新結(jié)點的方法插入此結(jié)點。但若此插入結(jié)點的周邊距離等于固定結(jié)點個數(shù)的周邊二叉排序樹中某結(jié)點A的周邊距離,則此插入結(jié)點作為結(jié)點A的左子結(jié)點插入。而結(jié)點A原來的左子結(jié)點放在插入結(jié)點的左子結(jié)點上。 步驟2 :假如固定結(jié)點個數(shù)的周邊二叉排序樹中結(jié)點個數(shù)等于n, (n為固定結(jié)點個數(shù)的周邊二叉排序樹的固定結(jié)點個數(shù)即二叉排序樹結(jié)點個數(shù)的最大值)。比較此新結(jié)點與周邊距離最大的結(jié)點即保存起來的最右邊的結(jié)點,看哪個周邊距離大;若此新結(jié)點大,則跳過,繼續(xù)比較下一個興趣點。若此新結(jié)點小,則刪掉固定結(jié)點個數(shù)的周邊二叉排序樹中最右邊的結(jié)點M,然后把新結(jié)點的值賦給已刪二叉樹中最右邊的結(jié)點M,再把已刪二叉樹中最右邊的結(jié)點M按二叉排序樹插入新結(jié)點的方法插入;后把新的二叉樹最右邊即周邊距離最大的結(jié)點保存起來;賦給結(jié)點M。繼續(xù)比較下一個興趣點。若此新結(jié)點的周邊距離等于固定結(jié)點個數(shù)的周邊二叉排序樹中某結(jié)點B的周邊距離,則刪掉固定結(jié)點個數(shù)的周邊二叉排序樹中最右邊的結(jié)點M,然后把新結(jié)點的值賦給已刪二叉樹中最右邊的結(jié)點M,把此已刪二叉樹中最右邊的結(jié)點M作為結(jié)點B的左子結(jié)點插入,而結(jié)點B原來的左子結(jié)點放在此已刪二叉樹中最右邊的結(jié)點M的左子結(jié)點上;后把新的二叉樹最右邊即周邊距離最大的結(jié)點保存起來;賦給結(jié)點M。繼續(xù)比較下一個興趣點。 由于固定結(jié)點個數(shù)的周邊二叉排序樹固定使用n個結(jié)點,即只用數(shù)組[n]海個數(shù)組成員的大小為固定結(jié)點個數(shù)的周邊二叉排序樹的結(jié)點大小。結(jié)點的左子樹,右子樹,父親結(jié)點均用下標1到n之一表示;實現(xiàn)內(nèi)存的自行管理;避免因內(nèi)存太小,頻繁動態(tài)分配而造成的速度慢的問題。從而總體上提高速度。
最后通過二叉排序樹的中序遍歷即可得到結(jié)果。 因為手機的屏幕較小,其處理器速度慢且內(nèi)存小,優(yōu)選地,n取值為50到200。
上述方法中,讀數(shù)據(jù)作用是把圖幅中的興趣點經(jīng)度和緯度讀出來,用于計算周邊范圍興趣點和周邊距離。計算周邊范圍興趣點和周邊距離作用是判斷給定任一興趣點是否為想要的周邊興趣點。用固定結(jié)點個數(shù)的周邊二叉排序樹篩選符合要求的興趣點作用是對符合周邊距離要求的即周邊距離小于一定數(shù)值的興趣點是否應留在周邊二叉排序樹內(nèi)。當所有興趣點數(shù)據(jù)都處理完后,最終留在周邊二叉排序樹內(nèi)的興趣點就是所要得到的興趣點。把符合要求的興趣點取出來作用是把周邊二叉排序樹內(nèi)的興趣點取出來,轉(zhuǎn)換成興趣點的詳細數(shù)據(jù)。
本發(fā)明進一步提出一種興趣點檢索裝置,其包括存儲單元、中心計算單元、結(jié)果輸出單元;存儲單元存放著圖幅中的興趣點數(shù)據(jù),中心計算單元讀取存儲單元中的興趣點數(shù)據(jù),計算周邊范圍興趣點和周邊距離,用固定結(jié)點個數(shù)n的周邊二叉排序樹篩選符合要求的興趣點,最后把符合要求的興趣點取出來,輸出到結(jié)果輸出單元。 通過上述方法和裝置,可以減小每個興趣點的計算時間、兩個興趣點間周邊距離的計算時間、以及符合結(jié)果的興趣點點查找時間,從而大大減小了檢索時間。另外,該方法實現(xiàn)了內(nèi)存的自行管理,避免因終端內(nèi)存太小、頻繁分配而造成的速度慢的問題。
圖1為本發(fā)明的興趣點檢索方法的步驟流程圖; 圖2a_圖2d是依照本發(fā)明的興趣點檢索方法的一個優(yōu)選實施例的流程圖。
具體實施例方式
從對說明本發(fā)明的主旨及其使用的優(yōu)選實施例和附圖的以下描述來看,本發(fā)明的以上和其它目的、特點和優(yōu)點將是顯而易見的。
術(shù)語定義 距離是指兩個具有不同經(jīng)度和緯度的點在平面直角坐標系中連接起來所形成的直線段長度。 周邊距離是指在汽車導航中汽車當前所在的興趣點與周圍任一確定的興趣點之間的距離。 周邊二叉樹是指二叉樹中的結(jié)點保存有左子樹,右子樹,父親結(jié)點和周邊距離的二叉樹。 周邊二叉排序樹是指二叉樹按中序遍歷后,所得到的結(jié)點按周邊距離由小到大有序排列的周邊二叉樹。 固定結(jié)點個數(shù)的周邊二叉排序樹是指周邊二叉排序樹的結(jié)點數(shù)不超過固定結(jié)點個數(shù)(假定為n);當周邊二叉排序樹的結(jié)點數(shù)超過n時,如要插入新結(jié)點,必須先把最右邊的結(jié)點刪掉;用此刪掉結(jié)點作為新結(jié)點,賦給初值,然后按二叉排序樹插入新結(jié)點的方法插入此新結(jié)點。若周邊二叉排序樹的結(jié)點數(shù)小于n時,按二叉排序樹插入新結(jié)點的方法插入此新結(jié)點。 周邊范圍興趣點是指在平面直角坐標系中,與在汽車導航中汽車當前所在的興趣點在水平和垂直方向上的長度都小于一定數(shù)值的興趣點。
興趣點的詳細數(shù)據(jù)是指興趣點有關的所有數(shù)據(jù)。如經(jīng)度、緯度、興趣點名稱、地
址、簡拼、城鎮(zhèn)名、電話號碼等。
圖1是本發(fā)明實施例的主要步驟 (1)讀取圖幅中的興趣點的數(shù)據(jù),把興趣點的經(jīng)度和諱度讀出來。
(2)計算周邊范圍興趣點和周邊距離。
(3)用固定結(jié)點個數(shù)的周邊二叉排序樹篩選符合要求興趣點。
(4)還有數(shù)據(jù)要處理,轉(zhuǎn)到(1)。所有數(shù)據(jù)都讀出來并處理完轉(zhuǎn)到(5)。
(5)用中序遍歷把所有符合要求的興趣點都取出來。
6
該實施例中用到的數(shù)據(jù)結(jié)構(gòu)如下 固定結(jié)點個數(shù)的周邊二叉排序樹中結(jié)點的數(shù)據(jù)結(jié)構(gòu) typedef struct tagBinTreeStruct {Unsigned char iParent ;〃父親結(jié)點指向的下標Unsigned char iLeft ;〃左子樹結(jié)點指向的下標Unsigned char iRight ;〃右子樹結(jié)點指向的下標long iDistance ;〃周邊距離long iOffset ;〃P0I點的偏移地址 )BinTreeSt潔t ; #define MAX—PATH 256 在該實施例中,用到多個變量,含義如下 #define n 50〃固定結(jié)點個數(shù)的周邊二叉排序樹最大結(jié)點個數(shù),優(yōu)選地n為50-100,在該實施例中n取50 ;BinTreeSt潔t BTN[n+l]〃BTN[n+l]為n+1個結(jié)點數(shù)組。BTN[O]不用;
XB為數(shù)組BTN[n+l]下標值,為1至U n ;
MAX_AROUND即周邊距離最大值,為5000米; RR為固定結(jié)點個數(shù)的周邊二叉排序樹中最右邊的點,即固定結(jié)點個數(shù)的周邊二叉排序樹中周邊距離最大的結(jié)點; disTemp為周邊范圍POI點與汽車當前所在的POI點之間的周邊距離;
searchPos為臨時變量。 圖2a到圖2d是篩選符合要求的興趣點的具體實現(xiàn)。 (1)各種數(shù)據(jù)的初始化;數(shù)組BTN初始化,大小為(n+1),下標零不用,只用1到n作為二叉樹模擬的下標,設周邊距離最大值MAX—AROUND為5公里,令下標XB初值為l,設n為50。 (2)A1 :興趣點的經(jīng)度、緯度數(shù)據(jù)讀完,把符合要求的興趣點取出來并退出;否則讀興趣點的經(jīng)度和諱度。 (3)用經(jīng)度和緯度范圍分別為A*B和A*C矩形范圍來判斷是周邊范圍興趣點嗎?
如果當前位置興趣點與其他興趣點的經(jīng)度與經(jīng)度相減、緯度與緯度相減分別小于AAB、AW,
則該興趣點在矩形范圍內(nèi),是周邊范圍興趣點,否則,該興趣點不在所述矩形范圍內(nèi),不是
周邊范圍興趣點。其中A為最大允許長度為5公里,B為經(jīng)度系數(shù),C為緯度系數(shù)。 (4)不是周邊范圍興趣點,讀下一個興趣點,轉(zhuǎn)到A1。是周邊范圍興趣點,轉(zhuǎn)到
(5)。 (5)計算周邊范圍興趣點與汽車當前所在的興趣點之間的周邊距離disTemp。
(6)判斷周邊距離disTemp是否小于周邊距離最大值MAX—AROUND,比如,預置的五公里。 (7)否,讀下一個興趣點,轉(zhuǎn)到A1。是,轉(zhuǎn)到(8)。
(8)判斷固定結(jié)點個數(shù)的周邊二叉排序樹是否為空,即判斷根結(jié)點是否為零。
(9)是,轉(zhuǎn)到(10)。否,轉(zhuǎn)到(11)。
7
(10)根結(jié)點等于下標XB,數(shù)組第XB個值BTN[XB]的值為父親結(jié)點為零;左子樹為 零;右子樹為零,保存當前周邊距離的值;保存興趣點的地址值。最右邊的點即周邊距離最 大的結(jié)點RR為根節(jié)點。下標XB增一。(注RR不屬于BTN[XB]的值域范圍)。讀下一個 興趣點,轉(zhuǎn)到A1。 (11)下標XB是否大于等于(n+1)。
(12)否,轉(zhuǎn)到A4。是,轉(zhuǎn)到(13)。 (13)當前周邊距離的值是否大于BTN[RR]的周邊距離的值。RR為固定結(jié)點個數(shù) 的周邊二叉排序樹中最右邊的點,即固定結(jié)點個數(shù)的周邊二叉排序樹中周邊距離最大的結(jié) 點。 (14)是,讀下一個興趣點,轉(zhuǎn)到A1。否,轉(zhuǎn)到(15)。 (15)把根節(jié)點賦給searchPos, searchPos為臨時變量。 (16) A2 :searchPos是否為葉子節(jié)點。 (17)是,讀下一個興趣點,轉(zhuǎn)到A1。否,轉(zhuǎn)到(18)。 (18)當前周邊距離disTemp是否等于BTN[searchPos]的周邊距離。 (19)等于,轉(zhuǎn)到(20)。不等于,轉(zhuǎn)到(24)。
(20)最右邊的點即周邊距離最大的結(jié)點RR是否為根節(jié)點。 (21)是,轉(zhuǎn)到(22)。否,轉(zhuǎn)到(23)。 (22)保存興趣點地址給最右邊的點即周邊距離最大的結(jié)點RR中的興趣點地址; 轉(zhuǎn)到下一個興趣點;轉(zhuǎn)向Al。 (23)改變RR結(jié)點的結(jié)點關系,把它從二叉樹中刪去。數(shù)組第RR個值BTN[RR]的
值為父親結(jié)點為searchPos ;左子樹為searchPos的左子樹;右子樹為零,保存當前周邊距
離的值;保存興趣點的地址值。把RR插入到searchPos的左子樹中;尋找最右邊的點即周
邊距離最大的結(jié)點賦給RR結(jié)點。轉(zhuǎn)到下一個興趣點;轉(zhuǎn)向Al。 (24)當前周邊距離是否小于BTN[searchPos]的周邊距離。 (25)否,轉(zhuǎn)到A3。是,轉(zhuǎn)到(26)。 (26) BTN [searchPos]的左子樹是否為零。 (27)不是,轉(zhuǎn)到(28)。是,轉(zhuǎn)到(29)。 (28) BTN [searchPos]的左子樹賦給searchPos轉(zhuǎn)向A2 。 (29)改變RR結(jié)點的結(jié)點關系,把它從二叉樹中刪去。數(shù)組第RR個值BTN[RR]的
值為父親結(jié)點為searchPos ;左子樹為零;右子樹為零,保存當前周邊距離的值;保存興趣
點的地址值。把RR插入到searchPos的左子樹中;尋找最右邊的點即周邊距離最大的結(jié)點
賦給RR結(jié)點。轉(zhuǎn)到下一個興趣點;轉(zhuǎn)向Al。 (30)A3 :BTN[searchPos]的右子樹是否為零。 (31)不為零,轉(zhuǎn)到(32)。為零,轉(zhuǎn)到(33)。 (32) BTN [searchPos]的右子樹賦給searchPos轉(zhuǎn)向A2。 (33)改變RR結(jié)點的結(jié)點關系,把它從二叉樹中刪去。數(shù)組第RR個值BTN[RR]的 值為父親結(jié)點為searchPos ;左子樹為零;右子樹為零,保存當前周邊距離的值;保存興趣 點的地址值。把RR插入到searchPos的右子樹中;尋找最右邊的點即周邊距離最大的結(jié)點 賦給RR結(jié)點。轉(zhuǎn)到下一個興趣點;轉(zhuǎn)向Al。
8
(34)A4 :把根節(jié)點賦給searchPos, searchPos為臨時變量。 (35) A5 :searchPos是否為葉子節(jié)點。 (36)是,讀下一個興趣點,轉(zhuǎn)到A1。否,轉(zhuǎn)到(37)。 (37)當前周邊距離是否等于BTN[searchPos]的周邊距離。 (38)等于,轉(zhuǎn)到(39)。不等于,轉(zhuǎn)到(40)。 (39)數(shù)組第XB個值BTN[XB]的值為父親結(jié)點為searchPos ;左子樹為searchPos 的左子樹;右子樹為零,保存當前周邊距離的值;保存興趣點的地址值。把XB插入到 searchPos的左子樹中;尋找最右邊的點即周邊距離最大的結(jié)點賦給RR結(jié)點。下標XB增 一。轉(zhuǎn)到下一個興趣點;轉(zhuǎn)向Al。 (40)當前周邊距離是否小于BTN[searchPos]的周邊距離。 (41)是,轉(zhuǎn)到(42)。否,轉(zhuǎn)到(43)。 (42)BTN[searchPos]的左子樹是否為零。 (43)否,轉(zhuǎn)到(44)。是,轉(zhuǎn)到(45)。 (44) BTN [searchPos]的左子樹賦給searchPos轉(zhuǎn)向A5 。 (45)數(shù)組第XB個值BTN[XB]的值為父親結(jié)點為searchPos ;左子樹為零;右子樹 為零,保存當前周邊距離的值;保存興趣點的地址值。把XB插入到searchPos的左子樹中; 尋找最右邊的點即周邊距離最大的結(jié)點賦給RR結(jié)點。下標XB增一。轉(zhuǎn)到下一個興趣點; 轉(zhuǎn)向Al。 (46) BTN [searchPos]的右子樹是否為零。 (47)否,轉(zhuǎn)到(48)。是,轉(zhuǎn)到(49)。 (48) BTN [searchPos]的右子樹賦給searchPos轉(zhuǎn)向A5。 (49)數(shù)組第XB個值BTN[XB]的值為父親結(jié)點為searchPos ;左子樹為零;右子樹 為零,保存當前周邊距離的值;保存興趣點的地址值。把XB插入到searchPos的右子樹中; 尋找最右邊的點即周邊距離最大的結(jié)點賦給RR結(jié)點。下標XB增一。轉(zhuǎn)到下一個興趣點; 轉(zhuǎn)向Al。 通過這些步驟,可以使周邊查找與關鍵字索引查找在速度上達到同一個檔次。而 關鍵字索引查找在手機上的速度是快的。 本發(fā)明的興趣點檢索方法可以用在手機等移動終端上,使該移動終端成為一種興 趣點檢索裝置。移動終端包括存儲單元、中心計算單元、結(jié)果輸出單元;存儲單元存放著圖 幅中的興趣點數(shù)據(jù),中心計算單元讀取存儲單元中的興趣點數(shù)據(jù),計算周邊范圍興趣點和 周邊距離,用固定結(jié)點個數(shù)n的周邊二叉排序樹篩選符合要求的興趣點,最后把符合要求 的興趣點取出來,輸出到結(jié)果輸出單元。 盡管已示出和描述了本發(fā)明的優(yōu)選實施例,可以設想,本領域的技術(shù)人員可在所 附權(quán)利要求的精神和范圍內(nèi)對本發(fā)明的進行各種修改。
權(quán)利要求
一種興趣點檢索方法,其包括以下步驟1)讀取圖幅中興趣點的數(shù)據(jù);2)計算周邊范圍興趣點和周邊距離;3)用固定結(jié)點個數(shù)n的周邊二叉排序樹篩選符合要求的興趣點;4)把符合要求的興趣點取出來。
2. 如權(quán)利要求1所述的興趣點檢索方法,其特征在于所有的興趣點的數(shù)據(jù)的經(jīng)度和緯度放在一起存儲,興趣點的其他數(shù)據(jù)放在其后面一起 存儲。
3. 如權(quán)利要求1所述的興趣點檢索方法,其特征在于在計算周邊距離前,判斷周邊范圍興趣點是不是在一個矩形范圍內(nèi);如果是,就可判斷 此興趣點在要查找的范圍內(nèi);如果不是,就可判斷此興趣點不在要查找的范圍內(nèi)。
4. 如權(quán)利要求3所述的興趣點檢索方法,其特征在于所述矩形范圍在經(jīng)度和緯度上的范圍分別為A*B和A*C,其中A為最大允許長度,B為 經(jīng)度系數(shù),C為諱度系數(shù)。
5. 如權(quán)利要求4所述的興趣點檢索方法,其特征在于其中最大允許長度A為5公里。
6. 如權(quán)利要求4或5所述的興趣點檢索方法,其特征在于如果當前位置興趣點與其 他興趣點的經(jīng)度與經(jīng)度相減、緯度與緯度相減分別小于A*B、A*C,則該興趣點在所述矩形范 圍內(nèi),否則,該興趣點不在所述矩形范圍內(nèi)。
7. 如權(quán)利要求1所述的興趣點檢索方法,其特征在于假如固定結(jié)點個數(shù)的周邊二叉排序樹中結(jié)點個數(shù)小于n,則按二叉排序樹插入新結(jié)點 的方法插入此結(jié)點;但若此插入結(jié)點的周邊距離等于固定結(jié)點個數(shù)的周邊二叉排序樹中某 結(jié)點A的周邊距離,則此插入結(jié)點作為結(jié)點A的左子結(jié)點插入;而結(jié)點A原來的左子結(jié)點放 在插入結(jié)點的左子結(jié)點上;假如固定結(jié)點個數(shù)的周邊二叉排序樹中結(jié)點個數(shù)等于n ;比較此新結(jié)點與周邊距離最 大的結(jié)點即保存起來的最右邊的結(jié)點,看哪個周邊距離大;若此新結(jié)點大,則跳過,繼續(xù)比 較下一個興趣點;若此新結(jié)點小,則刪掉固定結(jié)點個數(shù)的周邊二叉排序樹中最右邊的結(jié)點 M,然后把新結(jié)點的值賦給已刪二叉樹中最右邊的結(jié)點M,再把已刪二叉樹中最右邊的結(jié)點 M按二叉排序樹插入新結(jié)點的方法插入;后把新的二叉樹最右邊即周邊距離最大的結(jié)點保 存起來;賦給結(jié)點M ;繼續(xù)比較下一個興趣點;若此新結(jié)點的周邊距離等于固定結(jié)點個數(shù)的 周邊二叉排序樹中某結(jié)點B的周邊距離,則刪掉固定結(jié)點個數(shù)的周邊二叉排序樹中最右邊 的結(jié)點M,然后把新結(jié)點的值賦給已刪二叉樹中最右邊的結(jié)點M,把此已刪二叉樹中最右邊 的結(jié)點M作為結(jié)點B的左子結(jié)點插入,而結(jié)點B原來的左子結(jié)點放在此已刪二叉樹中最右 邊的結(jié)點M的左子結(jié)點上;后把新的二叉樹最右邊即周邊距離最大的結(jié)點保存起來;賦給 結(jié)點M ;繼續(xù)比較下一個興趣點。
8. 如權(quán)利要求7所述的興趣點檢索方法,其特征在于 n的取值為50-200。
9. 如權(quán)利要求7所述的興趣點檢索方法,其特征在于在把符合要求的興趣點取出來之前,通過二叉排序樹的中序遍歷來得到符合要求的興 趣點。
10. —種興趣點檢索裝置,其包括存儲單元、中心計算單元、結(jié)果輸出單元;存儲單元 存放圖幅中的興趣點數(shù)據(jù),中心計算單元讀取存儲單元中的興趣點數(shù)據(jù),計算周邊范圍興 趣點和周邊距離,然后用固定結(jié)點個數(shù)n的周邊二叉排序樹篩選符合要求的興趣點,最后 把符合要求的興趣點取出來,輸出到結(jié)果輸出單元。
11. 如權(quán)利要求10所述的興趣點檢索裝置,其特征在于所有的興趣點的數(shù)據(jù)的經(jīng)度 和緯度放在一起存儲,興趣點的其他數(shù)據(jù)放在其后面一起存儲。
12. 如權(quán)利要求11所述的興趣點檢索裝置,其特征在于在計算周邊距離前,判斷周邊 范圍興趣點是不是在一個矩形范圍內(nèi);如果是,就可判斷此興趣點在要查找的范圍內(nèi);如 果不是,就可判斷此興趣點不在要查找的范圍內(nèi)。
13. 如權(quán)利要求12所述的興趣點檢索裝置,其特征在于所述矩形范圍在經(jīng)度和緯度上的范圍分別為A*B和A*C,其中A為最大允許長度,B為 經(jīng)度系數(shù),C為諱度系數(shù)。
14. 如權(quán)利要求13所述的興趣點檢索裝置,其特征在于其中最大允許長度A為5公里。
15. 如權(quán)利要求13或14所述的興趣點檢索裝置,其特征在于如果當前位置興趣點與 其他興趣點的經(jīng)度與經(jīng)度相減、緯度與緯度相減分別小于A*B、A*C,則該興趣點在所述矩形 范圍內(nèi),否則,該興趣點不在所述矩形范圍內(nèi)。
16. 如權(quán)利要求10所述的興趣點檢索裝置,其特征在于假如固定結(jié)點個數(shù)的周邊二叉排序樹中結(jié)點個數(shù)小于n,則按二叉排序樹插入新結(jié)點 的方法插入此結(jié)點;但若此插入結(jié)點的周邊距離等于固定結(jié)點個數(shù)的周邊二叉排序樹中某 結(jié)點A的周邊距離,則此插入結(jié)點作為結(jié)點A的左子結(jié)點插入;而結(jié)點A原來的左子結(jié)點放 在插入結(jié)點的左子結(jié)點上;假如固定結(jié)點個數(shù)的周邊二叉排序樹中結(jié)點個數(shù)等于n ;比較此新結(jié)點與周邊距離最 大的結(jié)點即保存起來的最右邊的結(jié)點,看哪個周邊距離大;若此新結(jié)點大,則跳過,繼續(xù)比 較下一個興趣點;若此新結(jié)點小,則刪掉固定結(jié)點個數(shù)的周邊二叉排序樹中最右邊的結(jié)點 M,然后把新結(jié)點的值賦給已刪二叉樹中最右邊的結(jié)點M,再把已刪二叉樹中最右邊的結(jié)點 M按二叉排序樹插入新結(jié)點的方法插入;后把新的二叉樹最右邊即周邊距離最大的結(jié)點保 存起來;賦給結(jié)點M ;繼續(xù)比較下一個興趣點;若此新結(jié)點的周邊距離等于固定結(jié)點個數(shù)的 周邊二叉排序樹中某結(jié)點B的周邊距離,則刪掉固定結(jié)點個數(shù)的周邊二叉排序樹中最右邊 的結(jié)點M,然后把新結(jié)點的值賦給已刪二叉樹中最右邊的結(jié)點M,把此已刪二叉樹中最右邊 的結(jié)點M作為結(jié)點B的左子結(jié)點插入,而結(jié)點B原來的左子結(jié)點放在此已刪二叉樹中最右 邊的結(jié)點M的左子結(jié)點上;后把新的二叉樹最右邊即周邊距離最大的結(jié)點保存起來;賦給 結(jié)點M ;繼續(xù)比較下一個興趣點。
17. 如權(quán)利要求16所述的興趣點檢索裝置,其特征在于 n的取值為50-200。
18. 如權(quán)利要求16所述的興趣點檢索裝置,其特征在于在把符合要求的興趣點取出來之前,通過二叉排序樹的中序遍歷來得到符合要求的興 趣點。
全文摘要
本發(fā)明涉及一種興趣點檢索方法,其包括以下步驟1)讀取圖幅中的興趣點的數(shù)據(jù);2)計算周邊范圍興趣點和周邊距離;3)用固定結(jié)點個數(shù)n的周邊二叉排序樹篩選符合要求的興趣點;4)把符合要求的興趣點取出來。通過該方法,可以減小每個興趣點的計算時間、兩個興趣點間周邊距離的計算時間、以及符合結(jié)果的興趣點點查找時間,從而大大減小了檢索時間。另外,該方法實現(xiàn)了內(nèi)存的自行管理,避免因終端內(nèi)存太小、頻繁分配而造成的速度慢的問題。
文檔編號G06F17/30GK101726312SQ200810224269
公開日2010年6月9日 申請日期2008年10月15日 優(yōu)先權(quán)日2008年10月15日
發(fā)明者陳貴通 申請人:高德信息技術(shù)有限公司