本申請涉及信息檢索技術,具體涉及一種基于地理位置的信息檢索方法及裝置。本申請同時涉及一種基于地理位置的信息獲取方法及裝置、一種基于地理位置的信息提供方法及裝置、一種基于地理位置的信息檢索系統(tǒng)、以及另一種基于地理位置的信息檢索方法及裝置。
背景技術:
隨著越來越多和地理位置相關的應用和產(chǎn)品的出現(xiàn),尤其是在移動類應用中,提供指定地理位置附近的目標實體信息的檢索服務顯得越來越重要,所述目標實體包括餐館、商場、公園、醫(yī)院等。在現(xiàn)有的檢索系統(tǒng)中,通常將待檢索位點在傳統(tǒng)地理坐標系中的二維經(jīng)緯度信息,采用GeoHash方法轉(zhuǎn)換為一維的hash值,即GeoHash值,然后在預先建立的目標實體數(shù)據(jù)庫中根據(jù)GeoHash值的前綴進行有針對性的區(qū)間查詢,從而提供準確和高效的檢索結(jié)果。
其中,GeoHash方法的核心,是通過對地理坐標系進行網(wǎng)格劃分,將二維的經(jīng)緯度信息,轉(zhuǎn)換成一個可以排序、比較的一維編碼形式。轉(zhuǎn)換過程包括兩個階段:逼近編碼階段、以及交叉組碼階段。
在逼近編碼階段,采用如下方式對經(jīng)度坐標值進行編碼,以經(jīng)度坐標值為112度為例:將經(jīng)度區(qū)間[-180,180]二分為[-180,0),[0,180]兩個區(qū)間,作為左右區(qū)間,如果經(jīng)度坐標值屬于左區(qū)間則標記為0,屬于右區(qū)間則標記為1,本例中標記為1,然后繼續(xù)對區(qū)間[0,180]進行二分劃分,重復上述標記以及劃分步驟數(shù)次,得到了關于經(jīng)度坐標值的0、1編碼序列,采用同樣的方式可以得到緯度坐標值的0、1編碼序列。在交叉組碼階段,將經(jīng)緯度編碼序列交叉組合,偶數(shù)位寫入經(jīng)度編碼,奇數(shù)位寫入緯度編碼,從而得到二維經(jīng)緯度坐標值的GeoHash編碼。
采用上述基于傳統(tǒng)經(jīng)緯度的交叉編碼方式,能夠最大程度的保證相近地理位置的經(jīng)緯度前綴盡可能的相同,便于進行檢索。但同時也存在以下缺陷:由于在傳統(tǒng)地理坐標系中,隨著緯度的增加,經(jīng)度的單位距離不斷變小、而且是 加速變化的,而緯度的單位距離卻始終保持不變(所述單位距離是指一個單位的經(jīng)度或者緯度所表示的球面形曲線長度),因此,在進行GeoHash編碼時,在高緯度地區(qū)會產(chǎn)生經(jīng)緯度編碼的塌縮速率不一致的問題,從而導致現(xiàn)有的檢索技術無法針對高緯度地區(qū)提供正常的、準確的周邊檢索服務。
技術實現(xiàn)要素:
本申請實施例提供一種基于地理位置的信息檢索方法和裝置,以解決現(xiàn)有技術無法針對高緯度地區(qū)進行準確檢索的問題。本申請實施例還提供一種基于地理位置的信息獲取方法和裝置,一種基于地理位置的信息提供方法及裝置,一種基于地理位置的信息檢索系統(tǒng),以及另一種基于地里位置的信息檢索方法和裝置。
本申請?zhí)峁┮环N基于地理位置的信息檢索方法,包括:
獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值;
將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;
將第二經(jīng)緯度坐標值編碼為GeoHash值;
根據(jù)GeoHash值查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
可選的,所述目標實體數(shù)據(jù)庫是采用如下方式預先建立的:
收集供查詢目標實體的基于地理坐標系的第一經(jīng)緯度坐標值;
將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;
將第二經(jīng)緯度坐標值編碼為GeoHash值;
在目標實體數(shù)據(jù)庫中存儲所述GeoHash值,并建立GeoHash值與所述供查詢的目標實體的對應關系。
可選的,所述目標實體數(shù)據(jù)庫包括:以GeoHash值作為索引的關系型數(shù)據(jù)庫、或者以GeoHash值作為主鍵的key-value數(shù)據(jù)庫。
可選的,在所述收集供查詢目標實體的基于地理坐標系的第一經(jīng)緯度坐標值之后、在所述將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值之前,執(zhí)行下述操作:
對其中屬于預設折疊區(qū)間的第一經(jīng)度坐標值,進行坐標值折疊變換。
可選的,在獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值后,執(zhí)行下述操作:
判斷第一經(jīng)度坐標值是否屬于預設折疊區(qū)間;
若是,對所述第一經(jīng)度坐標值進行坐標值折疊變換。
可選的,所述預設折疊區(qū)間包括:與0或者180的差值絕對值小于預設閾值的區(qū)間;
所述進行坐標值折疊變換包括:將所述第一經(jīng)度坐標值轉(zhuǎn)換為與其相鄰的非折疊區(qū)域中的鏡像經(jīng)度坐標值。
可選的,所述預設閾值包括:10。
可選的,所述將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值包括:
將第一緯度坐標值作為第二緯度坐標值;
采用如下公式計算第二經(jīng)度坐標值:
θ(bicone)=arcSin(cos(Ψ(wgs))*cos(θ(wgs)));
其中,θ(bicone)是第二經(jīng)度坐標值,Ψ(wgs)是第一緯度坐標值,θ(wgs)是第一經(jīng)度坐標值。
可選的,在所述獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值之后,執(zhí)行下述操作:
在以所述待檢索位點為中心的、到待檢索位點的距離在所述預設范圍內(nèi)的圓形區(qū)域中取樣;
所述將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值包括:將各取樣點的第一經(jīng)緯度坐標值分別轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;
所述將第二經(jīng)緯度坐標值編碼為GeoHash值包括:將各取樣點的第二經(jīng)緯度坐標值分別編碼為GeoHash值;
所述根據(jù)所述GeoHash值查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息,包括:根據(jù)各取樣點的GeoHash值分別查詢所述目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
可選的,所述根據(jù)各取樣點的GeoHash值分別查詢所述目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息,包括:
根據(jù)各取樣點的GeoHash值和所述預設范圍,計算對應于每個取樣點的查詢范圍;
按照每個取樣點的查詢范圍,在所述目標實體數(shù)據(jù)庫中進行查詢,獲取對應于各取樣點的目標實體;
計算所述目標實體與待檢索位點之間的距離,并將符合所述預設范圍要求的目標實體的相關信息作為所述待檢索位點的檢索結(jié)果。
可選的,所述GeoHash值包括:長整形數(shù)值、或者基于Base32編碼的字符串。
相應的,本申請還提供一種基于地理位置的信息檢索裝置,包括:
第一經(jīng)緯度獲取單元,用于獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值;
第二經(jīng)緯度轉(zhuǎn)換單元,用于將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;
GeoHash編碼單元,用于將第二經(jīng)緯度坐標值編碼為GeoHash值;
目標實體查詢單元,用于根據(jù)所述GeoHash值查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
可選的,所述裝置包括:數(shù)據(jù)庫建立單元,用于預先建立所述目標實體數(shù)據(jù)庫;
所述數(shù)據(jù)庫建立單元包括:
信息收集子單元,用于收集供查詢目標實體的基于地理坐標系的第一經(jīng)緯度坐標值;
坐標值轉(zhuǎn)換子單元,用于將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;
編碼子單元,用于將第二經(jīng)緯度坐標值編碼為GeoHash值;
存儲子單元,用于在目標實體數(shù)據(jù)庫中存儲所述GeoHash值,并建立GeoHash值與所述供查詢的目標實體的對應關系。
可選的,所述數(shù)據(jù)庫建立單元還包括:
實體坐標折疊子單元,用于對所述信息收集子單元收集的第一經(jīng)緯度坐標值中、屬于預設折疊區(qū)間的第一經(jīng)度坐標值,進行坐標值折疊變換,并在處理完畢后觸發(fā)所述坐標值轉(zhuǎn)換子單元工作。
可選的,所述裝置還包括:
折疊判斷單元,用于判斷所述第一經(jīng)緯度獲取單元獲取的所述第一經(jīng)緯度坐標值中的第一經(jīng)度坐標值是否屬于預設折疊區(qū)間;
折疊變換單元,用于當所述折疊判斷單元的輸出為是時,對所述第一經(jīng)度坐標值進行坐標值折疊變換。
可選的,所述第二經(jīng)緯度轉(zhuǎn)換單元以及所述坐標值轉(zhuǎn)換子單元,分別包括以下子單元:
第二緯度坐標值生成單元,用于將第一緯度坐標值作為第二緯度坐標值;
第二經(jīng)度坐標值生成單元,用于采用如下公式計算第二經(jīng)度坐標值:θ(bicone)=arcSin(cos(Ψ(wgs))*cos(θ(wgs))),其中,θ(bicone)是第二經(jīng)度坐標值,Ψ(wgs)是第一緯度坐標值,θ(wgs)是第一經(jīng)度坐標值。
可選的,所述裝置包括:
取樣單元,用于在獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值之后,在以所述待檢索位點為中心的、到待檢索位點的距離在所述預設范圍內(nèi)的圓形區(qū)域中取樣;
所述第二經(jīng)緯度轉(zhuǎn)換單元具體用于,將各取樣點的第一經(jīng)緯度坐標值分別轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;
所述GeoHash編碼單元具體用于,將各取樣點的第二經(jīng)緯度坐標值分別編碼為GeoHash值;
所述目標實體查詢單元具體用于,根據(jù)各取樣點的GeoHash值分別查詢所述目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
可選的,所述目標實體查詢單元包括:
查詢范圍計算子單元,用于根據(jù)各取樣點的GeoHash值和所述預設范圍,計算對應于每個取樣點的查詢范圍;
查詢執(zhí)行子單元,用于按照每個取樣點的查詢范圍,在所述目標實體數(shù)據(jù) 庫中進行查詢,獲取對應于各取樣點的目標實體;
結(jié)果過濾子單元,用于計算所述目標實體與待檢索位點之間的距離,并將符合所述預設范圍要求的目標實體的相關信息作為所述待檢索位點的檢索結(jié)果。
此外,本申請還提供一種基于地理位置的信息獲取方法,包括:
獲取待檢索位點的位置信息;
向服務端發(fā)送周邊信息獲取請求,所述請求中至少攜帶所述位置信息;
接收所述服務端返回的對應于所述待檢索位點的目標實體信息,所述目標實體信息是所述服務端采用基于雙錐坐標系的信息檢索方法獲取的。
可選的,所述位置信息包括:基于地理坐標系的第一經(jīng)緯度坐標值、與基站的位置關系信息、所屬WiFi區(qū)域的標識信息、或者地理名稱。
相應的,本申請還提供一種基于地理位置的信息獲取裝置,包括:
位置信息獲取單元,用于獲取待檢索位點的位置信息;
請求發(fā)送單元,用于向服務端發(fā)送周邊信息獲取請求,所述請求中至少攜帶所述位置信息;
結(jié)果接收單元,用于接收所述服務端返回的對應于所述待檢索位點的目標實體信息,所述目標實體信息是所述服務端采用基于雙錐坐標系的信息檢索方法獲取的。
此外,本申請還提供一種基于地理位置的信息提供方法,包括:
接收客戶端發(fā)送的周邊信息獲取請求,根據(jù)請求中攜帶的位置信息獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值;
將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;
將第二經(jīng)緯度坐標值編碼為GeoHash值;
根據(jù)GeoHash值查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離滿足預設條件的目標實體信息;
將所述目標實體信息返回給所述客戶端。
可選的,所述預設條件包括:
所述距離在所述周邊信息獲取請求指定的范圍內(nèi);或者,
根據(jù)所述距離從小到大排序靠前。
相應的,本申請還提供一種基于地理位置的信息提供裝置,包括:
請求接收單元,用于接收客戶端發(fā)送的周邊信息獲取請求,根據(jù)請求中攜帶的位置信息獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值;
第二經(jīng)緯度轉(zhuǎn)換單元,用于將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;
GeoHash編碼單元,用于將第二經(jīng)緯度坐標值編碼為GeoHash值;
目標實體查詢單元,用于根據(jù)GeoHash值查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離滿足預設條件的目標實體信息;
結(jié)果返回單元,用于將所述目標實體信息返回給所述客戶端。
此外,本申請還提供一種基于地理位置的信息檢索系統(tǒng),包括:根據(jù)上述任意一項所述的基于地理位置的信息獲取裝置,和根據(jù)上述任意一項所述的基于地理位置的信息提供裝置。
此外,本申請還提供一種基于地理位置的信息檢索方法,包括:
獲取待檢索位點的經(jīng)緯度坐標值;
在以所述待檢索位點為中心的、到待檢索位點的距離在預設范圍內(nèi)的圓形區(qū)域中取樣;
將各取樣點的經(jīng)緯度坐標值分別編碼為GeoHash值;
根據(jù)各取樣點的GeoHash值分別查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
相應的,本申請還提供一種基于地理位置的信息檢索裝置,包括:
經(jīng)緯度獲取單元,用于獲取待檢索位點的經(jīng)緯度坐標值;
區(qū)域取樣單元,用于在以所述待檢索位點為中心的、到待檢索位點的距離在預設范圍內(nèi)的圓形區(qū)域中取樣;
取樣點編碼單元,用于將各取樣點的經(jīng)緯度坐標值分別編碼為GeoHash值;
數(shù)據(jù)庫查詢單元,用于根據(jù)各取樣點的GeoHash值分別查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
與現(xiàn)有技術相比,本申請具有以下優(yōu)點:
本申請?zhí)峁┑囊环N基于地理位置的信息檢索方法,通過將待檢索位點的第 一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值,然后根據(jù)第二經(jīng)緯度坐標值的GeoHash值查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。采用上述方法,由于將傳統(tǒng)的地理坐標系轉(zhuǎn)換為雙錐坐標系,而雙錐坐標系在任何經(jīng)緯度的塌縮速率都是恒定的,因此在高緯度地區(qū)也可以進行高效、準確的檢索,提高檢索的整體準確率。
本申請?zhí)峁┑牧硪环N基于地理位置的信息檢索方法,在以所述待檢索位點為中心的、到待檢索位點的距離在預設范圍內(nèi)的圓形區(qū)域中取樣,并根據(jù)各取樣點經(jīng)緯度坐標值的GeoHash值分別查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。由于采用了在待查詢圓形區(qū)域中取樣的方法,與查詢9區(qū)塊的檢索技術相比較,每次查詢的區(qū)間縮小了,每次查詢召回的結(jié)果顯著減少,而且所有取樣點整體召回的結(jié)果也顯著減少,有效避免了召回大量無用數(shù)據(jù)的情況,從而實現(xiàn)了較高的檢索準確率,減少了進行篩選過濾操作的工作量,有效提高執(zhí)行效率。
附圖說明
圖1是本申請的一種基于地理位置的信息檢索方法的第一實施例的流程圖;
圖2是本申請實施例提供的地理坐標系的示意圖;
圖3是本申請實施例提供的建立目標實體數(shù)據(jù)庫的處理流程圖;
圖4是本申請實施例提供的將待檢索位點的第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值的處理流程圖;
圖5是本申請實施例提供的雙錐坐標系的示意圖;
圖6是本申請的一種基于地理位置的信息檢索方法的第二實施例的流程圖;
圖7是本申請實施例提供的對待檢索位點所在區(qū)塊以及周邊8個區(qū)塊進行查詢的示意圖;
圖8是本申請實施例提供的在待查詢區(qū)域中取樣的示意圖;
圖9是本申請實施例提供的根據(jù)各取樣點的GeoHash值查詢目標實體數(shù)據(jù)庫的處理流程圖;
圖10是本申請的一種基于地理位置的信息檢索裝置的實施例示意圖;
圖11是本申請的一種基于地理位置的信息獲取方法的實施例的流程圖;
圖12是本申請的一種基于地理位置的信息獲取裝置的實施例示意圖;
圖13是本申請的一種基于地理位置的信息提供方法的實施例的流程圖;
圖14是本申請的一種基于地理位置的信息提供裝置的實施例示意圖;
圖15是本申請的一種基于地理位置的信息檢索系統(tǒng)的實施例示意圖;
圖16是本申請的另一種基于地理位置的信息檢索方法的實施例的流程圖;
圖17是本申請的另一種基于地理位置的信息檢索裝置的實施例示意圖。
具體實施方式
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本申請。但是,本申請能夠以很多不同于在此描述的其它方式來實施,本領域技術人員可以在不違背本申請內(nèi)涵的情況下做類似推廣,因此,本申請不受下面公開的具體實施的限制。
在本申請中,分別提供了一種基于地理位置的信息檢索方法及裝置,一種基于地理位置的信息獲取方法及裝置,一種基于地理位置的信息提供方法及裝置,一種基于地理位置的信息檢索系統(tǒng),以及另一種基于地理位置的信息檢索方法及裝置,在下面的實施例中逐一進行詳細說明。
請參考圖1,其為本申請的一種基于地理位置的信息檢索方法的第一實施例的流程圖。所述方法包括如下步驟:
步驟101、獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值。
本申請?zhí)峁┑募夹g方案,將待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值,并用所述第二經(jīng)緯度坐標值的GeoHash值在目標實體數(shù)據(jù)庫中進行查詢,獲取所述待檢索位點周邊的目標實體信息。由于雙錐坐標系在任何經(jīng)緯度的塌縮速率都是恒定的,從而解決了基于地理坐標系的檢索技術無法在高緯度地區(qū)進行準確檢索的問題。
所述地理坐標系(簡稱WGS)是指傳統(tǒng)的經(jīng)緯度坐標系,請參考圖2,其為本申請實施例提供的地理坐標系的示意圖。該坐標系包括兩個要素:緯度坐標Ψ和經(jīng)度坐標θ,其中緯度坐標的取值范圍在[-90,90],經(jīng)度坐標的取值范圍在[-180,180],相應的,所述基于地理坐標系的第一經(jīng)緯度坐標值包括:第一經(jīng)度坐標值和第一緯度坐標值。所述雙錐坐標系是一種球面正交坐標系,關 于該坐標系的說明請參見步驟102中的相關文字。
所述待檢索位點通常是指要進行周邊實體信息查詢的待檢索位置或者地點,所述目標實體是指供檢索查詢的目標對象,可以包括:餐館、商場、公園、醫(yī)院等。所述目標實體的地理位置信息以及其他相關信息是存儲在目標實體數(shù)據(jù)庫中的,所述目標實體數(shù)據(jù)庫可以采用如下步驟預先建立,請參考圖3,其為本申請實施例提供的建立目標實體數(shù)據(jù)庫的處理流程圖。
步驟101-1、收集供查詢目標實體的基于地理坐標系的第一經(jīng)緯度坐標值。
在具體實施時,可以采用不同的方法收集供查詢目標實體的基于地理坐標系的第一經(jīng)緯度坐標值(以下簡稱第一經(jīng)緯度坐標值),例如,可以利用百度地圖等工具獲取供查詢目標實體的第一經(jīng)緯度坐標值,也可以通過第三方服務商提供的API,例如:Google Maps API進行轉(zhuǎn)換得到所述供查詢目標實體的第一經(jīng)緯度坐標值。
步驟101-2、將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值。
本步驟可以針對每個供查詢目標實體,將其第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值(簡稱第二經(jīng)緯度坐標值)。具體的轉(zhuǎn)換方式請參見步驟102中的相關文字描述。
采用雙錐坐標系可以解決在高緯度地區(qū)無法準確檢索的問題,但是采用雙錐坐標系進行球面網(wǎng)格劃分時,在經(jīng)度靠近0度的區(qū)域以及靠近180度的區(qū)域可能出現(xiàn)不規(guī)則變換,所劃分區(qū)域的形狀可能會出現(xiàn)畸形,導致相關區(qū)域無法準確檢索,為了避免檢索準確率下降,本實施例提供一種進行坐標折疊的優(yōu)選實施方式:在本步驟將供查詢目標實體的第一經(jīng)緯度坐標值轉(zhuǎn)換為第二經(jīng)緯度坐標值之前,對其中屬于預設折疊區(qū)間的第一經(jīng)度坐標值,進行坐標值折疊變換處理,完成上述處理之后,再將第一經(jīng)緯度坐標值轉(zhuǎn)換為第二經(jīng)緯度坐標值。對于坐標值進行折疊變換的具體處理過程請參見步驟102中的相關文字說明。
步驟101-3、將第二經(jīng)緯度坐標值編碼為GeoHash值。
本步驟可以針對每個供查詢目標實體,分別將其第二經(jīng)緯度坐標值編碼為GeoHash值。具體的編碼方式請參見步驟103中的相關文字描述。
步驟101-4、在目標實體數(shù)據(jù)庫中存儲所述GeoHash值,并建立GeoHash值與所述供查詢的目標實體的對應關系。
本步驟將之前獲取的供查詢目標實體的GeoHash值存儲在目標實體數(shù)據(jù)庫中,并建立GeoHash值與所述供查詢的目標實體的對應關系。所述目標實體數(shù)據(jù)庫可以是關系型數(shù)據(jù)庫,也可以是基于key-value架構(gòu)的非關系型數(shù)據(jù)庫。在具體實施中,為了提高后續(xù)基于GeoHash的檢索速度,如果采用關系型數(shù)據(jù)庫,可以建立基于GeoHash值所在列的索引,例如B+樹索引;如果采用key-value架構(gòu)的非關系型數(shù)據(jù)庫,可以以GeoHash值作為Rowkey,從而可以根據(jù)Rowkey或者Rowkey區(qū)間實現(xiàn)快速查詢。
通過上述步驟101-1至101-4,預先構(gòu)建了供檢索查詢的目標實體數(shù)據(jù)庫,之后就可以從中查詢待檢索位點的周邊目標實體信息了。本步驟獲取待檢索位點的第一經(jīng)緯度坐標值。在具體實施時,可以通過多種方式獲取待檢索位點的第一經(jīng)緯度坐標值,例如,可以調(diào)用第三方提供的地理位置信息查詢服務(例如百度地圖),獲取待檢索位點的第一經(jīng)緯度坐標值;如果本方法在服務端實施,也可以從客戶端上傳的周邊信息檢索請求中獲取待檢索位點的第一經(jīng)緯度坐標值,而客戶端則可以通過開啟GPS功能獲取待檢索位點的第一經(jīng)緯度坐標值。
步驟102、將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值。
優(yōu)選地,如步驟101-2所述,為了避免采用雙錐坐標系進行球面網(wǎng)格劃分可能導致在預設折疊區(qū)間的檢索準確率下降,如果在建立供查詢的目標實體數(shù)據(jù)庫時,對于處于預設折疊區(qū)間的第一經(jīng)度坐標值進行了折疊變換,那么在本步驟對待檢索位點進行雙錐坐標系轉(zhuǎn)換之前,可以先判斷待檢索位點的第一經(jīng)度坐標值是否屬于預設折疊區(qū)間,若是對所述第一經(jīng)度坐標值進行折疊變換。本步驟的處理過程包括步驟102-1至102-3,下面結(jié)合附圖4作進一步說明。
步驟102-1、判斷待檢索位點的第一經(jīng)度坐標值是否屬于預設折疊區(qū)間,若是,轉(zhuǎn)到步驟102-2,否則執(zhí)行步驟102-3。
所述折疊區(qū)間是預先設置的,通常是指與0或者180的差值絕對值小于預設閾值的區(qū)間,所述預設閾值可以根據(jù)具體的應用需求進行設置,例如可以設置為10,相應的,所述折疊區(qū)間包括:[0,10]、[170,180]、[-10,0]、[-180,-170]。
步驟102-2、對所述第一經(jīng)度坐標值進行折疊變換。
如果待檢索位點的第一經(jīng)度值屬于預設折疊區(qū)間,則對所述第一經(jīng)度坐標 值進行折疊變換,第一緯度坐標值保持不變。所述折疊變換是指,將第一經(jīng)度坐標值轉(zhuǎn)換為與其相鄰的非折疊區(qū)域中的鏡像經(jīng)度坐標值,如果按照地理坐標系的經(jīng)度線(m)對經(jīng)度坐標值θ(t1)進行折疊變換,折疊后的經(jīng)度坐標值θ(t2)=2m-θ(t1)。
下面以折疊區(qū)間[0,10]為例進行說明,對屬于[0,10]折疊區(qū)間的經(jīng)度θ(t1)按照m=10進行折疊,折疊后的θ(t2)∈[10,20]區(qū)間,例如,第一經(jīng)度坐標值θ(t1)=5,與其相鄰的非折疊區(qū)域是[10,20],對應的鏡像經(jīng)度坐標值為θ(t2)=2m-θ(t1)=2x10-5=15。如果待檢索位點的第一經(jīng)度值屬于其他折疊區(qū)間,也可以按照類似的方式進行折疊轉(zhuǎn)換,此處不再贅述。通過上述折疊處理,相當于對靠近0度區(qū)域或者靠近180度區(qū)域的第一經(jīng)度坐標值進行了遷移,盡可能避開了采用雙錐坐標系進行網(wǎng)格劃分可能出現(xiàn)畸形的區(qū)域,從而保證了檢索的準確率。
執(zhí)行完本步驟的處理后,繼續(xù)執(zhí)行步驟102-3。
步驟102-3、進行基于雙錐坐標系的坐標值轉(zhuǎn)換。
本步驟將待檢索位點的第一經(jīng)緯度坐標值(包括執(zhí)行了折疊變換后的)轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值。為了便于理解首先對雙錐坐標系進行說明。
雙錐坐標系(Biconical Coordinate)是一種球面正交坐標系,請參考圖5。雙錐坐標系包含以下要素:
1)球半徑:R;
2)z-軸圓錐面與xy平面夾角:Ψ
3)x-軸圓錐面與yz平面夾角:θ
4)y軸坐標正負:C
這里所述的x、y、z軸,沿用了地心坐標系中相互垂直的x、y、z三個軸,其中,x軸與首子午面與赤道面的交線重合,向東為正,z軸與地球旋轉(zhuǎn)軸重合,向北為正,y軸與xz平面垂直構(gòu)成右手系。
下面描述第一經(jīng)緯度坐標值到基于雙錐坐標系的第二經(jīng)緯度坐標值的轉(zhuǎn)換過程。為了便于描述,引入以下標記方式:Ψ(wgs)代表第一緯度坐標值,θ(wgs)代表第一經(jīng)度坐標值,Ψ(bicone)代表第二緯度坐標值,θ(bicone)代表第二經(jīng)度坐標值,r代表第一緯度坐標作值對應的緯度圈的半徑,h代表第二經(jīng)度坐標值 對應的經(jīng)度圈與yz平面之間的距離。
通過上面的描述可以看出,傳統(tǒng)地理坐標系中的緯度坐標值與雙錐坐標系中的緯度坐標值是一致的,因此在本步驟中可以直接將待檢索位點的第一緯度坐標值作為雙錐坐標系中的第二緯度坐標值,即不用進行轉(zhuǎn)換:
Ψ(bicone)=Ψ(wgs);
對于第二經(jīng)度坐標值的轉(zhuǎn)換推導過程如下:
cos(Ψ(wgs))=r/R;
cos(θ(wgs))=h/r;
sin(θ(bicone))=h/R=cos(Ψ(wgs))*cos(θ(wgs));
因此,可以得到:θ(bicone)=arcSin(cos(Ψ(wgs))*cos(θ(wgs)));
通過上述方式,根據(jù)待檢索位點的第一經(jīng)緯度坐標值,轉(zhuǎn)換得到了基于雙錐坐標系的第二經(jīng)緯度坐標值。
需要說明的是,上述步驟102-1及102-2的坐標折疊操作是一種優(yōu)選實施方式,如果在預先建立目標實體數(shù)據(jù)庫時,未進行坐標折疊處理,那么在本步驟中也無需對屬于預設折疊區(qū)間的第一經(jīng)度坐標值進行折疊處理,同樣也可以實現(xiàn)本申請的技術方案。
步驟103、將第二經(jīng)緯度坐標值編碼為GeoHash值。
編碼過程包括兩個階段:逼近編碼、以及交叉組碼。首先對第二緯度坐標值進行逼近編碼,即,將緯度區(qū)間[-90,90]二分為左右兩個區(qū)間,如果緯度坐標值屬于左區(qū)間則標記為0,屬于右區(qū)間則標記為1,然后繼續(xù)對緯度坐標值所屬區(qū)間進行二分和標記......,按照預先設定的次數(shù)重復執(zhí)行上述過程,就可以得到關于第二緯度坐標值的0、1編碼序列,采用同樣的方式可以得到第二經(jīng)度坐標值的0、1編碼序列,然后將上述兩個編碼序列進行交叉組合,從而得到第二經(jīng)緯度坐標值的GeoHash值,在具體實施時,可以采用長整形的形式存儲GeoHash值,也可以采用Base32編碼轉(zhuǎn)換為字符串的形式。
步驟104、根據(jù)GeoHash值查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
由于GeoHash值的前綴可以表示特定大小的區(qū)塊,基于GeoHash值的這一特性,可以利用待檢索位點對應的GeoHash值對目標實體數(shù)據(jù)庫進行區(qū)間查詢, 從而獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
具體實施時,通常可以根據(jù)所述預設范圍,從所述GeoHash值中選取用于查詢的前綴長度,如下述代碼片段所示:
double perimeter=2*Math.PI*radius; //radius是地球半徑
long diameter=Math.round(distance*2); //distance是預設范圍的上限值
while((diameter<<bit)<perimeter){
bit++;
}
prefix_length=2*bit; //prefix_length是前綴長度,以比特為單位
然后,保留所述GeoHash值位于前綴部分的值,通過將位于前綴之后的各個比特位設置為0,獲取查詢區(qū)間的最小值,將位于前綴之后的各個比特位設置為1,獲取查詢區(qū)間的最大值,然后在目標實體數(shù)據(jù)庫中進行區(qū)間查詢,從而獲取在所選GeoHash前綴對應區(qū)塊內(nèi)的目標實體及相關信息。
考慮到待檢索位點可能位于其所屬區(qū)塊的邊界附近,如果僅在所述待檢索位點所屬區(qū)塊內(nèi)進行查詢,可能會發(fā)生遺漏,為了保證將與所述待檢索位點的距離在預設范圍內(nèi)的目標實體都召回,通常采用的解決方法是根據(jù)待檢索位點所在區(qū)塊的GeoHash值前綴,計算周圍8個區(qū)塊的GeoHash值前綴,并對這8個區(qū)塊也進行區(qū)間搜索,從而保證將所有滿足要求的目標實體都能夠召回。
此后還可以執(zhí)行過濾操作,從召回的目標實體中篩選與待檢索位點的距離在預設范圍內(nèi)的目標實體,將這些目標實體及其相關信息(例如,目標實體名稱、服務類別、具體地址、簡介等)作為所述待檢索位點的檢索結(jié)果。具體實施時,可以針對上述查詢過程召回的每個目標實體,執(zhí)行如下操作:
將所述目標實體在目標實體數(shù)據(jù)庫中存儲的GeoHash值解碼為基于雙錐坐標系的第二經(jīng)緯度坐標值(編碼過程的逆過程),再將所述第二經(jīng)緯度坐標值轉(zhuǎn)換為基于傳統(tǒng)地理坐標系的第一經(jīng)緯度坐標值,然后根據(jù)待檢索位點與所述目標實體的第一經(jīng)緯度坐標值,計算兩者之間的距離,如果該距離值在預設范圍內(nèi),則保留該目標實體,否則將該目標實體從檢索結(jié)果中刪除。
針對每個目標實體執(zhí)行上述篩選操作,會篩選出一系列滿足要求的目標實體,具體實施時,可以將這些目標實體作為檢索結(jié)果,也可以按照預設策略進行進一步篩選,例如,可以按照與待檢索位點之間的距離從小到大排序,并選 擇排序靠前的、預定數(shù)量的目標實體作為檢索結(jié)果;也可以根據(jù)本次檢索的額外限定進行篩選,例如可以按照檢索類別要求進行篩選,例如只選擇類別為“公園”的目標實體作為檢索結(jié)果等。
需要說明的是,由于雙錐坐標系的R、Ψ、θ這三個要素通常對應地球球面上的兩個點,分別位于東半球和西半球,該狀態(tài)可以用要素C標識。為了保證上述距離計算過程的正確性,在具體實施時,可以在存儲目標實體的GeoHash值的同時,也存儲該目標實體對應的要素C的值。從而可以參照該值,將目標實體基于雙錐坐標系的GeoHash值正確轉(zhuǎn)換為基于傳統(tǒng)地理坐標系的第一經(jīng)緯度坐標值,從而保證距離計算的正確性。
綜上所述,本實施例提供的一種基于地理位置的信息檢索方法,通過將傳統(tǒng)的地理坐標系轉(zhuǎn)換為雙錐坐標系、并根據(jù)雙錐坐標系下的GeoHash值進行查詢,從而獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。上述方法利用了雙錐坐標系在任何經(jīng)緯度的塌縮速率恒定這一特點,在高緯度地區(qū)也可以進行高效、準確的檢索,提高檢索的整體準確率。
在上述基于地理位置的信息檢索方法的第一實施例的基礎上,為了減少檢索過程中召回的數(shù)據(jù)量,提高檢索的準確率,本申請還針對所述基于地理位置的信息檢索方法,提供了采用取樣機制的第二實施例。請參考圖6,其為本申請?zhí)峁┑囊环N基于地理位置的信息檢索方法的第二實施例的流程圖,本實施例與第一實施例步驟相同的部分不再贅述,下面重點描述不同之處。本申請?zhí)峁┑囊环N基于地理位置的信息檢索方法包括:
步驟601:獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值。
步驟602:在以所述待檢索位點為中心的、到待檢索位點的距離在所述預設范圍內(nèi)的圓形區(qū)域中取樣。
現(xiàn)有的檢索技術,考慮到待檢索位點可能處于所在區(qū)塊的邊界位置,為了避免遺漏,通常對待檢索位點所在區(qū)塊以及周邊8個區(qū)塊都進行查詢,從而可以保證將所有滿足條件的目標實體都召回。這種做法會增加召回數(shù)量,降低召回的準確率,為后續(xù)的篩選過濾操作增加額外負擔。
請參考圖7,其為對待檢索位點所在區(qū)塊以及周邊8個區(qū)塊進行查詢的示意圖。其中黑色實心圓點代表待檢索位點,圓形區(qū)域代表所述預設范圍,例如,預設范圍是0~500m,那么圓形區(qū)域的半徑為500m,根據(jù)該預設范圍確定 GeoHash值前綴得到的區(qū)塊邊長通常為1km左右。從該圖中可以看出,標號為1、2、3、4、6的區(qū)塊都不在預設范圍對應的圓形區(qū)域內(nèi),也與所述圓形區(qū)域沒有交集,因此采用對上述9個區(qū)塊都進行查詢的方式,顯然會召回大量不滿足條件的目標實體,準確率是比較低的。
針對這一問題,本實施例在基于雙錐坐標系進行檢索的基礎上,采用了基于取樣查詢的優(yōu)選實施方式,即:在以所述待檢索位點為中心的、到待檢索位點的距離在所述預設范圍內(nèi)的圓形區(qū)域中取樣,根據(jù)各個取樣點進行區(qū)間查詢,從而在保證將所有滿足條件的目標實體召回的同時,可以有效減少召回的數(shù)量,提高檢索的準確率。
本步驟在以所述待檢索位點為中心的、到待檢索位點的距離在所述預設范圍內(nèi)的圓形區(qū)域中取樣,所選取樣點通常是均勻分布的。在具體實施時,為了簡化處理過程,也可以在所述圓形區(qū)域的外切正方形中進行取樣,請參考圖8,其為本申請實施例提供的在待查詢區(qū)域中取樣的示意圖,在該圖中,在圓形區(qū)域的外切正方形中均勻選擇了16個采樣點。
在本實施例的一個具體例子中,要獲取與待檢索位點之間的距離在0~500m之間的目標實體信息,因此在以待檢索位點為中心的、半徑為500m的圓形區(qū)域中,選擇了20x 20=400個取樣點。在其他實施方式中,可以綜合考慮具體的需求以及數(shù)據(jù)庫搜索的代價選擇不同數(shù)目的取樣點,本實施例對此不作具體限定。
步驟603:將各取樣點的第一經(jīng)緯度坐標值分別轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值。
步驟604:將各取樣點的第二經(jīng)緯度坐標值分別編碼為GeoHash值。
步驟605:根據(jù)各取樣點的GeoHash值分別查詢所述目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
由于在到待檢索位點的距離在所述預設范圍內(nèi)的圓形區(qū)域中選取了取樣點,本步驟可以分別根據(jù)各取樣點的GeoHash值在相應的小區(qū)塊中(如圖8中所示的每個取樣點所在的小正方形區(qū)塊中)進行查詢,從而獲取滿足條件的目標實體信息。具體過程包括步驟605-1至605-3,下面結(jié)合附圖9做進一步說明。
步驟605-1、根據(jù)各取樣點的GeoHash值和所述預設范圍,計算對應于每個取樣點的查詢范圍。
由于在以所述待檢索位點為中心的、到待檢索位點的距離在所述預設范圍內(nèi)的圓形區(qū)域中進行了取樣,相當于提高了查詢精度,可以縮小每次查詢的范圍。在前面提供的第一實施例的步驟104中,已經(jīng)給出了根據(jù)所述預設范圍確定GeoHash值前綴長度的實現(xiàn)方法,具體實施時,可以在此基礎上,計算由于采用取樣方式增加精度導致用于查詢的前綴長度的增加值。在本實施例的一個具體例子中,總共選取了20行x 20列共400個取樣點,可以采用如下代碼片段計算所述前綴長度的增加值,其中,Delta是可供調(diào)節(jié)的參數(shù),可以根據(jù)具體需求進行設置,例如,設置為1或者2:
SAMPLING_ADDED_PRECISION=(int)(Math.log(20)/Math.log(2))-Delta;
將根據(jù)所述預設范圍確定的前綴長度與由于采樣增加的前綴長度相加,得到對每個取樣點所在小區(qū)塊進行查詢的GeoHash值的前綴長度。針對每個取樣點,保留其GeoHash值位于所述前綴部分的值,通過將位于所述前綴之后的各個比特位設置為0,獲取查詢區(qū)間的最小值,將位于所述前綴之后的各個比特位設置為1,獲取查詢區(qū)間的最大值,從而得到對應于每個取樣點的查詢范圍。
步驟605-2、按照每個取樣點的查詢范圍,在所述目標實體數(shù)據(jù)庫中進行查詢,獲取對應于各取樣點的目標實體。
針對每個取樣點,根據(jù)在步驟605-1中得到的查詢范圍,在所述目標實體數(shù)據(jù)庫中進行區(qū)間查詢,獲取在所述目標實體數(shù)據(jù)庫中存儲的、符合所述查詢范圍要求的GeoHash值,并可以進一步獲取對應的目標實體。
步驟605-3、計算所述目標實體與待檢索位點之間的距離,并將符合所述預設范圍要求的目標實體的相關信息作為所述待檢索位點的檢索結(jié)果。
步驟605-2通過數(shù)據(jù)庫查詢操作通??梢哉倩囟鄠€目標實體,本步驟分別計算這些目標實體與待檢索位點之間的距離,刪除所述距離不在預設范圍內(nèi)的目標實體,并可以將保留下來的目標實體及其相關信息作為所述待檢索位點的檢索結(jié)果。
本實施例提供的基于地理位置的信息檢索方法,由于采用雙錐坐標系,能夠有效解決在高緯度地區(qū)無法準確檢索的問題,同時,由于采用了在以所述待檢索位點為中心的、到待檢索位點的距離在所述預設范圍內(nèi)的圓形區(qū)域中進行取樣、并根據(jù)每個取樣點進行區(qū)間查詢的優(yōu)選實施方式,在不會遺漏位于所述預設范圍內(nèi)的目標實體的同時,由于每次查詢的區(qū)間縮小了,每次查詢召回的 結(jié)果顯著減少,而且所有取樣點整體召回的結(jié)果也顯著減少,從而可以有效避免召回大量無用數(shù)據(jù)的情況,實現(xiàn)較高的檢索準確率,減少進行篩選過濾操作的工作量,有效提高執(zhí)行效率。
在上述的實施例中,提供了一種基于地理位置的信息檢索方法,與之相對應的,本申請還提供一種基于地理位置的信息檢索裝置。請參看圖10,其為本申請的一種基于地理位置的信息檢索裝置的實施例示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種基于地理位置的信息檢索裝置,包括:第一經(jīng)緯度獲取單元1001,用于獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值;第二經(jīng)緯度轉(zhuǎn)換單元1002,用于將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;GeoHash編碼單元1003,用于將第二經(jīng)緯度坐標值編碼為GeoHash值;目標實體查詢單元1004,用于根據(jù)所述GeoHash值查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
可選的,所述裝置包括:數(shù)據(jù)庫建立單元,用于預先建立所述目標實體數(shù)據(jù)庫;
所述數(shù)據(jù)庫建立單元包括:
信息收集子單元,用于收集供查詢目標實體的基于地理坐標系的第一經(jīng)緯度坐標值;
坐標值轉(zhuǎn)換子單元,用于將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;
編碼子單元,用于將第二經(jīng)緯度坐標值編碼為GeoHash值;
存儲子單元,用于在目標實體數(shù)據(jù)庫中存儲所述GeoHash值,并建立GeoHash值與所述供查詢的目標實體的對應關系。
可選的,所述數(shù)據(jù)庫建立單元還包括:
實體坐標折疊子單元,用于對所述信息收集子單元收集的第一經(jīng)緯度坐標值中、屬于預設折疊區(qū)間的第一經(jīng)度坐標值,進行坐標值折疊變換,并在處理完畢后觸發(fā)所述坐標值轉(zhuǎn)換子單元工作。
可選的,所述裝置還包括:
折疊判斷單元,用于判斷所述第一經(jīng)緯度獲取單元獲取的所述第一經(jīng)緯度 坐標值中的第一經(jīng)度坐標值是否屬于預設折疊區(qū)間;
折疊變換單元,用于當所述折疊判斷單元的輸出為是時,對所述第一經(jīng)度坐標值進行坐標值折疊變換。
可選的,所述第二經(jīng)緯度轉(zhuǎn)換單元以及所述坐標值轉(zhuǎn)換子單元,分別包括以下子單元:
第二緯度坐標值生成單元,用于將第一緯度坐標值作為第二緯度坐標值;
第二經(jīng)度坐標值生成單元,用于采用如下公式計算第二經(jīng)度坐標值:θ(bicone)=arcSin(cos(Ψ(wgs))*cos(θ(wgs))),其中,θ(bicone)是第二經(jīng)度坐標值,Ψ(wgs)是第一緯度坐標值,θ(wgs)是第一經(jīng)度坐標值。
可選的,所述裝置包括:
取樣單元,用于在獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值之后,在以所述待檢索位點為中心的、到待檢索位點的距離在所述預設范圍內(nèi)的圓形區(qū)域中取樣;
所述第二經(jīng)緯度轉(zhuǎn)換單元具體用于,將各取樣點的第一經(jīng)緯度坐標值分別轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;
所述GeoHash編碼單元具體用于,將各取樣點的第二經(jīng)緯度坐標值分別編碼為GeoHash值;
所述目標實體查詢單元具體用于,根據(jù)各取樣點的GeoHash值分別查詢所述目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
可選的,所述目標實體查詢單元包括:
查詢范圍計算子單元,用于根據(jù)各取樣點的GeoHash值和所述預設范圍,計算對應于每個取樣點的查詢范圍;
查詢執(zhí)行子單元,用于按照每個取樣點的查詢范圍,在所述目標實體數(shù)據(jù)庫中進行查詢,獲取對應于各取樣點的目標實體;
結(jié)果過濾子單元,用于計算所述目標實體與待檢索位點之間的距離,并將符合所述預設范圍要求的目標實體的相關信息作為所述待檢索位點的檢索結(jié)果。
此外,本申請還提供一種基于地理位置的信息獲取方法。請參考圖11,其為本申請?zhí)峁┑囊环N基于地理位置的信息獲取方法的實施例的流程圖,本實施例與第一實施例步驟相同的部分不再贅述,下面重點描述不同之處。本申請?zhí)峁┑囊环N基于地理位置的信息獲取方法包括:
步驟1101:獲取待檢索位點的位置信息。
本方法通常在需要查詢待檢索位點周邊目標實體信息的客戶端設備上實施,所述客戶端設備包括:移動通訊設備。所述待檢索位點的位置信息可以是所述客戶端設備的位置信息,具體實施時,可以通過開啟客戶端設備的GPS功能,從而獲知客戶端設備的基于地理坐標系的第一經(jīng)緯度坐標值。
所述待檢索位點的位置信息并不局限于所述客戶端設備的位置信息,也可以是其它需要檢索的地點的位置信息。所述位置信息也并不局限于經(jīng)緯度坐標值,可以是其它能夠表征待檢索位點所在地理位置的信息,例如,可以是所述待檢索位點與基站的位置關系信息、所述待檢索位點所屬wifi區(qū)域的標識信息、或者所述待檢索位點的地理名稱等。
步驟1102:向服務端發(fā)送周邊信息獲取請求,所述請求中至少攜帶所述位置信息。
向提供周邊目標實體檢索服務的服務端發(fā)送周邊信息獲取請求,所述請求中至少攜帶所述待檢索位點的位置信息,所述請求中還可以指定查詢周邊目標實體的范圍信息,例如:查詢與所述待檢索位點之間的距離屬于0~500m范圍之內(nèi)的目標實體信息。
步驟1103:接收所述服務端返回的對應于所述待檢索位點的目標實體信息,所述目標實體信息是所述服務端采用基于雙錐坐標系的信息檢索方法獲取的。
在步驟1102向服務端發(fā)送周邊信息獲取請求后,本步驟可以接收所述服務端返回的位于所述待檢索位點周邊的目標實體信息,所述目標實體信息是由所述服務端根據(jù)待檢索位點的基于雙錐坐標系的GeoHash值查詢目標實體數(shù)據(jù)庫后獲取的。
在上述的實施例中,提供了一種基于地理位置的信息獲取方法,與之相對應的,本申請還提供一種基于地理位置的信息獲取裝置。請參看圖12,其為本申請的一種基于地理位置的信息獲取裝置的實施例示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分 說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種基于地理位置的信息獲取裝置,包括:位置信息獲取單元1201,用于獲取待檢索位點的位置信息;請求發(fā)送單元1202,用于向服務端發(fā)送周邊信息獲取請求,所述請求中至少攜帶所述位置信息;結(jié)果接收單元1203,用于接收所述服務端返回的對應于所述待檢索位點的目標實體信息,所述目標實體信息是所述服務端采用基于雙錐坐標系的信息檢索方法獲取的。
此外,本申請還提供一種基于地理位置的信息提供方法。請參考圖13,其為本申請?zhí)峁┑囊环N基于地理位置的信息提供方法的實施例的流程圖,本實施例與第一實施例以及第二實施例步驟相同的部分不再贅述,下面重點描述不同之處。本申請?zhí)峁┑囊环N基于地理位置的信息提供方法包括:
步驟1301、接收客戶端發(fā)送的周邊信息獲取請求,根據(jù)請求中攜帶的位置信息獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值。
如果所述請求中攜帶的是待檢索位點的基于地理坐標系的第一經(jīng)緯度坐標值,則直接提取該數(shù)據(jù)即可;如果所述請求中攜帶的是其它能夠表征待檢索位點所在地理位置的信息,例如與基站的位置關系信息、所屬WiFi區(qū)域的標識信息、或者地理名稱,那么可以通過執(zhí)行相應的轉(zhuǎn)換操作或者相應的地理信息數(shù)據(jù)庫或數(shù)據(jù)表的查找操作,得到待檢索位點的第一經(jīng)緯度坐標值。
步驟1302、將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值。
步驟1303、將第二經(jīng)緯度作標值編碼為GeoHash值。
步驟1304、根據(jù)GeoHash值查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離滿足預設條件的目標實體信息。
如果步驟1301接收的周邊信息獲取請求中指定了查詢周邊目標實體的范圍信息,那么本步驟可以通過查詢獲取與所述待檢索位點的距離在所述指定范圍內(nèi)的目標實體信息;如果步驟1301接收的周邊信息獲取請求中未指定所述范圍信息,那么本步驟可以根據(jù)預設策略或者經(jīng)驗值設置所述范圍信息,并通過查詢獲取與所述待檢索位點的距離在所述設置范圍內(nèi)的目標實體信息,在具體實施中,還可以對查詢得到的目標實體信息按照其與待檢索位點的距離從小到大排序,并從中篩選排序靠前的、預定數(shù)量的目標實體信息。
步驟1305、將所述目標實體信息返回給所述客戶端。
將步驟1304獲取的目標實體信息返回給所述客戶端。通過步驟1301-1305的描述可以看出,由于采用雙錐坐標系對待檢索位點的經(jīng)緯度坐標值進行了轉(zhuǎn)換,因此避免了基于傳統(tǒng)地理坐標系的GeoHash在高緯度地區(qū)經(jīng)緯度編碼塌縮速率不一致的問題,即使客戶端希望查詢的待檢索位點位于高緯度地區(qū),本方法也依然能夠進行高效、準確的檢索,從而提高檢索的整體準確率。
在上述的實施例中,提供了一種基于地理位置的信息提供方法,與之相對應的,本申請還提供一種基于地理位置的信息提供裝置。請參看圖14,其為本申請的一種基于地理位置的信息提供裝置的實施例示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種基于地理位置的信息提供裝置,包括:請求接收單元1401,用于接收客戶端發(fā)送的周邊信息獲取請求,根據(jù)請求中攜帶的位置信息獲取待檢索位點基于地理坐標系的第一經(jīng)緯度坐標值;第二經(jīng)緯度轉(zhuǎn)換單元1402,用于將第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值;GeoHash編碼單元1403,用于將第二經(jīng)緯度坐標值編碼為GeoHash值;目標實體查詢單元1404,用于根據(jù)GeoHash值查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離滿足預設條件的目標實體信息;結(jié)果返回單元1405,用于將所述目標實體信息返回給所述客戶端。
此外,本申請還提供一種基于地理位置的信息檢索系統(tǒng),如圖15所示,該系統(tǒng)包括上述實施例所述的基于地理位置的信息獲取裝置1501和基于地理位置的信息提供裝置1502。所述基于地理位置的信息獲取裝置可以部署于移動通訊設備、個人電腦、PAD、iPad等多種客戶端設備;所述基于地理位置的信息提供裝置通常部署于服務器,但并不局限于服務器,也可以是能夠?qū)崿F(xiàn)本申請所述的基于地理位置的信息提供方法的任何設備。
例如,基于地理位置的信息獲取裝置部署于移動通訊設備上,所述基于地理位置的信息提供裝置部署于服務器上。所述移動通訊設備通過開啟GPS功能獲取當前的基于地理坐標系的第一經(jīng)緯度坐標值,并將攜帶所述第一經(jīng)緯度作標值的周邊信息獲取請求發(fā)送給所述服務器;所述服務器將接收的第一經(jīng)緯度坐標值轉(zhuǎn)換為基于雙錐坐標系的第二經(jīng)緯度坐標值,并用所述第二經(jīng)緯度坐標值的GeoHash值查詢目標實體數(shù)據(jù)庫,從而獲取所述移動通訊設備周邊的目標實體信息。
上述例子僅僅是示意性的,在其他的實施方式中,也可以采用不同的部署方式和實施方式,只要能夠?qū)崿F(xiàn)本申請所述的基于地理位置的信息檢索系統(tǒng)的整體功能,就都在本申請的保護范圍之內(nèi)。
此外,本申請還提供另一種基于地理位置的信息檢索方法。請參考圖16,其為本申請?zhí)峁┑牧硪环N基于地理位置的信息檢索方法的實施例的流程圖,本實施例與第一實施例以及第二實施例步驟相同的部分不再贅述,下面重點描述不同之處。本申請?zhí)峁┑牧硪环N基于地理位置的信息檢索方法包括:
步驟1601、獲取待檢索位點的經(jīng)緯度坐標值。
步驟1602、在以所述待檢索位點為中心的、到待檢索位點的距離在預設范圍內(nèi)的圓形區(qū)域中取樣。
步驟1603、將各取樣點的經(jīng)緯度坐標值分別編碼為GeoHash值;
步驟1604、根據(jù)各取樣點的GeoHash值分別查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
本步驟可以根據(jù)各取樣點的GeoHash值和所述預設范圍,計算對應于每個取樣點的查詢范圍;然后按照每個取樣點的查詢范圍,在所述目標實體數(shù)據(jù)庫中進行查詢,獲取對應于各取樣點的目標實體;最后計算各目標實體與待檢索位點之間的距離,并將符合所述預設范圍要求的目標實體的相關信息作為所述待檢索位點的檢索結(jié)果。
本申請?zhí)峁┑纳鲜龌诘乩砦恢玫男畔z索方法,由于采用了在待查詢圓形區(qū)域中取樣的方法,與查詢9區(qū)塊的檢索技術相比較,每次查詢的區(qū)間縮小了,每次查詢召回的結(jié)果顯著減少,而且所有取樣點整體召回的結(jié)果也顯著減少,有效避免了召回大量無用數(shù)據(jù)的情況,從而實現(xiàn)了較高的檢索準確率,減少了進行篩選過濾操作的工作量,有效提高執(zhí)行效率。
在上述的實施例中,提供了另一種基于地理位置的信息檢索方法,與之相對應的,本申請還提供另一種基于地理位置的信息檢索裝置。請參看圖17,其為本申請的另一種基于地理位置的信息檢索裝置的實施例示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的另一種基于地理位置的信息檢索裝置,包括:經(jīng)緯度獲取單元 1701,用于獲取待檢索位點的經(jīng)緯度坐標值;區(qū)域取樣單元1702,用于在以所述待檢索位點為中心的、到待檢索位點的距離在預設范圍內(nèi)的圓形區(qū)域中取樣;取樣點編碼單元1703,用于將各取樣點的經(jīng)緯度坐標值分別編碼為GeoHash值;數(shù)據(jù)庫查詢單元1704,用于根據(jù)各取樣點的GeoHash值分別查詢目標實體數(shù)據(jù)庫,獲取與所述待檢索位點的距離在預設范圍內(nèi)的目標實體信息。
本申請雖然以較佳實施例公開如上,但其并不是用來限定本申請,任何本領域技術人員在不脫離本申請的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本申請的保護范圍應當以本申請權利要求所界定的范圍為準。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡接口和內(nèi)存。
內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內(nèi)存是計算機可讀介質(zhì)的示例。
1、計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
2、本領域技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。