From 7ab78ebc6749ecdfc633c6fa7bbd6cc4cdba584d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 6 Jan 2021 10:47:23 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E6=B2=A1=E6=9C=89=E6=9B=B4=E6=96=B0=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../small/map/SmallMapDirectionView.java | 76 +++++++++---------- 1 file changed, 37 insertions(+), 39 deletions(-) diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java index 64e56eb087..f0b81e2222 100644 --- a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java @@ -183,48 +183,46 @@ public class SmallMapDirectionView extends RelativeLayout { try { // 判断是否有样式文件存在 - File styleExit = new File(styleFilePath); - if (!styleExit.exists()) { - FileUtils.copy( - context.getAssets().open("small_map_style.data"), - styleFilePath, - new FileUtils.FileCopyListener() { + //File styleExit = new File(styleFilePath); + FileUtils.copy( + context.getAssets().open("small_map_style.data"), + styleFilePath, + new FileUtils.FileCopyListener() { - @Override - public void onStart() { - Log.w("FileCopyListener", "onStart="); + @Override + public void onStart() { + Log.w("FileCopyListener", "onStart="); - } - - @Override - public void onFail(Exception e) { - Log.w("FileCopyListener", "onFail="); - e.printStackTrace(); - } - - @Override - public void onProcess(int process) { - Log.w("FileCopyListener", "onProcess=" + process); - - } - - @Override - public void onFinish(String toPath) { - Log.w("FileCopyListener", "onFinish toPath=" + toPath); - - // 高德地图有bug,所以需要多次调用设置皮肤才能成功 - if (options != null) { - options.setCustomMapStylePath(styleFilePath); - mAMapNaviView.setViewOptions(options); - } - - //设置希望展示的地图缩放级别 - CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(zoomLevel); - aMap.moveCamera(cameraUpdate); - } } - ); - } + + @Override + public void onFail(Exception e) { + Log.w("FileCopyListener", "onFail="); + e.printStackTrace(); + } + + @Override + public void onProcess(int process) { + Log.w("FileCopyListener", "onProcess=" + process); + + } + + @Override + public void onFinish(String toPath) { + Log.w("FileCopyListener", "onFinish toPath=" + toPath); + + // 高德地图有bug,所以需要多次调用设置皮肤才能成功 + if (options != null) { + options.setCustomMapStylePath(styleFilePath); + mAMapNaviView.setViewOptions(options); + } + + //设置希望展示的地图缩放级别 + CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(zoomLevel); + aMap.moveCamera(cameraUpdate); + } + } + ); } catch (IOException e) { e.printStackTrace(); } From 3e260118211b1233cb5dc58ed727ffa1681e2c5b Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Wed, 6 Jan 2021 11:29:09 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libraries/map-custom/build.gradle | 2 +- .../common/drawer/SnapshotSetDataDrawer.java | 16 ++++++++++++++-- .../module/service/marker/MapMarkerManager.java | 14 +++++++------- .../uploadintime/SnapshotUploadInTime.java | 12 ++++++------ 4 files changed, 28 insertions(+), 16 deletions(-) diff --git a/libraries/map-custom/build.gradle b/libraries/map-custom/build.gradle index 6e87b10afc..b54e6b7372 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.7.4' + implementation 'com.zhidaoauto.machine:map:1.0.0-vr-7.7.7' // 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 a5df8de53a..64c1533873 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 @@ -76,6 +76,7 @@ class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClickListen private boolean mIsVrMode = false; private long mLastReceiveTime = 0L; + private long mAnimationDuration = 500L; /** * 其他车辆、rsu 车辆数据 @@ -84,6 +85,12 @@ class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClickListen */ public void renderSnapshotData( MogoSnapshotSetData data, boolean machineVision ) { + if ( mLastReceiveTime != 0 ) { + mAnimationDuration = SystemClock.elapsedRealtime() - mLastReceiveTime; + } else { + mAnimationDuration = 500L; + } + mLastReceiveTime = SystemClock.elapsedRealtime(); if ( data == null || ( ( data.getAllList() == null || data.getAllList().isEmpty() ) && ( data.getNearList() == null || data.getNearList().isEmpty() ) ) ) { @@ -128,9 +135,11 @@ class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClickListen if ( mIsVrMode != MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) { mIsVrMode = MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode(); if ( mIsVrMode ) { + Logger.d( TAG, "3D模型" ); marker.getMogoMarkerOptions().set3DMode( true ); marker.use3DResource( getVrModel( cloudRoadData ) ); } else { + Logger.d( TAG, "2D贴图" ); marker.getMogoMarkerOptions().set3DMode( false ); marker.setIcon( ViewUtils.fromView( inflateView( cloudRoadData, machineVision, 0 ) ) ); } @@ -141,12 +150,14 @@ class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClickListen // double lastPos[] = transformGcj02ToFitMap( lastPosition.lat, lastPosition.lon ); if ( lastPosition != null ) { if ( lastPosition.equals( target ) ) { + Logger.d( TAG, "保持位置 - %s", uniqueKey ); marker.setPosition( lastPosition.lat, lastPosition.lon ); } else { List< MogoLatLng > points = new ArrayList<>(); points.add( new MogoLatLng( lastPosition.lat, lastPosition.lon ) ); points.add( new MogoLatLng( target.lat, target.lon ) ); - marker.startSmoothInMs( points, 1000 ); + marker.startSmoothInMs( points, mAnimationDuration ); + Logger.d( TAG, "平滑移动 - %s duration = %s", uniqueKey, mAnimationDuration ); } } else { marker.setRotateAngle( 360 - ( float ) cloudRoadData.getHeading() ); @@ -154,7 +165,6 @@ class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClickListen } } mLastPositions.put( uniqueKey, target ); - mLastReceiveTime = SystemClock.elapsedRealtime(); } } @@ -245,9 +255,11 @@ class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClickListen .position( new MogoLatLng( data.getLat(), data.getLon() ) ); if ( mIsVrMode = MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) { options.set3DMode( true ); + Logger.d( TAG, "3D模型" ); options.icon3DRes( getVrModel( data ) ); } else { options.set3DMode( false ); + Logger.d( TAG, "2D贴图" ); options.icon( inflateView( data, machineVision, curSpeed ) ); } return MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager( mContext ).addMarker( DataTypes.TYPE_MARKER_CLOUD_DATA, options ); 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 90e726234d..02a5d7576d 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 @@ -161,13 +161,13 @@ public class MapMarkerManager implements IMogoMarkerClickListener, if ( data == null ) { return; } - if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) { -// return; - } - - if ( MogoServices.getInstance().getLastCarLocation() != null ) { - data.curSpeed = MogoServices.getInstance().getLastCarLocation().getSpeed(); - } +// if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) { +//// return; +// } +// +// if ( MogoServices.getInstance().getLastCarLocation() != null ) { +// data.curSpeed = MogoServices.getInstance().getLastCarLocation().getSpeed(); +// } SnapshotSetDataDrawer.getInstance().renderSnapshotData( data, false ); // VrModeController.getInstance().renderMogoSnapshotSetData( data ); } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/uploadintime/SnapshotUploadInTime.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/uploadintime/SnapshotUploadInTime.java index 5409333c6c..78b861f954 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/uploadintime/SnapshotUploadInTime.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/uploadintime/SnapshotUploadInTime.java @@ -90,13 +90,13 @@ class SnapshotUploadInTime implements MogoRTKLocation.RTKLocationListener { locationResult.lastCoordinate = lastInfo; locationResult.mortonCode = MortonCode.wrapEncodeMorton( lastInfo.getLon(), lastInfo.getLat() ); } - locationResult.coordinates = new ArrayList<>(); +// locationResult.coordinates = new ArrayList<>(); locationResult.sn = com.mogo.commons.network.Utils.getSn(); - if ( cloudLocationInfo == null ) { - locationResult.coordinates.addAll( new ArrayList<>() ); - } else { - locationResult.coordinates.addAll( cloudLocationInfo ); - } +// if ( cloudLocationInfo == null ) { +// locationResult.coordinates.addAll( new ArrayList<>() ); +// } else { +// locationResult.coordinates.addAll( cloudLocationInfo ); +// } } List< ADASRecognizedResult > recognizedResults = MarkerServiceHandler.getADASController().getLastADASRecognizedResult(); OnePerSecondSendContent content = new OnePerSecondSendContent(); From 8ac19f35e1ca30d73c41e936fec8bf7edeaa3843 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 6 Jan 2021 11:43:05 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=A7=A3=E5=86=B3=EF=BC=8CM3=E3=80=81M4=20?= =?UTF-8?q?=E5=9B=A0=E4=B8=BAhook=20=E6=97=A0=E6=B3=95=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/small/map/SmallVisionProvider.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallVisionProvider.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallVisionProvider.java index 98e6bef0a9..9dc29557a2 100644 --- a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallVisionProvider.java +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallVisionProvider.java @@ -65,15 +65,6 @@ public class SmallVisionProvider implements IMogoSmallMapProvider, IMogoStatusCh Log.d(TAG, "小地图模块初始化……"); mContext = context; - try { - // 替换高德地图的方法,解决因为加入换肤框架导致地图初始化失败 - Method srcMethod = lg.class.getDeclaredMethod("a", Context.class, int.class, ViewGroup.class); - Method destMethod = lg2.class.getDeclaredMethod("a", Context.class, int.class, ViewGroup.class); - HookManager.get().hookMethod(srcMethod, destMethod); - } catch (Exception e) { - e.printStackTrace(); - } - MogoApisHandler.getInstance() .getApis() .getStatusManagerApi() @@ -148,6 +139,17 @@ public class SmallVisionProvider implements IMogoSmallMapProvider, IMogoStatusCh */ private void addSmallMapView() { Logger.d(TAG, "addSmallMapView"); + + try { + // 替换高德地图的方法,解决因为加入换肤框架导致地图初始化失败 + Method srcMethod = lg.class.getDeclaredMethod("a", Context.class, int.class, ViewGroup.class); + Method destMethod = lg2.class.getDeclaredMethod("a", Context.class, int.class, ViewGroup.class); + HookManager.get().hookMethod(srcMethod, destMethod); + Logger.d(TAG, "hook 高德地图成功"); + } catch (Exception e) { + e.printStackTrace(); + } + // 初始化小地图控件 if (mSmallMapDirectionView == null) { mSmallMapDirectionView = new SmallMapDirectionView(mContext); From 53e2a7ab4e798d597d6a4049e93ac57d693f3117 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Wed, 6 Jan 2021 11:45:36 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=BD=A6=E8=81=8A?= =?UTF-8?q?=E8=81=8A=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index d582b5d8db..4bd5d9e343 100644 --- a/gradle.properties +++ b/gradle.properties @@ -139,7 +139,7 @@ HTTPDNS_NOOP_VERSION = 2.0.12 ######## 外部依赖引用 # 车聊聊 -CARCHATTING_VERSION=2.2.51 +CARCHATTING_VERSION=2.2.53 # 车聊聊接口 CARCHATTINGPROVIDER_VERSION=1.1.9 # websocket From c6ce25c983eb253194607a111878ad3e86b7717a Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Wed, 6 Jan 2021 14:55:05 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E8=A7=A3=E5=86=B3m3=E4=B8=8A=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E5=90=AF=E5=8A=A8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/module/main/EventDispatchCenter.java | 10 +++++----- .../mogo/module/service/marker/MapMarkerManager.java | 3 +++ .../com/mogo/service/impl/adas/MogoADASController.java | 3 +++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java index f9c9b3e85f..9f2b9ccc07 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java @@ -159,14 +159,14 @@ public class EventDispatchCenter implements this.mMapLoadedCallback = callback; } - private boolean mIsMapLoaded = false; +// private boolean mIsMapLoaded = false; @Override public void onMapLoaded() { - if ( mIsMapLoaded ) { - return; - } - mIsMapLoaded = true; +// if ( mIsMapLoaded ) { +// return; +// } +// mIsMapLoaded = true; if ( mMapLoadedCallback != null ) { mMapLoadedCallback.run(); mMapLoadedCallback = null; 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 02a5d7576d..7b2d457dab 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 @@ -161,6 +161,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener, if ( data == null ) { return; } + if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isMainPageLaunched() ) { + return; + } // if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) { //// 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 f828ef9ab8..6c54f4d423 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 @@ -179,6 +179,9 @@ public class MogoADASController implements IMogoADASController { } private void invokeCallbackPerSecond( List< RectInfo > data ) { + if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isMainPageLaunched() ) { + return; + } List< RectInfo > newRef = data; List< ADASRecognizedListResult > recognizedListResults = AdasObjectUtils.regroupData( newRef ); if ( recognizedListResults == null || recognizedListResults.isEmpty() ) {