發布時間:2022/08/18 點擊數:2836
如果說手繪圖本身是面子,讓人對地圖有第一印象和直觀感受,那么實時導航功能則是地圖的靈魂和里子。沒有實時定位和動態路徑規劃導航功能的地圖,只是一個可觀而不可用的花瓶,沒有使用價值。沒有準確的而高效的實時導航算法,就不能把地圖價值在游客手里發揮到最大。
bellman-ford:可以用于邊權為負的圖,圖中如果有負環,算法會檢測出負環。時間復雜度O(VE)。
spfa:bellman-ford的優化算法,本質是bellman-ford,所以適用性和bellman-ford一樣。時間復雜度O(KE)。
dijkstra:只能用于邊權都為正的圖中。時間復雜度O(n2)。
floyd:也可以用于有負權的圖中,即使有負環,算法也可以檢測出來。可以求任意點的最短路徑,有向圖和無向圖的最小環和最大環。時間復雜度O(n3)。
實現了方向的指引,則手繪地圖導航功能的基礎已經具備。
類似于地圖APP的導航功能,直行、轉向等方向提示可以極大的增加導航的使用體驗和實用效果。對于這一點,也可以通過設計算法實現。簡單來說,可以通過用戶前進的方向,結合規劃的路徑,來判斷前方應當如何轉向。當然,這里的細節比較復雜,就不展開贅述。而還需要注意的一點就是,判斷用戶是否已經偏移路線。
當然,對于確實偏移過大的情況,也不能強行糾偏。因為這種情況,我們其實是不知道到底是用戶確實已經偏離太大,還是手機定位出現的較大誤差。這時可以根據實際情況提示用戶已經偏移路線,或者待手機定位自動恢復正常。
視頻展示一個示例。