關于高德地圖軌跡回放(點平滑移動)的實現(xiàn)

高德地圖軌跡回放沒有更多的代理方法支持,看了一下高德地圖的官方demo里面只有一個點標注平滑移動,類里面也只有一個方法用于整個動畫的實現(xiàn),但是里面是畫了軌跡的,如果是坐標點的話,單靠這個方法很難實現(xiàn)更多的功能,比如說要顯示行駛速度,行駛的具體信息,包括他的暫停都是全部動畫的暫停,而不是到了某坐標點就暫停,如果在加入進度條更不能滿足。

實現(xiàn)的方式就是:通過點與點之間形成一條路線,就類似于demo里的一條一條的軌跡,頻繁的調用動畫的方法,類似于動畫片的一幀一幀的播放一樣,并且在回調方法里加入判斷。

注意:在一幀之中,一個坐標系數(shù)組只能存放一條地理位置信息?。?!

提示問題:動畫方法的duration參數(shù),越大,動畫時間越慢,越小越快,具體多小有多快,不得而知,不知道他是怎么計算時間的。研究了一下,發(fā)現(xiàn)實際時間需要通過這個方法獲取

for(MAAnnotationMoveAnimation *animation in [self.newannotations allMoveAnimations]) {

factTime = factTime+animation.duration;

}

這個factTime就是實際時間,不過在我這沒用到,如果需要用到播放時間可以使用這個參數(shù)

關于停止在某個定位點的實現(xiàn),可以通過一個全局變量計算器,用它來計算當前進行過的動畫次數(shù),點擊停止的時候,已經獲取了當前的動畫次數(shù),這樣就能知道在哪個點停下了。這里為什么同樣是使用的停止方法,而不是從頭開始呢,因為我的地理系坐標里面只有一個經緯度,相當于一條路徑,所以從頭自然就不會從起始點開始了。

至于進度條的實現(xiàn),可以通過UISlider控制器和定時器實現(xiàn)。

如何將進度條和小車的地圖移動聯(lián)系起來,很簡單,只要將進度條的刻度數(shù)量和經緯度的個數(shù)對應即可。

項目最終已經實現(xiàn),如果后續(xù)有bug,再進行補充。

總的來說,高德地圖給的代理方法(監(jiān)聽)太少,他的代理方法是你把經緯度給他,他根據(jù)你的經緯度數(shù)組,從第一個到最后一個按照動畫的方式讓其在地圖上移動,至于中間過程的監(jiān)聽是沒有的,所以做起來就很繁瑣,希望高德地圖能夠改進吧。


高德地圖軌跡回放演示_騰訊視頻
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容