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. 為什么我ping不通我的docker容器呢???2. 關于docker下的nginx壓力測試3. angular.js - angular內容過長展開收起效果5. javascript - webpack熱加載配置不生效6. docker start -a dockername 老是卡住,什么情況?7. javascript - js代碼獲取驗證碼倒計時問題8. dockerfile - [docker build image失敗- npm install]9. 主從備份 - 跪求mysql 高可用主從方案10. java - instance method中 static后的<K>是什么意思?
