[RoutingOpt]修正车前引导线拖尾问题

[RouterOpt]优化代码逻辑
This commit is contained in:
renwj
2022-04-15 19:37:07 +08:00
parent f184dce4a2
commit 14d32eef0a
16 changed files with 472 additions and 240 deletions

View File

@@ -322,7 +322,7 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb
})
}
override fun onLocationChanged(location: MogoLocation?) {
override fun onLocationChanged(location: MogoLocation?, from: Int) {
location ?: return
BridgeApi.location.set(location)
if (V2XManager.hasInit()) {

View File

@@ -35,70 +35,70 @@ public class MoGoV2XPolylineManager implements IMoGoV2XPolylineManager {
@Override
public void drawablePolyline(Context context, V2XRoadEventEntity roadEventEntity) {
try {
if (mMogoPolyline != null) {
mMogoPolyline.remove();
}
boolean isRoadEventPOIShow = false;
boolean isOtherSeekHelpPOIShow = false;
IMoGoV2XStatusManager v2xStatus = BridgeApi.INSTANCE.v2xStatus();
if (v2xStatus != null) {
isRoadEventPOIShow = v2xStatus.isRoadEventPOIShow();
isOtherSeekHelpPOIShow = v2xStatus.isOtherSeekHelpPOIShow();
}
boolean isVrMode = false;
IMogoStatusManager statusManager = BridgeApi.INSTANCE.statusManager();
if (statusManager != null) {
isVrMode = statusManager.isVrMode();
}
// try {
// if (mMogoPolyline != null) {
// mMogoPolyline.remove();
// }
// boolean isRoadEventPOIShow = false;
// boolean isOtherSeekHelpPOIShow = false;
// IMoGoV2XStatusManager v2xStatus = BridgeApi.INSTANCE.v2xStatus();
// if (v2xStatus != null) {
// isRoadEventPOIShow = v2xStatus.isRoadEventPOIShow();
// isOtherSeekHelpPOIShow = v2xStatus.isOtherSeekHelpPOIShow();
// }
// boolean isVrMode = false;
// IMogoStatusManager statusManager = BridgeApi.INSTANCE.statusManager();
// if (statusManager != null) {
// isVrMode = statusManager.isVrMode();
// }
if ((isRoadEventPOIShow
|| isOtherSeekHelpPOIShow)
&& V2XStatusManager.getInstance().getTargetMoGoLatLng() != null
&& !isVrMode
) {
// 连接线参数
MogoPolylineOptions options = new MogoPolylineOptions().setGps(true);
// 渐变色
List<Integer> colors = new ArrayList<>();
if (EventTypeEnum.ALERT_TRAFFIC_LIGHT_SUGGEST.getPoiType().equals(roadEventEntity.getPoiType())
|| EventTypeEnum.ALERT_TRAFFIC_LIGHT_WARNING.getPoiType().equals(roadEventEntity.getPoiType())
|| EventTypeEnum.FOURS_BLOCK_UP.getPoiType().equals(roadEventEntity.getPoiType())
|| EventTypeEnum.ALERT_CAR_TROUBLE_WARNING.getPoiType().equals(roadEventEntity.getPoiType())) {
colors.add(0xFFFFA31A);
colors.add(0xFFFFA31A);
} else {
colors.add(0xFFE32F46);
colors.add(0xFFE32F46);
}
// 线条粗细,渐变,渐变色值
options.width(10).useGradient(true).colorValues(colors);
// 当前车辆位置
MogoLatLng carLocation = new MogoLatLng(
CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat(),
CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lon()
);
if (carLocation != null) {
options.add(carLocation);
} else {
options.add(V2XStatusManager.getInstance().getLocation());
}
// 目标车辆、道路事件位置
options.add(V2XStatusManager.getInstance().getTargetMoGoLatLng());
// 绘制线的对象
IMogoOverlayManager overlay = MogoOverlayManager.getInstance();
if (overlay != null) {
mMogoPolyline = overlay.addPolyline(options);
}
}
} catch (Exception e) {
e.printStackTrace();
}
// if ((isRoadEventPOIShow
// || isOtherSeekHelpPOIShow)
// && V2XStatusManager.getInstance().getTargetMoGoLatLng() != null
// && !isVrMode
// ) {
// // 连接线参数
// MogoPolylineOptions options = new MogoPolylineOptions().setGps(true);
//
// // 渐变色
// List<Integer> colors = new ArrayList<>();
//
// if (EventTypeEnum.ALERT_TRAFFIC_LIGHT_SUGGEST.getPoiType().equals(roadEventEntity.getPoiType())
// || EventTypeEnum.ALERT_TRAFFIC_LIGHT_WARNING.getPoiType().equals(roadEventEntity.getPoiType())
// || EventTypeEnum.FOURS_BLOCK_UP.getPoiType().equals(roadEventEntity.getPoiType())
// || EventTypeEnum.ALERT_CAR_TROUBLE_WARNING.getPoiType().equals(roadEventEntity.getPoiType())) {
// colors.add(0xFFFFA31A);
// colors.add(0xFFFFA31A);
// } else {
// colors.add(0xFFE32F46);
// colors.add(0xFFE32F46);
// }
// // 线条粗细,渐变,渐变色值
// options.width(10).useGradient(true).colorValues(colors);
//
// // 当前车辆位置
// MogoLatLng carLocation = new MogoLatLng(
// CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat(),
// CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lon()
// );
//
// if (carLocation != null) {
// options.add(carLocation);
// } else {
// options.add(V2XStatusManager.getInstance().getLocation());
// }
// // 目标车辆、道路事件位置
// options.add(V2XStatusManager.getInstance().getTargetMoGoLatLng());
//
// // 绘制线的对象
// IMogoOverlayManager overlay = MogoOverlayManager.getInstance();
// if (overlay != null) {
// mMogoPolyline = overlay.addPolyline(options);
// }
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
}
@Override

View File

@@ -106,7 +106,7 @@ public class V2XFrontWarningScenario extends AbsV2XScenario implements IMoGoMapL
}
@Override
public void onLocationChanged(@org.jetbrains.annotations.Nullable MogoLocation location) {
public void onLocationChanged(@org.jetbrains.annotations.Nullable MogoLocation location, int from) {
sV2XWarningMarker.onCarLocationChanged2(location);
}