本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種確定用戶所在商圈的方法及裝置。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,越來(lái)越多的電子商務(wù)平臺(tái)與電子商務(wù)有關(guān)的業(yè)務(wù)和信息進(jìn)入人們的日常生活和工作當(dāng)中,因此,也越來(lái)越多的廣告商通過(guò)電子商務(wù)平臺(tái)向用戶推送廣告,現(xiàn)有技術(shù)中,往往通過(guò)用戶ip(internetprotocol,網(wǎng)絡(luò)之間互連的協(xié)議)地址、gps(globalpositioningsystem,全球定位系統(tǒng))信息來(lái)獲取用戶實(shí)時(shí)位置,并根據(jù)用戶實(shí)時(shí)位置進(jìn)行廣告投放,該方式是在線廣告投放的趨勢(shì)之一。
但是,僅僅通過(guò)用戶的坐標(biāo)信息進(jìn)行廣告投放,廣告投放的精準(zhǔn)度較低,因此需要將用戶的坐標(biāo)信息轉(zhuǎn)換為已知的商圈、學(xué)校、車站等標(biāo)簽信息來(lái)指導(dǎo)廣告的投放,從而提高廣告投放的精準(zhǔn)度。
在實(shí)現(xiàn)本發(fā)明過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:
目前現(xiàn)有技術(shù)中,可行的用戶實(shí)時(shí)位置定位方法大多采用用戶的ip地址、手機(jī)基站定位信息和gps定位等方式,通過(guò)直接利用這些位置信息進(jìn)行用戶所在商圈的轉(zhuǎn)換,往往存在定位不準(zhǔn)確、計(jì)算耗時(shí)高等問題。使用ip地址來(lái)映射商圈,需要維護(hù)ip地址與地理位置的對(duì)應(yīng)關(guān)系以及地理位置與商圈的映射關(guān)系,若映射關(guān)系更新不及時(shí)將極易導(dǎo)致用戶位置映射不準(zhǔn)確,從而導(dǎo)致定位不準(zhǔn)確;使用gps定位,需要計(jì)算用戶坐標(biāo)與全部商圈坐標(biāo)的距離,以確認(rèn)用戶所在位置是否在某一個(gè)商圈內(nèi),該方式計(jì)算量非常大,因此無(wú)法及時(shí)、高效地實(shí)時(shí)獲取用戶所在的商圈;利用手機(jī)基站定位獲取用戶位置,不但需要確定基站的位置,且受制于電信運(yùn)營(yíng)商,無(wú)法便捷地獲取用戶位置。
因此,亟待一種確定用戶所在商圈的方法,以解決現(xiàn)有技術(shù)中用戶實(shí)時(shí)位置定位準(zhǔn)確性差,實(shí)時(shí)性差等的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種確定用戶所在商圈的方法及裝置,根據(jù)用戶的實(shí)時(shí)地理位置,精確、快速地確定用戶所在的商圈。
一方面,本發(fā)明實(shí)施例提供了一種確定用戶所在商圈的方法,其特征在于,包括:
獲取用戶實(shí)時(shí)的地理位置信息,并對(duì)所述地理位置信息進(jìn)行地址編碼,以確定所述用戶實(shí)時(shí)地理位置的地址編碼;
基于預(yù)定距離的位置范圍,確定與所述用戶實(shí)時(shí)地理位置的地址編碼相鄰的多個(gè)方向的地址編碼區(qū)域;
獲取所述多個(gè)方向的地址編碼區(qū)域內(nèi)的至少一個(gè)商圈信息;
根據(jù)已獲取的所述至少一個(gè)商圈信息,確定與所述用戶實(shí)時(shí)地理位置距離最短的商圈,并獲取所述商圈的地理位置范圍信息;
基于所述用戶實(shí)時(shí)的地理位置信息和所述商圈的地理位置范圍信息,判斷所述用戶是否在所述商圈的地理位置范圍內(nèi)。
另一方面,本發(fā)明實(shí)施例提供了一種確定用戶所在商圈的裝置,其特征在于,包括:
獲取及編碼單元,用于獲取用戶實(shí)時(shí)的地理位置信息,并對(duì)所述地理位置信息進(jìn)行地址編碼,以確定所述用戶實(shí)時(shí)地理位置的地址編碼;
確定單元,用于基于預(yù)定距離的位置范圍,確定與所述用戶實(shí)時(shí)地理位置的地址編碼相鄰的多個(gè)方向的地址編碼區(qū)域;
第一獲取單元,用于獲取所述多個(gè)方向的地址編碼區(qū)域內(nèi)的至少一個(gè)商圈信息;
確定及獲取單元,用于根據(jù)已獲取的所述至少一個(gè)商圈信息,確定與所述用戶實(shí)時(shí)地理位置距離最短的商圈,并獲取所述商圈的地理位置范圍信息;
判斷單元,用于基于所述用戶實(shí)時(shí)的地理位置信息和所述商圈的地理位置范圍信息,判斷所述用戶是否在所述商圈的地理位置范圍內(nèi)。
上述技術(shù)方案具有如下有益效果:通過(guò)及時(shí)高效地將用戶實(shí)時(shí)的地理位置信息轉(zhuǎn)換為對(duì)應(yīng)的地址編碼,為后續(xù)快速地確定用戶所在商圈提供了必要的前提保障;通過(guò)地址編碼的方式,使用較少的計(jì)算量,即可快速準(zhǔn)確地確定與用戶實(shí)時(shí)地理位置距離最短的商圈,從而能夠精確地判斷用戶是否在所述商圈的位置范圍內(nèi),進(jìn)一步地,為廣告投放商精準(zhǔn)投放廣告提供了必要的決策依據(jù),提高了廣告的投放效益。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例中一種確定用戶所在商圈的方法流程圖;
圖2為本發(fā)明實(shí)施例中一種確定用戶所在商圈的裝置構(gòu)示意圖;
圖3為本發(fā)明一優(yōu)選實(shí)施例中一種確定用戶所在商圈的方法流程示意圖;
圖4為本發(fā)明一優(yōu)選實(shí)施例中α各個(gè)方位的近鄰編碼區(qū)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,為本發(fā)明實(shí)施例中一種確定用戶所在商圈的方法流程圖,包括:
101、獲取用戶實(shí)時(shí)的地理位置信息,并對(duì)所述地理位置信息進(jìn)行地址編碼,以確定所述用戶實(shí)時(shí)地理位置的地址編碼;
102、基于預(yù)定距離的位置范圍,確定與所述用戶實(shí)時(shí)地理位置的地址編碼相鄰的多個(gè)方向的地址編碼區(qū)域;
103、獲取所述多個(gè)方向的地址編碼區(qū)域內(nèi)的至少一個(gè)商圈信息;
104、根據(jù)已獲取的所述至少一個(gè)商圈信息,確定與所述用戶實(shí)時(shí)地理位置距離最短的商圈,并獲取所述商圈的地理位置范圍信息;
105、基于所述用戶實(shí)時(shí)的地理位置信息和所述商圈的地理位置范圍信息,判斷所述用戶是否在所述商圈的地理位置范圍內(nèi)。
優(yōu)選地,所述獲取用戶實(shí)時(shí)的地理位置信息,并對(duì)所述地理位置信息進(jìn)行地址編碼,以確定所述用戶實(shí)時(shí)地理位置的地址編碼的步驟之前,還包括:
監(jiān)聽用戶實(shí)時(shí)的地理位置信息,并預(yù)創(chuàng)建第一數(shù)據(jù)庫(kù),所述第一數(shù)據(jù)庫(kù)用于存儲(chǔ)用戶實(shí)時(shí)的地理位置信息;
當(dāng)監(jiān)聽到用戶實(shí)時(shí)的地理位置信息更新時(shí),獲取用戶實(shí)時(shí)的地理位置信息并存儲(chǔ)至所述第一數(shù)據(jù)庫(kù);
其中,所述對(duì)所述地理位置信息進(jìn)行地址編碼,以確定用戶實(shí)時(shí)地理位置的地址編碼,包括:
通過(guò)地理散列算法對(duì)所述地理位置信息進(jìn)行地址編碼,以確定用戶實(shí)時(shí)地理位置的地址編碼。
可選地,還包括:
預(yù)創(chuàng)建第二數(shù)據(jù)庫(kù),將商圈信息導(dǎo)入和/或更新至所述第二數(shù)據(jù)庫(kù)。
其中,所述獲取所述多個(gè)方向的地址編碼區(qū)域內(nèi)的至少一個(gè)商圈信息,包括:
通過(guò)所述第二數(shù)據(jù)庫(kù),獲取所述多個(gè)方向的地址編碼區(qū)域內(nèi)的至少一個(gè)商圈信息;
其中,所述商圈信息包括商圈的標(biāo)識(shí)信息、商圈的地理位置范圍信息、商圈的地理位置信息、商圈的地址編碼值、商圈的類型和商圈的名稱;
其中,所述根據(jù)已獲取的所述至少一個(gè)商圈信息,確定與所述用戶實(shí)時(shí)地理位置距離最短的商圈,并獲取所述商圈的地理位置范圍信息,包括:
將所述已獲取的所述至少一個(gè)商圈的地址編碼值轉(zhuǎn)換為地理位置的經(jīng)緯度信息;或者,根據(jù)已獲取的所述至少一個(gè)商圈的地理位置信息,確定所述至少一個(gè)商圈的地理位置的經(jīng)緯度信息;
分別計(jì)算所述至少一個(gè)商圈中每一個(gè)商圈的經(jīng)緯度與所述用戶實(shí)時(shí)地理位置的經(jīng)緯度的距離,確定與所述用戶實(shí)時(shí)地理位置距離最短的商圈。
優(yōu)選地,所述基于所述用戶實(shí)時(shí)的地理位置信息和所述商圈的地理位置范圍信息,判斷所述用戶是否在所述商圈的地理位置范圍內(nèi),包括:
根據(jù)所述商圈的地理位置范圍信息,計(jì)算所述商圈的地理位置范圍;
根據(jù)所述商圈的地理位置范圍,判斷所述用戶實(shí)時(shí)地理位置是否在所述商圈的地理位置范圍內(nèi)。
可選地,還包括:
預(yù)創(chuàng)建第三數(shù)據(jù)庫(kù),所述第三數(shù)據(jù)庫(kù)用于存儲(chǔ)用戶相關(guān)信息;
其中,所述若判斷所述用戶在所述商圈的地理位置范圍內(nèi),還包括:
將用戶相關(guān)信息存儲(chǔ)至所述第三數(shù)據(jù)庫(kù),以便于查詢所述商圈范圍內(nèi)的用戶信息;
其中,所述用戶相關(guān)信息包括用戶標(biāo)識(shí)信息、用戶地理位置更新時(shí)間、用戶所在商圈的地址編碼值中的至少一項(xiàng)。
如圖2所示,為本發(fā)明實(shí)施例中一種確定用戶所在商圈的裝置構(gòu)示意圖,包括:
獲取及編碼單元21,用于獲取用戶實(shí)時(shí)的地理位置信息,并對(duì)所述地理位置信息進(jìn)行地址編碼,以確定所述用戶實(shí)時(shí)地理位置的地址編碼;
確定單元22,用于基于預(yù)定距離的位置范圍,確定與所述用戶實(shí)時(shí)地理位置的地址編碼相鄰的多個(gè)方向的地址編碼區(qū)域;
第一獲取單元23,用于獲取所述多個(gè)方向的地址編碼區(qū)域內(nèi)的至少一個(gè)商圈信息;
確定及獲取單元24,用于根據(jù)已獲取的所述至少一個(gè)商圈信息,確定與所述用戶實(shí)時(shí)地理位置距離最短的商圈,并獲取所述商圈的地理位置范圍信息;
判斷單元25,用于基于所述用戶實(shí)時(shí)的地理位置信息和所述商圈的地理位置范圍信息,判斷所述用戶是否在所述商圈的地理位置范圍內(nèi)。
優(yōu)選地,所述獲取用戶實(shí)時(shí)的地理位置信息,并對(duì)所述地理位置信息進(jìn)行地址編碼,以確定所述用戶實(shí)時(shí)地理位置的地址編碼之前,還包括:
監(jiān)聽單元,用于監(jiān)聽用戶實(shí)時(shí)的地理位置信息,并預(yù)創(chuàng)建第一數(shù)據(jù)庫(kù),所述第一數(shù)據(jù)庫(kù)用于存儲(chǔ)用戶實(shí)時(shí)的地理位置信息;
第二獲取單元,用于當(dāng)監(jiān)聽到用戶實(shí)時(shí)的地理位置信息更新時(shí),獲取用戶實(shí)時(shí)的地理位置信息并存儲(chǔ)至所述第一數(shù)據(jù)庫(kù);
其中,所述獲取及編碼單元,包括:
編碼模塊,用于通過(guò)地理散列算法對(duì)所述地理位置信息進(jìn)行地址編碼,以確定用戶實(shí)時(shí)地理位置的地址編碼。
可選地,還包括:
第一預(yù)創(chuàng)建單元,用于預(yù)創(chuàng)建第二數(shù)據(jù)庫(kù),將商圈信息導(dǎo)入和/或更新至所述第二數(shù)據(jù)庫(kù)。
其中,所述第一獲取單元,包括:
獲取模塊,用于通過(guò)所述第二數(shù)據(jù)庫(kù),獲取所述多個(gè)方向的地址編碼區(qū)域內(nèi)的至少一個(gè)商圈信息;
其中,所述商圈信息包括商圈的標(biāo)識(shí)信息、商圈的地理位置范圍信息、商圈的地理位置信息、商圈的地址編碼值、商圈的類型和商圈的名稱;
其中,所述確定及獲取單元,包括:
地理位置確定模塊,用于將所述已獲取的所述至少一個(gè)商圈的地址編碼值轉(zhuǎn)換為地理位置的經(jīng)緯度信息;或者,根據(jù)已獲取的所述至少一個(gè)商圈的地理位置信息,確定所述至少一個(gè)商圈的地理位置的經(jīng)緯度信息;
計(jì)算及確定模塊,用于分別計(jì)算所述至少一個(gè)商圈中每一個(gè)商圈的經(jīng)緯度與所述用戶實(shí)時(shí)地理位置的經(jīng)緯度的距離,確定與所述用戶實(shí)時(shí)地理位置距離最短的商圈。
優(yōu)選地,所述判斷單元,包括:
計(jì)算模塊,用于根據(jù)所述商圈的地理位置范圍信息,計(jì)算所述商圈的地理位置范圍;
判斷模塊,用于根據(jù)所述商圈的地理位置范圍,判斷所述用戶實(shí)時(shí)地理位置是否在所述商圈的地理位置范圍內(nèi)。
可選地,還包括:
第二預(yù)創(chuàng)建單元,用于預(yù)創(chuàng)建第三數(shù)據(jù)庫(kù),所述第三數(shù)據(jù)庫(kù)用于存儲(chǔ)用戶相關(guān)信息;
其中,所述若判斷所述用戶在所述商圈的地理位置范圍內(nèi),還包括:
存儲(chǔ)單元,用于將用戶相關(guān)信息存儲(chǔ)至所述第三數(shù)據(jù)庫(kù),以便于查詢所述商圈范圍內(nèi)的用戶信息;
其中,所述用戶相關(guān)信息包括用戶標(biāo)識(shí)信息、用戶地理位置更新時(shí)間、用戶所在商圈地址編碼值中的至少一項(xiàng)。
本發(fā)明實(shí)施例上述技術(shù)方案具有如下有益效果:通過(guò)及時(shí)高效地將用戶實(shí)時(shí)的地理位置信息轉(zhuǎn)換為對(duì)應(yīng)的地址編碼,為后續(xù)快速地確定用戶所在商圈提供了必要的前提保障;通過(guò)地址編碼的方式,使用較少的計(jì)算量,即可快速準(zhǔn)確地確定與用戶實(shí)時(shí)地理位置距離最短的商圈,從而能夠精確地判斷用戶是否在所述商圈的位置范圍內(nèi),進(jìn)一步地,為廣告投放商精準(zhǔn)投放廣告提供了必要的決策依據(jù),提高了廣告的投放效益。
以下結(jié)合應(yīng)用實(shí)例對(duì)本發(fā)明實(shí)施例上述技術(shù)方案進(jìn)行詳細(xì)說(shuō)明:
本發(fā)明應(yīng)用實(shí)例旨在根據(jù)用戶的實(shí)時(shí)地理位置,精確、快速地確定用戶所在的商圈。
如圖1所示,通過(guò)用戶user1終端設(shè)備的gps定位信息,獲取用戶user1實(shí)時(shí)的地理位置經(jīng)緯度信息,并對(duì)已獲取的用戶user1地理位置經(jīng)緯度信息進(jìn)行地址編碼,以確定用戶user1實(shí)時(shí)地理位置的地址編碼;隨后基于預(yù)定的距離的位置范圍,如5km半徑內(nèi)的位置范圍,確定與所述地址編碼相鄰的西北、北、東北、東、東南、南、西南、西8個(gè)方向的地址編碼區(qū)域,并獲取該8個(gè)方向的地址編碼區(qū)域內(nèi)商圈a、商圈b和商圈c的商圈信息;隨后,根據(jù)已獲取的商圈a、商圈b和商圈c的商圈信息,通過(guò)haversine(半正矢)公式,確定與用戶user1實(shí)時(shí)地理位置經(jīng)緯度距離最短的商圈為商圈b,隨后獲取商圈b的范圍信息,并判斷用戶user1是否在商圈b的位置范圍內(nèi)。
在一優(yōu)選實(shí)施例中,在步驟101之前,還包括:監(jiān)聽用戶實(shí)時(shí)的地理位置信息,并預(yù)創(chuàng)建第一數(shù)據(jù)庫(kù),所述第一數(shù)據(jù)庫(kù)用于存儲(chǔ)用戶實(shí)時(shí)的地理位置信息;當(dāng)監(jiān)聽到用戶實(shí)時(shí)的地理位置信息更新時(shí),獲取用戶實(shí)時(shí)的地理位置信息并存儲(chǔ)至所述第一數(shù)據(jù)庫(kù)。
其中,所述對(duì)所述地理位置信息進(jìn)行地址編碼,以確定用戶實(shí)時(shí)地理位置的地址編碼,包括:
通過(guò)地理散列算法對(duì)所述地理位置信息進(jìn)行地址編碼,以確定用戶實(shí)時(shí)地理位置的地址編碼。
例如,預(yù)創(chuàng)建第一數(shù)據(jù)庫(kù),如redis數(shù)據(jù)庫(kù)redisdb1,以用于存儲(chǔ)用戶實(shí)時(shí)地理位置信息,并通過(guò)redis數(shù)據(jù)庫(kù)中的monitor命令監(jiān)聽用戶實(shí)時(shí)的地理位置信息;當(dāng)監(jiān)聽到用戶user1實(shí)時(shí)地理位置信息更新時(shí),獲取用戶user1實(shí)時(shí)地理位置信息并存儲(chǔ)至redisdb1;隨后,從redisdb1獲取用戶user1實(shí)時(shí)的地理位置信息,通過(guò)geohash地理散列算法對(duì)用戶user1的實(shí)時(shí)地理位置信息進(jìn)行地址編碼,以確定用戶user1實(shí)時(shí)地理位置的地址編碼,如用戶user1實(shí)時(shí)地理位置緯度和緯度的地址編碼為“wx4g”。
需要說(shuō)明的是,本領(lǐng)域技術(shù)人員可以了解到,redis數(shù)據(jù)庫(kù)是一個(gè)開源的使用ansic語(yǔ)言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、key-value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的api;geohash是一種地址編碼,簡(jiǎn)單來(lái)說(shuō)是將一個(gè)經(jīng)緯度信息,轉(zhuǎn)換成一個(gè)可以排序,可以比較的字符串編碼,該字符串表示的并不是一個(gè)點(diǎn),而是一個(gè)矩形區(qū)域,具體地址geohash地理散列算法首先將緯度范圍(-90,90)平分成兩個(gè)區(qū)間(-90,0)、(0,90),如果目標(biāo)緯度位于前一個(gè)區(qū)間,則編碼為0,否則編碼為1。例如39.92324屬于(0,90),所以取編碼為1。然后再將(0,90)分成(0,45),(45,90)兩個(gè)區(qū)間,而39.92324位于(0,45),所以編碼為0。以此類推,直到精度符合要求為止,通過(guò)上述計(jì)算,緯度產(chǎn)生的編碼如為1011100011,經(jīng)度產(chǎn)生的編碼如為1101001011,偶數(shù)位放經(jīng)度,奇數(shù)位放緯度,把2串編碼組合生成新串:11100111010010001111,最后使用0-9、b-z(去掉a,i,l,o)這32個(gè)字母進(jìn)行base32編碼,首先將11100111010010001111轉(zhuǎn)成十進(jìn)制,對(duì)應(yīng)著28、29、4、15,十進(jìn)制對(duì)應(yīng)的編碼就是wx4g。同理,將編碼轉(zhuǎn)換成經(jīng)緯度的解碼算法與之相反,具體不再贅述。
在一優(yōu)選實(shí)施例中,該方法還包括:預(yù)創(chuàng)建第二數(shù)據(jù)庫(kù),將商圈信息導(dǎo)入和/或更新至所述第二數(shù)據(jù)庫(kù)。
其中,步驟103所述獲取所述多個(gè)方向的地址編碼區(qū)域內(nèi)的至少一個(gè)商圈信息,包括:通過(guò)所述第二數(shù)據(jù)庫(kù),獲取所述多個(gè)方向的地址編碼區(qū)域內(nèi)的至少一個(gè)商圈信息。
其中,所述商圈信息包括商圈的標(biāo)識(shí)信息、商圈的地理位置范圍信息、商圈的地理位置信息、商圈的地址編碼值、商圈的類型和商圈的名稱;
其中,所述根據(jù)已獲取的所述至少一個(gè)商圈信息,確定與所述用戶實(shí)時(shí)地理位置距離最短的商圈,并獲取所述商圈的地理位置范圍信息,包括:將所述已獲取的所述至少一個(gè)商圈的地址編碼值轉(zhuǎn)換為地理位置的經(jīng)緯度信息或根據(jù)已獲取的所述至少一個(gè)商圈的地理位置信息,確定所述至少一個(gè)商圈的地理位置的經(jīng)緯度信息;分別計(jì)算所述至少一個(gè)商圈中每一個(gè)商圈的經(jīng)緯度與所述用戶實(shí)時(shí)地理位置的經(jīng)緯度的距離,確定與所述用戶實(shí)時(shí)地理位置距離最短的商圈。
例如,預(yù)創(chuàng)建第二數(shù)據(jù)庫(kù),如geodatabase數(shù)據(jù)庫(kù)geodb2,在離線狀態(tài)時(shí),將商圈a、商圈b、商圈c和商圈d等商圈的商圈信息導(dǎo)入至第二數(shù)據(jù)庫(kù)geodb2,若商圈信息發(fā)生變化時(shí),則在geodb2中更新相應(yīng)的商圈信息;若通過(guò)用戶user1終端設(shè)備的gps定位信息,確定用戶user1在預(yù)定距離位置范圍內(nèi)相鄰的商圈包括商圈a、商圈b和商圈c,隨后獲取商圈a、商圈b和商圈c的商圈信息的地址編碼值,如wx4er、wx4g2、wx4g3,并將wx4er、wx4g2、wx4g3轉(zhuǎn)換為地理位置的經(jīng)緯度信息,得到轉(zhuǎn)換后的商圈a、商圈b和商圈c的經(jīng)緯度分別為,如(32.88,96.36)、(48.12,56.33)和(56.336,23.258),通過(guò)haversine公式計(jì)算商圈a、商圈b和商圈c的經(jīng)緯度與用戶user1實(shí)時(shí)地理位置的經(jīng)緯度,如(47,55),的距離,確定得到與用戶user1實(shí)時(shí)地理位置距離最短的商圈,如為商圈b。
通過(guò)本實(shí)施例,避免了因數(shù)據(jù)更新不及時(shí)等因素導(dǎo)致第二數(shù)據(jù)庫(kù)中存儲(chǔ)的商圈經(jīng)緯度信息導(dǎo)致存在誤差,從而使得無(wú)法精確確定與用戶實(shí)時(shí)地理位置距離最短的商圈的情況,進(jìn)一步地,保證了確定與用戶實(shí)時(shí)地理位置距離最短的商圈的精確度。
本領(lǐng)域技術(shù)人員可以了解到,geodatabase是一種采用標(biāo)準(zhǔn)關(guān)系數(shù)據(jù)庫(kù)技術(shù)來(lái)表現(xiàn)地理信息的數(shù)據(jù)模型,geodatabase支持在標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)管理系統(tǒng)(dbms)表中存儲(chǔ)和管理地理信息;geodatabase支持多種dbms結(jié)構(gòu)和多用戶訪問,且大小可伸縮。需要說(shuō)明的是,商圈規(guī)劃并導(dǎo)入數(shù)據(jù)庫(kù)所花費(fèi)的時(shí)間比較長(zhǎng),但是由于商圈信息的更新頻率不會(huì)太高,因此在本方法實(shí)施例中,將商圈信息導(dǎo)入和/或更新至所述第二數(shù)據(jù)庫(kù),優(yōu)選通過(guò)使用離線的方式將商圈信息導(dǎo)入和/或更新至所述第二數(shù)據(jù)庫(kù)。本發(fā)明雖會(huì)以特定的方式為例說(shuō)明如何將商圈信息導(dǎo)入和/或更新至所述第二數(shù)據(jù)庫(kù),但在此不做限定。
通過(guò)本實(shí)施例,通過(guò)離線方式將商圈信息導(dǎo)入和/或更新至所述第二數(shù)據(jù)庫(kù),不但不影響在線商圈匹配效率,且降低了在線狀態(tài)下的工作量,減輕了服務(wù)器的壓力,從而提高了在線狀態(tài)確定與所述用戶實(shí)時(shí)地理位置距離最短的商圈的效率。
在一優(yōu)選實(shí)施例中,步驟105所述基于所述用戶實(shí)時(shí)的地理位置信息和所述商圈的地理位置范圍信息,判斷所述用戶是否在所述商圈的地理位置范圍內(nèi),包括:根據(jù)所述商圈的地理位置范圍信息,計(jì)算所述商圈的地理位置范圍;根據(jù)所述商圈的地理位置范圍,判斷所述用戶實(shí)時(shí)地理位置是否在所述商圈的地理位置范圍內(nèi)。
例如,已確定得到與用戶user1實(shí)時(shí)地理位置距離最短的商圈為商圈b,根據(jù)商圈b的范圍信息,如商圈b的矩形范圍的對(duì)角線中心點(diǎn)的經(jīng)緯度信息和左右偏移經(jīng)緯度信息等,計(jì)算商圈b的地理位置范圍,隨后,根據(jù)商圈b的地理位置范圍,判斷用戶user1實(shí)時(shí)地理位置是否在商圈b的地理位置范圍內(nèi)。
在一優(yōu)選實(shí)施例中,該方法還包括:預(yù)創(chuàng)建第三數(shù)據(jù)庫(kù),所述第三數(shù)據(jù)庫(kù)用于存儲(chǔ)用戶相關(guān)信息。
其中,所述若判斷所述用戶在所述商圈的地理位置范圍內(nèi),還包括:將用戶相關(guān)信息存儲(chǔ)至所述第三數(shù)據(jù)庫(kù),以便于查詢所述商圈范圍內(nèi)的用戶信息。
其中,所述用戶相關(guān)信息包括用戶標(biāo)識(shí)信息、用戶地理位置更新時(shí)間、用戶所在商圈地址編碼值中的至少一項(xiàng)。
例如,預(yù)創(chuàng)建第三數(shù)據(jù)庫(kù),如redis數(shù)據(jù)庫(kù)redisdb3,以用于存儲(chǔ)用戶相關(guān)信息,若判斷用戶user1在商圈b的位置范圍內(nèi),將用戶user1相關(guān)信息,如用戶標(biāo)識(shí)信息、用戶地理位置更新時(shí)間、用戶user1所在商圈b的地址編碼值“wx4g2”,存儲(chǔ)至redisdb3,以用于查詢商圈b范圍內(nèi)的用戶信息。
通過(guò)本實(shí)施例,能夠在廣告投放系統(tǒng)中實(shí)現(xiàn)精確查找預(yù)定商圈范圍內(nèi)的用戶信息,從而為廣告投放商精準(zhǔn)投放廣告提供了必要的決策依據(jù),提高了廣告的投放效益,有效地降低了廣告的無(wú)效投放率,進(jìn)一步地,降低了廣告投放的成本。
在一優(yōu)選實(shí)施例中,如圖3所示,預(yù)創(chuàng)建第一數(shù)據(jù)庫(kù),如redis數(shù)據(jù)庫(kù)redisdb11,以用于存儲(chǔ)用戶實(shí)時(shí)地理位置信息,預(yù)創(chuàng)建第二數(shù)據(jù)庫(kù),如geodatabase數(shù)據(jù)庫(kù)geodb12,預(yù)創(chuàng)建第三數(shù)據(jù)庫(kù),如redis數(shù)據(jù)庫(kù)redisdb13,以用于存儲(chǔ)用戶相關(guān)信息;在離線商圈導(dǎo)入步驟中,規(guī)劃各個(gè)商圈的名稱與分類,并找出各個(gè)商圈的中心坐標(biāo)點(diǎn)和商圈的經(jīng)緯度范圍,同時(shí),為每個(gè)商圈設(shè)置一個(gè)唯一的商圈編碼,隨后將各個(gè)商圈中心點(diǎn)經(jīng)緯度轉(zhuǎn)換為geohash編碼,并將以上信息寫入geodb12數(shù)據(jù)庫(kù),其中,以上信息字段如下表一所示:
表一
隨后,在離線狀態(tài)下,將已規(guī)劃的各個(gè)商圈的商圈信息導(dǎo)入至geodb12數(shù)據(jù)庫(kù),若各商圈信息發(fā)生變化時(shí),則在geodb12中更新相應(yīng)的商圈信息;在線狀態(tài)下,負(fù)責(zé)用戶所在商圈的實(shí)時(shí)匹配,主要包括用戶位置變更監(jiān)聽、用戶標(biāo)識(shí)解密、商圈搜索和二次商圈確認(rèn)等步驟;用戶的實(shí)時(shí)位置保存在redisdb11數(shù)據(jù)庫(kù)中,監(jiān)聽模塊使用monitor命令對(duì)其進(jìn)行監(jiān)聽,當(dāng)用戶位置更新時(shí),監(jiān)聽模塊會(huì)檢測(cè)到,并將更新的用戶標(biāo)識(shí)和經(jīng)緯度信息發(fā)送給映射模塊,隨后映射模塊收到用戶實(shí)時(shí)位置更新的經(jīng)緯度信息后,將該經(jīng)緯度信息轉(zhuǎn)化為商圈信息,具體步驟如下:
a、將用戶實(shí)時(shí)經(jīng)緯度信息轉(zhuǎn)換為geohash編碼,記為α,并根據(jù)預(yù)定搜索范圍,如5km,利用α的編碼前綴變換實(shí)現(xiàn)將α的所有近鄰編碼區(qū)域都查找出來(lái),如圖4所示,圖中β、γ等區(qū)域分別為α西北、北、東北、東、東南、南、西南、西,8個(gè)方位的近鄰編碼區(qū)。
需要說(shuō)明的是,本發(fā)明雖會(huì)以特定的方式為例查找α的所有近鄰編碼區(qū)域,本領(lǐng)域技術(shù)人員可以了解,查找α的所有近鄰編碼區(qū)域的方式有多種,在此不做限定。
b、查詢模塊使用編碼α及其近鄰編碼,從商圈geo數(shù)據(jù)庫(kù)中查找出該編碼區(qū)域內(nèi)所有的商圈點(diǎn)的geohash編碼及商圈編碼,商圈范圍等信息,返回給映射模塊。
c、映射模塊將商圈點(diǎn)geohash編碼反編碼為經(jīng)緯度信息,并計(jì)算商圈經(jīng)緯度與用戶實(shí)時(shí)經(jīng)緯度之間的距離,選取距離最小的商圈點(diǎn)。
d、二次商圈確認(rèn),即映射模塊判斷用戶實(shí)時(shí)經(jīng)緯度是否在所選取的商圈的范圍內(nèi),具體算法為:根據(jù)已選取距離最小的商圈,如商圈b,的商圈信息,以及反編碼后的商圈經(jīng)緯度信息,商圈范圍信息,若同時(shí)滿足如下2個(gè)條件,即可判斷用戶實(shí)時(shí)經(jīng)緯度在所選取的商圈b的范圍內(nèi),所述2個(gè)條件為:
1)商圈b的經(jīng)度大小-商圈b的經(jīng)度坐標(biāo)偏移大小<用戶實(shí)時(shí)位置的經(jīng)度大小<商圈b的經(jīng)度大小+商圈b的經(jīng)度坐標(biāo)偏移大小;
2)商圈b的緯度大小-商圈b的緯度坐標(biāo)偏移大小<用戶實(shí)時(shí)位置的緯度大小<商圈b的緯度大小+商圈b的緯度坐標(biāo)偏移大小。
需要說(shuō)明的是,本發(fā)明雖會(huì)以特定的算法判斷用戶實(shí)時(shí)經(jīng)緯度是否在所選取的商圈的地理位置范圍內(nèi),但在此不作限定。
e、出于安全需要,用戶實(shí)時(shí)位置數(shù)據(jù)庫(kù)中的用戶標(biāo)識(shí)使用md5加鹽做了加密處理,若用戶實(shí)時(shí)經(jīng)緯度在已選取的商圈的范圍內(nèi),則映射模塊調(diào)用用戶標(biāo)識(shí)解密模塊將加密的用戶標(biāo)識(shí)解密;在將用戶的準(zhǔn)確位置映射為商圈后,不需要再加密其用戶標(biāo)識(shí),因此可以調(diào)用解密模塊對(duì)其用戶標(biāo)識(shí)進(jìn)行解密,并將用戶標(biāo)識(shí)和商圈編碼、更新時(shí)間等信息寫入用戶屬性數(shù)據(jù)庫(kù)redisdb13中,以供后續(xù)為廣告投放系統(tǒng)進(jìn)行相應(yīng)的查詢;若用戶實(shí)時(shí)經(jīng)緯度不在已選取的商圈的地理位置范圍內(nèi),則忽略此次用戶位置更新操作。
本發(fā)明實(shí)施例提供了一種確定用戶所在商圈的裝置,可以實(shí)現(xiàn)上述提供的方法實(shí)施例,具體功能實(shí)現(xiàn)請(qǐng)參見方法實(shí)施例中的說(shuō)明,在此不再贅述。
應(yīng)該明白,公開的過(guò)程中的步驟的特定順序或?qū)哟问鞘纠苑椒ǖ膶?shí)例?;谠O(shè)計(jì)偏好,應(yīng)該理解,過(guò)程中的步驟的特定順序或?qū)哟慰梢栽诓幻撾x本公開的保護(hù)范圍的情況下得到重新安排。所附的方法權(quán)利要求以示例性的順序給出了各種步驟的要素,并且不是要限于所述的特定順序或?qū)哟巍?/p>
在上述的詳細(xì)描述中,各種特征一起組合在單個(gè)的實(shí)施方案中,以簡(jiǎn)化本公開。不應(yīng)該將這種公開方法解釋為反映了這樣的意圖,即,所要求保護(hù)的主題的實(shí)施方案需要比清楚地在每個(gè)權(quán)利要求中所陳述的特征更多的特征。相反,如所附的權(quán)利要求書所反映的那樣,本發(fā)明處于比所公開的單個(gè)實(shí)施方案的全部特征少的狀態(tài)。因此,所附的權(quán)利要求書特此清楚地被并入詳細(xì)描述中,其中每項(xiàng)權(quán)利要求獨(dú)自作為本發(fā)明單獨(dú)的優(yōu)選實(shí)施方案。
為使本領(lǐng)域內(nèi)的任何技術(shù)人員能夠?qū)崿F(xiàn)或者使用本發(fā)明,上面對(duì)所公開實(shí)施例進(jìn)行了描述。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō);這些實(shí)施例的各種修改方式都是顯而易見的,并且本文定義的一般原理也可以在不脫離本公開的精神和保護(hù)范圍的基礎(chǔ)上適用于其它實(shí)施例。因此,本公開并不限于本文給出的實(shí)施例,而是與本申請(qǐng)公開的原理和新穎性特征的最廣范圍相一致。
上文的描述包括一個(gè)或多個(gè)實(shí)施例的舉例。當(dāng)然,為了描述上述實(shí)施例而描述部件或方法的所有可能的結(jié)合是不可能的,但是本領(lǐng)域普通技術(shù)人員應(yīng)該認(rèn)識(shí)到,各個(gè)實(shí)施例可以做進(jìn)一步的組合和排列。因此,本文中描述的實(shí)施例旨在涵蓋落入所附權(quán)利要求書的保護(hù)范圍內(nèi)的所有這樣的改變、修改和變型。此外,就說(shuō)明書或權(quán)利要求書中使用的術(shù)語(yǔ)“包含”,該詞的涵蓋方式類似于術(shù)語(yǔ)“包括”,就如同“包括,”在權(quán)利要求中用作銜接詞所解釋的那樣。此外,使用在權(quán)利要求書的說(shuō)明書中的任何一個(gè)術(shù)語(yǔ)“或者”是要表示“非排它性的或者”。
本領(lǐng)域技術(shù)人員還可以了解到本發(fā)明實(shí)施例列出的各種說(shuō)明性邏輯塊(illustrativelogicalblock),單元,和步驟可以通過(guò)電子硬件、電腦軟件,或兩者的結(jié)合進(jìn)行實(shí)現(xiàn)。為清楚展示硬件和軟件的可替換性(interchangeability),上述的各種說(shuō)明性部件(illustrativecomponents),單元和步驟已經(jīng)通用地描述了它們的功能。這樣的功能是通過(guò)硬件還是軟件來(lái)實(shí)現(xiàn)取決于特定的應(yīng)用和整個(gè)系統(tǒng)的設(shè)計(jì)要求。本領(lǐng)域技術(shù)人員可以對(duì)于每種特定的應(yīng)用,可以使用各種方法實(shí)現(xiàn)所述的功能,但這種實(shí)現(xiàn)不應(yīng)被理解為超出本發(fā)明實(shí)施例保護(hù)的范圍。
本發(fā)明實(shí)施例中所描述的各種說(shuō)明性的邏輯塊,或單元都可以通過(guò)通用處理器,數(shù)字信號(hào)處理器,專用集成電路(asic),現(xiàn)場(chǎng)可編程門陣列或其它可編程邏輯裝置,離散門或晶體管邏輯,離散硬件部件,或上述任何組合的設(shè)計(jì)來(lái)實(shí)現(xiàn)或操作所描述的功能。通用處理器可以為微處理器,可選地,該通用處理器也可以為任何傳統(tǒng)的處理器、控制器、微控制器或狀態(tài)機(jī)。處理器也可以通過(guò)計(jì)算裝置的組合來(lái)實(shí)現(xiàn),例如數(shù)字信號(hào)處理器和微處理器,多個(gè)微處理器,一個(gè)或多個(gè)微處理器聯(lián)合一個(gè)數(shù)字信號(hào)處理器核,或任何其它類似的配置來(lái)實(shí)現(xiàn)。
本發(fā)明實(shí)施例中所描述的方法或算法的步驟可以直接嵌入硬件、處理器執(zhí)行的軟件模塊、或者這兩者的結(jié)合。軟件模塊可以存儲(chǔ)于ram存儲(chǔ)器、閃存、rom存儲(chǔ)器、eprom存儲(chǔ)器、eeprom存儲(chǔ)器、寄存器、硬盤、可移動(dòng)磁盤、cd-rom或本領(lǐng)域中其它任意形式的存儲(chǔ)媒介中。示例性地,存儲(chǔ)媒介可以與處理器連接,以使得處理器可以從存儲(chǔ)媒介中讀取信息,并可以向存儲(chǔ)媒介存寫信息。可選地,存儲(chǔ)媒介還可以集成到處理器中。處理器和存儲(chǔ)媒介可以設(shè)置于asic中,asic可以設(shè)置于用戶終端中??蛇x地,處理器和存儲(chǔ)媒介也可以設(shè)置于用戶終端中的不同的部件中。
在一個(gè)或多個(gè)示例性的設(shè)計(jì)中,本發(fā)明實(shí)施例所描述的上述功能可以在硬件、軟件、固件或這三者的任意組合來(lái)實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),這些功能可以存儲(chǔ)與電腦可讀的媒介上,或以一個(gè)或多個(gè)指令或代碼形式傳輸于電腦可讀的媒介上。電腦可讀媒介包括電腦存儲(chǔ)媒介和便于使得讓電腦程序從一個(gè)地方轉(zhuǎn)移到其它地方的通信媒介。存儲(chǔ)媒介可以是任何通用或特殊電腦可以接入訪問的可用媒體。例如,這樣的電腦可讀媒體可以包括但不限于ram、rom、eeprom、cd-rom或其它光盤存儲(chǔ)、磁盤存儲(chǔ)或其它磁性存儲(chǔ)裝置,或其它任何可以用于承載或存儲(chǔ)以指令或數(shù)據(jù)結(jié)構(gòu)和其它可被通用或特殊電腦、或通用或特殊處理器讀取形式的程序代碼的媒介。此外,任何連接都可以被適當(dāng)?shù)囟x為電腦可讀媒介,例如,如果軟件是從一個(gè)網(wǎng)站站點(diǎn)、服務(wù)器或其它遠(yuǎn)程資源通過(guò)一個(gè)同軸電纜、光纖電纜、雙絞線、數(shù)字用戶線(dsl)或以例如紅外、無(wú)線和微波等無(wú)線方式傳輸?shù)囊脖话谒x的電腦可讀媒介中。所述的碟片(disk)和磁盤(disc)包括壓縮磁盤、鐳射盤、光盤、dvd、軟盤和藍(lán)光光盤,磁盤通常以磁性復(fù)制數(shù)據(jù),而碟片通常以激光進(jìn)行光學(xué)復(fù)制數(shù)據(jù)。上述的組合也可以包含在電腦可讀媒介中。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。