本申請涉及導(dǎo)航領(lǐng)域,尤其涉及一種導(dǎo)航方法及裝置。
背景技術(shù):
在目前的導(dǎo)航技術(shù)中,導(dǎo)航軟件會根據(jù)導(dǎo)航對象(例如手持導(dǎo)航設(shè)備的用戶、導(dǎo)航設(shè)備本身或該導(dǎo)航設(shè)備所在的車輛等)的當(dāng)前位置/選定的起始點和導(dǎo)航對象所選定的目的地提供導(dǎo)航路線,當(dāng)導(dǎo)航對象根據(jù)該導(dǎo)航路線移動時,導(dǎo)航軟件會按照預(yù)設(shè)的定位時間間隔對導(dǎo)航對象進(jìn)行定位,并根據(jù)定位結(jié)果在導(dǎo)航路線上繪制導(dǎo)航對象的位置,如用預(yù)置的導(dǎo)航標(biāo)來代表導(dǎo)航對象。
通常,定位時間間隔較長(例如5秒),在該定位時間間隔內(nèi)導(dǎo)航對象實際上可能已經(jīng)沿著導(dǎo)航路線移動較遠(yuǎn)的距離,尤其是導(dǎo)航對象行駛在高速路或快速路上,因此,在一個定位時間間隔內(nèi)導(dǎo)航對象的前一定位位置與后一定位位置在空間距離上相隔較遠(yuǎn),根據(jù)導(dǎo)航對象的定位位置用導(dǎo)航標(biāo)在導(dǎo)航路線表示導(dǎo)航對象的位置,會存在以下技術(shù)問題:
針對導(dǎo)航標(biāo)在各個定位位置點的展示而言,由于各個定位位置點在空間上距離較遠(yuǎn),從視覺上給用戶的感覺是導(dǎo)航標(biāo)從一個位置直接變動到另一個位置,出現(xiàn)導(dǎo)航標(biāo)一頓一頓的即視感,導(dǎo)航標(biāo)移動不平滑。用戶不知曉其在兩個定位位置之間的位置。如圖1所示,經(jīng)過定位時間間隔t之后,導(dǎo)航標(biāo)從t1時刻的p1位置直接變動到t1+t時刻的p2位置,變動幅度較大。
技術(shù)實現(xiàn)要素:
本申請的一個目的是提供一種導(dǎo)航方法,可以為用戶提供更平滑的路線導(dǎo)航服務(wù)。
根據(jù)本申請的一個實施例,提供了一種導(dǎo)航方法,該導(dǎo)航方法包括以下步驟:
在導(dǎo)航過程中,按照預(yù)置的定位時間間隔對導(dǎo)航對象進(jìn)行定位得到定位位置;
每得到一次定位位置,在電子地圖上導(dǎo)航對象的導(dǎo)航標(biāo)當(dāng)前顯示位置和定位位置之間確定多個中間位置點;
將所述導(dǎo)航標(biāo)從當(dāng)前顯示位置依次向所述多個中間位置點和所述定位位置變動。
根據(jù)本申請的另一個實施例,提供了一種導(dǎo)航裝置,該導(dǎo)航裝置包括:
定位位置獲取單元,被配置為在導(dǎo)航過程中,按照預(yù)置的定位時間間隔對導(dǎo)航對象進(jìn)行定位得到定位位置;
中間位置點確定單元,被配置為每得到一次定位位置,在電子地圖上導(dǎo)航對象的導(dǎo)航標(biāo)當(dāng)前顯示位置和定位位置之間確定多個中間位置點;
導(dǎo)航標(biāo)展示單元,被配置為將所述導(dǎo)航標(biāo)從當(dāng)前顯示位置依次向所述多個中間位置點和所述定位位置變動。
與現(xiàn)有技術(shù)相比,本申請的實施例具有以下優(yōu)點:本申請實施例在導(dǎo)航過程中,能夠在每獲取一次導(dǎo)航對象的定位位置時,在該導(dǎo)航對象的導(dǎo)航標(biāo)的當(dāng)前顯示位置與定位位置之間插入多個中間位置點,將導(dǎo)航標(biāo)從當(dāng)前顯示位置依次通過中間位置點向定位位置移動,提高導(dǎo)航標(biāo)展示的平滑性,給用戶一種導(dǎo)航對象連貫平滑的從當(dāng)前顯示位置移動到定位位置的即視感,提高導(dǎo)航標(biāo)展示的合理性。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1為現(xiàn)有技術(shù)中展示導(dǎo)航標(biāo)的示意圖;
圖2為本申請一個實施例的導(dǎo)航方法的流程圖;
圖3示出了本申請一個實施例展示導(dǎo)航標(biāo)的示意圖;
圖4為當(dāng)前顯示位置與定位位置之間的對應(yīng)關(guān)系示意圖;
圖5為本申請一個實施例的圖1中的步驟s102的具體的流程圖;
圖6為本申請一個實施例在當(dāng)前顯示位置與定位位置之間插入中間位置點的示意圖;
圖7示出了一個實施例的導(dǎo)航設(shè)備當(dāng)前獲取定位位置和上一次獲取定位位置的定位時間間隔突變的情況下在導(dǎo)航路線上顯示的導(dǎo)航對象當(dāng)前顯示位置和獲取到的導(dǎo)航對象在導(dǎo)航路線上的定位位置的對應(yīng)關(guān)系示意圖;
圖8示出了另一個實施例的導(dǎo)航設(shè)備當(dāng)前獲取定位位置和上一次獲取定位位置的定位時間間隔突變的情況下在導(dǎo)航路線上顯示的導(dǎo)航對象當(dāng)前顯示位置和獲取到的導(dǎo)航對象在導(dǎo)航路線上的定位位置的對應(yīng)關(guān)系示意圖;
圖9示出了本申請一個實施例的圖5中的步驟s204的具體的流程圖;
圖10a-圖10c示出了三種緩動函數(shù)的分布曲線示意圖;
圖11示出了根據(jù)本申請一個實施例的導(dǎo)航裝置的結(jié)構(gòu)示意圖;
圖12示出了根據(jù)本申請一個實施例的圖11中的中間位置點插入單元102的具體結(jié)構(gòu)示意圖;
附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實施方式
在更加詳細(xì)地討論示例性實施例之前應(yīng)當(dāng)提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項操作描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時實施。此外,各項操作的順序可以被重新安排。當(dāng)其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
在上下文中所稱“計算機設(shè)備”,也稱為“電腦”,是指可以通過運行預(yù)定程序或指令來執(zhí)行數(shù)值計算和/或邏輯計算等預(yù)定處理過程的智能電子設(shè)備,其可以包括處理器與存儲器,由處理器執(zhí)行在存儲器中預(yù)存的存續(xù)指令來執(zhí)行預(yù)定處理過程,或是由asic、fpga、dsp等硬件執(zhí)行預(yù)定處理過程,或是由上述二者組合來實現(xiàn)。計算機設(shè)備包括但不限于服務(wù)器、個人電腦、筆記本電腦、平板電腦、智能手機等。
所述計算機設(shè)備包括用戶設(shè)備與網(wǎng)絡(luò)設(shè)備。其中,所述用戶設(shè)備包括但不限于電腦、智能手機、pda等;所述網(wǎng)絡(luò)設(shè)備包括但不限于單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器組成的服務(wù)器組或基于云計算(cloudcomputing)的由大量計算機或網(wǎng)絡(luò)服務(wù)器構(gòu)成的云,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。其中,所述計算機設(shè)備可單獨運行來實現(xiàn)本申請,也可接入網(wǎng)絡(luò)并通過與網(wǎng)絡(luò)中的其他計算機設(shè)備的交互操作來實現(xiàn)本申請。其中,所述計算機設(shè)備所處的網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、vpn網(wǎng)絡(luò)等。
需要說明的是,所述用戶設(shè)備、網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)等僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的計算機設(shè)備或網(wǎng)絡(luò)如可適用于本申請,也應(yīng)包含在本申請保護范圍以內(nèi),并以引用方式包含于此。
后面所討論的方法(其中一些通過流程圖示出)可以通過硬件、軟件、固件、中間件、微代碼、硬件描述語言或者其任意組合來實施。當(dāng)用軟件、固件、中間件或微代碼來實施時,用以實施必要任務(wù)的程序代碼或代碼段可以被存儲在機器或計算機可讀介質(zhì)(比如存儲介質(zhì))中。(一個或多個)處理器可以實施必要的任務(wù)。
這里所公開的具體結(jié)構(gòu)和功能細(xì)節(jié)僅僅是代表性的,并且是用于描述本申請的示例性實施例的目的。但是本申請可以通過許多替換形式來具體實現(xiàn),并且不應(yīng)當(dāng)被解釋成僅僅受限于這里所闡述的實施例。
應(yīng)當(dāng)理解的是,雖然在這里可能使用了術(shù)語“第一”、“第二”等等來描述各個單元,但是這些單元不應(yīng)當(dāng)受這些術(shù)語限制。使用這些術(shù)語僅僅是為了將一個單元與另一個單元進(jìn)行區(qū)分。舉例來說,在不背離示例性實施例的范圍的情況下,第一單元可以被稱為第二單元,并且類似地第二單元可以被稱為第一單元。這里所使用的術(shù)語“和/或”包括其中一個或更多所列出的相關(guān)聯(lián)項目的任意和所有組合。
這里所使用的術(shù)語僅僅是為了描述具體實施例而不意圖限制示例性實施例。除非上下文明確地另有所指,否則這里所使用的單數(shù)形式“一個”、“一項”還意圖包括復(fù)數(shù)。還應(yīng)當(dāng)理解的是,這里所使用的術(shù)語“包括”和/或“包含”規(guī)定所陳述的特征、整數(shù)、步驟、操作、單元和/或組件的存在,而不排除存在或添加一個或更多其他特征、整數(shù)、步驟、操作、單元、組件和/或其組合。
還應(yīng)當(dāng)提到的是,在一些替換實現(xiàn)方式中,所提到的功能/動作可以按照不同于附圖中標(biāo)示的順序發(fā)生。舉例來說,取決于所涉及的功能/動作,相繼示出的兩幅圖實際上可以基本上同時執(zhí)行或者有時可以按照相反的順序來執(zhí)行。
下面結(jié)合附圖對本申請作進(jìn)一步詳細(xì)描述。
根據(jù)本申請的一個實施例,提供了一種導(dǎo)航方法。
所述導(dǎo)航方法可以由導(dǎo)航設(shè)備來執(zhí)行,所述導(dǎo)航設(shè)備例如包括車載導(dǎo)航設(shè)備、帶有導(dǎo)航功能的手機、平板電腦、個人電腦等計算機設(shè)備。
請參考圖2,該導(dǎo)航方法可以包括以下步驟:
步驟s101,在導(dǎo)航過程中,按照預(yù)置的定位時間間隔對導(dǎo)航對象進(jìn)行定位得到定位位置。
其中,如果導(dǎo)航對象是車載導(dǎo)航設(shè)備,則導(dǎo)航對象是安裝車載導(dǎo)航設(shè)備的車輛;如果導(dǎo)航對象是帶有導(dǎo)航功能的手機,則導(dǎo)航對象是攜帶該手機的人或手機所在車輛。
例如,預(yù)置的定位時間間隔可以為1秒,則每1秒獲取一次導(dǎo)航對象的定位位置。具體的本領(lǐng)域技術(shù)人員可以根據(jù)實際需要靈活設(shè)置,本申請對定位時間間隔的取值不做嚴(yán)格限定。
對導(dǎo)航對象進(jìn)行定位可以通過gps等定位模塊進(jìn)行,由于其是現(xiàn)有技術(shù),故不贅述。
步驟s102,每得到一次定位位置,在電子地圖上導(dǎo)航對象的導(dǎo)航標(biāo)當(dāng)前顯示位置和定位位置之間確定多個中間位置點。
本實施例為了給用戶提供更平滑的導(dǎo)航顯示體驗,請參考圖3,每得到一次定位位置,在導(dǎo)航標(biāo)當(dāng)前顯示位置與獲取的定位位置之間確定出多個中間位置點,以避免在獲取所述定位位置時直接將導(dǎo)航標(biāo)從當(dāng)前顯示位置變動到定位位置而造成的視覺不平滑。
在圖3中,中間位置點以五角星符號表示,導(dǎo)航標(biāo)當(dāng)前顯示位置以菱形符號表示,所述獲取的定位位置以三角形符號表示。導(dǎo)航標(biāo)在t1時刻的當(dāng)前顯示位置為p1,在t1+t時刻的定位位置為p2,在p1與p2之間確定多個中間位置點分別為p11、p12、p13、….、p1n,其中t的定位時間間隔。
步驟s103,將導(dǎo)航標(biāo)從當(dāng)前顯示位置依次向所述多個中間位置點和所述定位位置變動。
優(yōu)選地,為提高導(dǎo)航標(biāo)展示的平滑效果,步驟s103,具體實現(xiàn)可如下:按照預(yù)置的移動時間間隔,將導(dǎo)航標(biāo)從當(dāng)前顯示位置依次向所述多個中間位置點和所述定位位置變動,其中每個定位時間間隔被分成多個移動時間間隔。也即,從所顯示的導(dǎo)航對象當(dāng)前顯示位置變動到所述多個中間位置點中的第一個中間位置點、從所述多個中間位置點中的每一個中間位置點變動到相鄰的下一個中間位置點、從所述多個中間位置點中的最后一個中間位置點變動到所述獲取的定位位置的移動時間間隔相同。
在實際應(yīng)用中,由于導(dǎo)航設(shè)備本身會存在一定的延時,因此,導(dǎo)航設(shè)備在獲取到導(dǎo)航對象的定位位置時并不能實時的在電子地圖中的該定位位置繪制該導(dǎo)航對象的導(dǎo)航標(biāo),而是存在時間上的延遲。例如,在獲取所述定位位置時,導(dǎo)航對象的導(dǎo)航標(biāo)當(dāng)前顯示位置可能是前一次的定位位置。如圖4中,上方的一條線代表獲取到的導(dǎo)航對象的定位位置,下方的一條線代表獲取所述定位位置時顯示的導(dǎo)航對象當(dāng)前顯示位置。上下兩條線上用相同字母表示同一位置。例如上線中的點a和下線中的點a是同一位置,上線中的線段ab與下線中的線段ab也表示同一段導(dǎo)航路徑。在圖4中,將在同一時間獲得的上線上表示的定位位置和下線上表示的當(dāng)前顯示位置之間用斜線相連。例如,每隔0.5秒獲取一次導(dǎo)航對象的定位位置。在獲得定位位置b時,導(dǎo)航對象的導(dǎo)航標(biāo)的當(dāng)前顯示位置是a。在導(dǎo)航對象沿bc移動時,導(dǎo)航對象的導(dǎo)航標(biāo)的當(dāng)前顯示位置保持在a,盡管實際上已經(jīng)獲得后一次定位位置是b。在獲得定位位置c時,導(dǎo)航對象的導(dǎo)航標(biāo)的當(dāng)前顯示位置變成b,盡管實際上已經(jīng)獲得一次定位位置是c。因此,基于上述描述可以清楚地看到,導(dǎo)航設(shè)備上顯示的導(dǎo)航對象當(dāng)前位置相對于定位位置滯后。并且由于導(dǎo)航設(shè)備硬件的原因,可能導(dǎo)致定位時間間隔不是一個固定值,會有一個小幅度的波動,比如說前一個定位時間間隔為0.5s,后一定位時間間隔為0.6s。因此,為避免導(dǎo)航標(biāo)在某一時刻移動到前一定位位置時,后一定位位置還沒有獲取到,從而需要等待一段時間才能根據(jù)獲取到的后一定位位置來確定中間位置點,從而導(dǎo)致導(dǎo)航標(biāo)存在停頓的問題,本申請,在設(shè)置移動時間間隔時,能夠確保移動時間間隔與(n+1)的倍數(shù)大于等于定位時間間隔,以確保導(dǎo)航標(biāo)從某一時刻移動到前一定位位置時在該時刻已經(jīng)獲取到了下一定位位置的定位結(jié)果,從而能夠立馬能夠執(zhí)行確定導(dǎo)航標(biāo)當(dāng)前顯示位置到后一定位位置的中間位置點的步驟,無需等待。
在一個實施例中,前述步驟s102具體實現(xiàn)可如圖5所示:
步驟s201,根據(jù)定位時間間隔和移動時間間隔,確定中間位置點的數(shù)量。
具體地,可以根據(jù)以下公式計算得到當(dāng)前顯示位置和定位位置之間的中間位置點的數(shù)量:
n=(t/t)*(1+a)-1
其中,n為中間位置點的數(shù)量,t為所述定位時間間隔,t為所述移動時間間隔,a可以為正數(shù),也可以為0,也可以為負(fù)數(shù),但優(yōu)選情況下,a為預(yù)置的小于1的正數(shù)。
先分別討論a為正數(shù)、0、負(fù)數(shù)的情況。
如果a=0,對當(dāng)前顯示位置和定位位置之間的移動軌跡線分段的段數(shù)正好是t/t。如圖6所示,例如t=5秒,t=1秒,n=4,對當(dāng)前顯示位置和定位位置之間的移動軌跡線分段的段數(shù)正好是5。獲得導(dǎo)航對象當(dāng)前的定位位置是b的時候,導(dǎo)航對象當(dāng)前顯示位置是a,在導(dǎo)航對象沿bc行駛的5秒內(nèi),導(dǎo)航對象當(dāng)前顯示位置不是保持在a不動,而是在這段時間每1秒依次向4個中間點變動一次。當(dāng)獲得導(dǎo)航對象的定位位置是c時,導(dǎo)航對象當(dāng)前顯示位置正好到達(dá)b。
如果a為負(fù)數(shù),對當(dāng)前顯示位置和定位位置之間的移動軌跡線分段的段數(shù)小于t/t。如圖7所示,例如t=6秒,t=1秒,a=-1/6,n=4,對當(dāng)前顯示位置和定位位置之間的移動軌跡線分段的段數(shù)是5。獲得導(dǎo)航對象當(dāng)前的定位位置是b的時候,導(dǎo)航對象當(dāng)前顯示位置是a,在導(dǎo)航對象沿bc行駛的6秒內(nèi),導(dǎo)航對象顯示位置每1秒依次向4個中間點變動一次,5秒后導(dǎo)航對象顯示位置變動到b,但還沒有達(dá)到下次獲取定位位置的時間,即導(dǎo)航標(biāo)顯示在b時,還沒有獲得導(dǎo)航對象的定位位置c,導(dǎo)航對象大約在bc之間行駛了5/6左右。因此,導(dǎo)航對象需要在b點多停留1秒,即在其它點僅滯留1秒,在b點滯留2秒才能繼續(xù)向bc之間的中間位置點變動。這種滯留會造成視覺上的卡頓。
而a為正數(shù)則能消除這種滯留帶來的視覺上的卡頓。如果a為正數(shù),對當(dāng)前顯示位置和定位位置之間的移動軌跡線分段的段數(shù)大于t/t。如圖8所示,例如t=4秒,t=1秒,a=0.25,n=4,對當(dāng)前顯示位置和定位位置之間的移動軌跡線分段的段數(shù)是5,插入a1-a4四個中間位置點。獲得導(dǎo)航對象當(dāng)前的定位位置是b的時候,導(dǎo)航對象當(dāng)前顯示位置是a,在導(dǎo)航對象沿bc行駛的4秒內(nèi),導(dǎo)航對象顯示位置每1秒依次向4個中間點變動一次,4秒后導(dǎo)航對象顯示位置變動到a4,此時正好達(dá)到獲取定位位置的時間,獲取到定位位置c。這時,就開始在a4和c之間插入多個中間位置點,而不是在b和c之間插入多個中間位置點。導(dǎo)航對象的導(dǎo)航標(biāo)從a4經(jīng)這些中間位置向c變動,而不是從b經(jīng)中間位置點向c變動。在整個的過程中,任何一個位置點不會發(fā)生額外的滯留,整個過程中導(dǎo)航標(biāo)在移動,消除了a為負(fù)數(shù)帶來的視覺上的卡頓。
優(yōu)選地,a為預(yù)置的小于1的正數(shù),這樣,即消除了a為負(fù)數(shù)帶來的視覺上的不適,又避免了a過大造成的取點處理開銷。
回到對圖5的參考,步驟s202,確定電子地圖上當(dāng)前顯示位置和定位位置之間的移動軌跡線,具體可通過以下三種方式實現(xiàn):
方式1、在電子地圖上以當(dāng)前顯示位置和定位位置為兩個端點作直線段,將該直線作為移動軌跡線;
方式2、在電子地圖上以當(dāng)前顯示位置和定位位置為兩個端點作貝塞爾曲線,將該貝塞爾曲線作為移動軌跡線;
方式3、將導(dǎo)航路線上當(dāng)前顯示位置和定位位置之間的路線作為移動軌跡線。
具體而言,在實際的道路中,道路形狀一般為直線或曲線,對于移動軌跡線明顯接近于直線的情況,可以在電子地圖上以當(dāng)前顯示位置和定位位置為兩個端點作直線,將該直線作為移動軌跡線;對于移動軌跡線明顯接近于例如拋物線等曲線的情況,則將該貝塞爾曲線作為移動軌跡線;對于移動軌跡線明顯接近于例如“z”或“v”字形等折線形的情況,則直接將導(dǎo)航路線上當(dāng)前顯示位置和定位位置之間的路線(例如“z”或“v”字形等折線形)作為移動軌跡線。
在某些情況下,導(dǎo)航對象并不依照電子地圖中的導(dǎo)航路線行進(jìn),而可能在某個時刻突然偏離導(dǎo)航路線,由于在這種情況下雖然可以獲得導(dǎo)航對象已偏離導(dǎo)航路線下行進(jìn)的定位位置,但是無法在短時間內(nèi)加載該定位位置周圍的相關(guān)地圖信息(例如周圍建筑物、行進(jìn)路線等信息),也即無法短時間內(nèi)判斷導(dǎo)航對象在偏離已有的導(dǎo)航路線行進(jìn)的情況下的實際路線是曲線還是折線還是直線等等,因此,根據(jù)本申請的一個實施例,本申請的導(dǎo)航方法在確定電子地圖上當(dāng)前顯示位置和定位位置之間的移動軌跡線之前還包括:判斷所述定位位置是否偏離導(dǎo)航路線(圖中未示)。相應(yīng)地,在所述定位位置偏離導(dǎo)航路線時,所述確定電子地圖上當(dāng)前顯示位置和定位位置之間的移動軌跡線的步驟s202具體包括:在電子地圖上當(dāng)前顯示位置和定位位置之間作直線,作為移動軌跡線。
繼續(xù)參考圖5,步驟s203,確定在當(dāng)前顯示位置和定位位置之間的移動軌跡線長度。
該步驟針對不同類型的移動軌跡線可以采用相應(yīng)的數(shù)學(xué)計算方法進(jìn)行計算,以確定移動軌跡線長度。例如如果該移動軌跡線為直線段,則根據(jù)當(dāng)前顯示位置和定位位置的兩個經(jīng)緯度坐標(biāo)計算兩點距離即可得到移動軌跡線的長度。如果該移動軌跡線為貝塞爾曲線,則可以基于求貝塞爾曲線長度的數(shù)學(xué)公式來得到該移動軌跡線的長度;如果該移動軌跡線為導(dǎo)航路線上當(dāng)前顯示位置和定位位置之間的路線,則可以從電子地圖數(shù)據(jù)中獲取導(dǎo)航路線上位于當(dāng)前顯示位置與定位位置之間路段的長度和值,將該和值確定為該移動軌跡線的長度。
繼續(xù)參考圖5,步驟s204,根據(jù)所述長度、中間位置點的數(shù)量,確定對所述移動軌跡線進(jìn)行分段的分段長度。
具體地,請參考圖9,所述步驟s204可以包括:
步驟s301,將所述中間位置點數(shù)量與1的和值作為對所述移動軌跡線進(jìn)行分段的段數(shù)。
即,如果在所顯示的導(dǎo)航對象當(dāng)前位置和獲取到的定位位置之間插入n個點,則將從導(dǎo)航對象當(dāng)前位置到獲取到的定位位置之間的移動軌跡線分為n+1段。
步驟s302,按照平均分原則將所述移動軌跡線的長度劃分成n段,以得到每個分段的長度;或者,按照預(yù)置的緩動曲線分布原則將所述移動軌跡線長度劃分成n段,依次得到每個分段的長度,以使得導(dǎo)航標(biāo)從當(dāng)前顯示位置向定位位置移動過程中在各個中間點與當(dāng)前顯示位置之間的距離和移動時間時長符合所述緩動曲線。
圖6-8都是將所述移動軌跡線長度按照所述段數(shù)平分的例子。a到a1、a1到a2、a2到a3、a3到a4、a4到b每分段的長度都是相同的。
緩動函數(shù)是廣泛用于動畫效果的一種函數(shù),它可以模擬真實的如彈跳行為的速度曲線,如圖10a-圖10c分別示出了三種緩動函數(shù)的分布曲線,分別是easeout類型函數(shù)分布曲線、easeinout類型的quat函數(shù)分布曲線、easeout類型的back函數(shù)分布曲線。原點表示當(dāng)前顯示位置,橫軸可以表示導(dǎo)航標(biāo)從當(dāng)前顯示位置向定位位置移動過程中的移動時長變化,縱軸可以表示導(dǎo)航標(biāo)從當(dāng)前顯示位置向定位位置移動過程中距離當(dāng)前顯示位置的距離變化。從圖10a-圖10c可以看出,對于easeout類型的quat函數(shù),其產(chǎn)生先變化快后變化慢的曲線分布特性;對于easeinout類型的quat函數(shù),其產(chǎn)生一直變化慢的曲線分布特性;對于easeout類型的quat函數(shù),其產(chǎn)生先變化快后變化慢的分布特性。
以圖10a所示的緩動曲線為例,假設(shè)當(dāng)前顯示位置為a,定位位置為b,在a與b之間插入a1-a3三個中間位置點,移動時間間隔為t0,則導(dǎo)航標(biāo)從a移動到a1的移動時長為t0、a移動到a2的移動時長為2t0、a移動到a3的移動時長為3t0、a移動到b的移動時長為4t0。則按照該緩動曲線對移動軌跡進(jìn)行分段,得到的a到a1的長度為d1、a1到a2的長度為d2、a2到a3的長度為d3、a3到b的長度為d4。相比于平分的方案,利用緩動函數(shù)可以使導(dǎo)航對象顯示位置的變動更加柔和。
繼續(xù)參考圖5,步驟s205,根據(jù)當(dāng)前顯示位置、分段長度、以及移動軌跡線,確定各中間位置點的位置。
在一個實施例中,步驟s205具體包括:從當(dāng)前顯示位置開始沿著所述移動軌跡線,按照每個分段的長度依次截取分段,除定位位置外將截取的分段的終點確定為中間位置點。
例如,所述當(dāng)前顯示位置是a,定位位置是b,ab之間移動軌跡線長度為0.5m,按照平均分原則,將移動軌跡線平均分成5個分段,每個分段長度為0.1m,則從a開始沿著移動軌跡線ab截取aa1=0.1m,a1a2=0.1m,a2a3=0.1m,a3a4=0.1m,a4b=0.1m,其中獲得的點a1、a2、a3、a4的位置就是各中間位置點的位置。
再例如,所述當(dāng)前顯示位置是a,定位位置是b,ab之間移動軌跡線長度為0.59m,劃分成5個分段。從a開始沿著移動軌跡線ab截取aa1、a1a2、a2a3、a3a4、a4b,使得aa1、a1a2、a2a3、a3a4、a4b符合某種緩動曲線的分布,最后得到:
aa1=0.1m,a1a2=0.1m,a2a3=0.1m,a3a4=0.1m,a4b=0.1m,
其中獲得的點a1、a2、a3、a4的位置就是各中間位置點的位置。
基于與方法同樣的發(fā)明構(gòu)思,本申請還提供一種導(dǎo)航裝置。如圖11所示,所述導(dǎo)航裝置可以包括:
定位位置獲取單元101,被配置為在導(dǎo)航過程中,按照預(yù)置的定位時間間隔對導(dǎo)航對象進(jìn)行定位得到定位位置;
中間位置點插入單元102,被配置為每得到一次定位位置,在電子地圖上導(dǎo)航對象當(dāng)前顯示位置和定位位置之間插入多個中間位置點;
導(dǎo)航標(biāo)展示單元103,被配置為將所述導(dǎo)航標(biāo)從當(dāng)前顯示位置依次向所述多個中間位置點和所述定位位置變動。
可選地,導(dǎo)航標(biāo)展示單元103被配置為:
按照預(yù)置的移動時間間隔,將導(dǎo)航標(biāo)從當(dāng)前顯示位置依次向所述多個中間位置點和所述定位位置變動,其中定位時間間隔小于等于移動時間間隔的n+1倍,其中n為中間位置點的數(shù)量。
可選地,請參考圖12,中間位置點插入單元102具體包括:
中間位置點數(shù)量確定模塊201,被配置為根據(jù)定位時間間隔和移動時間間隔,確定中間位置點的數(shù)量;
移動軌跡線確定模塊202,被配置為確定電子地圖上當(dāng)前顯示位置和定位位置之間的移動軌跡線;
軌跡線長度確定模塊203,被配置為確定在當(dāng)前顯示位置和定位位置之間的移動軌跡線長度;
分段確定模塊204,被配置為根據(jù)所述長度、中間位置點的數(shù)量,確定對所述移動軌跡線進(jìn)行分段的分段長度;
中間位置點的位置確定模塊205,被配置為根據(jù)當(dāng)前顯示位置、分段長度、以及移動軌跡線,確定各中間位置點的位置。
可選地,分段確定模塊204被配置為:
將所述中間位置點數(shù)量與1的和值作為對所述移動軌跡線進(jìn)行分段的段數(shù)n;
按照平均分原則將所述移動軌跡線的長度劃分成n段,以得到每個分段的長度;或者,按照預(yù)置的緩動曲線分布原則將所述移動軌跡線長度劃分成n段,依次得到每個分段的長度,以使得導(dǎo)航標(biāo)從當(dāng)前顯示位置向定位位置移動過程中在各個中間點與當(dāng)前顯示位置之間的距離和移動時長符合所述緩動曲線。
可選地,中間位置點的位置確定模塊205被配置為:
從當(dāng)前顯示位置開始沿著所述移動軌跡線,按照每個分段的長度依次截取分段,除定位位置外將截取的分段的終點確定為中間位置點。
可選地,移動軌跡線確定模塊202被配置為:
在電子地圖上以當(dāng)前顯示位置和定位位置為兩個端點作直線,將該直線作為移動軌跡線;或者,
在電子地圖上以當(dāng)前顯示位置和定位位置為兩個端點作貝塞爾曲線,將該貝塞爾曲線作為移動軌跡線;或者,
將導(dǎo)航路線上當(dāng)前顯示位置和定位位置之間的路線作為移動軌跡線。
可選地,所述導(dǎo)航裝置還包括:
偏離導(dǎo)航路線判斷單元(圖中未示出),被配置為判斷所述定位位置是否偏離導(dǎo)航路線;
其中所述移動軌跡線確定模塊202被配置為:在所述定位位置偏離導(dǎo)航路線時,在電子地圖上當(dāng)前顯示位置和定位位置之間作直線,作為移動軌跡線。
可選地,中間位置點的位置確定模塊205被配置為:
根據(jù)以下公式計算得到中間位置點數(shù)量:
n=(t/t)*(1+a)-1
其中,n為中間位置點的數(shù)量,t為所述定位時間間隔,t為所述移動時間間隔,a為預(yù)置的小于1的正數(shù)。
需要注意的是,本申請可在軟件和/或軟件與硬件的組合體中被實施,例如,本申請的各個裝置可采用專用集成電路(asic)或任何其他類似硬件設(shè)備來實現(xiàn)。在一個實施例中,本申請的軟件程序可以通過處理器執(zhí)行以實現(xiàn)上文所述步驟或功能。同樣地,本申請的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲到計算機可讀記錄介質(zhì)中,例如,ram存儲器,磁或光驅(qū)動器或軟磁盤及類似設(shè)備。另外,本申請的一些步驟或功能可采用硬件來實現(xiàn),例如,作為與處理器配合從而執(zhí)行各個步驟或功能的電路。
對于本領(lǐng)域技術(shù)人員而言,顯然本申請不限于上述示范性實施例的細(xì)節(jié),而且在不背離本申請的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本申請。因此,無論從哪一點來看,均應(yīng)將實施例看作是示范性的,而且是非限制性的,本申請的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。系統(tǒng)權(quán)利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現(xiàn)。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。
雖然前面特別示出并且描述了示例性實施例,但是本領(lǐng)域技術(shù)人員將會理解的是,在不背離權(quán)利要求書的精神和范圍的情況下,在其形式和細(xì)節(jié)方面可以有所變化。