本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種多成員出行的導(dǎo)航方法及服務(wù)器。
背景技術(shù):
現(xiàn)有的導(dǎo)航方案致力于解決個體出行過程中的系列問題,通過內(nèi)嵌于手機(jī)等智能終端設(shè)備中的定位模塊獲知個體出行者當(dāng)前的地理位置,結(jié)合在線或者離線的地圖服務(wù)器,采用點(diǎn)對點(diǎn)的路徑規(guī)劃算法計(jì)算出由個體當(dāng)前位置到達(dá)目的地的最優(yōu)路徑。
但是,在團(tuán)隊(duì)出行過程中,成員間導(dǎo)航路徑的計(jì)算彼此分散和孤立,團(tuán)隊(duì)成員之間缺乏信息的溝通,從而極易導(dǎo)致出行過程中的等待耗時,團(tuán)隊(duì)成員出行步調(diào)不一致,也不能及時提供支持、幫助和支援。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種多成員出行的導(dǎo)航方法及服務(wù)器,用于提供一種多成員導(dǎo)航方案,使得多成員之間的出行步調(diào)一致。
第一方面,本發(fā)明實(shí)施例提供一種多成員出行的導(dǎo)航方法,包括:
服務(wù)器獲得k個終端的注冊信息,所述注冊信息包括目的地以及所述k個終端中每個終端的起始位置,k為不小于2的整數(shù);
所述服務(wù)器獲得多成員出行的導(dǎo)航策略;
所述服務(wù)器根據(jù)所述注冊信息以及所述導(dǎo)航策略,從由所述k個終端中每個終端的起始位置以及所述目的地所確定的出行區(qū)域內(nèi)確定一集合地點(diǎn);
所述服務(wù)器向所述k個終端中每個終端發(fā)送導(dǎo)航信息,用于指示所述終端從所述起始位置位移至所述集合地點(diǎn),并在所述集合地點(diǎn)與所述k個終端中其余終端會合后位移至所述目的地。
在一種可選的實(shí)現(xiàn)方式中,所述服務(wù)器根據(jù)所述注冊信息以及所述導(dǎo)航策略確定集合地點(diǎn),包括:
所述服務(wù)器在所述出行區(qū)域內(nèi)確定m個節(jié)點(diǎn),m為不小于2的整數(shù);
所述服務(wù)器確定所述m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至所述k個終端中每個終端的所述起始位置的最短路徑的長度中的最大長度值,其中,所述m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至所述k個終端中每個終端的所述起始位置的最短路徑的長度中的最大長度值為ai,i的取值為1至m的整數(shù);
所述服務(wù)器確定所述m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至所述目的地的最短路徑的長度,其中,所述m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至所述目的地的最短路徑的長度為bi;
所述服務(wù)器根據(jù)所述ai以及所述bi從所述m個節(jié)點(diǎn)中確定出作為所述集合地點(diǎn)的節(jié)點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,所述服務(wù)器根據(jù)所述注冊信息以及所述導(dǎo)航策略確定集合地點(diǎn),包括:
所述服務(wù)器在所述出行區(qū)域內(nèi)確定m個節(jié)點(diǎn),m為不小于2的整數(shù);
所述服務(wù)器確定所述m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至所述k個終端中優(yōu)先級高的l個終端中每個終端的所述起始位置的最短路徑的長度中的最大長度值,其中,l為不大于k的正整數(shù),所述所述m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至所述l個終端中每個終端的所述起始位置的最短路徑的長度中的最大長度值為ai,i的取值為1至m的整數(shù);
所述服務(wù)器確定所述m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至所述目的地的最短路徑的長度,其中,所述m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至所述目的地的最短路徑的長度為bi;
所述服務(wù)器根據(jù)所述ai以及所述bi從所述m個節(jié)點(diǎn)中確定出作為所述集合地點(diǎn)的節(jié)點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,所述導(dǎo)航策略包括加權(quán)因子r,0≦r≦1;所述服務(wù)器根據(jù)所述ai以及所述bi從所述m個節(jié)點(diǎn)中確定出作為所述集合地點(diǎn)的節(jié)點(diǎn),包括:
所述服務(wù)器確定ci=(1-r)*bi+r*ai;
所述服務(wù)器確定c1至cm中的最小值,并確定所述m個節(jié)點(diǎn)中用于確定出所述最小值的節(jié)點(diǎn)為所述集合地點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,注冊信息信息還包括所述k個終端中每個終端的出行速度;
所述服務(wù)器根據(jù)所述注冊信息以及所述導(dǎo)航策略確定集合地點(diǎn),包括:
所述服務(wù)器根據(jù)所述k個終端中每個終端的起始位置以及出行速度、所述目的地以及所述導(dǎo)航策略確定所述集合地點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,在所述服務(wù)器向所述k個終端中每個終端發(fā)送導(dǎo)航信息之后,還包括:
所述服務(wù)器獲得更新消息,所述更新消息包括所述k個終端中任一終端的當(dāng)前位置信息、目的地變更信息、導(dǎo)航策略變更信息、終端變更信息以及所述出行區(qū)域內(nèi)的路況變更信息中的至少一項(xiàng);
所述服務(wù)器根據(jù)所述更新消息確定第二集合地點(diǎn),并向所述k個終端中每個終端發(fā)送第二導(dǎo)航信息,用于指示所述終端位移至所述第二集合地點(diǎn)與所述k個終端中其余終端會合。
第二方面,本發(fā)明實(shí)施例提供一種服務(wù)器,包括:
第一獲得模塊,用于獲得k個終端的注冊信息,所述注冊信息包括目的地以及所述k個終端中每個終端的起始位置,k為不小于2的整數(shù);
第二獲得模塊,用于獲得多成員出行的導(dǎo)航策略;
確定模塊,用于根據(jù)所述注冊信息以及所述導(dǎo)航策略,從由所述k個終端中每個終端的起始位置以及所述目的地所確定的出行區(qū)域內(nèi)確定一集合地點(diǎn);
發(fā)送模塊,用于向所述k個終端中每個終端發(fā)送導(dǎo)航信息,用于指示所述終端從所述起始位置位移至所述集合地點(diǎn),并在所述集合地點(diǎn)與所述k個終端中其余終端會合后位移至所述目的地。
在一種可選的實(shí)現(xiàn)方式中,所述確定模塊用于:所述服務(wù)器在所述出行區(qū)域內(nèi)確定m個節(jié)點(diǎn),m為不小于2的整數(shù);
確定所述m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至所述k個終端中每個終端的所述起始位置的最短路徑的長度中的最大長度值,其中,所述m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至所述k個終端中每個終端的所述起始位置的最短路徑的長度中的最大長度值為ai,i的取值為1至m的整數(shù);
確定所述m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至所述目的地的最短路徑的長度,其中,所述m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至所述目的地的最短路徑的長度為bi;
根據(jù)所述ai以及所述bi從所述m個節(jié)點(diǎn)中確定出作為所述集合地點(diǎn)的節(jié)點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,所述確定模塊用于:所述服務(wù)器在所述出行區(qū)域內(nèi)確定m個節(jié)點(diǎn),m為不小于2的整數(shù);
確定所述m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至所述k個終端中優(yōu)先級高的l個終端中每個終端的所述起始位置的最短路徑的長度中的最大長度值,其中,l為不大于k的正整數(shù),所述所述m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至所述l個終端中每個終端的所述起始位置的最短路徑的長度中的最大長度值為ai,i的取值為1至m的整數(shù);
確定所述m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至所述目的地的最短路徑的長度,其中,所述m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至所述目的地的最短路徑的長度為bi;
根據(jù)所述ai以及所述bi從所述m個節(jié)點(diǎn)中確定出作為所述集合地點(diǎn)的節(jié)點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,所述導(dǎo)航策略包括加權(quán)因子r,0≦r≦1;所述確定模塊用于:
確定ci=(1-r)*bi+r*ai;
確定c1至cm中的最小值,并確定所述m個節(jié)點(diǎn)中用于確定出所述最小值的節(jié)點(diǎn)為所述集合地點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,注冊信息信息還包括所述k個終端中每個終端的出行速度;
所述確定模塊用于:
根據(jù)所述k個終端中每個終端的起始位置以及出行速度、所述目的地以及所述導(dǎo)航策略確定所述集合地點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,服務(wù)器還包括:
第三獲得模塊,用于獲得更新消息,所述更新消息包括所述k個終端中任一終端的當(dāng)前位置信息、目的地變更信息、導(dǎo)航策略變更信息、終端變更信息以及所述出行區(qū)域內(nèi)的路況變更信息中的至少一項(xiàng);
更新模塊,用于根據(jù)所述更新消息確定第二集合地點(diǎn),并向所述k個終端中每個終端發(fā)送第二導(dǎo)航信息,用于指示所述終端位移至所述第二集合地點(diǎn)與所述k個終端中其余終端會合。
第三方面,本發(fā)明實(shí)施例還提供一種服務(wù)器,該服務(wù)器用于執(zhí)行上述第一方面或第一方面的任意可能的實(shí)現(xiàn)中的方法。具體的,該服務(wù)器包括處理器、收發(fā)器以及存儲器,該處理器、收發(fā)器以及存儲器通過總線耦合在一起。該收發(fā)器用于與多個成員中任一成員進(jìn)行通信,該處理器用于通過存儲器以及收發(fā)器執(zhí)行上述第一方面或第一方面的任意可能的實(shí)現(xiàn)中的方法。
第四方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)可讀介質(zhì),用于存儲計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括用于執(zhí)行第一方面或第一方面的任意可能的實(shí)現(xiàn)中的方法的指令。
本發(fā)明實(shí)施例在上述各方面提供的實(shí)現(xiàn)的基礎(chǔ)上,還可以進(jìn)行進(jìn)一步組合以提供更多實(shí)現(xiàn)。
本申請實(shí)施例中提供的一個或多個技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點(diǎn):
服務(wù)器能夠根據(jù)多個終端的出行信息確定出適合的集合地點(diǎn),使多個用戶能夠步調(diào)一致地在集合地點(diǎn)會后,便于用戶間互相護(hù)持幫助。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明實(shí)施例的一些實(shí)施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例中導(dǎo)航方法的流程示意圖;
圖2為本發(fā)明實(shí)施例中導(dǎo)航方法的另一流程示意圖;
圖3為本發(fā)明實(shí)施例中導(dǎo)航方法的又一流程示意圖;
圖4為本發(fā)明實(shí)施例中服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面通過附圖以及具體實(shí)施例對本發(fā)明實(shí)施例技術(shù)方案做詳細(xì)的說明,應(yīng)當(dāng)理解本發(fā)明實(shí)施例以及實(shí)施例中的具體特征是對本發(fā)明實(shí)施例技術(shù)方案的詳細(xì)的說明,而不是對本發(fā)明實(shí)施例技術(shù)方案的限定,在不沖突的情況下,本發(fā)明實(shí)施例以及實(shí)施例中的技術(shù)特征可以相互組合。
圖1為本發(fā)明實(shí)施例提供的多成員出行的導(dǎo)航方法的流程示意圖,該方法包括如下步驟:
步驟101:服務(wù)器獲得k個終端的注冊信息,注冊信息包括目的地以及k個終端中每個終端的起始位置,k為不小于2的整數(shù)。
具體的,終端指的是設(shè)置有定位模塊,能夠獲取自身位置信息的設(shè)備,包括但不限于為:手機(jī)、平板電腦、智能手表、虛擬現(xiàn)實(shí)設(shè)備、增強(qiáng)顯示設(shè)備以及智能汽車。且本發(fā)明實(shí)施例中,多個終端的類型可以相同,也可以不同。服務(wù)器可以為一個獨(dú)立的計(jì)算機(jī)設(shè)備,也可以為多個計(jì)算機(jī)設(shè)備形成的集群。
服務(wù)器獲得終端的注冊信息可以有多種實(shí)現(xiàn)方式,例如,每個終端各自向服務(wù)器發(fā)送自己的注冊信息,該注冊信息包括群組名稱,服務(wù)器將群組名稱相同的多個終端視為一并出行的多個終端。又例如,每個終端各自向服務(wù)器發(fā)送自己的注冊信息,k個終端中至少有一個終端向服務(wù)器發(fā)送終端列表,服務(wù)器根據(jù)該終端列表確定哪些終端為一并出行的終端。再例如,終端a獲得其余各終端的注冊消息,然后將自身的注冊信息以及其余各終端的注冊信息發(fā)送給服務(wù)器。
步驟102:服務(wù)器獲得多成員出行的導(dǎo)航策略。
服務(wù)器獲得導(dǎo)航策略可以有多種實(shí)現(xiàn)方式,例如,服務(wù)器本地保存有導(dǎo)航策略,服務(wù)器的處理器從存儲器中讀取該導(dǎo)航策略。又例如,服務(wù)器本地保存有多種導(dǎo)航策略,終端向用戶發(fā)送其中一種導(dǎo)航策略的標(biāo)識,服務(wù)器的處理器根據(jù)終端發(fā)送的標(biāo)識從存儲器中讀取與該標(biāo)識對應(yīng)的導(dǎo)航策略。再例如,服務(wù)器本地保存有導(dǎo)航策略,該導(dǎo)航策略基于一個或多個導(dǎo)航參數(shù)運(yùn)行,終端可以向服務(wù)器發(fā)送該導(dǎo)航參數(shù),服務(wù)器基于該導(dǎo)航參數(shù)執(zhí)行導(dǎo)航策略。還例如,該導(dǎo)航策略可以由終端向服務(wù)器發(fā)送。上述終端向服務(wù)器發(fā)送導(dǎo)航策略的標(biāo)識、導(dǎo)航參數(shù)、導(dǎo)航策略等信息,可以包括在注冊信息之中,也可以在發(fā)送注冊信息之后發(fā)送給服務(wù)器。
步驟103:服務(wù)器根據(jù)注冊信息以及導(dǎo)航策略,從由k個終端中每個終端的起始位置以及目的地所確定的出行區(qū)域內(nèi)確定一集合地點(diǎn)。
具體的,本發(fā)明實(shí)施例中,導(dǎo)航策略包括但不限于以下實(shí)現(xiàn)方式:
導(dǎo)航策略1,服務(wù)器在出行區(qū)域內(nèi)確定m個節(jié)點(diǎn),m為不小于2的整數(shù),該m個節(jié)點(diǎn)可以為出行區(qū)域內(nèi)所有可用于車輛集合的節(jié)點(diǎn);服務(wù)器確定m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至k個終端中每個終端的起始位置的最短路徑的長度,并從確定的k個長度中確定出最大長度值,其中,m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至k個終端中每個終端的起始位置的最短路徑的長度中的最大長度值為ai,i的取值為1至m的整數(shù);服務(wù)器確定m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至目的地的最短路徑的長度,其中,m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至目的地的最短路徑的長度為bi;服務(wù)器根據(jù)ai以及bi從m個節(jié)點(diǎn)中確定出作為集合地點(diǎn)的節(jié)點(diǎn)。本發(fā)明實(shí)施例中,兩個位置之間的最短路徑并不是指兩位置點(diǎn)之間的直線距離,而是指兩位置點(diǎn)之間的所有道路路徑中距離最短的路徑的長度。
可選的,結(jié)合上述導(dǎo)航策略1,導(dǎo)航策略包括加權(quán)因子r,0≦r≦1;服務(wù)器根據(jù)ai以及bi從m個節(jié)點(diǎn)中確定出作為集合地點(diǎn)的節(jié)點(diǎn),包括:
服務(wù)器確定ci=(1-r)bi+r*ai;
服務(wù)器確定c1至cm中的最小值,并確定m個節(jié)點(diǎn)中用于確定出最小值的節(jié)點(diǎn)為集合地點(diǎn)。
該加權(quán)因子r用于表征集合前行駛距離與集合后行駛距離兩個因素在確定集合地點(diǎn)時的參考比重,其中,在r=0時,只考慮集合后行駛距離最短;在r=1時,只考慮集合前行駛距離最短。
上述加權(quán)因子r可以保存在服務(wù)器本地,也可以由終端發(fā)送給服務(wù)器(如終端發(fā)送給服務(wù)器的導(dǎo)航參數(shù)包括該加權(quán)因子r),服務(wù)器基于該導(dǎo)航因子r以及上述公式確定集合地點(diǎn)。
根據(jù)導(dǎo)航策略1進(jìn)行導(dǎo)航時,能夠避免多個終端中任一終端行駛的距離過長。
上述導(dǎo)航策略1的一種變形為:服務(wù)器在出行區(qū)域內(nèi)確定m個節(jié)點(diǎn),m為不小于2的整數(shù);服務(wù)器確定m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至k個終端中優(yōu)先級高的l個終端中每個終端的起始位置的最短路徑的長度中的最大長度值,其中,l為不大于k的正整數(shù),m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至l個終端中每個終端的起始位置的最短路徑的長度中的最大長度值為ai,i的取值為1至m的整數(shù);服務(wù)器確定m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至目的地的最短路徑的長度,其中,m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至目的地的最短路徑的長度為bi;服務(wù)器根據(jù)ai以及bi從m個節(jié)點(diǎn)中確定出作為集合地點(diǎn)的節(jié)點(diǎn)。
通過本變形方案,能夠避免一同出行的多個用戶中優(yōu)先級較高的用戶行駛距離過長。
導(dǎo)航策略2,用于使多個終端中任意兩個終端與集合地點(diǎn)之間的距離之差小于第一預(yù)設(shè)值,且多個終端中與集合地點(diǎn)距離最遠(yuǎn)的終端至集合地點(diǎn)的距離最小。其中,本發(fā)明實(shí)施例中的距離,不限于指兩點(diǎn)之間的直線距離,還包括兩點(diǎn)之間的最短的道路路徑長度,也可以為兩點(diǎn)之間最廣泛使用的道路路徑的距離。而第一預(yù)設(shè)值為一較小值,可以為0。所謂任意兩個終端與集合地點(diǎn)之間的距離之差小于第一預(yù)設(shè)值,用于表示多個終端與集合地點(diǎn)之間的距離相等或相近。
在根據(jù)導(dǎo)航策略2確定集合地點(diǎn)時,在滿足多個終端中任意兩個終端與集合地點(diǎn)之間的距離之差小于第一預(yù)設(shè)值的前提下,使多個終端中與集合地點(diǎn)距離最遠(yuǎn)的終端至集合地點(diǎn)的距離最小,進(jìn)而確定出距離多個終端最近的集合地點(diǎn)。
導(dǎo)航策略3,用于使多個終端中任意兩個終端與集合地點(diǎn)之間的距離之差小于第一預(yù)設(shè)值,且多個終端中與集合地點(diǎn)距離最遠(yuǎn)的終端至集合地點(diǎn)的距離與集合地點(diǎn)至目的地的距離的和最小。
上述導(dǎo)航策略3中,服務(wù)器在使多個終端與集合地點(diǎn)之間的距離相等或相近的前提下,使距離集合地點(diǎn)最遠(yuǎn)的終端經(jīng)由集合地點(diǎn)到達(dá)目的地的距離最短,進(jìn)而節(jié)約多終端至目的地的總行程。
導(dǎo)航策略4,用于使多個終端中任意兩個終端與集合地點(diǎn)之間的距離之差小于第一預(yù)設(shè)值,且多個終端中與集合地點(diǎn)距離最遠(yuǎn)的終端至集合地點(diǎn)的距離乘以系數(shù)a的積與集合地點(diǎn)至目的地的距離乘以系數(shù)b的積的和最小,a以及b為正數(shù)。
上述導(dǎo)航策略4中,服務(wù)器在多終端距離集合地點(diǎn)近與多終端至目的地的總行程短之間進(jìn)行折衷,采用加權(quán)因子分別對多個終端至集合地點(diǎn)的最遠(yuǎn)距離以及集合地點(diǎn)至目的地之間的距離進(jìn)行加權(quán)。如果更傾向于讓多終端距離集合地點(diǎn)更近,可以讓a大于b,反之,如果更傾向于讓多終端的總行程更短,可以讓b大于a。
導(dǎo)航策略5,用于使多個終端中任意兩個終端到達(dá)集合地點(diǎn)的耗時之差小于第二預(yù)設(shè)值,且多個終端中到達(dá)集合地點(diǎn)的耗時最長的終端達(dá)到集合地點(diǎn)的耗時最小。其中,注冊信息還包括用戶的出行速度,本發(fā)明實(shí)施例中的出行速度除了可以用具體的速度值表征,還可以用“出行方式”進(jìn)行表征,服務(wù)器能夠根據(jù)終端發(fā)送的“出行方式”確定該終端的出行速度,例如,終端a向服務(wù)器上報自己的出行方式為“步行”,服務(wù)器確定終端a的出行速度為預(yù)存的與“步行”對應(yīng)的速率6km/h。服務(wù)器可以根據(jù)終端當(dāng)前位置與集合地點(diǎn)之間的距離、終端的出行速度來確定終端到達(dá)集合地點(diǎn)的耗時。且第二預(yù)設(shè)值為一較小值,上述多個終端中任意兩個終端到達(dá)集合地點(diǎn)的耗時之差小于第二預(yù)設(shè)值,用于表示多個終端能夠同時到達(dá)集合地點(diǎn),或多個終端到達(dá)集合地點(diǎn)的時間接近。
上述導(dǎo)航策略5中,在使多個終端到達(dá)集合地點(diǎn)的耗時相等或相近的前提下,使到達(dá)集合地點(diǎn)的耗時最長的終端達(dá)到集合地點(diǎn)的耗時最小,進(jìn)而確定出多個終端能夠盡快到達(dá)的集合地點(diǎn),便于多終端盡快會合。
導(dǎo)航策略6,用于使多個終端中任意兩個終端到達(dá)集合地點(diǎn)的耗時之差小于第二預(yù)設(shè)值,且多個終端中到達(dá)集合地點(diǎn)的耗時最長的終端達(dá)到集合地點(diǎn)的耗時與多個終端從集合地點(diǎn)到達(dá)目的地的耗時之和最小。其中,注冊信息還包括目的地以及用戶的出行速度。在導(dǎo)航策略6中,在使多個終端到達(dá)集合地點(diǎn)的耗時相等或相近的前提下,使距離集合地點(diǎn)最遠(yuǎn)的終端經(jīng)由集合地點(diǎn)到達(dá)目的地的耗時最小,進(jìn)而節(jié)約多終端至目的地的總耗時。
導(dǎo)航策略7,用于使多個終端中任意兩個終端到達(dá)集合地點(diǎn)的耗時之差小于第二預(yù)設(shè)值,且多個終端中到達(dá)集合地點(diǎn)的耗時最長的終端達(dá)到集合地點(diǎn)的耗時乘以系數(shù)c的積與多個終端從集合地點(diǎn)到達(dá)目的地的耗時乘以系數(shù)d的積之和最小,c以及d為正數(shù)。其中,注冊信息還包括目的地以及用戶的出行速度。在第六多終端策略中,在多終端盡快在集合地點(diǎn)會合與多終端至目的地的總耗時較短之間進(jìn)行折衷,采用加權(quán)因子分別對多個終端至集合地點(diǎn)的耗時以及多個成從員集合地點(diǎn)至目的地的耗時進(jìn)行加權(quán)。如果更傾向于讓多終端盡快會合,可以讓c大于d,反之,如果更傾向于讓多終端到達(dá)目的地的總耗時更短,可以讓d大于c。
步驟104:服務(wù)器向k個終端中每個終端發(fā)送導(dǎo)航信息,用于指示終端從起始位置位移至集合地點(diǎn),并在集合地點(diǎn)與k個終端中其余終端會合后位移至目的地。
具體的,在確定集合地點(diǎn)后,服務(wù)器給每個終端發(fā)送從該終端到集合地點(diǎn)的導(dǎo)航信息,以使持有該終端的用戶能夠根據(jù)該導(dǎo)航信息到達(dá)集合地點(diǎn),與其他用戶會合,以便用戶之間能夠互相扶持幫助,順利達(dá)到目的地。
上述技術(shù)方案中,服務(wù)器能夠根據(jù)多個終端的出行信息確定出適合的集合地點(diǎn),使多個用戶能夠步調(diào)一致地在集合地點(diǎn)會后,便于用戶間互相護(hù)持幫助。
在一種可能的實(shí)現(xiàn)中,步驟104執(zhí)行時,服務(wù)器還給用戶發(fā)送其他終端的當(dāng)前位置,便于每個終端獲知團(tuán)隊(duì)當(dāng)前的出行情況。
在另一種可能的實(shí)現(xiàn)中,步驟104執(zhí)行時,服務(wù)器還給用戶發(fā)送從集合地點(diǎn)到目的地的導(dǎo)航信息,使用戶能夠獲知整個行程的導(dǎo)航信息。
在另一種可能的實(shí)現(xiàn)中,參見圖2,在步驟104之后,還包括如下步驟:
步驟105:服務(wù)器獲得更新消息,更新消息包括k個終端中任一終端的當(dāng)前位置信息、目的地變更信息、導(dǎo)航策略變更信息、終端變更信息以及出行區(qū)域內(nèi)的路況變更信息中的至少一項(xiàng);
步驟106:服務(wù)器根據(jù)更新消息確定第二集合地點(diǎn),并向k個終端中每個終端發(fā)送第二導(dǎo)航信息,用于指示終端位移至第二集合地點(diǎn)與k個終端中其余終端會合。
具體的,在多終端向集合地點(diǎn)靠近的過程中,服務(wù)器原確定的該集合地點(diǎn)可能并不是多終端會合的較佳地點(diǎn),本發(fā)明實(shí)施例中,服務(wù)器能夠獲得更新消息,并根據(jù)更新消息確定更改集合地點(diǎn),并獲得用戶更新后的注冊信息確定新的集合地點(diǎn),即第二集合地點(diǎn),然后向每個終端發(fā)送從其更新后的當(dāng)前位置至第二集合地點(diǎn)的導(dǎo)航消息。
上述技術(shù)方案,服務(wù)器能夠根據(jù)更新消息更新集合地點(diǎn),始終使多終端在較佳的地點(diǎn)會合,以避免出行過程中遇到非預(yù)期的事件導(dǎo)致個別終端延誤時其他終端需要等待延誤終端的情況,提高集體出行的效率。
上述步驟105至步驟106的技術(shù)方案,包括但不限于以下實(shí)現(xiàn)方式:
方式1,服務(wù)器接收多個終端中至少一個終端上報的更新后的當(dāng)前位置,該更新消息包括至少一個終端上報的更新后的當(dāng)前位置。
然后,服務(wù)器根據(jù)至少一個終端上報的更新后的當(dāng)前位置,確定至少一個終端中有終端的更新后的當(dāng)前位置落后于預(yù)期位置,進(jìn)而確定需要更改集合地點(diǎn)。該預(yù)期位置可以指該終端的出行進(jìn)度落后于其他終端,也可以指該終端的進(jìn)度落后于服務(wù)器在確定集合地點(diǎn)時預(yù)估的該終端當(dāng)前應(yīng)該到達(dá)的進(jìn)度。
然后,服務(wù)器獲得每個終端更新后的注冊信息,其實(shí)現(xiàn)方式可以為服務(wù)器向每個終端發(fā)送注冊信息請求,每個終端響應(yīng)該請求向服務(wù)器發(fā)送自身當(dāng)前的注冊信息?;蛘撸總€終端周期性地向服務(wù)器發(fā)送自身最新的注冊信息。
然后,服務(wù)器根據(jù)前述第一至導(dǎo)航策略7中的任一導(dǎo)航策略重新確定與多終端當(dāng)前出行情況相適應(yīng)的第二集合地點(diǎn)。
上述方式1中,能夠根據(jù)多終端的出行進(jìn)度實(shí)時調(diào)整集合地點(diǎn),進(jìn)而在有一個終端落后于預(yù)期進(jìn)度時,可以選擇稍微靠近該終端的位置作為第二集合地點(diǎn),進(jìn)而使得所有終端能夠盡快會合,避免終端之間的相互等待。
方式2,在多個終端出行的過程中,有新增終端加入團(tuán)隊(duì)出行或者有終端退出團(tuán)隊(duì)出行。這時,可以由新增終端或退出終端向服務(wù)器發(fā)送終端變更消息?;蛘?,由多個終端中的隊(duì)長終端向服務(wù)器發(fā)送終端變更消息。
服務(wù)器獲得該終端變更消息,獲得更新后的團(tuán)隊(duì)終端中每個終端更新后的注冊信息,然后根據(jù)前述第一至導(dǎo)航策略7中的任一導(dǎo)航策略重新確定與更新后的多終端當(dāng)前出行情況相適應(yīng)的第二集合地點(diǎn)。
上述方式2中,能夠在新增終端或有終端退出的情況下,及時調(diào)整集合地點(diǎn),使得終端發(fā)生變更后的多終端能夠盡快會合,避免終端之間的相互等待。
方式3,服務(wù)器獲得多個終端中任意終端至集合地點(diǎn)的道路的擁堵信息,該擁堵消息可以由任一終端發(fā)送給服務(wù)器,也可以是服務(wù)器自行監(jiān)控道路的擁堵信息,還可以是服務(wù)器從第三方服務(wù)商處獲得該道路擁堵消息。
服務(wù)器在獲得該擁堵消息后,可以預(yù)期到該道路上的終端的出行速度會發(fā)生變化,對該終端的出行速度進(jìn)行調(diào)整,并根據(jù)調(diào)整后的出行速度以及其他終端的注冊信息重新確定第二集合地點(diǎn)。
上述方式3中,能夠在某一終端所在的道路上發(fā)生擁堵時,及時調(diào)整集合地點(diǎn),使得終端發(fā)生變更后的多終端能夠盡快會合,避免終端之間的相互等待。
為了便于進(jìn)一步理解本發(fā)明實(shí)施例所提供的技術(shù)方案,下面以圖3所示的實(shí)例進(jìn)行說明,下面的步驟由服務(wù)器執(zhí)行。
步驟201:初始化導(dǎo)航策略算法。
步驟202:選擇團(tuán)隊(duì)成員i,設(shè)置該成員i當(dāng)前位置作為路徑計(jì)算的起點(diǎn)。
團(tuán)隊(duì)成員即本發(fā)明實(shí)施例中的終端,以團(tuán)隊(duì)成員的總數(shù)為k為例,i的取值為1至k,初始時,i的取值為1。
步驟203:采用dijkstra算法計(jì)算該團(tuán)隊(duì)成員i到無向圖內(nèi)路徑節(jié)點(diǎn)m的距離a(i,m)。
步驟204:判斷是否針對所有團(tuán)隊(duì)成員計(jì)算獲得該a(i,m),若是,則執(zhí)行步驟205,否則,將i+1作為新的i值,執(zhí)行步驟202。
步驟205:累計(jì)各路徑節(jié)點(diǎn)m到所有團(tuán)隊(duì)成員的路徑長度之和,a(m)=maxa(i,m)。
步驟206:對a(m)按從小到大次序重新排列,得到對應(yīng)的路徑節(jié)點(diǎn)序列sm。
其中,第一個節(jié)點(diǎn)a(sm=1)的值最小,a(sm=2)次之,依此類推
步驟207:依此選取節(jié)點(diǎn)sm,并設(shè)置對應(yīng)的路徑節(jié)點(diǎn)m起點(diǎn)。
步驟208:采用dijkstra算法計(jì)算路徑節(jié)點(diǎn)m到目的地的最短距離b(m)。
其中,m的取值從1開始,直至最后一個節(jié)點(diǎn)m。
步驟209:以m為匯合點(diǎn),采用會合優(yōu)先因子r加權(quán)的最短路徑長度為c(m)=(1-r)*b(m)+r*a(m)。
步驟210:判斷是否針對所有路徑節(jié)點(diǎn)計(jì)算獲得c(m),若是,執(zhí)行步驟211,否則,將m+1作為新的m,執(zhí)行步驟207。
步驟211:確定minc(m)對應(yīng)的節(jié)點(diǎn)即為最佳匯合點(diǎn)。
圖4為本發(fā)明實(shí)施例提供的服務(wù)器的結(jié)構(gòu)示意圖,該服務(wù)器包括:
第一獲得模塊301,用于獲得k個終端的注冊信息,注冊信息包括目的地以及k個終端中每個終端的起始位置,k為不小于2的整數(shù);
第二獲得模塊302,用于獲得多成員出行的導(dǎo)航策略;
確定模塊303,用于根據(jù)注冊信息以及導(dǎo)航策略,從由k個終端中每個終端的起始位置以及目的地所確定的出行區(qū)域內(nèi)確定一集合地點(diǎn);
發(fā)送模塊304,用于向k個終端中每個終端發(fā)送導(dǎo)航信息,用于指示終端從起始位置位移至集合地點(diǎn),并在集合地點(diǎn)與k個終端中其余終端會合后位移至目的地。
在一種可選的實(shí)現(xiàn)方式中,確定模塊303用于:服務(wù)器在出行區(qū)域內(nèi)確定m個節(jié)點(diǎn),m為不小于2的整數(shù);
確定m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至k個終端中每個終端的起始位置的最短路徑的長度中的最大長度值,其中,m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至k個終端中每個終端的起始位置的最短路徑的長度中的最大長度值為ai,i的取值為1至m的整數(shù);
確定m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至目的地的最短路徑的長度,其中,m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至目的地的最短路徑的長度為bi;
根據(jù)ai以及bi從m個節(jié)點(diǎn)中確定出作為集合地點(diǎn)的節(jié)點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,確定模塊303用于:服務(wù)器在出行區(qū)域內(nèi)確定m個節(jié)點(diǎn),m為不小于2的整數(shù);
確定m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至k個終端中優(yōu)先級高的l個終端中每個終端的起始位置的最短路徑的長度中的最大長度值,其中,l為不大于k的正整數(shù),m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至l個終端中每個終端的起始位置的最短路徑的長度中的最大長度值為ai,i的取值為1至m的整數(shù);
確定m個節(jié)點(diǎn)中每個節(jié)點(diǎn)至目的地的最短路徑的長度,其中,m個節(jié)點(diǎn)中第i個節(jié)點(diǎn)至目的地的最短路徑的長度為bi;
根據(jù)ai以及bi從m個節(jié)點(diǎn)中確定出作為集合地點(diǎn)的節(jié)點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,導(dǎo)航策略包括加權(quán)因子r,0≦r≦1;確定模塊303用于:
確定ci=(1-r)*bi+r*ai;
確定c1至cm中的最小值,并確定m個節(jié)點(diǎn)中用于確定出最小值的節(jié)點(diǎn)為集合地點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,注冊信息信息還包括k個終端中每個終端的出行速度;
確定模塊303用于:
根據(jù)k個終端中每個終端的起始位置以及出行速度、目的地以及導(dǎo)航策略確定集合地點(diǎn)。
在一種可選的實(shí)現(xiàn)方式中,服務(wù)器還包括:
第三獲得模塊305,用于獲得更新消息,更新消息包括k個終端中任一終端的當(dāng)前位置信息、目的地變更信息、導(dǎo)航策略變更信息、終端變更信息以及出行區(qū)域內(nèi)的路況變更信息中的至少一項(xiàng);
更新模塊306,用于根據(jù)更新消息確定第二集合地點(diǎn),并向k個終端中每個終端發(fā)送第二導(dǎo)航信息,用于指示終端位移至第二集合地點(diǎn)與k個終端中其余終端會合。
本發(fā)明實(shí)施例還提供一種服務(wù)器,該導(dǎo)航服務(wù)器用于執(zhí)行前面的導(dǎo)航方法。具體的,該服務(wù)器包括處理器、收發(fā)器以及存儲器,該處理器、收發(fā)器以及存儲器通過總線耦合在一起。該收發(fā)器用于與多個終端中任一終端進(jìn)行通信,該處理器用于通過收發(fā)器以及存儲器執(zhí)行前面的導(dǎo)航方法。
本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)可讀介質(zhì),用于存儲計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括用于執(zhí)行前面的導(dǎo)航方法的指令。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實(shí)施例的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明實(shí)施例可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明實(shí)施例是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明實(shí)施例進(jìn)行各種改動和變型而不脫離本發(fā)明實(shí)施例的精神和范圍。這樣,倘若本發(fā)明實(shí)施例的這些修改和變型屬于本發(fā)明實(shí)施例權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明實(shí)施例也意圖包含這些改動和變型在內(nèi)。