diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt index f3f7516287..6cb6aab617 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt @@ -16,10 +16,10 @@ enum class TrafficTypeEnum( ) { TYPE_TRAFFIC_ID_WEI_ZHI( - 0, + 100, "未知数据", - R.raw.special_vehicle, - R.raw.special_vehicle + R.raw.v2x_shigong_warning, + R.raw.v2x_shigong_warning ), TYPE_TRAFFIC_ID_PEOPLE( 1, diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/IdentifyDataDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/IdentifyDataDrawer.java index 64a3d07820..0d9278c64d 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/IdentifyDataDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/IdentifyDataDrawer.java @@ -34,6 +34,11 @@ public class IdentifyDataDrawer { */ private final ConcurrentHashMap mDirtyPositions = new ConcurrentHashMap<>(); + /** + * 过滤后的数据集合 + */ + private final ArrayList mFilterTrafficData = new ArrayList<>(); + private IdentifyDataDrawer() { mContext = AbsMogoApplication.getApp(); addPreVehicleModel(); @@ -73,18 +78,21 @@ public class IdentifyDataDrawer { } // 循环将集合中的数据提取记录 - ArrayList trafficDataUuidList = new ArrayList<>(); - for (TrafficData trafficData : resultList) { - trafficDataUuidList.add(trafficData.getUuid()); - } - - // 找出上一针数据中已经不在本次数据中存在的数据 - for (String uuid : mMarkersCaches.keySet()) { - if (!trafficDataUuidList.contains(uuid)) { - mDirtyPositions.put(uuid, mMarkersCaches.get(uuid)); - } - } - +// ArrayList trafficDataUuidList = new ArrayList<>(); +// for (TrafficData trafficData : resultList) { +// // 过滤掉未知感知数据 +// if (trafficData.getType() == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI) { +// //Logger.w(TAG, "未知感知类型数据,丢弃,不渲染"); +// continue; +// } +// trafficDataUuidList.add(trafficData.getUuid()); +// } +// // 找出上一针数据中已经不在本次数据中存在的数据 +// for (String uuid : mMarkersCaches.keySet()) { +// if (!trafficDataUuidList.contains(uuid)) { +// mDirtyPositions.put(uuid, mMarkersCaches.get(uuid)); +// } +// } // // 移除脏数据 // for (String uuid : mDirtyPositions.keySet()) { // MogoApisHandler.getInstance().getApis() @@ -97,10 +105,28 @@ public class IdentifyDataDrawer { MogoApisHandler.getInstance().getApis() .getMapServiceApi() .getMarkerManager(mContext) - .updateBatchMarkerPosition(resultList); + .updateBatchMarkerPosition(filterTrafficData(resultList)); } + /** + * 数据过滤器 + * + * @return 过滤后的数据集合 + */ + private ArrayList filterTrafficData(ArrayList trafficData) { + mFilterTrafficData.clear(); + for (TrafficData data : trafficData) { + // 过滤掉未知感知数据 + if (data.getType() == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI) { + //Logger.w(TAG, "未知感知类型数据,丢弃,不渲染"); + continue; + } + mFilterTrafficData.add(data); + } + return mFilterTrafficData; + } + /** * 清除旧的 marker 数据