路線推薦方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種路線推薦方法和路線推薦系統(tǒng),特別涉及一種無需人工配置就可自動(dòng)匹配出用戶所需路線的路線推薦方法和路線推薦系統(tǒng)。
【背景技術(shù)】
[0002]目前,用戶在終端設(shè)備例如電腦、手機(jī)上查詢兩個(gè)地點(diǎn)之間的航班時(shí),查詢出的航班信息并不是完整的,這是因?yàn)轱@示出的航班信息是預(yù)先通過人工配置完善的,用戶想知道某一地點(diǎn)到另一地點(diǎn)的航班信息時(shí),僅能查看到預(yù)先配置好的航線,無法了解到除了顯示出的航班信息是否還有其他的航班信息可到達(dá)該另一地點(diǎn)。例如,通過人工預(yù)先配置北京到香港的航線,配置的航線僅有北京-南京-香港和北京-上海-香港這兩條,用戶想知道從北京到香港的所有航班情況,則電腦僅能搜索出預(yù)先配置好的上述兩條航線,并逐個(gè)計(jì)算在此航線上是否有航班組合推薦給用戶。
[0003]上述方法依賴于人工配置,即搜索引擎只能計(jì)算配置過的中轉(zhuǎn)地點(diǎn),如果某中轉(zhuǎn)點(diǎn)在系統(tǒng)中并未預(yù)先配置,即沒有以此點(diǎn)為中轉(zhuǎn)點(diǎn)的航線例如北京-廣州-香港中的廣州,則搜索引擎就無法向用戶推薦北京至香港經(jīng)由廣州中轉(zhuǎn)的行程建議。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中通過人工預(yù)先配置航線信息的方式導(dǎo)致的人工成本高、推薦的信息不完整的缺陷,提供一種路線推薦方法及系統(tǒng)。
[0005]本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:
[0006]本發(fā)明提供一種路線推薦方法,其特點(diǎn)在于,其存儲(chǔ)有包含多個(gè)不同地點(diǎn)間的最大允許里程的第一數(shù)據(jù)庫和包含多個(gè)從一地點(diǎn)至另一地點(diǎn)的班次信息與兩地點(diǎn)的經(jīng)瑋度坐標(biāo)的第二數(shù)據(jù)庫,其包括以下步驟:
[0007]S1、接收一出發(fā)點(diǎn)和一終點(diǎn)的輸入;
[0008]S2、從該第一數(shù)據(jù)庫中獲取該出發(fā)點(diǎn)與該終點(diǎn)間的最大允許里程,從該第二數(shù)據(jù)庫中獲取所有以該出發(fā)點(diǎn)為起始點(diǎn)的班次信息作為第一班次信息和所有直達(dá)該終點(diǎn)的班次信息作為第二班次信息,并篩選出該第一班次信息中以I地點(diǎn)為終點(diǎn)、且該第二班次信息中以I地點(diǎn)為起始點(diǎn)的I地點(diǎn)作為待選中轉(zhuǎn)點(diǎn),從該第二數(shù)據(jù)庫中獲取I地點(diǎn)的經(jīng)瑋度坐標(biāo);
[0009]針對(duì)獲取的每一 I地點(diǎn)實(shí)施的操作:
[0010]S3、分別計(jì)算該出發(fā)點(diǎn)與該I地點(diǎn)間以及該I地點(diǎn)與該終點(diǎn)間在地球球面上的最短距尚Ldi和L IA;
[0011]S4、判斷LDI+LIA>該最大允許里程,若是則忽略該I地點(diǎn),若否則進(jìn)入步驟S 5;
[0012]S5、判斷該I地點(diǎn)的瑋度與該出發(fā)點(diǎn)的瑋度是否相同,若否則計(jì)算該I地點(diǎn)與該I地點(diǎn)在該出發(fā)點(diǎn)瑋線上的投影點(diǎn)間的距離Lli,若是則將Lli設(shè)置為零;
[0013]S6、根據(jù)該出發(fā)點(diǎn)、該I地點(diǎn)和該投影點(diǎn)組成的直角三角形,計(jì)算該出發(fā)點(diǎn)與該I地點(diǎn)的向量DI和該出發(fā)點(diǎn)與該終點(diǎn)的向量DA的夾角a ;
[0014]S7、判斷a是否小于等于一設(shè)定閾值(例如/4),若是則顯示該出發(fā)點(diǎn)、該I地點(diǎn)和該終點(diǎn)組成的路線的班次信息。
[0015]其中,最大允許里程是適用某一票價(jià)所允許旅行的最大距離,單位是英里。旅行的方向不同,公布的票價(jià)和所適用的最大允許里程也不同。
[0016]本發(fā)明將地球近似認(rèn)為是一個(gè)正球體,將用戶輸入的行程(出發(fā)點(diǎn)和終點(diǎn))視為一個(gè)二維向量,稱為基準(zhǔn)向量,且以旅行的方向(出發(fā)點(diǎn)至終點(diǎn)的方向)作為此基準(zhǔn)向量的方向。然后,從數(shù)據(jù)庫中篩選出可作為出發(fā)點(diǎn)和終點(diǎn)間的中轉(zhuǎn)地點(diǎn)的所有中轉(zhuǎn)點(diǎn),并針對(duì)每一中轉(zhuǎn)點(diǎn)均判斷中轉(zhuǎn)行程總里程是否超出最大允許里程,計(jì)算出發(fā)點(diǎn)至中轉(zhuǎn)點(diǎn)的向量DI與此基準(zhǔn)向量DA之間的夾角是否超出一定的數(shù)值范圍,在中轉(zhuǎn)行程總里程和夾角滿足設(shè)定條件時(shí)將該中轉(zhuǎn)點(diǎn)推薦給用戶。
[0017]較佳地,在步驟&中,若I地點(diǎn)的經(jīng)度大于該出發(fā)點(diǎn)的經(jīng)度且小于該終點(diǎn)的經(jīng)度,則a = arcsin(Ln/LDI);若I地點(diǎn)的經(jīng)度小于該出發(fā)點(diǎn)的經(jīng)度且大于該終點(diǎn)的經(jīng)度,則a =Π /2-arcsin(Ln/LDI);若I地點(diǎn)的經(jīng)度等于該出發(fā)點(diǎn)的經(jīng)度或該終點(diǎn)的經(jīng)度,則a = Π /4。
[0018]較佳地,在步驟&中,根據(jù)地理位置坐標(biāo)分別查詢出該出發(fā)點(diǎn)和該終點(diǎn)的經(jīng)瑋度坐標(biāo),并基于查詢出的經(jīng)瑋度坐標(biāo)計(jì)算該出發(fā)點(diǎn)與該終點(diǎn)在球面上的最短距離,則該最大允許里程為該出發(fā)點(diǎn)與該終點(diǎn)在球面上的最短距離的1-2倍。
[0019]在本方案中,該出發(fā)點(diǎn)與該終點(diǎn)間的標(biāo)準(zhǔn)里程可近似認(rèn)為是該出發(fā)點(diǎn)與該終點(diǎn)在球面上的最短距離,而該最大允許里程可認(rèn)為是該標(biāo)準(zhǔn)里程的1-2倍,由此可推出該最大允許里程為該出發(fā)點(diǎn)與該終點(diǎn)在球面上的最短距離的1-2倍。
[0020]較佳地,利用一公式計(jì)算一地點(diǎn)P與另一地點(diǎn)Q在球面上的最短距離,該公式為L(zhǎng)=R*arccos (cos wP*cos wQ*cos (jQ-jP)+sin wP*sin wQ),其中 R為地球半徑,P 點(diǎn)的經(jīng)瑋度坐標(biāo)為(jP,wP),Q點(diǎn)的經(jīng)瑋度坐標(biāo)為(jQ,wQ),西經(jīng)為負(fù),東經(jīng)為正,南瑋為負(fù),北瑋為
IHo
[0021]本發(fā)明還提供一種路線推薦系統(tǒng),其特點(diǎn)在于,其存儲(chǔ)有包含多個(gè)不同地點(diǎn)間的最大允許里程的第一數(shù)據(jù)庫和包含多個(gè)從一地點(diǎn)至另一地點(diǎn)的班次信息與兩地點(diǎn)的經(jīng)瑋度坐標(biāo)的第二數(shù)據(jù)庫,還包括一輸入單元、一獲取單元、一第一計(jì)算單元、一第一判斷單元、一第二判斷單元、一第二計(jì)算單元、一設(shè)置單元、一第三計(jì)算單元以及一第三判斷單元;
[0022]該輸入單元用于接收一出發(fā)點(diǎn)和一終點(diǎn)的輸入;
[0023]該獲取單元用于從該第一數(shù)據(jù)庫中獲取該出發(fā)點(diǎn)與該終點(diǎn)間的最大允許里程,從該第二數(shù)據(jù)庫中獲取所有以該出發(fā)點(diǎn)為起始點(diǎn)的班次信息作為第一班次信息和所有直達(dá)該終點(diǎn)的班次信息作為第二班次信息,并篩選出該第一班次信息中以I地點(diǎn)為終點(diǎn)、且該第二班次信息中以I地點(diǎn)為起始點(diǎn)的I地點(diǎn),從該第二數(shù)據(jù)庫中獲取I地點(diǎn)的經(jīng)瑋度坐標(biāo);
[0024]針對(duì)獲取的每一 I地點(diǎn)實(shí)施的操作:
[0025]該第一計(jì)算單元用于分別計(jì)算該出發(fā)點(diǎn)與該I地點(diǎn)間以及該I地點(diǎn)與該終點(diǎn)間在地球球面上的最短距離Ldi和L IA;
[0026]該第一判斷單元用于判斷LDI+LIA>該最大允許里程,若是則忽略該I地點(diǎn),若否則調(diào)用該第二判斷單元;
[0027]該第二判斷單元用于判斷該I地點(diǎn)的瑋度與該出發(fā)點(diǎn)的瑋度是否相同,若否則調(diào)用該第二計(jì)算單元計(jì)算該I地點(diǎn)與該I地點(diǎn)在該出發(fā)點(diǎn)瑋線上的投影點(diǎn)間的距離Lli,若是則調(diào)用該設(shè)置單元將Lli設(shè)置為零;
[0028]該第三計(jì)算單元用于根據(jù)該出發(fā)點(diǎn)、該I地點(diǎn)和該投影點(diǎn)計(jì)算該出發(fā)點(diǎn)與該I地點(diǎn)的向量DI和該出發(fā)點(diǎn)與該終點(diǎn)的向量DA的夾角a ;
[0029]該第三判斷單元用于判斷a是否小于等于一設(shè)定閾值,若是則調(diào)用該顯示單元顯示該出發(fā)點(diǎn)、該I地點(diǎn)和該終點(diǎn)組成的路線的班次信息。
[0030]較佳地,當(dāng)I地點(diǎn)的經(jīng)度大于該出發(fā)點(diǎn)的經(jīng)度且小于該終點(diǎn)的經(jīng)度時(shí),則a =arcsin(Ln/LDI);當(dāng)I地點(diǎn)的經(jīng)度小于該出發(fā)點(diǎn)的經(jīng)度且大于該終點(diǎn)的經(jīng)度時(shí),則a =Π /2-arcsin(Ln/LDI);當(dāng)I地點(diǎn)的經(jīng)度等于該出發(fā)點(diǎn)的經(jīng)度或該終點(diǎn)的經(jīng)度時(shí),則a =Π /4。
[0031]較佳地,該路線推薦系統(tǒng)還包括一查詢計(jì)算單元,該查詢計(jì)算單元用于根據(jù)地理位置坐標(biāo)分別查詢出該出發(fā)點(diǎn)和該終點(diǎn)的經(jīng)瑋度坐標(biāo),并基于查詢出的經(jīng)瑋度坐標(biāo)計(jì)算該出發(fā)點(diǎn)與該終點(diǎn)在球面上的最短距離,則該最大允許里程為該出發(fā)點(diǎn)與該終點(diǎn)在球面上的最短距尚的1-2倍。
[0032]較佳地,該路線推薦系統(tǒng)還包括一距離計(jì)算單元,該距離計(jì)算單元用于利用公式L=R*arccos (cos wP*cos wQ*cos (jQ-jP)+sin wP*sin wQ)計(jì)算一地點(diǎn) P 與另一地點(diǎn) Q 在球面上的最短距離,其中R為地球半徑,P點(diǎn)的經(jīng)瑋度坐標(biāo)為(jP,wP),Q點(diǎn)的經(jīng)瑋度坐標(biāo)為(jQ,wQ) 0
[0033]在符合本領(lǐng)域常識(shí)的基礎(chǔ)上,上述各優(yōu)選條件,可任意組合,即得本發(fā)明各較佳實(shí)例。
[0034]本發(fā)明的積極進(jìn)步效果在于:
[0035]本發(fā)明利用兩個(gè)地點(diǎn)即出發(fā)點(diǎn)和終點(diǎn)的地理位置坐標(biāo)能夠從數(shù)據(jù)庫中篩選出可作為出發(fā)點(diǎn)和終點(diǎn)間的中轉(zhuǎn)地點(diǎn)的所有中轉(zhuǎn)點(diǎn),并針對(duì)每一中轉(zhuǎn)點(diǎn)在該中轉(zhuǎn)點(diǎn)的中轉(zhuǎn)行程總里程和夾角滿足設(shè)定條件時(shí)將該中轉(zhuǎn)點(diǎn)推薦給用戶,所以本發(fā)明能夠自動(dòng)篩選出所有的中轉(zhuǎn)點(diǎn),并進(jìn)一步篩選出哪些中轉(zhuǎn)點(diǎn)可推薦給用戶,整個(gè)篩選過程無需人工操作,也無需人工預(yù)先配置好路線,能夠有效地降低人工成本,并為用戶提供更加豐富的行程路線。
【附圖說明】
[0036]圖1為本發(fā)明較佳實(shí)施例的路線推薦方法的流程圖。
[0037]圖2為本發(fā)明較佳實(shí)施例的路線推薦系統(tǒng)的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0038]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(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ù)的范圍。
[0039]本實(shí)施例提供一種利用地理位置坐標(biāo)實(shí)現(xiàn)的路線推薦方法,其存儲(chǔ)有一第一數(shù)據(jù)庫和一第二數(shù)據(jù)庫,該第一數(shù)據(jù)庫包含多個(gè)不同地點(diǎn)間的標(biāo)準(zhǔn)里程和最大允許里程,該第二數(shù)據(jù)庫包含多個(gè)從一地點(diǎn)至另一地點(diǎn)的班次信息和兩地點(diǎn)的經(jīng)瑋度坐標(biāo)。
[0040]如圖1所示,該路線推薦方法包括以下步驟:
[0041]步驟101、接收一出發(fā)點(diǎn)(記為D點(diǎn))和一終點(diǎn)(記為A點(diǎn))的輸入。
[0042]步驟102、從該第一數(shù)據(jù)庫中獲取D點(diǎn)與A點(diǎn)間的標(biāo)準(zhǔn)里程TPM和最大允許里程MPM,若在該第一數(shù)據(jù)庫中沒有獲取到時(shí),則根據(jù)地理位置坐標(biāo)分別查詢出該D點(diǎn)和該A點(diǎn)的經(jīng)瑋度坐標(biāo),并基于查詢出的經(jīng)瑋度坐標(biāo)計(jì)算該D點(diǎn)與該A點(diǎn)在球面上的最短距離,該D點(diǎn)與該A點(diǎn)間的標(biāo)準(zhǔn)里程TPM可近似認(rèn)為是該D點(diǎn)與該A點(diǎn)在球面上的最短距離,而該最大允許里程MPM可認(rèn)為是該標(biāo)準(zhǔn)里程TPM的1.5倍,由此可推出該最大允許里程MPM為該D點(diǎn)與該A點(diǎn)在球面上的最短距離的1.5倍。
[0043]其中,利用一公式可計(jì)算出該D點(diǎn)與該A點(diǎn)在球面上的最短距離,公式為L(zhǎng) =R*arccos (cos wD*cos wA*cos (jA_jD)+sin wD*sin wA),L 為最短距離,R 為地球半徑,D 點(diǎn)的經(jīng)瑋度坐標(biāo)為(jD,wD),A點(diǎn)的經(jīng)瑋度坐標(biāo)為(jA,wA),西經(jīng)為負(fù),東經(jīng)為正,南瑋為負(fù),北瑋為正。
[0044]步驟103、從該第二數(shù)據(jù)庫中獲取所有以該D點(diǎn)為起始點(diǎn)的班次信息作為第一班次信息和所有直達(dá)該A點(diǎn)的班次信息作為第二班次信息,并篩選出該第一班次信息中以D點(diǎn)為起點(diǎn)和I地點(diǎn)為終點(diǎn)、且該第二班次信息中以I地點(diǎn)為起始點(diǎn)和A點(diǎn)為終點(diǎn)的I地點(diǎn)作為待選中轉(zhuǎn)點(diǎn),此外從該第二數(shù)據(jù)庫中獲取I地點(diǎn)的經(jīng)瑋度坐標(biāo)。
[0045]通過上述步驟101-103,已經(jīng)獲取到可作為D點(diǎn)與A點(diǎn)的中轉(zhuǎn)點(diǎn)的所有中轉(zhuǎn)點(diǎn)I地點(diǎn),針對(duì)獲取的每一I地點(diǎn)實(shí)施的操作具體如下