From 7e646afc9af52789efb5de610a4ee70191168b9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 9 Apr 2021 18:41:33 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E8=A7=82?= =?UTF-8?q?=E5=AF=9F=E8=80=85=E6=A8=A1=E5=BC=8F=EF=BC=8C=E5=90=8E=E9=9D=A2?= =?UTF-8?q?=E4=BC=9A=E5=B0=86V2X=E4=B8=AD=E7=9A=84=E6=89=80=E6=9C=89?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=E9=87=87=E7=94=A8=E8=A7=82=E5=AF=9F=E8=80=85?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E5=BC=8F=E8=BF=9B=E8=A1=8C=E9=87=8D=E6=9E=84?= =?UTF-8?q?=20=E5=AE=8C=E6=88=90=E4=BA=86=E6=9C=80=E4=BC=98=E8=B7=AF?= =?UTF-8?q?=E7=BA=BF=E6=8E=A8=E8=8D=90=E7=9A=84=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E5=B7=AE=E6=8E=A5=E5=8F=A3=E8=BF=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/inspectionProfiles/Project_Default.xml | 2 +- .../com/mogo/module/v2x/V2XStatusManager.java | 2 +- .../module/v2x/entity/net/V2XRouteRes.java | 27 ++++++++ .../v2x/listener/V2XLocationListener.java | 47 ++++++++----- .../v2x/manager/IMoGoV2XPolylineManager.java | 2 + .../manager/impl/MoGoV2XPolylineManager.java | 6 +- .../v2x/observer/CarLocationObserver.java | 13 ++++ .../v2x/observer/CarLocationSubject.java | 63 ++++++++++++++++++ .../v2x/observer/V2XOptimalRouteObserver.java | 50 ++++++++++++++ .../v2x/overlay/V2XOptimalRouteOverlay.java | 66 +++++++++++++++++++ .../v2x/scenario/impl/V2XScenarioManager.java | 11 ++-- .../route/V2XOptimalRouteVREventMarker.java | 36 +--------- .../mogo/module/v2x/utils/LocationUtils.java | 43 ++++++++++-- ...ario_push_vr_event_data_yongdu_gongsi.json | 12 ++++ 14 files changed, 316 insertions(+), 64 deletions(-) create mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/net/V2XRouteRes.java create mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/observer/CarLocationObserver.java create mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/observer/CarLocationSubject.java create mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/observer/V2XOptimalRouteObserver.java create mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/overlay/V2XOptimalRouteOverlay.java diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index ba46533d1a..5279db84d2 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -30,7 +30,7 @@ diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XWarningEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XWarningEntity.java index 532dca9d7a..b4a0bd6382 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XWarningEntity.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XWarningEntity.java @@ -126,6 +126,14 @@ public class V2XWarningEntity implements Serializable { this.speed = speed; } + public long getShowTime() { + return showTime; + } + + public void setShowTime(long showTime) { + this.showTime = showTime; + } + public void setStopLineDistance(double stopLineDistance) { this.stopLineDistance = stopLineDistance; 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 e9b15b4f78..f5d8fe193e 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 @@ -34,6 +34,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import static com.mogo.module.common.constants.DataTypes.TYPE_MARKER_CLOUD_STOP_LINE_DATA; import static com.mogo.module.v2x.V2XConst.V2X_FRONT_WARNING_MARKER; import static com.mogo.module.v2x.V2XServiceManager.getContext; @@ -47,7 +48,6 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog private boolean isSelfLineClear; private List fillPoints = new ArrayList();//停止线经纬度合集 - @Override public void init(Context context) { MogoApisHandler.getInstance().getApis().getRegisterCenterApi() @@ -69,7 +69,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog Log.d(V2XConst.LOG_NAME_WARN, "direction = " + cloundWarningInfo.getDirection()); if (cloundWarningInfo.getDirection() == 1) { //前方 //停止线前方画线 - MogoLatLng newLocation = LocationUtils.getNewLocation((MogoLatLng) fillPoints.get(0), 80, cloundWarningInfo.heading); + MogoLatLng newLocation = LocationUtils.getNewLocation((MogoLatLng) fillPoints.get(0), 80, cloundWarningInfo.getAngle()); WorkThreadHandler.getInstance().postDelayed(() -> { //二轮车和行人的渲染和移动 V2XWarnDataDrawer.getInstance().renderWarnData(cloundWarningInfo); @@ -83,7 +83,6 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog V2XServiceManager.getMoGoPersonWarnPolylineManager().clearLine(); V2XServiceManager.getMoGoWarnPolylineManager().clearLine(); V2XServiceManager.getMoGoStopPolylineManager().clearLine(); - isSelfLineClear = true; }, 8000); @@ -125,15 +124,19 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog * 2D资源绘制停止线 * */ private void drawStopLineWith2Resource() { - mCloundWarningInfo.setCarLocation(new MogoLatLng(39.976866,116.417622));//测试数据 + + //自车位置39.97665425796924--116.41769983329762 + mCloundWarningInfo.setCarLocation(new MogoLatLng(39.97665425796924,116.41769983329762));//测试数据 + MogoLatLng carlo = mCloundWarningInfo.getCarLocation(); - if (carlo == null){ + if (carlo == null) { double lon = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon(); double lat = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat(); carlo = new MogoLatLng(lat, lon); } + //自车行驶方向的前方*米的经纬度,该经纬度在停止线上 MogoLatLng drawStopLineLon = LocationUtils.getNewLocation(carlo, mCloundWarningInfo.getStopLineDistance(), mCloundWarningInfo.getAngle()); - + Log.d(TAG, "2D资源绘制停止线"+drawStopLineLon); MogoMarkerOptions optionsRipple = new MogoMarkerOptions() .latitude(drawStopLineLon.getLat()) .longitude(drawStopLineLon.getLon()) @@ -142,9 +145,12 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog optionsRipple .icon(ViewUtils.fromView(new EmptyMarkerView(V2XServiceManager.getContext()))); - IMogoMarker stopLine = V2XServiceManager.getMarkerManager().addMarker(V2X_FRONT_WARNING_MARKER, optionsRipple); + IMogoMarker stopLine = V2XServiceManager.getMarkerManager().addMarker(TYPE_MARKER_CLOUD_STOP_LINE_DATA, optionsRipple); stopLine.setInfoWindowAdapter(new SimpleWindow3DAdapter(new V2XFrontTargetMarkerView(V2XServiceManager.getContext()))); stopLine.showInfoWindow(); +// UiThreadHandler.postDelayed(() -> { +// stopLine.hideInfoWindow(); +// }, 8000); } /** @@ -224,6 +230,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog public void onCarLocationChanged2(Location latLng) { Log.e(V2XConst.LOG_NAME_WARN, "onCarLocationChanged2 latLng = " + latLng.getLatitude() + "--" + latLng.getLongitude() + "---isSelfLineClear = " + isSelfLineClear); //当行人经纬度交点 开始画线,否则清理 + mCloundWarningInfo.setCarLocation(new MogoLatLng(latLng.getLatitude(), latLng.getLongitude())); drawSlefCarLine(latLng); } 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 2b44bef806..6470241db7 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 @@ -60,13 +60,10 @@ public class V2XWarningMarker implements IV2XMarker { .longitude(mMarkerEntity.getLon()) .anchor(0.5f, 0.5f) .zIndex(MarkerDrawer.MARKER_Z_INDEX_HIGH); - - if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) { - } optionsRipple - .icon(ViewUtils.fromView(new EmptyMarkerView(V2XServiceManager.getContext()))); + .icon(ViewUtils.fromView(new EmptyMarkerView(mContext))); optimalMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_FRONT_WARNING_MARKER, optionsRipple); - optimalMarker.setInfoWindowAdapter(new SimpleWindow3DAdapter(new V2XFrontTargetMarkerView(V2XServiceManager.getContext()))); + optimalMarker.setInfoWindowAdapter(new SimpleWindow3DAdapter(new V2XFrontTargetMarkerView(mContext))); optimalMarker.showInfoWindow(); } catch (Exception e) { @@ -76,21 +73,6 @@ public class V2XWarningMarker implements IV2XMarker { } - private void drawMarkerWithLocation(MogoLatLng latLng, String tag) { - MogoMarkerOptions options = new MogoMarkerOptions() - .object(markerShowEntity) - .latitude(latLng.lat) - .longitude(latLng.lon); - IMarkerView iMarkerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity, options); - options.icon3DRes(com.mogo.module.service.R.raw.people); - options.anchor(0.5f, 0.5f); - options.anchorColor("#FF4040"); - IMogoMarker marker = V2XServiceManager.getMarkerManager().addMarker(tag, options); - iMarkerView.setMarker(marker); - marker.setToTop(); - } - - @Override public void clearPOI() { V2XServiceManager.getMarkerManager().removeMarkers(V2X_FRONT_WARNING_MARKER); diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_warning_marker_target.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_warning_marker_target.png deleted file mode 100644 index be6da047d09af9da4cb879e906d19c2522116d1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8929 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 From f0f4f2c12f326f860a058c65aa060512903d4ead Mon Sep 17 00:00:00 2001 From: liujing Date: Fri, 9 Apr 2021 19:40:44 +0800 Subject: [PATCH 3/6] no message --- .../module/v2x/manager/impl/MoGoV2XCloundDataManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 f5d8fe193e..23fd49041f 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 @@ -71,12 +71,12 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog //停止线前方画线 MogoLatLng newLocation = LocationUtils.getNewLocation((MogoLatLng) fillPoints.get(0), 80, cloundWarningInfo.getAngle()); WorkThreadHandler.getInstance().postDelayed(() -> { + //添加停止线marker + drawStopLineWith2Resource(); //二轮车和行人的渲染和移动 V2XWarnDataDrawer.getInstance().renderWarnData(cloundWarningInfo); //绘制识别物与交汇点连线,并且更新连线数据 drawStopLine(cloundWarningInfo, newLocation); - //添加停止线marker - drawStopLineWith2Resource(); }, 200); UiThreadHandler.postDelayed(() -> { From d9798f51837a7472011f9079ef14b6a241dbc9e5 Mon Sep 17 00:00:00 2001 From: wujifei Date: Fri, 9 Apr 2021 19:45:27 +0800 Subject: [PATCH 4/6] =?UTF-8?q?new#v2x=E4=BA=8B=E4=BB=B6=E4=BA=A4=E9=80=9A?= =?UTF-8?q?=E4=BA=8B=E6=95=85=E7=B4=B0=E5=88=865=E5=90=84=E7=B4=9A?= =?UTF-8?q?=E5=88=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/entity/MarkerPoiTypeEnum.java | 10 ++++ .../common/entity/V2XRoadEventEntity.java | 15 +++++ .../module/common/utils/CloudPoiManager.java | 57 +++++++++++-------- .../v2x/adapter/V2XSurroundingAdapter.java | 16 ++++++ .../adapter/V2XSurroundingDetailAdapter.java | 5 ++ .../entity/panel/SurroundingConstruction.java | 5 ++ .../manager/impl/MoGoV2XMarkerManager.java | 6 ++ .../scene/road/V2XRoadEventWindow.java | 6 ++ .../mogo/module/v2x/utils/EventTypeUtils.java | 40 +++++++++++++ 9 files changed, 137 insertions(+), 23 deletions(-) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java index 435dd0f2fd..ead583110a 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java @@ -34,6 +34,16 @@ public interface MarkerPoiTypeEnum { String FOURS_PARKING = "10012"; //事故 String FOURS_ACCIDENT = "10013"; + //重大事故 + String FOURS_ACCIDENT_01 = "1001301"; + //特大事故 + String FOURS_ACCIDENT_02 = "1001302"; + //较大事故 + String FOURS_ACCIDENT_03 = "1001303"; + //一般事故 + String FOURS_ACCIDENT_04 = "1001304"; + //轻微事故 + String FOURS_ACCIDENT_05 = "1001305"; //身边 String FOURS_NEALY = "10014"; //实时路况 diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRoadEventEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRoadEventEntity.java index 80039b4244..a950a82ba0 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRoadEventEntity.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRoadEventEntity.java @@ -96,6 +96,11 @@ public class V2XRoadEventEntity implements Serializable { break; // 事故 case V2XPoiTypeEnum.FOURS_ACCIDENT: + case V2XPoiTypeEnum.FOURS_ACCIDENT_01: // 重大事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_02: // 特大事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_03: // 较大事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_04: // 一般事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_05: // 轻微事故 tts += "交通事故"; break; default: @@ -156,6 +161,11 @@ public class V2XRoadEventEntity implements Serializable { break; // 事故 case V2XPoiTypeEnum.FOURS_ACCIDENT: + case V2XPoiTypeEnum.FOURS_ACCIDENT_01: // 重大事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_02: // 特大事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_03: // 较大事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_04: // 一般事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_05: // 轻微事故 tts += "交通事故"; break; default: @@ -222,6 +232,11 @@ public class V2XRoadEventEntity implements Serializable { break; // 事故 case V2XPoiTypeEnum.FOURS_ACCIDENT: + case V2XPoiTypeEnum.FOURS_ACCIDENT_01: // 重大事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_02: // 特大事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_03: // 较大事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_04: // 一般事故 + case V2XPoiTypeEnum.FOURS_ACCIDENT_05: // 轻微事故 alarmContent = "前方交通事故"; break; default: diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CloudPoiManager.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CloudPoiManager.java index 13508a8fb6..a67b8a791f 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CloudPoiManager.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CloudPoiManager.java @@ -23,7 +23,8 @@ public class CloudPoiManager { private Map poiWrapper = new ArrayMap<>(); private static CloudPoiManager instance = null; - public static CloudPoiManager getInstance(){ + + public static CloudPoiManager getInstance() { if (instance == null) { synchronized (CloudPoiManager.class) { if (instance == null) { @@ -34,43 +35,53 @@ public class CloudPoiManager { return instance; } - public void generateDefault(){ + public void generateDefault() { if (poiWrapper.isEmpty()) { - poiWrapper.put(MarkerPoiTypeEnum.GAS_STATION, new PoiWrapper(MarkerPoiTypeEnum.GAS_STATION,R.drawable.module_common_icon_map_marker_refuel, + poiWrapper.put(MarkerPoiTypeEnum.GAS_STATION, new PoiWrapper(MarkerPoiTypeEnum.GAS_STATION, R.drawable.module_common_icon_map_marker_refuel, R.drawable.module_common_icon_map_marker_refuel, "加油站")); poiWrapper.put(MarkerPoiTypeEnum.TRAFFIC_CHECK, new PoiWrapper(MarkerPoiTypeEnum.TRAFFIC_CHECK, - R.drawable.module_common_icon_map_marker_road_check2,R.drawable.module_common_icon_map_marker_road_check2_white, "交通检查")); + R.drawable.module_common_icon_map_marker_road_check2, R.drawable.module_common_icon_map_marker_road_check2_white, "交通检查")); poiWrapper.put(MarkerPoiTypeEnum.ROAD_CLOSED, new PoiWrapper(MarkerPoiTypeEnum.ROAD_CLOSED, - R.drawable.module_common_icon_map_marker_road_block_off2,R.drawable.module_common_icon_map_marker_road_block_off2_white, "封路")); + R.drawable.module_common_icon_map_marker_road_block_off2, R.drawable.module_common_icon_map_marker_road_block_off2_white, "封路")); poiWrapper.put(MarkerPoiTypeEnum.SHOP_DISCOUNT, new PoiWrapper(MarkerPoiTypeEnum.SHOP_DISCOUNT, - R.drawable.module_common_icon_map_marker_shop_discount,R.drawable.module_common_icon_map_marker_shop_discount, "商场打折")); + R.drawable.module_common_icon_map_marker_shop_discount, R.drawable.module_common_icon_map_marker_shop_discount, "商场打折")); poiWrapper.put(MarkerPoiTypeEnum.FOURS_4S, new PoiWrapper(MarkerPoiTypeEnum.FOURS_4S, - R.drawable.module_common_icon_map_marker_4s,R.drawable.module_common_icon_map_marker_4s, "4S店")); + R.drawable.module_common_icon_map_marker_4s, R.drawable.module_common_icon_map_marker_4s, "4S店")); poiWrapper.put(MarkerPoiTypeEnum.FOURS_ROAD_WORK, new PoiWrapper(MarkerPoiTypeEnum.FOURS_ROAD_WORK, - R.drawable.module_common_icon_map_marker_road_work2,R.drawable.module_common_icon_map_marker_road_work2_white, "施工")); + R.drawable.module_common_icon_map_marker_road_work2, R.drawable.module_common_icon_map_marker_road_work2_white, "施工")); poiWrapper.put(MarkerPoiTypeEnum.FOURS_BLOCK_UP, new PoiWrapper(MarkerPoiTypeEnum.FOURS_BLOCK_UP, - R.drawable.module_common_icon_map_marker_road_block_up2,R.drawable.module_common_icon_map_marker_road_block_up2_white, "拥堵")); + R.drawable.module_common_icon_map_marker_road_block_up2, R.drawable.module_common_icon_map_marker_road_block_up2_white, "拥堵")); poiWrapper.put(MarkerPoiTypeEnum.FOURS_PONDING, new PoiWrapper(MarkerPoiTypeEnum.FOURS_PONDING, - R.drawable.module_common_icon_map_marker_pondingl2,R.drawable.module_common_icon_map_marker_pondingl2_white, "积水")); + R.drawable.module_common_icon_map_marker_pondingl2, R.drawable.module_common_icon_map_marker_pondingl2_white, "积水")); poiWrapper.put(MarkerPoiTypeEnum.FOURS_SHOP_FREE, new PoiWrapper(MarkerPoiTypeEnum.FOURS_SHOP_FREE, - R.drawable.module_common_icon_map_marker_shop,R.drawable.module_common_icon_map_marker_shop, "超时打折")); + R.drawable.module_common_icon_map_marker_shop, R.drawable.module_common_icon_map_marker_shop, "超时打折")); poiWrapper.put(MarkerPoiTypeEnum.FOURS_FOG, new PoiWrapper(MarkerPoiTypeEnum.FOURS_FOG, - R.drawable.module_common_ic_rc_dark_frog2,R.drawable.module_common_ic_rc_dark_frog2_white, "浓雾")); + R.drawable.module_common_ic_rc_dark_frog2, R.drawable.module_common_ic_rc_dark_frog2_white, "浓雾")); poiWrapper.put(MarkerPoiTypeEnum.FOURS_ICE, new PoiWrapper(MarkerPoiTypeEnum.FOURS_ICE, - R.drawable.module_common_ic_rc_freeze2,R.drawable.module_common_ic_rc_freeze2_white, "结冰")); + R.drawable.module_common_ic_rc_freeze2, R.drawable.module_common_ic_rc_freeze2_white, "结冰")); poiWrapper.put(MarkerPoiTypeEnum.FOURS_PARKING, new PoiWrapper(MarkerPoiTypeEnum.FOURS_PARKING, - R.drawable.module_common_ic_rc_parking2,R.drawable.module_common_ic_rc_parking2, "停车场")); + R.drawable.module_common_ic_rc_parking2, R.drawable.module_common_ic_rc_parking2, "停车场")); poiWrapper.put(MarkerPoiTypeEnum.FOURS_ACCIDENT, new PoiWrapper(MarkerPoiTypeEnum.FOURS_ACCIDENT, - R.drawable.module_common_ic_rc_accident3,R.drawable.module_common_ic_rc_accident3_white, "事故")); + R.drawable.module_common_ic_rc_accident3, R.drawable.module_common_ic_rc_accident3_white, "事故")); + poiWrapper.put(MarkerPoiTypeEnum.FOURS_ACCIDENT_01, new PoiWrapper(MarkerPoiTypeEnum.FOURS_ACCIDENT_01, + R.drawable.module_common_ic_rc_accident3, R.drawable.module_common_ic_rc_accident3_white, "重大事故")); + poiWrapper.put(MarkerPoiTypeEnum.FOURS_ACCIDENT_02, new PoiWrapper(MarkerPoiTypeEnum.FOURS_ACCIDENT_02, + R.drawable.module_common_ic_rc_accident3, R.drawable.module_common_ic_rc_accident3_white, "特大事故")); + poiWrapper.put(MarkerPoiTypeEnum.FOURS_ACCIDENT_03, new PoiWrapper(MarkerPoiTypeEnum.FOURS_ACCIDENT_03, + R.drawable.module_common_ic_rc_accident3, R.drawable.module_common_ic_rc_accident3_white, "较大事故")); + poiWrapper.put(MarkerPoiTypeEnum.FOURS_ACCIDENT_04, new PoiWrapper(MarkerPoiTypeEnum.FOURS_ACCIDENT_04, + R.drawable.module_common_ic_rc_accident3, R.drawable.module_common_ic_rc_accident3_white, "一般事故")); + poiWrapper.put(MarkerPoiTypeEnum.FOURS_ACCIDENT_05, new PoiWrapper(MarkerPoiTypeEnum.FOURS_ACCIDENT_05, + R.drawable.module_common_ic_rc_accident3, R.drawable.module_common_ic_rc_accident3_white, "轻微事故")); poiWrapper.put(MarkerPoiTypeEnum.FOURS_NEALY, new PoiWrapper(MarkerPoiTypeEnum.FOURS_NEALY, - R.drawable.module_common_icon_map_marker_shear_news,R.drawable.module_common_icon_map_marker_shear_news, "身边")); + R.drawable.module_common_icon_map_marker_shear_news, R.drawable.module_common_icon_map_marker_shear_news, "身边")); poiWrapper.put(MarkerPoiTypeEnum.FOURS_LIVING, new PoiWrapper(MarkerPoiTypeEnum.FOURS_LIVING, - R.drawable.module_common_icon_map_marker_living,R.drawable.module_common_icon_map_marker_living_white, "实时路况")); + R.drawable.module_common_icon_map_marker_living, R.drawable.module_common_icon_map_marker_living_white, "实时路况")); poiWrapper.put(MarkerPoiTypeEnum.ILLEGAL_PARK_LIVING, new PoiWrapper(MarkerPoiTypeEnum.ILLEGAL_PARK_LIVING, - R.drawable.module_common_ic_rc_illegal_park,R.drawable.module_common_ic_rc_illegal_park_white, "违章停车")); + R.drawable.module_common_ic_rc_illegal_park, R.drawable.module_common_ic_rc_illegal_park_white, "违章停车")); // 分享里用到的故障求助 poiWrapper.put("9999", new PoiWrapper("9999", - R.drawable.module_common_icon_seek_help,R.drawable.module_common_icon_seek_help, "故障求助")); + R.drawable.module_common_icon_seek_help, R.drawable.module_common_icon_seek_help, "故障求助")); } } @@ -81,13 +92,13 @@ public class CloudPoiManager { if (!config.isEmpty()) { List configWrappers = GsonUtil.arrayFromJson(config, PoiWrapper.class); Logger.d(TAG, "config: " + configWrappers); - if(configWrappers!=null) { + if (configWrappers != null) { for (PoiWrapper wrapper : configWrappers) { wrapper.setIconInfoRes(R.drawable.module_common_icon_map_marker_road_block_up2_white); wrapper.setIconRes(R.drawable.module_common_icon_map_marker_road_block_up2); - if(poiWrapper.containsKey(wrapper.getPoiType())) { + if (poiWrapper.containsKey(wrapper.getPoiType())) { PoiWrapper defWrapper = poiWrapper.get(wrapper.getPoiType()); - if(defWrapper!=null) { + if (defWrapper != null) { wrapper.setIconRes(defWrapper.getIconRes()); wrapper.setIconInfoRes(defWrapper.getIconInfoRes()); } @@ -95,7 +106,7 @@ public class CloudPoiManager { Logger.d(TAG, "put===" + wrapper); poiWrapper.put(wrapper.getPoiType(), wrapper); } - }else{ + } else { Logger.e(TAG, "解析configWrapper异常: " + config); } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingAdapter.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingAdapter.java index 9514f894ce..5f1b226064 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingAdapter.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingAdapter.java @@ -12,6 +12,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.mogo.commons.voice.AIAssist; import com.mogo.module.common.entity.MarkerPoiTypeEnum; +import com.mogo.module.common.entity.V2XPoiTypeEnum; import com.mogo.module.v2x.R; import com.mogo.module.v2x.adapter.holder.V2XSurroundingViewHolder; import com.mogo.module.v2x.entity.panel.SurroundingConstruction; @@ -130,6 +131,11 @@ public class V2XSurroundingAdapter extends RecyclerView.Adapter Date: Mon, 12 Apr 2021 11:34:11 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/v2x/utils/TestOnLineCarUtils.java | 2 +- ...io_push_vr_event_data_yongdu_gongsi_1.json | 71 +++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_yongdu_gongsi_1.json diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/TestOnLineCarUtils.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/TestOnLineCarUtils.java index 33eafe8543..e47a234730 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/TestOnLineCarUtils.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/TestOnLineCarUtils.java @@ -430,7 +430,7 @@ public class TestOnLineCarUtils { try { InputStream inputStream = V2XUtils.getApp() .getResources() - .openRawResource(R.raw.scenario_push_vr_event_data_yongdu_gongsi); + .openRawResource(R.raw.scenario_push_vr_event_data_yongdu_gongsi_1); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int len = -1; byte[] buffer = new byte[1024]; diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_yongdu_gongsi_1.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_yongdu_gongsi_1.json new file mode 100644 index 0000000000..1f41a45323 --- /dev/null +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_yongdu_gongsi_1.json @@ -0,0 +1,71 @@ +{ + "sceneId": "200008", + "alarmContent": "拥堵路线推荐", + "expireTime": 10000, + "sceneCategory": 0, + "sceneDescription": "拥堵路线推荐", + "sceneName": "拥堵路线推荐", + "sceneLevel": 0, + "videoUrl": "", + "videoChannel": "", + "videoSn": "", + "tts": "发现前方拥堵,最优路线快6分钟", + "zoom": false, + "zoomScale": 15, + "userHead": "", + "msgImgUrl": "", + "lat":39.969088, + "lon":116.41808, + "polyline": [ + [ + 116.417388,39.983351 + ], + [ + 116.417351,39.9841 + ], + [ + 116.417286,39.985423 + ], + [ + 116.417233,39.98673 + ], + [ + 116.417179,39.988156 + ], + [ + 116.417158,39.988493 + ], + [ + 116.417142,39.989245 + ], + [ + 116.417174,39.990199 + ] + ], + "recommendPolyline": [ + [ + 116.417388,39.983351 + ], + [ + 116.417351,39.9841 + ], + [ + 116.417286,39.985423 + ], + [ + 116.417233,39.98673 + ], + [ + 116.417179,39.988156 + ], + [ + 116.417158,39.988493 + ], + [ + 116.417142,39.989245 + ], + [ + 116.417174,39.990199 + ] + ] +} \ No newline at end of file From c61ed0930d1ce1442c24323b6746615db0c45ff7 Mon Sep 17 00:00:00 2001 From: liujing Date: Mon, 12 Apr 2021 12:21:57 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=81=9C=E6=AD=A2=E7=BA=BF=E7=BB=98?= =?UTF-8?q?=E5=88=B6=E6=B5=8B=E8=AF=95=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MoGoV2XCloundDataManager.java | 26 ++++++++----------- .../scene/warning/V2XWarningMarker.java | 4 +++ .../res/raw/scenario_warning_event_data.json | 10 ++++--- 3 files changed, 22 insertions(+), 18 deletions(-) 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 23fd49041f..d30a11282e 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 @@ -47,6 +47,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog private static String TAG = "MoGoV2XCloundDataManager"; private boolean isSelfLineClear; private List fillPoints = new ArrayList();//停止线经纬度合集 + private static long showTime = 0; @Override public void init(Context context) { @@ -59,6 +60,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog Log.d(V2XConst.LOG_NAME_WARN, "analysisV2XCloundDataEvent -----> "); mCloundWarningInfo = cloundWarningInfo; + showTime = mCloundWarningInfo.getShowTime(); pointsBetween(); //发送预警提示 @@ -68,10 +70,10 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog Log.d(V2XConst.LOG_NAME_WARN, "direction = " + cloundWarningInfo.getDirection()); if (cloundWarningInfo.getDirection() == 1) { //前方 - //停止线前方画线 MogoLatLng newLocation = LocationUtils.getNewLocation((MogoLatLng) fillPoints.get(0), 80, cloundWarningInfo.getAngle()); + //停止线前方画线 WorkThreadHandler.getInstance().postDelayed(() -> { - //添加停止线marker + //添加停止线 drawStopLineWith2Resource(); //二轮车和行人的渲染和移动 V2XWarnDataDrawer.getInstance().renderWarnData(cloundWarningInfo); @@ -84,7 +86,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog V2XServiceManager.getMoGoWarnPolylineManager().clearLine(); V2XServiceManager.getMoGoStopPolylineManager().clearLine(); isSelfLineClear = true; - }, 8000); + }, showTime); } else { //左侧或者右侧 WorkThreadHandler.getInstance().postDelayed(() -> { @@ -98,9 +100,8 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog UiThreadHandler.postDelayed(() -> { V2XServiceManager.getMoGoPersonWarnPolylineManager().clearLine(); V2XServiceManager.getMoGoWarnPolylineManager().clearLine(); - isSelfLineClear = true; - }, 8000); + }, showTime); } } @@ -124,10 +125,6 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog * 2D资源绘制停止线 * */ private void drawStopLineWith2Resource() { - - //自车位置39.97665425796924--116.41769983329762 - mCloundWarningInfo.setCarLocation(new MogoLatLng(39.97665425796924,116.41769983329762));//测试数据 - MogoLatLng carlo = mCloundWarningInfo.getCarLocation(); if (carlo == null) { double lon = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon(); @@ -136,11 +133,11 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog } //自车行驶方向的前方*米的经纬度,该经纬度在停止线上 MogoLatLng drawStopLineLon = LocationUtils.getNewLocation(carlo, mCloundWarningInfo.getStopLineDistance(), mCloundWarningInfo.getAngle()); - Log.d(TAG, "2D资源绘制停止线"+drawStopLineLon); + Log.d(TAG, "2D资源绘制停止线" + drawStopLineLon); MogoMarkerOptions optionsRipple = new MogoMarkerOptions() .latitude(drawStopLineLon.getLat()) .longitude(drawStopLineLon.getLon()) - .anchor(0.5f, 0.5f) + .anchor(1.0f, 1.0f) .zIndex(MarkerDrawer.MARKER_Z_INDEX_HIGH); optionsRipple @@ -148,9 +145,9 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog IMogoMarker stopLine = V2XServiceManager.getMarkerManager().addMarker(TYPE_MARKER_CLOUD_STOP_LINE_DATA, optionsRipple); stopLine.setInfoWindowAdapter(new SimpleWindow3DAdapter(new V2XFrontTargetMarkerView(V2XServiceManager.getContext()))); stopLine.showInfoWindow(); -// UiThreadHandler.postDelayed(() -> { -// stopLine.hideInfoWindow(); -// }, 8000); + UiThreadHandler.postDelayed(() -> { + stopLine.hideInfoWindow(); + }, showTime); } /** @@ -302,7 +299,6 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog private MogoLatLng getMogoLat(MogoLatLng latlng) { MogoLatLng newLocation = LocationUtils.getNewLocation(latlng, mCloundWarningInfo.getDistance(), mCloundWarningInfo.getDirection()); - return newLocation; } 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 6470241db7..c6b26b9c3a 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 @@ -24,6 +24,7 @@ import com.mogo.module.v2x.marker.OptimalSpeedMarkerView; import com.mogo.module.v2x.marker.V2XFrontTargetMarkerView; import com.mogo.module.v2x.scenario.view.IV2XMarker; import com.mogo.module.v2x.utils.LocationUtils; +import com.mogo.utils.UiThreadHandler; import com.mogo.utils.ViewUtils; import com.mogo.utils.WorkThreadHandler; @@ -65,6 +66,9 @@ public class V2XWarningMarker implements IV2XMarker { optimalMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_FRONT_WARNING_MARKER, optionsRipple); optimalMarker.setInfoWindowAdapter(new SimpleWindow3DAdapter(new V2XFrontTargetMarkerView(mContext))); optimalMarker.showInfoWindow(); + UiThreadHandler.postDelayed(() -> { + optimalMarker.hideInfoWindow(); + }, 8000); } catch (Exception e) { diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data.json index 5963e668f3..62454570d9 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data.json @@ -20,9 +20,13 @@ "direction": 1, "speed": 11.108121, "targetColor": "#FF4040", - "stopLineDistance": 15, + "stopLineDistance": 20, "warningContent": "小心行人", "heading": 0, - "showTime": 3000, - "roadwidth": 60.0 + "showTime": 8000, + "roadwidth": 60.0, + "carLocation": { + "lat": 39.97665425, + "lon": 116.41769983 + } } \ No newline at end of file