diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 83405b8de1..4ff10f68a5 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -91,6 +91,7 @@
+
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java
index bfadaf3c8e..d86d0213d8 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java
@@ -26,9 +26,7 @@ import static com.mogo.module.common.constants.DataTypes.TYPE_MARKER_CLOUD_WARN_
public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedListener {
private static final String TAG = "V2XWarnDataDrawer";
-
private static volatile V2XWarnDataDrawer sInstance;
-
private boolean mChangeCarModeStatus;
private V2XWarnDataDrawer() {
@@ -73,28 +71,27 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL
*/
public void renderWarnData(V2XWarningEntity data) {
MarkerLocation location = new MarkerLocation();
- location.setLat(data.getLat());
- location.setLon(data.getLon());
+ location.setLat(data.getDirection() == 1 ? data.getStopLines().get(0).lat : data.getLat());
+ location.setLon(data.getDirection() == 1 ? data.getStopLines().get(0).lon : data.getLon());
MarkerShowEntity markerShowEntity = new MarkerShowEntity();
markerShowEntity.setMarkerLocation(location);
markerShowEntity.setMarkerType(TYPE_MARKER_CLOUD_WARN_DATA);
- WorkThreadHandler.getInstance().postDelayed(() -> {
- IMogoMarker marker = drawMarker(markerShowEntity);
- Log.d("liyz", "renderWarnData marker != null ");
- marker.addDynamicAnchorPosition(new MogoLatLng(data.getCollisionLat(), data.getCollisionLon()), (float) data.getHeading(), 5000);
-
- //移动完成以后,3s后消失
- UiThreadHandler.postDelayed( () -> {
- marker.remove();
- }, 8000 );
-
- }, 0);
+ IMogoMarker marker = drawMarker(markerShowEntity);
+ Log.d("liyz", "renderWarnData marker != null ");
+ marker.addDynamicAnchorPosition(new MogoLatLng(
+ data.getDirection() == 1 ? data.getStopLines().get(1).lat : data.getCollisionLat(),
+ data.getDirection() == 1 ? data.getStopLines().get(1).lon : data.getCollisionLon()), (float) data.getHeading(), 5000);
+ //移动完成以后,3s后消失
+ UiThreadHandler.postDelayed(() -> {
+ marker.remove();
+ }, 8000);
}
+
public IMogoMarker drawMarker(MarkerShowEntity markerShowEntity) {
MogoMarkerOptions options = new MogoMarkerOptions()
.object(markerShowEntity)
@@ -103,8 +100,7 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL
IMarkerView iMarkerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity, options);
options.icon3DRes(getModelRes(2)); //TODO
-// options.anchorColor("#FF4040");
- options.anchorColor("#FF3036"); //红色
+ options.anchorColor("#FB3C3CFF"); //红色#FF3036 蓝色:#256BFF
IMogoMarker marker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(markerShowEntity.getMarkerType(), options);
iMarkerView.setMarker(marker);
marker.setToTop();
@@ -112,4 +108,44 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL
return marker;
}
+ /**
+ * 绘制停止线
+ *
+ * @param data
+ */
+ public void renderStopLineData(V2XWarningEntity data) {
+ MarkerLocation location = new MarkerLocation();
+ location.setLat(data.getLat());
+ location.setLon(data.getLon());
+
+ MarkerShowEntity markerShowEntity = new MarkerShowEntity();
+ markerShowEntity.setMarkerLocation(location);
+ markerShowEntity.setMarkerType(TYPE_MARKER_CLOUD_WARN_DATA);
+
+ IMogoMarker marker = drawStopLineMarker(markerShowEntity);
+
+ //移动完成以后,3s后消失
+ UiThreadHandler.postDelayed(() -> {
+ marker.remove();
+ }, 8000);
+
+ }
+
+ public IMogoMarker drawStopLineMarker(MarkerShowEntity markerShowEntity) {
+ MogoMarkerOptions options = new MogoMarkerOptions()
+ .object(markerShowEntity)
+ .latitude(markerShowEntity.getMarkerLocation().getLat())
+ .longitude(markerShowEntity.getMarkerLocation().getLon());
+ IMarkerView iMarkerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity, options);
+ options.icon3DRes(getModelRes(1)); //TODO
+
+ options.anchorColor("#FB3C3CFF"); //红色#FF3036 蓝色:#256BFF
+ IMogoMarker marker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(markerShowEntity.getMarkerType(), options);
+ iMarkerView.setMarker(marker);
+ marker.setToTop();
+
+ return marker;
+ }
+
+
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java
index a883d44ad8..1648a8b388 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java
@@ -52,8 +52,7 @@ public class TopView extends FrameLayout {
originX = ev.getY();
} else if (ev.getAction() == MotionEvent.ACTION_MOVE) {
// 垂直滑动,事件拦截
- return Math.abs(originY - ev.getY()) > ViewConfiguration.get(getContext()).getScaledTouchSlop()
- ||Math.abs(originX - ev.getX()) > ViewConfiguration.get(getContext()).getScaledTouchSlop();
+ return Math.abs(originY - ev.getY()) > ViewConfiguration.get(getContext()).getScaledTouchSlop();
}
return false;
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/MoGoV2XServicePaths.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/MoGoV2XServicePaths.java
index 483ac4e448..04ebf4aa95 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/MoGoV2XServicePaths.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/MoGoV2XServicePaths.java
@@ -43,6 +43,13 @@ public class MoGoV2XServicePaths {
@Keep
public static final String PATH_V2X_PERSON_WARN_POLYLINE_MANAGER = "/v2xPersonWarnPolylineManager/api";
+ /**
+ * V2X 停止线连接线
+ */
+ @Keep
+ public static final String PATH_V2X_STOP_POLYLINE_MANAGER = "/v2xStopPolylineManager/api";
+
+
/**
* V2X 云端数据处理
*/
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java
index 2df6f55679..7166bb0fa1 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java
@@ -17,6 +17,7 @@ import com.mogo.module.common.drawer.AdasRecognizedResultDrawer;
import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.v2x.alarm.V2XCalculateServer;
import com.mogo.module.v2x.manager.IMoGoPersonWarnPolylineManager;
+import com.mogo.module.v2x.manager.IMoGoStopPolylineManager;
import com.mogo.module.v2x.manager.IMoGoV2XCloundDataManager;
import com.mogo.module.v2x.manager.IMoGoV2XMarkerManager;
import com.mogo.module.v2x.manager.IMoGoV2XPolylineManager;
@@ -114,6 +115,7 @@ public class V2XServiceManager {
private static IMoGoV2XStatusManager moGoV2XStatusManager;
private static IMoGoWarnPolylineManager moGoWarnPolylineManager;
private static IMoGoPersonWarnPolylineManager moGoPersonWarnPolylineManager;
+ private static IMoGoStopPolylineManager moGoStopPolylineManager;
private static IMoGoV2XCloundDataManager moGoV2XCloundDataManager;
private V2XServiceManager() {
@@ -170,6 +172,7 @@ public class V2XServiceManager {
moGoWarnPolylineManager = (IMoGoWarnPolylineManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_WARN_POLYLINE_MANAGER).navigation(context);
moGoV2XCloundDataManager = (IMoGoV2XCloundDataManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_WARN_CLOUND_DATA_MANAGER).navigation(context);
moGoPersonWarnPolylineManager = (IMoGoPersonWarnPolylineManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_PERSON_WARN_POLYLINE_MANAGER).navigation(context);
+ moGoStopPolylineManager = (IMoGoStopPolylineManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_STOP_POLYLINE_MANAGER).navigation(context);
moGoV2XStatusManager = (IMoGoV2XStatusManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_STATUS_MANAGER).navigation(context);
}
@@ -351,4 +354,11 @@ public class V2XServiceManager {
V2XServiceManager.moGoPersonWarnPolylineManager = moGoPersonWarnPolylineManager;
}
+ public static IMoGoStopPolylineManager getMoGoStopPolylineManager() {
+ return moGoStopPolylineManager;
+ }
+
+ public static void setMoGoStopPolylineManager(IMoGoStopPolylineManager moGoStopPolylineManager) {
+ V2XServiceManager.moGoStopPolylineManager = moGoStopPolylineManager;
+ }
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java
index a274f3d9c6..66bc31e67d 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java
@@ -138,27 +138,8 @@ public class V2XWaringManager {
// info1.setHeading(10);
// info1.setStartLocation(startLatlng1);
// info1.setEndLocation(endLatlng1);
-//
-// //只有在3d模型下高精数据才有值 TODO
-// if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) {
-// float roadWidth = V2XServiceManager.getMapUIController().getRoadWidth(116.411198243370,
-// 39.9809517154582, (float) 3.13919341919472 , true, true);
-// Log.d(V2XConst.LOG_NAME_WARN, "roadWidth = " + roadWidth);
-// float pixel = V2XServiceManager.getMapUIController().getScalePerPixel();
-// float width = roadWidth / pixel;
-// Log.d(V2XConst.LOG_NAME_WARN, "width = " + width + "---pixel = " + pixel);
-// info1.setWidth(roadWidth);
-// }
-//
-// V2XServiceManager.getMoGoWarnPolylineManager().drawWarnPolyline(getContext(), info1);
-//
-// //延迟3秒清理线
-// UiThreadHandler.postDelayed( () -> {
-// V2XServiceManager.getMoGoWarnPolylineManager().clearLine();
-// }, 3000 );
-
- // adas 每隔一秒传递的他车或行人数据
+ // adas 每隔一秒传递的他车或行人数据,避免重复
// V2XServiceManager.getmIMogoADASController().addAdasRecognizedDataCallback(resultList -> {
// // 绘制近景识别到的车辆,行人和二轮车
// AdasRecognizedResultDrawer.getInstance().renderAdasRecognizedResult( resultList );
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java
index 8e5b8b24e1..fe7e4d093f 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java
@@ -143,6 +143,7 @@ public class V2XRoadEventVH extends V2XBaseViewHolder {
private MogoImageView ivEvent;
private TextView tvEvent;
+ private ImageView ivPlay;
private TextView tvLine;
private TextView tvPlay;
@@ -163,6 +164,7 @@ public class V2XRoadEventVH extends V2XBaseViewHolder {
ivEvent = itemView.findViewById(R.id.iv_event);
tvEvent = itemView.findViewById(R.id.tv_event);
+ ivPlay = itemView.findViewById(R.id.iv_play);
tvLine = itemView.findViewById(R.id.tv_line);
tvPlay = itemView.findViewById(R.id.tv_play);
}
@@ -248,6 +250,7 @@ public class V2XRoadEventVH extends V2XBaseViewHolder {
ivEventImg.setOnClickListener(v -> {
showRoadVideoInfo(v2XEventShowEntity);
});
+ ivPlay.setVisibility(VISIBLE);
tvLine.setVisibility(VISIBLE);
tvPlay.setVisibility(VISIBLE);
tvPlay.setOnClickListener(v -> {
@@ -261,6 +264,7 @@ public class V2XRoadEventVH extends V2XBaseViewHolder {
ivEventImg.setOnClickListener(null);
ivEventPlay.setOnClickListener(null);
ivEventPlay.setVisibility(GONE);
+ ivPlay.setVisibility(GONE);
tvLine.setVisibility(GONE);
tvPlay.setVisibility(GONE);
}
@@ -279,11 +283,11 @@ public class V2XRoadEventVH extends V2XBaseViewHolder {
}
ivEvent.setImageResource(EventTypeUtils.getPoiTypeSrcVr(mNoveltyInfo.getPoiType()));
tvEvent.setText(EventTypeUtils.getPoiTypeStrVr(mNoveltyInfo.getPoiType()));
- if (mNoveltyInfo.getPoiType() == V2XPoiTypeEnum.FOURS_FOG) {
+ if (V2XPoiTypeEnum.FOURS_FOG.equals(mNoveltyInfo.getPoiType())) {
V2XServiceManager.getDisplayEffectsManager().displayEffects(V2XPoiTypeEnum.FOURS_FOG);
// MarkerServiceHandler.getApis().getV2XListenerManager().warningChangedForListenerWithDirection(ALERT_THE_FRONT_CRASH_WARNING_TOP, MogoReceiver.ACTION_V2X_FRONT_WARNING);
}
- tvEventAddress.setText(mNoveltyInfo.getAddr());
+ tvEventAddress.setText(mNoveltyInfo.getAddr());
tvEventDistance.setText("距离 " + (int) mNoveltyInfo.getDistance() + "米");
Calendar c = Calendar.getInstance();
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/model/DrawLineInfo.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/model/DrawLineInfo.java
index e6a68b6331..f2d9fe9e43 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/model/DrawLineInfo.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/model/DrawLineInfo.java
@@ -1,6 +1,5 @@
package com.mogo.module.v2x.entity.model;
-
import com.mogo.map.MogoLatLng;
@@ -22,6 +21,8 @@ public class DrawLineInfo {
private float width;
+ private int direction;
+
public String getType() {
return type;
}
@@ -61,4 +62,12 @@ public class DrawLineInfo {
public void setWidth(float width) {
this.width = width;
}
+
+ public int getDirection() {
+ return direction;
+ }
+
+ public void setDirection(int direction) {
+ this.direction = direction;
+ }
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoStopPolylineManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoStopPolylineManager.java
new file mode 100644
index 0000000000..86aa8fb677
--- /dev/null
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoStopPolylineManager.java
@@ -0,0 +1,27 @@
+package com.mogo.module.v2x.manager;
+
+import android.content.Context;
+
+import com.alibaba.android.arouter.facade.template.IProvider;
+import com.mogo.map.overlay.IMogoPolyline;
+import com.mogo.module.v2x.entity.model.DrawLineInfo;
+
+/**
+ * 绘制可变宽度和渐变的线
+ */
+public interface IMoGoStopPolylineManager extends IProvider {
+ /**
+ * 绘制连接线,目标车,与当前车辆间连线
+ *
+ * @param context
+ * @param info
+ */
+ void drawStopPolyline(Context context, DrawLineInfo info);
+
+ /**
+ * 移除连接线
+ */
+ void clearLine();
+
+ IMogoPolyline getMogoStopPolyline();
+}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoPersonWarnPolylineManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoPersonWarnPolylineManager.java
index 5f64cf646b..d2d42ead25 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoPersonWarnPolylineManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoPersonWarnPolylineManager.java
@@ -39,26 +39,12 @@ public class MoGoPersonWarnPolylineManager implements IMoGoPersonWarnPolylineMan
// 渐变色
List colors = new ArrayList<>();
-
-// if (info.getType() != null) {
-// if (info.getType().equals("1")) { //预警 TODO
-// colors.add(0xFFFFA31A);
-// colors.add(0xFFFFA31A);
-// } else {
-// colors.add(0xFFE32F46);
-// colors.add(0xFFE32F46);
-// }
-// } else {
-// colors.add(0xFFE32F46);
-// colors.add(0xFFE32F46);
-// }
-
colors.add(0xFFE32F46);
colors.add(0xFFE32F46);
// 线条粗细,渐变,渐变色值
- Log.d(V2XConst.LOG_NAME_WARN, "MoGoPersonWarnPolylineManager width = " + info.getWidth());
- options.width(info.getWidth()).useGradient(true).transparency(0.1f).colorValues(colors);
+ Log.d(V2XConst.LOG_NAME_WARN, "MoGoPersonWarnPolylineManager width = " + info.getWidth());
+ options.width(info.getWidth()).useGradient(true).colorValues(colors);
// 当前车辆位置
options.add(info.getStartLocation());
// 目标车辆位置
@@ -66,7 +52,7 @@ public class MoGoPersonWarnPolylineManager implements IMoGoPersonWarnPolylineMan
// 绘制线的对象
mMogoPolyline = V2XServiceManager.getMogoOverlayManager().addPolyline(options);
-
+ mMogoPolyline.setTransparency(0.5f);
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoStopPolylineManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoStopPolylineManager.java
new file mode 100644
index 0000000000..1e957b2199
--- /dev/null
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoStopPolylineManager.java
@@ -0,0 +1,79 @@
+package com.mogo.module.v2x.manager.impl;
+
+import android.content.Context;
+import android.util.Log;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.mogo.map.overlay.IMogoPolyline;
+import com.mogo.map.overlay.MogoPolylineOptions;
+import com.mogo.module.v2x.MoGoV2XServicePaths;
+import com.mogo.module.v2x.V2XConst;
+import com.mogo.module.v2x.V2XServiceManager;
+import com.mogo.module.v2x.entity.model.DrawLineInfo;
+import com.mogo.module.v2x.manager.IMoGoStopPolylineManager;
+import com.mogo.module.v2x.manager.IMoGoWarnPolylineManager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 当前车辆与道路事件的连接线
+ */
+@Route(path = MoGoV2XServicePaths.PATH_V2X_STOP_POLYLINE_MANAGER)
+public class MoGoStopPolylineManager implements IMoGoStopPolylineManager {
+ private static IMogoPolyline mMogoPolyline;
+
+
+ @Override
+ public void drawStopPolyline(Context context, DrawLineInfo info) {
+ if (info == null) {
+ return;
+ }
+
+ try {
+ if (mMogoPolyline != null) {
+ mMogoPolyline.remove();
+ }
+
+ // 连接线参数
+ MogoPolylineOptions options = new MogoPolylineOptions();
+ List colors = new ArrayList<>();
+ colors.add(0xFFE32F46);
+ colors.add(0xFFE32F46);
+
+ Log.d(V2XConst.LOG_NAME_WARN, "MoGoStopPolylineManager roadWidth = " + info.getWidth());
+ // 线条粗细,渐变,渐变色值
+ // 当前车辆位置
+ options.width(info.getWidth() == 0.0 ? 60 : info.getWidth()).useGradient(true).colorValues(colors);
+ options.add(info.getStartLocation());
+ // 目标车辆位置
+ options.add(info.getEndLocation());
+
+ // 绘制线的对象
+ mMogoPolyline = V2XServiceManager.getMogoOverlayManager().addPolyline(options);
+ mMogoPolyline.setTransparency(0.5f);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void clearLine() {
+ if (mMogoPolyline != null) {
+ mMogoPolyline.remove();
+ mMogoPolyline = null;
+ }
+ }
+
+ @Override
+ public void init(Context context) {
+
+ }
+
+
+ @Override
+ public IMogoPolyline getMogoStopPolyline() {
+ return mMogoPolyline;
+ }
+}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java
index c7bfc74e61..d3499534cb 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java
@@ -1,26 +1,36 @@
package com.mogo.module.v2x.manager.impl;
import android.content.Context;
+import android.content.Intent;
import android.location.Location;
import android.util.Log;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
import com.alibaba.android.arouter.facade.annotation.Route;
+import com.mogo.cloud.commons.utils.CoordinateUtils;
import com.mogo.map.MogoLatLng;
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
import com.mogo.map.overlay.IMogoPolyline;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.drawer.V2XWarnDataDrawer;
+import com.mogo.module.common.entity.V2XMessageEntity;
import com.mogo.module.common.entity.V2XWarningEntity;
+import com.mogo.module.service.MarkerServiceHandler;
+import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.module.v2x.MoGoV2XServicePaths;
import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.entity.model.DrawLineInfo;
import com.mogo.module.v2x.manager.IMoGoV2XCloundDataManager;
+import com.mogo.module.v2x.utils.LocationUtils;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.WorkThreadHandler;
-import com.mogo.utils.logger.Logger;
+
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
import static com.mogo.module.v2x.V2XServiceManager.getContext;
@@ -31,6 +41,9 @@ import static com.mogo.module.v2x.V2XServiceManager.getContext;
public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMogoCarLocationChangedListener2 {
private V2XWarningEntity mCloundWarningInfo;
private static String TAG = "MoGoV2XCloundDataManager";
+ private boolean isSelfLineClear;
+ private List fillPoints = new ArrayList();//停止线经纬度合集
+
@Override
public void init(Context context) {
@@ -43,21 +56,103 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
Log.d(V2XConst.LOG_NAME_WARN, "analysisV2XCloundDataEvent -----> ");
mCloundWarningInfo = cloundWarningInfo;
+ pointsBetween();
- //绘制识别物与交汇点连线,并且更新连线数据
- WorkThreadHandler.getInstance().postDelayed(() -> {
- drawOtherObjectLine(cloundWarningInfo);
- }, 0);
+ //发送预警提示
+ MarkerServiceHandler.getApis().getV2XListenerManager().warningChangedForListenerWithDirection(cloundWarningInfo.getDirection(), MogoReceiver.ACTION_V2X_FRONT_WARNING);
- //二轮车和行人的渲染和移动
- V2XWarnDataDrawer.getInstance().renderWarnData(cloundWarningInfo);
+ isSelfLineClear = false;
+
+ Log.d(V2XConst.LOG_NAME_WARN, "direction = " + cloundWarningInfo.getDirection());
+ if (cloundWarningInfo.getDirection() == 1) { //前方
+ //停止线前方画线
+ MogoLatLng newLocation = LocationUtils.getNewLocation((MogoLatLng) fillPoints.get(0), 80, cloundWarningInfo.heading);
+ WorkThreadHandler.getInstance().postDelayed(() -> {
+ //二轮车和行人的渲染和移动
+ V2XWarnDataDrawer.getInstance().renderWarnData(cloundWarningInfo);
+ //绘制识别物与交汇点连线,并且更新连线数据
+ drawStopLine(cloundWarningInfo, newLocation);
+ //添加停止线marker
+ handleStopLine();
+ }, 0);
+
+ UiThreadHandler.postDelayed(() -> {
+ V2XServiceManager.getMoGoPersonWarnPolylineManager().clearLine();
+ V2XServiceManager.getMoGoWarnPolylineManager().clearLine();
+ V2XServiceManager.getMoGoStopPolylineManager().clearLine();
+
+ isSelfLineClear = true;
+ }, 8000);
+
+ } else { //左侧或者右侧
+ WorkThreadHandler.getInstance().postDelayed(() -> {
+ //绘制识别物与交汇点连线,并且更新连线数据
+ drawOtherObjectLine(cloundWarningInfo);
+ //二轮车和行人的渲染和移动
+ V2XWarnDataDrawer.getInstance().renderWarnData(cloundWarningInfo);
+ }, 0);
+
+ //延迟3秒清理线
+ UiThreadHandler.postDelayed(() -> {
+ V2XServiceManager.getMoGoPersonWarnPolylineManager().clearLine();
+ V2XServiceManager.getMoGoWarnPolylineManager().clearLine();
+
+ isSelfLineClear = true;
+ }, 8000);
+ }
- //延迟3秒清理线
- UiThreadHandler.postDelayed( () -> {
- V2XServiceManager.getMoGoPersonWarnPolylineManager().clearLine();
- }, 8000 );
}
+
+ private void handleStopLine() {
+ for (int i = 0; i < fillPoints.size(); i++) {
+ V2XWarningEntity entity = new V2XWarningEntity();
+ MogoLatLng latLng = (MogoLatLng) fillPoints.get(i);
+ entity.setLat(latLng.lat);
+ entity.setLat(latLng.lon);
+ entity.setCollisionLat(mCloundWarningInfo.getCollisionLat());
+ entity.setCollisionLon(mCloundWarningInfo.getCollisionLon());
+ entity.heading = mCloundWarningInfo.heading;
+ V2XWarnDataDrawer.getInstance().renderStopLineData(entity);
+ }
+ }
+
+ /**
+ * 绘制停止线前方线 TODO 需要实时给行人当前位置
+ */
+ private void drawStopLine(V2XWarningEntity info, MogoLatLng mogoLatLng) {
+ IMogoPolyline polyLine = V2XServiceManager.getMoGoStopPolylineManager().getMogoStopPolyline();
+ if (info != null) {
+ if (polyLine != null) {
+ Log.d(V2XConst.LOG_NAME_WARN, "drawStopLine polyLine != null");
+ polyLine.setPoints(Arrays.asList(new MogoLatLng(info.getLat(), info.getLon()),
+ new MogoLatLng(info.getCollisionLat(), info.getCollisionLon())));
+ polyLine.setTransparency(0.5f);
+ } else {
+ Log.e(V2XConst.LOG_NAME_WARN, "drawStopLine polyLine == null");
+ DrawLineInfo lineInfo = new DrawLineInfo();
+ MogoLatLng startLatlng = new MogoLatLng(
+ ((MogoLatLng) fillPoints.get(0)).lat,
+ ((MogoLatLng) fillPoints.get(0)).lon);
+ Log.d(V2XConst.LOG_NAME_WARN, "stop drawStopLine lon =" + startLatlng.lon + "--lat =" + startLatlng.lat);
+ MogoLatLng endLatlng = new MogoLatLng(mogoLatLng.lat, mogoLatLng.lon);
+ Log.d(V2XConst.LOG_NAME_WARN, " drawStopLine lon =" + mogoLatLng.lon + "--lat =" + mogoLatLng.lat);
+ Log.d(V2XConst.LOG_NAME_WARN, " drawStopLine lon =" + endLatlng.lon + "--lat =" + endLatlng.lat);
+
+ lineInfo.setStartLocation(startLatlng);
+ lineInfo.setEndLocation(endLatlng);
+ lineInfo.setHeading(info.heading);
+ Log.d(V2XConst.LOG_NAME_WARN, "drawStopLine width = " + info.getRoadwidth());
+ lineInfo.setWidth(info.getRoadwidth());
+ V2XServiceManager.getMoGoStopPolylineManager().drawStopPolyline(getContext(), lineInfo);
+ }
+ } else {
+ Log.e(V2XConst.LOG_NAME_WARN, "drawStopLine info == null");
+ V2XServiceManager.getMoGoPersonWarnPolylineManager().clearLine();
+ }
+ }
+
+
/**
* 绘制行人和二轮车连线,并且更新数据 TODO 需要实时给行人当前位置
*/
@@ -68,6 +163,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
Log.d(V2XConst.LOG_NAME_WARN, "polyLine != null");
polyLine.setPoints(Arrays.asList(new MogoLatLng(info.getLat(), info.getLon()),
new MogoLatLng(info.getCollisionLat(), info.getCollisionLon())));
+ polyLine.setTransparency(0.5f);
} else {
Log.e(V2XConst.LOG_NAME_WARN, "polyLine == null");
DrawLineInfo lineInfo = new DrawLineInfo();
@@ -76,15 +172,10 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
lineInfo.setStartLocation(startLatlng);
lineInfo.setEndLocation(endLatlng);
lineInfo.setHeading(info.heading);
- if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) {
-// float roadWidth = V2XServiceManager.getMapUIController().getRoadWidth(info.getLon(),
-// info.getLat(), (float) info.heading, true, true);
- Log.d(V2XConst.LOG_NAME_WARN, "drawOtherObjectLine width = " + info.getRoadwidth());
- lineInfo.setWidth(info.getRoadwidth());
- }
+ Log.d(V2XConst.LOG_NAME_WARN, "drawOtherObjectLine width = " + info.getRoadwidth());
+ lineInfo.setWidth(info.getRoadwidth());
V2XServiceManager.getMoGoPersonWarnPolylineManager().drawPersonWarnPolyline(getContext(), lineInfo);
}
-
} else {
Log.e(V2XConst.LOG_NAME_WARN, "info == null");
V2XServiceManager.getMoGoPersonWarnPolylineManager().clearLine();
@@ -101,35 +192,34 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
*/
@Override
public void onCarLocationChanged2(Location latLng) {
- Log.d(V2XConst.LOG_NAME_WARN, "onCarLocationChanged2 latLng = " + latLng.getLatitude() + "--" + latLng.getLongitude());
+// Log.d(V2XConst.LOG_NAME_WARN, "onCarLocationChanged2 latLng = " + latLng.getLatitude() + "--" + latLng.getLongitude() + "---isSelfLineClear = " + isSelfLineClear);
//当行人经纬度交点 经纬度不为空,开始画线,否则清理
//自车只需要关注移动
- IMogoPolyline mogoPolyline = V2XServiceManager.getMoGoWarnPolylineManager().getMogoWarnPolyline();
- if (mCloundWarningInfo != null) {
- if (mogoPolyline != null) {
- mogoPolyline.setPoints(Arrays.asList(new MogoLatLng(latLng.getLatitude(), latLng.getLongitude()),
- new MogoLatLng(mCloundWarningInfo.getCollisionLat(), mCloundWarningInfo.getCollisionLon())));
-
+ if (!isSelfLineClear) {
+ IMogoPolyline mogoPolyline = V2XServiceManager.getMoGoWarnPolylineManager().getMogoWarnPolyline();
+ if (mCloundWarningInfo != null) {
+ if (mogoPolyline != null) {
+ mogoPolyline.setPoints(Arrays.asList(new MogoLatLng(latLng.getLatitude(), latLng.getLongitude()),
+ new MogoLatLng(mCloundWarningInfo.getDirection() == 1 ? mCloundWarningInfo.getStopLines().get(0).lat : mCloundWarningInfo.getCollisionLat(),
+ mCloundWarningInfo.getDirection() == 1 ? mCloundWarningInfo.getStopLines().get(0).lon : mCloundWarningInfo.getCollisionLon())));
+ mogoPolyline.setTransparency(0.5f);
+ } else {
+ Log.e(V2XConst.LOG_NAME_WARN, "onCarLocationChanged2 mogoPolyline == null width = " + mCloundWarningInfo.getRoadwidth());
+ DrawLineInfo info = new DrawLineInfo(); // 对象
+ MogoLatLng startLatlng = new MogoLatLng(latLng.getLatitude(), latLng.getLongitude());
+ MogoLatLng endLatlng = new MogoLatLng(mCloundWarningInfo.getDirection() == 1 ? mCloundWarningInfo.getStopLines().get(0).lat : mCloundWarningInfo.getCollisionLat(),
+ mCloundWarningInfo.getDirection() == 1 ? mCloundWarningInfo.getStopLines().get(0).lon : mCloundWarningInfo.getCollisionLon());
+ info.setHeading(latLng.getBearing());
+ info.setStartLocation(startLatlng);
+ info.setEndLocation(endLatlng);
+ info.setWidth(mCloundWarningInfo.getRoadwidth()); //TODO 还需要转换比例尺
+ info.setDirection(mCloundWarningInfo.getDirection());
+ V2XServiceManager.getMoGoWarnPolylineManager().drawWarnPolyline(getContext(), info);
+ }
} else {
- Log.e(V2XConst.LOG_NAME_WARN, "onCarLocationChanged2 mogoPolyline == null width = " + mCloundWarningInfo.getRoadwidth());
- DrawLineInfo info = new DrawLineInfo(); // 对象
- MogoLatLng startLatlng = new MogoLatLng(latLng.getLatitude(), latLng.getLongitude());
- MogoLatLng endLatlng = new MogoLatLng(mCloundWarningInfo.getCollisionLat(), mCloundWarningInfo.getCollisionLon());
- info.setHeading(latLng.getBearing());
- info.setStartLocation(startLatlng);
- info.setEndLocation(endLatlng);
- info.setWidth(mCloundWarningInfo.getRoadwidth()); //TODO 还需要转换比例尺
- V2XServiceManager.getMoGoWarnPolylineManager().drawWarnPolyline(getContext(), info);
- }
-
- //延迟3秒清理线 TODO 何时 清理
- UiThreadHandler.postDelayed( () -> {
+ Log.e(V2XConst.LOG_NAME_WARN, "onCarLocationChanged2 mCloundWarningInfo == null");
V2XServiceManager.getMoGoWarnPolylineManager().clearLine();
- }, 13000 );
-
- } else {
- Log.e(V2XConst.LOG_NAME_WARN, "onCarLocationChanged2 mCloundWarningInfo == null");
- V2XServiceManager.getMoGoWarnPolylineManager().clearLine();
+ }
}
}
@@ -139,4 +229,33 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
}
+ /**
+ * 补点后的停止线经纬度合集
+ */
+ public void pointsBetween() {
+ try {
+ fillPoints.clear();
+ List stopLines = mCloundWarningInfo.getStopLines();
+ if (stopLines.size() > 1) {
+ MogoLatLng x = mCloundWarningInfo.getStopLines().get(0);
+ MogoLatLng y = mCloundWarningInfo.getStopLines().get(1);
+ //两点间的距离
+ float distance = CoordinateUtils.calculateLineDistance(x.lon, x.lat, y.lon, y.lat);
+ float average = distance / 3;
+ //两点间的角度
+ double angle = LocationUtils.getAngle(x.lon, x.lat, y.lon, y.lat);
+ //根据距离和角度获取下个点的经纬度
+ fillPoints.add(x);
+ for (int i = 1; i < 3; i++) {
+ MogoLatLng newLocation = LocationUtils.getNewLocation(x, average * i, angle);
+ fillPoints.add(newLocation);
+ }
+ fillPoints.add(y);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoWarnPolylineManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoWarnPolylineManager.java
index c38d3869d4..51a9fcb00d 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoWarnPolylineManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoWarnPolylineManager.java
@@ -42,34 +42,26 @@ public class MoGoWarnPolylineManager implements IMoGoWarnPolylineManager {
MogoPolylineOptions options = new MogoPolylineOptions();
List colors = new ArrayList<>();
-// if (info.getType() != null) {
-// if (info.getType().equals("1")) { //预警 TODO
-// colors.add(0xFFFFA31A);
-// colors.add(0xFFFFA31A);
-// } else {
-// colors.add(0xFFE32F46);
-// colors.add(0xFFE32F46);
-// }
-// } else {
-// Log.e(V2XConst.LOG_NAME_WARN, "drawWarnPolyline info.getType() == null ");
-// colors.add(0xFFE32F46);
-// colors.add(0xFFE32F46);
-// }
+ if (info.getDirection() == 1) {
+ colors.add(0xFF3036FF);
+ colors.add(0xFF3036FF);
+ } else {
+ colors.add(0xFFE32F46);
+ colors.add(0xFFE32F46);
+ }
- colors.add(0xFFE32F46);
- colors.add(0xFFE32F46);
-
- Log.d(V2XConst.LOG_NAME_WARN, "MoGoWarnPolylineManager roadWidth = " + info.getWidth());
+ Log.d(V2XConst.LOG_NAME_WARN, "MoGoWarnPolylineManager roadWidth = " + info.getWidth());
// 线条粗细,渐变,渐变色值
- options.width(info.getWidth()).useGradient(true).transparency(0.9f).colorValues(colors);
-// options.width(info.getWidth()).useGradient(true).colorValues(colors);
// 当前车辆位置
+ options.width(info.getWidth() == 0.0 ? 60 : info.getWidth()).useGradient(true).colorValues(colors);
+// options.width(60).useGradient(true).colorValues(colors);
options.add(info.getStartLocation());
// 目标车辆位置
options.add(info.getEndLocation());
// 绘制线的对象
mMogoPolyline = V2XServiceManager.getMogoOverlayManager().addPolyline(options);
+ mMogoPolyline.setTransparency(0.5f);
} catch (Exception e) {
e.printStackTrace();
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java
index 1eaf187abb..4b45679502 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java
@@ -114,7 +114,11 @@ public class V2XScenarioManager implements IV2XScenarioManager {
case V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_LEFT:
case V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_RIGHT:
case V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_BOTTOM:
- mV2XScenario = new V2XFrontWarningScenario();
+ if (V2XServiceManager.getMoGoStatusManager().isVrMode()) {
+ mV2XScenario = new V2XFrontWarningScenario();
+ } else {
+ mV2XScenario = null;
+ }
break;
default:
mV2XScenario = null;
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java
index e1f35a4d4c..09fa98f8ee 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java
@@ -67,7 +67,7 @@ public class V2XCarForHelpScenario extends AbsV2XScenario implements IM
} else {
closeWindow();
}
- // return;
+ return;
}
if (isShow) {
showButton();
@@ -98,8 +98,8 @@ public class V2XCarForHelpScenario extends AbsV2XScenario implements IM
public void showWindow() {
if (getV2XWindow() != null) {
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.MATCH_PARENT,
- (int) V2XUtils.getApp().getResources().getDimension(R.dimen.dp_140));
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ (int) V2XUtils.getApp().getResources().getDimension(R.dimen.dp_140));
V2XServiceManager.getMogoTopViewManager().addView(getV2XWindow().getView(), layoutParams);
getV2XWindow().show(getV2XMessageEntity().getContent());
}
@@ -107,9 +107,9 @@ public class V2XCarForHelpScenario extends AbsV2XScenario implements IM
@Override
public void closeWindow() {
- if (getV2XWindow() != null) {
- getV2XWindow().close();
- }
+// if (getV2XWindow() != null) {
+// getV2XWindow().close();
+// }
}
private V2XVoiceCallbackListener cancelCb = null;
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpWindow.java
index 84b1c8081d..00ecfd0077 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpWindow.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpWindow.java
@@ -75,10 +75,8 @@ public class V2XCarForHelpWindow extends V2XBasWindow implements IV2XWindow() {
@Override
public void onSuccess(BaseData result) {
- AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已取消", null);
//移除窗体
V2XServiceManager.getMogoTopViewManager().removeView(V2XCarForHelpWindow.this);
- V2XVoiceManager.INSTANCE.unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_CANCEL_HELP);
}
@Override
@@ -86,6 +84,20 @@ public class V2XCarForHelpWindow extends V2XBasWindow implements IV2XWindow {
- V2XMessageEntity v2XMessageEntity =
- TestOnLineCarUtils.getV2XScenarioPushFrontWarningEventData();
-
- Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION);
- intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity);
- LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent);
- });
-
mBtnTriggerPushEvent.setOnClickListener(v -> {
V2XMessageEntity v2XMessageEntity =
TestOnLineCarUtils.getV2XScenarioPushEventData();
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XFrontWarningScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XFrontWarningScenario.java
index 2355cc0096..d8031e5759 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XFrontWarningScenario.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XFrontWarningScenario.java
@@ -42,7 +42,7 @@ import java.util.List;
* @description 车路云—场景预警-V1.0 前车/行人/摩托车/盲区碰撞预警
* @since: 2021/3/24
*/
-public class V2XFrontWarningScenario extends AbsV2XScenario implements IMogoTopViewStatusListener , IMogoCarLocationChangedListener2 {
+public class V2XFrontWarningScenario extends AbsV2XScenario implements IMogoTopViewStatusListener {
private int direction;
private V2XWarningEntity mMarkerEntity;
@@ -134,14 +134,4 @@ public class V2XFrontWarningScenario extends AbsV2XScenario implements IMogoTopV
}
- @Override
- public void onCarLocationChanged2(Location latLng) {
-
- }
-
- @Override
- public void onCarLocationChanged(MogoLatLng latLng) {
- mMarkerEntity.setCarLocation(latLng);
- drawPOI();
- }
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java
index 4c9e3078ae..d7566943a1 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java
@@ -48,7 +48,7 @@ public class V2XWarningMarker implements IV2XMarker {
if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
pointsBetween();
//绘制停止线
- drawStopLines(fillPoints);
+// drawStopLines(fillPoints);
drawSafeLine();
WorkThreadHandler.getInstance().postDelayed(() -> {
V2XServiceManager.getMarkerManager().removeMarkers(V2XConst.V2X_FRONT_STOP_LINE);
@@ -72,9 +72,9 @@ public class V2XWarningMarker implements IV2XMarker {
//根据到停止线的距离和方向角获取经纬度
MogoLatLng
stopLineLo = LocationUtils.getNewLocation(car, mMarkerEntity.getStopLineDistance(), mMarkerEntity.getAngle());
- if (mMarkerEntity.getCollisionLat() > 0 && mMarkerEntity.getCollisionLon() > 0) {
- drawLine(car, stopLineLo);
- }
+// if (mMarkerEntity.getCollisionLat() > 0 && mMarkerEntity.getCollisionLon() > 0) {
+// drawLine(car, stopLineLo);
+// }
} else {
Log.d(TAG, "自车位置没有拿到");
}
@@ -152,6 +152,7 @@ public class V2XWarningMarker implements IV2XMarker {
DrawLineInfo drawLineInfo = new DrawLineInfo();
drawLineInfo.setStartLocation(s);
drawLineInfo.setEndLocation(e);
+ drawLineInfo.setWidth(60);
V2XServiceManager.getMoGoWarnPolylineManager().drawWarnPolyline(mContext, drawLineInfo);
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/EventTypeUtils.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/EventTypeUtils.java
index ad2838ce84..c8d2e6b766 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/EventTypeUtils.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/EventTypeUtils.java
@@ -135,7 +135,7 @@ public class EventTypeUtils {
break;
// 积水
case V2XPoiTypeEnum.FOURS_PONDING:
- str = "前方道路积水道路积水";
+ str = "前方道路积水";
break;
// 浓雾
case V2XPoiTypeEnum.FOURS_FOG:
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_play.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_play.png
new file mode 100644
index 0000000000..b38e732923
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_play.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml
index bc25522ee9..435eb8b454 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml
@@ -205,4 +205,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail_vr.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail_vr.xml
index ac91f6c608..ae2ab6d8bb 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail_vr.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail_vr.xml
@@ -229,28 +229,44 @@
android:id="@+id/iv_event"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
+ android:layout_marginLeft="@dimen/dp_30"
android:scaleType="fitXY"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- android:layout_marginLeft="@dimen/dp_30"
app:miv_failureHolder="@drawable/v2x_icon_live_logo"
app:miv_overlayImageId="@drawable/v2x_icon_live_logo"
app:miv_placeHolder="@drawable/v2x_icon_live_logo"
app:miv_topLeftRadius="@dimen/dp_20" />
-
+ app:layout_constraintTop_toTopOf="parent">
+
+
+
+
+
+
diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml
index 85c806cb25..7c1583a11d 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml
@@ -238,20 +238,6 @@
android:textSize="@dimen/dp_22"
android:textStyle="bold" />
-
-