diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java index b8f10be14d..2ebb157857 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java @@ -553,7 +553,7 @@ public class MogoServiceProvider implements IMogoModuleProvider, try { if ( isTrue ) { // V2X_UI时,不在自动刷新打点策略 - stopAutoRefreshStrategy(); +// stopAutoRefreshStrategy(); // 清除所有的打点信息记录 MarkerServiceHandler.getMapMarkerManager().alreadySmallMarker.clear(); } else { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index 1398d59ee3..5475f7e638 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -54,7 +54,7 @@ import java.util.Map; * version: 1.0 */ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessageListener { - private static final String TAG = "MarkerManager"; + private static final String TAG = "MapMarkerManager"; // 第一次请求到地图的Marker数据 private boolean isFirstMarker = true; private boolean isOnLineCard = false; @@ -66,6 +66,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 记录其它已经缩小的Marker public static ArrayList alreadySmallMarker = new ArrayList<>(); + IMogoMarker nearlyMogoMarker = null; private MapMarkerManager() { } @@ -141,6 +142,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag marker.setIcon(fromView(markerView.getView())); lastMarker = marker; + MarkerServiceHandler.getMapUIController().moveToCenter(lastMarker.getPosition()); // 数据统计代码 final Map properties = new HashMap<>(); @@ -360,17 +362,24 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag isFirstMarker = true; } else { // 清空所有地图上绘制的Marker - MarkerServiceHandler.getMarkerManager().removeMarkers(); + if (!MarkerServiceHandler.getMogoStatusManager().isV2XShow()) { + MarkerServiceHandler.getMarkerManager().removeMarkers(); + } } List carChatList = markerCardResult.getCarChat(); List onlineCarList = markerCardResult.getOnlineCar(); - List exploreWayList = markerCardResult.getExploreWay(); - List shareMusicList = markerCardResult.getShareMusic(); - List noveltyInfoList = markerCardResult.getNoveltyInfo(); + List exploreWayList = null; + List shareMusicList = null; + List noveltyInfoList = null; + // V2X 场景下只保留在线车辆数据 + if (!MarkerServiceHandler.getMogoStatusManager().isV2XShow()) { + exploreWayList = markerCardResult.getExploreWay(); + shareMusicList = markerCardResult.getShareMusic(); + noveltyInfoList = markerCardResult.getNoveltyInfo(); + } if (onlineCarList != null) { - IMogoMarker nearlyMogoMarker = null; double nearlyDistance = Double.MAX_VALUE; for (MarkerOnlineCar markerOnlineCar : onlineCarList) { MarkerLocation markerLocation = markerOnlineCar.getLocation(); @@ -403,18 +412,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag } } fillNumberTrackEventBody(array, 3, onlineCarList.size()); - - try { - // 在ACC on 之后第一次获取到了在线车辆数据,选中最近的一个Marker - if (isFirstMarker && isOnLineCard) { - if (nearlyMogoMarker != null) { - MogoMarkersHandler.getInstance().onMarkerClicked(nearlyMogoMarker); - isFirstMarker = false; - } - } - } catch (Exception e) { - e.printStackTrace(); - } } // 将数据同步给探路,避免探路每次 perform 的时候去拉取,造成消耗 @@ -499,6 +496,21 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 同步新绘制的气泡状态 alreadySmallMarker.clear(); highlightedMarker(mLastHighLightModule, true); + + try { + Thread.sleep(500); + // 在ACC on 之后第一次获取到了在线车辆数据,选中最近的一个Marker + if (isFirstMarker && isOnLineCard) { + if (nearlyMogoMarker != null) { + Logger.w(TAG, "ACC ON,或者语音搜索触发,默认选中最近的在线车辆nearlyMogoMarker:" + nearlyMogoMarker); + onMarkerClicked(nearlyMogoMarker); + MogoMarkersHandler.getInstance().onMarkerClicked(nearlyMogoMarker); + isFirstMarker = false; + } + } + } catch (Exception e) { + e.printStackTrace(); + } } } @@ -595,8 +607,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag @Override public void onMsgReceived(final MarkerResponse response) { Logger.e(TAG, "MarkerResponse======" + response); - if (!MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() && - !MarkerServiceHandler.getMogoStatusManager().isV2XShow()) { + if (!MarkerServiceHandler.getMogoStatusManager().isSearchUIShow()) { Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable() { @Override