diff --git a/libraries/map-custom/build.gradle b/libraries/map-custom/build.gradle index bc98d7bbf5..f42565d9bb 100644 --- a/libraries/map-custom/build.gradle +++ b/libraries/map-custom/build.gradle @@ -67,7 +67,7 @@ dependencies { implementation project(':foudations:mogo-commons') } - implementation 'com.zhidaoauto.machine:map:1.0.0-vr-7.4.7' + implementation 'com.zhidaoauto.machine:map:1.0.0-vr-7.4.8' // implementation 'com.zhidaoauto.machine:map:1.0.0-vr-7.4.5-log-1' } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java index 000b8ddc32..076f058274 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java @@ -92,6 +92,7 @@ class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClickListen MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager( AbsMogoApplication.getApp() ).removeMarkers( DataTypes.TYPE_MARKER_CLOUD_DATA ); return; } + filterData( data.getAllList() ); List< CloudRoadData > allDatumsList = new ArrayList<>(); allDatumsList.addAll( data.getAllList() ); // allDatumsList.addAll( data.getNearList() ); @@ -170,6 +171,29 @@ class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClickListen } } + /** + * vr 模式下显示合并数据,否则只显示上报位置的车辆 + * + * @param dataList + */ + private void filterData( List< CloudRoadData > dataList ) { + if ( dataList == null || dataList.isEmpty() ) { + return; + } + if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) { + return; + } + List< CloudRoadData > newList = new ArrayList<>(); + for ( CloudRoadData cloudRoadData : dataList ) { + if ( cloudRoadData.getFromType() != CloudRoadData.FROM_MY_LOCATION ) { + continue; + } + newList.add( cloudRoadData ); + } + dataList.clear(); + dataList.addAll( newList ); + } + private void bindClickListener( IMogoMarker marker ) { if ( marker == null || marker.isDestroyed() ) { return; diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index 85c98e6ad5..f82bf29011 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -57,6 +57,7 @@ import java.util.List; import java.util.Map; import io.reactivex.schedulers.Schedulers; + import java.util.concurrent.CopyOnWriteArrayList; import static com.mogo.module.common.utils.SPConst.getSpGuide; @@ -85,7 +86,7 @@ public class MogoADASController implements IMogoADASController { private IMogoStatusManager mStatusManager = SingletonsHolder.get( IMogoStatusManager.class ); private boolean mIsReleased = true; - private List adasDataCallbackList = new ArrayList<>(); + private List< IMogoAdasDataCallback > adasDataCallbackList = new ArrayList<>(); private IAutopolitDataCallBack mAutopolitDataCallBack; @@ -113,6 +114,10 @@ public class MogoADASController implements IMogoADASController { // 物体识别返回 // Logger.d( TAG, "onRectData = %s", rectInfo.toString() ); mLastFrameData = rectInfo; + // 仅在 vr 模式下显示 adas 识别车辆 + if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) { + return; + } handleAdasRecognizedData( rectInfo ); } @@ -210,7 +215,7 @@ public class MogoADASController implements IMogoADASController { @Override public void showADAS() { - if( DebugConfig.isNeedLoadGuideModule() ){ + if ( DebugConfig.isNeedLoadGuideModule() ) { if ( !SharedPrefsMgr.getInstance( AbsMogoApplication.getApp() ).getBoolean( getSpGuide(), false ) ) { return; } @@ -272,13 +277,13 @@ public class MogoADASController implements IMogoADASController { @Override public void requestGetCarModelListInfo() { - if (DebugConfig.isMapBased()) { - Logger.d(TAG, "requestGetCarModelListInfo"); + if ( DebugConfig.isMapBased() ) { + Logger.d( TAG, "requestGetCarModelListInfo" ); // 向adas发送车模list - String carModelList = SharedPrefsMgr.getInstance(context).getString( - "CAR_MODEL_LIST", ""); - if (carModelList != null && !carModelList.isEmpty()) { - AutopilotServiceManage.getInstance().settingCarModelListInfo(carModelList); + String carModelList = SharedPrefsMgr.getInstance( context ).getString( + "CAR_MODEL_LIST", "" ); + if ( carModelList != null && !carModelList.isEmpty() ) { + AutopilotServiceManage.getInstance().settingCarModelListInfo( carModelList ); } // 此处进行网络请求,请求成功后再通知一次adas requestCarModelList(); @@ -368,6 +373,7 @@ public class MogoADASController implements IMogoADASController { } private Context context; + @Override public void init( Context context ) { AutopilotServiceManage.getInstance().init( context ); @@ -464,40 +470,40 @@ public class MogoADASController implements IMogoADASController { private String currentSn = TEST_SN; private void requestCarModelList() { - Map params = new HashMap<>(8); - params.put("sn", Utils.getSn()); + Map< String, String > params = new HashMap<>( 8 ); + params.put( "sn", Utils.getSn() ); // currentSn = useTestSn ? TEST_SN : Utils.getSn(); // params.put("sn", currentSn); - MogoApisHandler.getInstance().getApis().getNetworkApi().create(CarModelInfoNetApiServices.class, CarModelInfoNetApiServices.getBaseUrl()). - requestCarModelList(params). - subscribeOn(Schedulers.io()). - observeOn(Schedulers.io()). - subscribe(new SubscribeImpl(RequestOptions.create(context)) { + MogoApisHandler.getInstance().getApis().getNetworkApi().create( CarModelInfoNetApiServices.class, CarModelInfoNetApiServices.getBaseUrl() ). + requestCarModelList( params ). + subscribeOn( Schedulers.io() ). + observeOn( Schedulers.io() ). + subscribe( new SubscribeImpl< CarModelListResponse >( RequestOptions.create( context ) ) { @Override - public void onSuccess(CarModelListResponse o) { - super.onSuccess(o); - Logger.d(TAG, "请求车模列表成功: " + o); + public void onSuccess( CarModelListResponse o ) { + super.onSuccess( o ); + Logger.d( TAG, "请求车模列表成功: " + o ); // 保存到sp中 - String value = GsonUtil.jsonFromObject(o.getResult()); - SharedPrefsMgr.getInstance(context).putString("CAR_MODEL_LIST", - value); - if(value != null && !value.isEmpty()){ - AutopilotServiceManage.getInstance().settingCarModelListInfo(value); + String value = GsonUtil.jsonFromObject( o.getResult() ); + SharedPrefsMgr.getInstance( context ).putString( "CAR_MODEL_LIST", + value ); + if ( value != null && !value.isEmpty() ) { + AutopilotServiceManage.getInstance().settingCarModelListInfo( value ); } } @Override - public void onError(Throwable e) { - super.onError(e); - Logger.e(TAG, e, "请求自车模型失败"); + public void onError( Throwable e ) { + super.onError( e ); + Logger.e( TAG, e, "请求自车模型失败" ); } @Override - public void onError(String message, int code) { - super.onError(message, code); - Logger.e(TAG, "请求自车模型失败: " + message); + public void onError( String message, int code ) { + super.onError( message, code ); + Logger.e( TAG, "请求自车模型失败: " + message ); } - }); + } ); }