diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java index a64f44f612..7254e72cd5 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java @@ -81,6 +81,7 @@ import mogo.telematics.pad.MessagePad; /** * 小地图的方向View * 监听自动驾驶路径结束,结束高德地图导航 + * * @author donghongyu * @date 12/14/20 4:40 PM */ @@ -722,11 +723,38 @@ public class SmallMapDirectionView } - //自动驾驶状态开启之后返回,真实路径需要确认返回时间 - //数据返回之后触发路算 + /** + * 根据全路径获取起始点和经停点进行导航路线绘制 + * 自动驾驶启动后获得数据,获取全路径的具体时间要进行路测 + * 室内某个bag包自动驾驶启动8s后返回 + */ @Override public void onAutopilotRotting(@org.jetbrains.annotations.Nullable MessagePad.GlobalPathResp globalPathResp) { List list = globalPathResp.getWayPointsList(); Log.d(TAG, "adas返回全路径:" + list.toString()); + int minCount = 2; + if (list.size() >= minCount) { + Location sLocation = (Location) list.get(0); + Location eLocation = (Location) list.get(list.size() - 1); + mStartLatlng = new NaviLatLng(sLocation.getLongitude(), sLocation.getLatitude()); + mEndLatlng = new NaviLatLng(eLocation.getLongitude(), eLocation.getLatitude()); + sList.add(mStartLatlng); + eList.add(mEndLatlng); + for (int i = 1; i < list.size() - minCount; i++) { + Location wayLoc = (Location) list.get(i); + NaviLatLng way = new NaviLatLng(wayLoc.getLongitude(), wayLoc.getLatitude()); + mWayPointList.add(way); + } + } + int strategy = 0; + try { + //再次强调,最后一个参数为true时代表多路径,否则代表单路径 + strategy = mAMapNavi.strategyConvert(true, false, false, false, false); + } catch (Exception e) { + e.printStackTrace(); + } + Log.d(TAG, "calculateDriveRoute:" + sList.toString() + "," + eList.toString() + "," + mWayPointList.toString()); + //指定路径绘制导航路线 + mAMapNavi.calculateDriveRoute(sList, eList, mWayPointList, strategy); } }