一種基于大內(nèi)存的地圖搜索方法
【專利摘要】本發(fā)明公開了一種基于大內(nèi)存的地圖搜索方法,包括以下步驟:(1)對(duì)于每一次的搜索,在內(nèi)存中臨時(shí)建立一個(gè)最大堆和一個(gè)搜索結(jié)果隊(duì)列,最大堆的結(jié)點(diǎn)數(shù)目與緩存隊(duì)列的數(shù)量相同,且每個(gè)結(jié)點(diǎn)對(duì)應(yīng)不同的緩存隊(duì)列,在最大堆的結(jié)點(diǎn)中存入相應(yīng)的緩存隊(duì)列的頭節(jié)點(diǎn);(2)在最大堆中取出滿足搜索要求的結(jié)點(diǎn)中所存儲(chǔ)的對(duì)應(yīng)最新圖片的節(jié)點(diǎn),將該節(jié)點(diǎn)放入搜索結(jié)果隊(duì)列中,并將相應(yīng)緩存隊(duì)列中的下一個(gè)節(jié)點(diǎn)放入最大堆中;(3)重復(fù)步驟(2),直至搜索結(jié)果隊(duì)列的數(shù)據(jù)量達(dá)到要求;(4)輸出搜索結(jié)果隊(duì)列,獲得滿足搜索要求的地圖。本發(fā)明可以進(jìn)行二維空間地圖的高效率搜索,而且,通過內(nèi)存和硬盤中的并行搜索,快速得到搜索結(jié)果以及搜索結(jié)果的總數(shù)量。
【專利說明】—種基于大內(nèi)存的地圖搜索方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)搜索領(lǐng)域,具體涉及一種基于大內(nèi)存的地圖搜索方法。
【背景技術(shù)】
[0002]隨著空間技術(shù)的不斷發(fā)展,空間衛(wèi)星技術(shù)的不斷完善,能夠獲取越來越多且越來越清晰的空間圖片數(shù)據(jù),隨之產(chǎn)生的問題就是如何對(duì)海量的空間圖片數(shù)據(jù)進(jìn)行存儲(chǔ)、讀取和利用。
[0003]數(shù)據(jù)存儲(chǔ)已經(jīng)有比較多的解決方案,但是如何高效率地利用起這些空間圖片數(shù)據(jù)仍是一個(gè)難題,現(xiàn)有的很多應(yīng)用只是用到了空間圖片數(shù)據(jù)的一部分,并且功能和效率都有待提聞。
[0004]現(xiàn)有的大部分應(yīng)用只是簡單的將圖片數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫也就是硬盤之中,而硬盤的讀寫效率非常低,尤其在數(shù)據(jù)量十分龐大的情況下,因此,目前很多網(wǎng)站和應(yīng)用都只支持對(duì)最新500張圖片的搜索顯示,使得功能大打折扣,用戶體驗(yàn)不好。如果支持全部圖片的搜索,在進(jìn)行硬盤全盤掃描的效率十分低下,要兼顧搜索的數(shù)量和搜索效率在技術(shù)上來說是比較困難的。
[0005]空間圖片數(shù)據(jù)的數(shù)據(jù)量非常大,往往在百萬級(jí)以上,所以只能使用文件系統(tǒng)和數(shù)據(jù)庫存儲(chǔ)這些海量數(shù)據(jù),僅使用內(nèi)存是不可能全部裝下這些海量數(shù)據(jù)的,但是用戶進(jìn)行搜索的時(shí)候,在大部分情況下真正想看到的數(shù)據(jù)其實(shí)只是極小的一部分,就是最新最重要的那部分?jǐn)?shù)據(jù),而這部分?jǐn)?shù)據(jù)的數(shù)據(jù)量很少,因此,可以利用近些年越來越廉價(jià)而且效率越來越高的內(nèi)存環(huán)境,搭建緩存系統(tǒng),在大內(nèi)存的前提下,實(shí)現(xiàn)對(duì)圖片搜索的快速支持,使用戶對(duì)最新圖片的搜索可以在很短的時(shí)間內(nèi)得到響應(yīng)。
[0006]在申請(qǐng)公布日為CN103412947A的專利文獻(xiàn)中公開了一種針對(duì)空間大數(shù)據(jù)的多邊形搜索方法,文中提到過如何用最小外接矩形過濾和多邊形算法過濾來實(shí)現(xiàn)二維地圖上的多邊形搜索框和菱形狀態(tài)的空間遙感圖片進(jìn)行匹配搜索,在內(nèi)存中構(gòu)架緩存系統(tǒng)以及進(jìn)行圖片數(shù)據(jù)搜索時(shí),可以對(duì)這一搜索方法進(jìn)行適當(dāng)改進(jìn),以適應(yīng)搜索需求。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提供了一種基于大內(nèi)存的地圖搜索方法,適用于空間遙感圖片的搜索,可以進(jìn)行二維空間地圖的高效率搜索,而且,通過內(nèi)存和硬盤中的搜索,快速得到搜索結(jié)果以及搜索結(jié)果的總數(shù)量。
[0008]一種基于大內(nèi)存的地圖搜索方法,在內(nèi)存中,每個(gè)地理區(qū)域?qū)?yīng)設(shè)有一個(gè)緩存隊(duì)列,所述緩存隊(duì)列中存儲(chǔ)相應(yīng)地理區(qū)域的地圖,每個(gè)緩存隊(duì)列中所存儲(chǔ)的地圖依據(jù)時(shí)間從新到舊的順序依次排列,所述地圖搜索方法包括以下步驟:
[0009](I)輸入搜索要求,在內(nèi)存中臨時(shí)建立一個(gè)最大堆和一個(gè)搜索結(jié)果隊(duì)列,最大堆的結(jié)點(diǎn)數(shù)目與緩存隊(duì)列的數(shù)量相同,且每個(gè)結(jié)點(diǎn)對(duì)應(yīng)不同的緩存隊(duì)列,在最大堆的結(jié)點(diǎn)中存入相應(yīng)的緩存隊(duì)列的頭節(jié)點(diǎn)。[0010]每一次搜索時(shí),都臨時(shí)建立一個(gè)最大堆和一個(gè)搜索結(jié)果隊(duì)列,搜索過程完成后,釋放最大堆和搜索結(jié)果隊(duì)列所占用的數(shù)據(jù)結(jié)構(gòu)和內(nèi)存。
[0011](2)在最大堆中取出滿足搜索要求的結(jié)點(diǎn)中所存儲(chǔ)的對(duì)應(yīng)最新圖片的節(jié)點(diǎn),將該節(jié)點(diǎn)放入搜索結(jié)果隊(duì)列中,并將相應(yīng)緩存隊(duì)列中的下一個(gè)節(jié)點(diǎn)放入最大堆中。
[0012]每次取出的節(jié)點(diǎn)都對(duì)應(yīng)最大堆中最新的圖片。搜索要求利用坐標(biāo)定義多邊形區(qū)域,滿足搜索要求,即節(jié)點(diǎn)所對(duì)應(yīng)的地圖與所要搜索的區(qū)域具有重疊的部分。
[0013](3)重復(fù)步驟(2),直至搜索結(jié)果隊(duì)列的數(shù)據(jù)量達(dá)到要求。
[0014](4)輸出搜索結(jié)果隊(duì)列,獲得滿足搜索要求的地圖。
[0015]本發(fā)明中所述的地圖為空間遙感圖片,地理區(qū)域可以依據(jù)需要進(jìn)行設(shè)定,例如,可以將每個(gè)國家作為一個(gè)地理區(qū)域,或者就中國的地區(qū)搜索而言,將每個(gè)省級(jí)行政區(qū)設(shè)定為一個(gè)地理區(qū)域。
[0016]每個(gè)地理區(qū)域?qū)?yīng)一個(gè)緩存隊(duì)列,每個(gè)緩存隊(duì)列中存儲(chǔ)包含該地理區(qū)域全部或部分的地圖。
[0017]作為優(yōu)選,建立緩存隊(duì)列時(shí),求取每個(gè)地理區(qū)域的最小外接矩形,若某張地圖所對(duì)應(yīng)的最小外接矩形與某一地理區(qū)域的最小外接矩形有重疊,則將該張地圖放入所對(duì)應(yīng)地理區(qū)域的緩存隊(duì)列中;若某張地圖所對(duì)應(yīng)的最小外接矩形與多個(gè)地理區(qū)域的最小外接矩形有重疊,則將該張地圖放入所對(duì)應(yīng)地多個(gè)地理區(qū)域的緩存隊(duì)列中。
[0018]求取最小外接矩形的步驟如下:讀取每個(gè)地理區(qū)域或者地圖所對(duì)應(yīng)的最大經(jīng)度X1、最小經(jīng)度χ2、最高諱度Ii 以及最低諱度y2,這四個(gè)值構(gòu)成四個(gè)坐標(biāo)分別為(χι,Υι)> (χι?y2)、(x2, yi)、(x2, y2),四個(gè)坐標(biāo)即為最小外接矩形的四個(gè)頂點(diǎn)。
[0019]重疊的定義為兩個(gè)最小外接矩形至少包含一個(gè)相同的點(diǎn),緩存隊(duì)列處在不斷更新中,出現(xiàn)新地圖時(shí)即進(jìn)行重疊判斷,將新地圖放入對(duì)應(yīng)的地理區(qū)域的緩存隊(duì)列中。
[0020]例如,某張地圖包括了浙江和安徽交界區(qū)域,則將該地圖同時(shí)放入浙江的緩存隊(duì)列中,以及安徽的緩存隊(duì)列中;若某張地圖同時(shí)包括了浙江、安徽和上海,則將該地圖同時(shí)放入浙江的緩存隊(duì)列中、安徽的緩存隊(duì)列中以及上海的緩存隊(duì)列中。
[0021]某張地圖可能存在于一個(gè)或多個(gè)緩存隊(duì)列中,若只存在于一個(gè)緩存隊(duì)列中,則沒有什么問題;若存在于多個(gè)緩存隊(duì)列中,在搜索結(jié)果的時(shí)候需要做去重處理。
[0022]由于不同的緩存隊(duì)列中,可能存在同一張地圖,同一張地圖的時(shí)間戳都相同,在進(jìn)行搜索時(shí),將最大堆中所存儲(chǔ)的節(jié)點(diǎn)放入搜索結(jié)果隊(duì)列的過程中,若該節(jié)點(diǎn)所對(duì)應(yīng)的地圖的時(shí)間戳與放入搜索結(jié)果隊(duì)列中的前一張地圖的時(shí)間戳相同,則舍棄當(dāng)前的放入操作,即如果now值和prev值相同時(shí),舍去now值對(duì)應(yīng)的放入操作,避免多個(gè)緩存隊(duì)列中存儲(chǔ)相同地圖的問題。
[0023]若存在不同的圖片具有同樣的時(shí)間戳,可以利用現(xiàn)有技術(shù)中的多種手段加以解決,例如,每張地圖對(duì)應(yīng)一個(gè)ID字段,在將最大堆中所存儲(chǔ)的節(jié)點(diǎn)放入搜索結(jié)果隊(duì)列的過程中,若該節(jié)點(diǎn)所對(duì)應(yīng)的地圖的ID與放入搜索結(jié)果隊(duì)列中的前一張地圖的ID字段完全一致,則舍棄當(dāng)前的放入操作。
[0024]用戶進(jìn)行地圖搜索時(shí),最關(guān)注的往往是最相關(guān)的地圖搜索結(jié)果,但是,在有些情況下,也會(huì)關(guān)注能夠搜索到的地圖的總數(shù)量,優(yōu)選地,在內(nèi)存中進(jìn)行地圖搜索的同時(shí),在硬盤中進(jìn)行數(shù)據(jù)庫搜索,得到滿足搜索要求的所有地圖的總數(shù)量。[0025]需要對(duì)搜索結(jié)果隊(duì)列進(jìn)行分頁顯示時(shí),在搜索結(jié)果隊(duì)列中對(duì)每一頁顯示的最后一張地圖進(jìn)行標(biāo)記,計(jì)算翻頁后的第一張地圖的信息。
[0026]本發(fā)明與現(xiàn)有技術(shù)相比,有益技術(shù)效果如下:
[0027](I)針對(duì)空間遙感圖片在二維地圖空間中的搜索,本發(fā)明采用大內(nèi)存加快對(duì)最新數(shù)據(jù)的搜索效率的方法,并采用異步并行的方式,同時(shí)訪問內(nèi)存和硬盤,能夠快速返回一頁數(shù)據(jù)結(jié)果,并異步返回總量數(shù)據(jù)結(jié)果的優(yōu)點(diǎn),適用于處理海量的空間圖片的坐標(biāo)范圍搜索問題。
[0028]現(xiàn)有技術(shù)中,有的只能提供前500張的圖片搜索查看,有的能提供全部數(shù)據(jù)搜索,但是因?yàn)樾枰脖P全盤掃描,因此效率低下,考慮到用戶大部分的真實(shí)需求,只是查看最新最重要的空間圖片數(shù)據(jù),因此,本發(fā)明通過在內(nèi)存中架設(shè)緩存層快速返回最新的數(shù)據(jù)是非常有意義的,通過充分考慮到地理特征的緩存架構(gòu),按照地理位置和時(shí)間優(yōu)先級(jí)劃分和排布緩存隊(duì)列,利用高效率的多隊(duì)列Merge算法搜索數(shù)據(jù)結(jié)果集,大大提高了搜索的效率。
[0029](2)采用了大內(nèi)存架構(gòu),使得內(nèi)存中仍然可以存儲(chǔ)幾百萬張甚至幾千萬張空間信息圖片的數(shù)據(jù)(并非圖片本身),所以在絕大部分情況下都可以在內(nèi)存中找到所需要的數(shù)據(jù),幾乎不需要訪問硬盤數(shù)據(jù),為高效率的搜索提供了支持。
[0030](3)利用并行的方案,利用主線程快速地返回一頁數(shù)據(jù)給用戶查看,然后異步地進(jìn)行數(shù)據(jù)庫全盤搜索,雖然這個(gè)過程效率比較低,但是在用戶瀏覽數(shù)據(jù)的時(shí)間過程中慢慢完成了,然后通過異步的方式返回到用戶界面。
[0031](4)在同一次的搜索過程中,總數(shù)據(jù)量沒有發(fā)生變化,每次翻頁顯示時(shí),可以共用同一總數(shù)據(jù)量,全盤搜索并不多,本發(fā)明能夠快速返回?cái)?shù)據(jù)集,且能夠同時(shí)查詢總數(shù)據(jù)量。 【專利附圖】
【附圖說明】
[0032]圖1為本發(fā)明基于大內(nèi)存的地圖搜索方法的流程圖;
[0033]圖2為本發(fā)明中基于大內(nèi)存的地圖搜索方法的過程示意圖。
【具體實(shí)施方式】
[0034]下面結(jié)合附圖,對(duì)本發(fā)明基于大內(nèi)存的地圖搜索方法做詳細(xì)描述。
[0035]如圖1所示,一種基于大內(nèi)存的地圖搜索方法,在內(nèi)存中,每個(gè)地理區(qū)域?qū)?yīng)設(shè)有一個(gè)緩存隊(duì)列,緩存隊(duì)列中存儲(chǔ)相應(yīng)地理區(qū)域的地圖,每個(gè)緩存隊(duì)列中所存儲(chǔ)的地圖依據(jù)時(shí)間從新到舊的順序依次排列。
[0036]緩存隊(duì)列的數(shù)據(jù)結(jié)構(gòu)采用Linked List來保存,從頭到尾按照時(shí)間從新到舊的順序存放,每次有新地圖需要插入到緩存隊(duì)列中,直接將新地圖加到緩存隊(duì)列的頭節(jié)點(diǎn)上即可,在后續(xù)遍歷緩存隊(duì)列的過程中,依次讀取節(jié)點(diǎn)。
[0037]建立緩存隊(duì)列時(shí),求取每個(gè)地理區(qū)域的最小外接矩形,若某張地圖所對(duì)應(yīng)的最小外接矩形與某一地理區(qū)域的最小外接矩形有重疊,則將該張地圖放入所對(duì)應(yīng)地理區(qū)域的緩存隊(duì)列中;若某張地圖所對(duì)應(yīng)的最小外接矩形與多個(gè)地理區(qū)域的最小外接矩形有重疊,則將該張地圖放入所對(duì)應(yīng)地多個(gè)地理區(qū)域的緩存隊(duì)列中。
[0038]求取最小外接矩形的步驟如下:讀取每個(gè)地理區(qū)域或者地圖所對(duì)應(yīng)的最大經(jīng)度X1、最小經(jīng)度χ2、最高諱度Ii以及最低諱度y2,這四個(gè)值構(gòu)成四個(gè)坐標(biāo)分別為(χι,Υι)> (χι?y2)、(x2, yi)、(x2, y2),四個(gè)坐標(biāo)即為最小外接矩形的四個(gè)頂點(diǎn)。
[0039]用戶輸入搜索要求時(shí),輸入的為多邊形區(qū)域,為該多邊形區(qū)域計(jì)算最小外接矩形,然后將該最小外接矩形與地理區(qū)域的最小外接矩形做匹配,獲得所需要的搜索結(jié)果(參考文獻(xiàn):申請(qǐng)公布日為CN103412947A的發(fā)明),如果地圖放大等級(jí)加大,地圖完全被某一地理區(qū)域所覆蓋,則可以直接讀取至對(duì)應(yīng)的地理區(qū)域。
[0040]地圖搜索方法包括以下步驟:
[0041](I)輸入搜索要求,在內(nèi)存中臨時(shí)建立一個(gè)最大堆和一個(gè)搜索結(jié)果隊(duì)列,最大堆的結(jié)點(diǎn)數(shù)目與緩存隊(duì)列的數(shù)量相同,且每個(gè)結(jié)點(diǎn)對(duì)應(yīng)不同的緩存隊(duì)列,在最大堆的結(jié)點(diǎn)中存入相應(yīng)的緩存隊(duì)列的頭節(jié)點(diǎn)。
[0042]搜索結(jié)果隊(duì)列采用的數(shù)據(jù)結(jié)構(gòu)可以為Array List,緩存隊(duì)列中的頭節(jié)點(diǎn)對(duì)應(yīng)為緩存隊(duì)列中最新更新的地圖,將每個(gè)緩存隊(duì)列的頭節(jié)點(diǎn)壓入最大堆中,使最大堆處于填滿狀態(tài)。
[0043](2)在最大堆中取出滿足搜索要求的結(jié)點(diǎn)中所存儲(chǔ)的對(duì)應(yīng)最新圖片的節(jié)點(diǎn),將該節(jié)點(diǎn)放入搜索結(jié)果隊(duì)列中(即進(jìn)行一次pop操作),并將相應(yīng)緩存隊(duì)列中的下一個(gè)節(jié)點(diǎn)放入最大堆中,如圖2所示。
[0044]滿足搜索要求意味著,節(jié)點(diǎn)所對(duì)應(yīng)的地圖與所要搜索的多邊形區(qū)域具有重疊的部分。
[0045]例如,某一緩存隊(duì)列中存儲(chǔ)的節(jié)點(diǎn)依次為A1' A2、A3……An,由A2、A3……An更新時(shí)間越來越老,A1為頭節(jié)點(diǎn),對(duì)應(yīng)該緩存隊(duì)列中的最新地圖;若最大堆中被取出的節(jié)點(diǎn)為A1,則將A2推入最大堆中,保持最大堆中的數(shù)據(jù)一直都是滿的,也保持最大堆中的數(shù)據(jù)都屬于不同的緩存隊(duì)列。`
[0046](3)重復(fù)步驟(2),直至搜索結(jié)果隊(duì)列的數(shù)據(jù)量達(dá)到要求。
[0047]搜索結(jié)果隊(duì)列的數(shù)量可以依據(jù)需要進(jìn)行設(shè)定,搜索結(jié)果隊(duì)列的數(shù)據(jù)量達(dá)到要求后,掃描一遍最大堆,記錄每個(gè)緩存隊(duì)列下一次掃描的開頭節(jié)點(diǎn),即可以釋放最大堆所占用的數(shù)據(jù)結(jié)構(gòu)和內(nèi)存。
[0048](4)輸出搜索結(jié)果隊(duì)列,獲得滿足搜索要求的地圖。
[0049]為了解決不同緩存隊(duì)列中可能出現(xiàn)同一張圖片,為每張地圖設(shè)置對(duì)應(yīng)的一個(gè)ID字段,在將最大堆中所存儲(chǔ)的節(jié)點(diǎn)放入搜索結(jié)果隊(duì)列的過程中,若該節(jié)點(diǎn)所對(duì)應(yīng)的地圖的ID與放入搜索結(jié)果隊(duì)列中的前一張地圖的ID字段完全一致,則舍棄當(dāng)前的放入操作。
[0050]在內(nèi)存中進(jìn)行地圖搜索的同時(shí),在硬盤中進(jìn)行數(shù)據(jù)庫搜索,得到滿足搜索要求的所有地圖的總數(shù)量。
[0051]采用并行的多線程方式進(jìn)行搜索,利用主線程以及緩存技術(shù)快速將搜索得到的第一頁數(shù)據(jù)結(jié)果返回,用戶體驗(yàn)較佳,同時(shí),利用后臺(tái)線程處理硬盤中的數(shù)據(jù)庫搜索,例如Ajax技術(shù),發(fā)起后臺(tái)線程計(jì)算多邊形搜索得到的總地圖的數(shù)量,當(dāng)后臺(tái)線程計(jì)算完畢之后,將結(jié)果顯示在用戶界面上。
[0052]由于在同一次多邊形搜索時(shí),在數(shù)據(jù)庫中搜索得到的總數(shù)量時(shí)一定的,因此,在后期分頁顯示時(shí),不需要重復(fù)進(jìn)行計(jì)算,如果數(shù)據(jù)庫服務(wù)器和緩存服務(wù)器是分開的,效率比較聞。
[0053]搜索結(jié)果隊(duì)列過長時(shí),需要對(duì)搜索結(jié)果隊(duì)列進(jìn)行分頁顯示,在搜索結(jié)果隊(duì)列中對(duì)每一頁顯示的最后一張地圖進(jìn)行標(biāo)記,計(jì)算翻頁后的第一張地圖的信息。
【權(quán)利要求】
1.一種基于大內(nèi)存的地圖搜索方法,其特征在于,在內(nèi)存中,每個(gè)地理區(qū)域?qū)?yīng)設(shè)有一個(gè)緩存隊(duì)列,所述緩存隊(duì)列中存儲(chǔ)相應(yīng)地理區(qū)域的地圖,每個(gè)緩存隊(duì)列中所存儲(chǔ)的地圖依據(jù)時(shí)間從新到舊的順序依次排列,所述地圖搜索方法包括以下步驟: (1)輸入搜索要求,在內(nèi)存中臨時(shí)建立一個(gè)最大堆和一個(gè)搜索結(jié)果隊(duì)列,最大堆的結(jié)點(diǎn)數(shù)目與緩存隊(duì)列的數(shù)量相同,且每個(gè)結(jié)點(diǎn)對(duì)應(yīng)不同的緩存隊(duì)列,在最大堆的結(jié)點(diǎn)中存入相應(yīng)的緩存隊(duì)列的頭節(jié)點(diǎn); (2)在最大堆中取出滿足搜索要求的結(jié)點(diǎn)中所存儲(chǔ)的對(duì)應(yīng)最新圖片的節(jié)點(diǎn),將該節(jié)點(diǎn)放入搜索結(jié)果隊(duì)列中,并將相應(yīng)緩存隊(duì)列中的下一個(gè)節(jié)點(diǎn)放入最大堆中; (3)重復(fù)步驟(2),直至搜索結(jié)果隊(duì)列的數(shù)據(jù)量達(dá)到要求; (4)輸出搜索結(jié)果隊(duì)列,獲得滿足搜索要求的地圖。
2.如權(quán)利要求1所述的基于大內(nèi)存的地圖搜索方法,其特征在于,建立緩存隊(duì)列時(shí),求取每個(gè)地理區(qū)域的最小外接矩形,若某張地圖所對(duì)應(yīng)的最小外接矩形與某一地理區(qū)域的最小外接矩形有重疊,則將該張地圖放入所對(duì)應(yīng)地理區(qū)域的緩存隊(duì)列中;若某張地圖所對(duì)應(yīng)的最小外接矩形與多個(gè)地理區(qū)域的最小外接矩形有重疊,則將該張地圖放入所對(duì)應(yīng)地多個(gè)地理區(qū)域的緩存隊(duì)列中。
3.如權(quán)利要求2所述的基于大內(nèi)存的地圖搜索方法,其特征在于,求取最小外接矩形的步驟如下:讀取每個(gè)地理區(qū)域或者地圖所對(duì)應(yīng)的最大經(jīng)度X1、最小經(jīng)度X2、最高緯度yi以及最低諱度y2,這四個(gè)值構(gòu)成四個(gè)坐標(biāo)分別為(χι,Yi)> (X1, y2)> (χ2? yi)、(χ2? y2),四個(gè)坐標(biāo)即為最小外接矩形的四個(gè)頂點(diǎn)。
4.如權(quán)利要求3所述的基于大內(nèi)存的地圖搜索方法,其特征在于,每張地圖對(duì)應(yīng)一個(gè)ID字段,在將最大堆中所存儲(chǔ)的節(jié)點(diǎn)放入搜索結(jié)果隊(duì)列的過程中,若該節(jié)點(diǎn)所對(duì)應(yīng)的地圖的ID與放入搜索結(jié)果隊(duì)列中的前一張地圖的ID字段完全一致,則舍棄當(dāng)前的放入操作。
5.如權(quán)利要求1~4任一所述的基于大內(nèi)存的地圖搜索方法,其特征在于,在內(nèi)存中進(jìn)行地圖搜索的同時(shí),在硬盤中進(jìn)行數(shù)據(jù)庫搜索,得到滿足搜索要求的所有地圖的總數(shù)量。
6.如權(quán)利要求5所述的基于大內(nèi)存的地圖搜索方法,其特征在于,需要對(duì)搜索結(jié)果隊(duì)列進(jìn)行分頁顯示時(shí),在搜索結(jié)果隊(duì)列中對(duì)每一頁顯示的最后一張地圖進(jìn)行標(biāo)記,計(jì)算翻頁后的第一張地圖的信息。
【文檔編號(hào)】G06F17/30GK103810269SQ201410041227
【公開日】2014年5月21日 申請(qǐng)日期:2014年1月28日 優(yōu)先權(quán)日:2014年1月28日
【發(fā)明者】陳華鈞, 柳云超, 高嘯, 鄭國軸, 陶金火, 吳朝暉 申請(qǐng)人:浙江大學(xué)