java - 高德地圖平滑移動問題
問題描述
public void startMove() { LatLngBounds.Builder b = LatLngBounds.builder(); for (int i = 0; i < latLngs.size(); i++) {b.include(latLngs.get(i)); } LatLngBounds bounds = b.build(); mAMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 100)); // 取軌跡點的第一個點 作為 平滑移動的啟動 LatLng drivePoint = latLngs.get(0); Pair<Integer, LatLng> pair = SpatialRelationUtil.calShortestDistancePoint(latLngs, drivePoint); latLngs.set(pair.first, drivePoint); final List<LatLng> subList = latLngs.subList(pair.first, latLngs.size()); // 設置軌跡點 smoothMarker.setPoints(subList); // 設置平滑移動的總時間 單位 秒 smoothMarker.setTotalDuration(100); // 開始移動 smoothMarker.startSmoothMove(); // 設置移動的監聽事件 返回 距終點的距離 單位 米 smoothMarker.setMoveListener(new SmoothMoveMarker.MoveListener() {@Overridepublic void move(final double distance) {runOnUiThread(new Runnable() {@Overridepublic void run() {} });} });}
// 我這邊需要實現歷史軌跡,并且顯示跑的路線,線已經畫好,這是啟動跑起來的方法。
這邊需要同時顯示速度,速度拿到全部點的速度的集合了,但是無法對應起來。有沒有什么解決方法可以到某個點的時候實時顯示當前的速度的回調或者方法。另求助實時獲取經緯度后如何實時地圖顯示的方法。 高德地圖
問題解答
回答1:在 smoothMarker.setMoveListener 這個監聽中可以 用到getIndex獲取到當前隊列的下標,所以可以根據下標獲取到當前速度并設置
相關文章:
1. javascript - 有什么比較好的網頁版shell前端組件?2. sql語句 - mysql中關聯表查詢問題3. javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?4. css - div外層有一圈白色5. javascript - [js]為什么畫布里不出現圖片呢?在線等6. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風格檢查怎么辦。。。7. javascript - 如何將一個div始終固定在某個位置;無論屏幕和分辨率怎么變化;div位置始終不變8. html - vue項目中用到了elementUI問題9. javascript - iframe 為什么加載網頁的時候滾動條這樣顯示?10. javascript - 求解答:實例對象調用constructor,此時constructor內的this的指向?
