diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 9d8d20d50d..5974cf305a 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -84,7 +84,6 @@
-
diff --git a/config.gradle b/config.gradle
index d72647e7d6..3ba7562f62 100644
--- a/config.gradle
+++ b/config.gradle
@@ -34,7 +34,7 @@ ext {
// 地图
amapnavi3dmap : "com.amap.api:navi-3dmap:7.2.0_3dmap7.2.0",
amapsearch : "com.amap.api:search:7.1.0",
- amaplocation : "com.amap.api:location:4.9.0",
+ amaplocation : "com.amap.api:location:5.2.0",
// json 转换
gson : "com.google.code.gson:gson:2.8.4",
// 内存泄漏检测
diff --git a/libraries/map-custom/build.gradle b/libraries/map-custom/build.gradle
index 7be264997b..2055423589 100644
--- a/libraries/map-custom/build.gradle
+++ b/libraries/map-custom/build.gradle
@@ -67,8 +67,8 @@ dependencies {
implementation project(':foudations:mogo-commons')
}
- implementation 'com.zhidaoauto.machine:map:1.0.0-vr-7.8.1'
-// implementation 'com.zhidaoauto.machine:map:1.0.0-vr-7.4.5-log-1'
+ implementation 'com.zhidaoauto.machine:map:1.0.0-vr-7.8.7'
+// implementation 'com.zhidaoauto.machine:map:1.0.0-vr-test-3.4'
}
apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString()
diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java
index 12afb20a67..f397e09b56 100644
--- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java
+++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java
@@ -41,6 +41,7 @@ import com.zhidaoauto.map.sdk.open.camera.CameraUpdateFactory;
import com.zhidaoauto.map.sdk.open.camera.LatLngBounds;
import com.zhidaoauto.map.sdk.open.location.LocationListener;
import com.zhidaoauto.map.sdk.open.location.MyLocationStyle;
+import com.zhidaoauto.map.sdk.open.location.RTKAutopilotLocationBean;
import com.zhidaoauto.map.sdk.open.marker.BitmapDescriptorFactory;
import com.zhidaoauto.map.sdk.open.marker.Marker;
import com.zhidaoauto.map.sdk.open.marker.OnMarkClickListener;
@@ -51,6 +52,7 @@ import com.zhidaoauto.map.sdk.open.view.MapAutoViewHelper;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import org.json.JSONObject;
import java.util.List;
@@ -912,4 +914,35 @@ public class AMapViewWrapper implements IMogoMapView,
Logger.e( TAG, e, "rtkEnable" );
}
}
+
+ @Override
+ public void syncLocation2Map( JSONObject data ) {
+ if ( !checkAMapView() ) {
+ return;
+ }
+ if ( data == null ) {
+ Logger.d( TAG, "停止使用rtk定位数据" );
+ mMapView.getLocationClient().stopAutoPilotRTK();
+ return;
+ }
+ double lon = data.optDouble( "lon", -1 );
+ double lat = data.optDouble( "lat", -1 );
+ double alt = data.optDouble( "alt", -1 );
+ double heading = data.optDouble( "heading", -1 );
+ double acceleration = data.optDouble( "acceleration", -1 );
+ double yawRate = data.optDouble( "yawRate", -1 );
+ if ( lon == -1 ) {
+ return;
+ }
+ RTKAutopilotLocationBean bean = new RTKAutopilotLocationBean();
+ bean.setYaw_rate( yawRate );
+ bean.setHeading( heading );
+ bean.setHeading( heading );
+ bean.setAcceleration( acceleration );
+ bean.setAlt( alt );
+ bean.setLon( lon );
+ bean.setLat( lat );
+ mMapView.getLocationClient().updateRTKAutoPilotLocation( bean );
+ Logger.d( TAG, "使用rtk定位数据" );
+ }
}
diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/uicontroller/AMapUIController.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/uicontroller/AMapUIController.java
index 8b4516726c..553117b85d 100644
--- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/uicontroller/AMapUIController.java
+++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/uicontroller/AMapUIController.java
@@ -14,6 +14,8 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.MapCameraPosition;
import com.mogo.map.uicontroller.MapControlResult;
+import org.json.JSONObject;
+
import java.util.List;
/**
@@ -296,4 +298,11 @@ public class AMapUIController implements IMogoMapUIController {
mClient.rtkEnable( enable );
}
}
+
+ @Override
+ public void syncLocation2Map( JSONObject data ) {
+ if ( mClient != null ) {
+ mClient.syncLocation2Map( data );
+ }
+ }
}
diff --git a/libraries/map-custom/src/main/res/drawable-ldpi/map_api_ic_current_location2.png b/libraries/map-custom/src/main/res/drawable-ldpi/map_api_ic_current_location2.png
index 5f91be07f3..98fc674705 100644
Binary files a/libraries/map-custom/src/main/res/drawable-ldpi/map_api_ic_current_location2.png and b/libraries/map-custom/src/main/res/drawable-ldpi/map_api_ic_current_location2.png differ
diff --git a/libraries/map-custom/src/main/res/drawable-mdpi/map_api_ic_current_location2.png b/libraries/map-custom/src/main/res/drawable-mdpi/map_api_ic_current_location2.png
index 5f91be07f3..98fc674705 100644
Binary files a/libraries/map-custom/src/main/res/drawable-mdpi/map_api_ic_current_location2.png and b/libraries/map-custom/src/main/res/drawable-mdpi/map_api_ic_current_location2.png differ
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
index 21f3ed6515..594931745a 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
@@ -13,6 +13,8 @@ import com.mogo.map.MogoLatLng;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.anim.OnMarkerAnimationListener;
+import org.json.JSONObject;
+
import java.util.List;
/**
@@ -254,4 +256,8 @@ public interface IMogoMapUIController {
default void destroy(){
}
+
+ default void syncLocation2Map( JSONObject data ){
+
+ }
}
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
index f2d5255e12..3257297088 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
@@ -15,6 +15,8 @@ import com.mogo.map.uicontroller.MapCameraPosition;
import com.mogo.map.uicontroller.MapControlResult;
import com.mogo.utils.logger.Logger;
+import org.json.JSONObject;
+
import java.util.List;
/**
@@ -325,6 +327,14 @@ public class MogoMapUIController implements IMogoMapUIController {
}
}
+ @Override
+ public void syncLocation2Map( JSONObject data ) {
+ initDelegate();
+ if ( mDelegate != null ) {
+ mDelegate.syncLocation2Map( data );
+ }
+ }
+
@Override
public void destroy() {
mDelegate = null;
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/ADASStatusIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/ADASStatusIntentHandler.java
index ecd894836c..a8e7953c73 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/ADASStatusIntentHandler.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/ADASStatusIntentHandler.java
@@ -2,20 +2,16 @@ package com.mogo.module.service.intent;
import android.content.Context;
import android.content.Intent;
-import android.location.Location;
-import android.location.LocationManager;
import android.text.TextUtils;
-import android.view.View;
-import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.service.MarkerServiceHandler;
-import com.mogo.module.service.R;
import com.mogo.module.service.ServiceConst;
import com.mogo.module.service.carinfo.CarStateInfo;
import com.mogo.module.service.receiver.MogoReceiver;
-import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.network.utils.GsonUtil;
+import org.json.JSONObject;
+
public
/**
* @author congtaowang
@@ -56,53 +52,27 @@ class ADASStatusIntentHandler implements IntentHandler {
MarkerServiceHandler.getMogoStatusManager().setADASUIShow( ServiceConst.TYPE, status == 1 );
}
// 由于adas可能调高此处的调用频率,存在anr风险,且此处没有作用,所以暂时注释掉
-// else {
-// String msg = intent.getStringExtra( "adasMsg" );
-// if ( TextUtils.isEmpty( msg ) ) {
-// return;
-// }
-// CarStateInfo stateInfo = GsonUtil.objectFromJson( msg, CarStateInfo.class );
-// if ( stateInfo != null ) {
-// changeCarHeadstockDirection( context, stateInfo.getValues().getHeading() );
-// // changeMyLocation( stateInfo.getValues() );
-// }
-// }
- }
-
- private void changeCarHeadstockDirection( final Context context, final double degree ) {
- if ( MarkerServiceHandler.getNavi().isNaviing() ) {
- return;
+ else {
+ String msg = intent.getStringExtra( "adasMsg" );
+ if ( TextUtils.isEmpty( msg ) ) {
+ return;
+ }
+ CarStateInfo stateInfo = GsonUtil.objectFromJson( msg, CarStateInfo.class );
+ if ( stateInfo != null && stateInfo.getValues() != null ) {
+ JSONObject data = new JSONObject();
+ try {
+ data.putOpt( "lon", stateInfo.getValues().getLon() );
+ data.putOpt( "lat", stateInfo.getValues().getLat() );
+ data.putOpt( "alt", stateInfo.getValues().getAlt() );
+ data.putOpt( "heading", stateInfo.getValues().getHeading() );
+ data.putOpt( "acceleration", stateInfo.getValues().getAcceleration() );
+ data.putOpt( "yawRate", stateInfo.getValues().getYaw_rate() );
+ MarkerServiceHandler.getApis().getMapServiceApi().getMapUIController()
+ .syncLocation2Map( data );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
+ }
}
- if ( MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() ) {
- return;
- }
- if ( !MarkerServiceHandler.getMogoStatusManager().isMainPageOnResume() ) {
- return;
- }
- if ( MarkerServiceHandler.getMogoStatusManager().isSeekHelping() ) {
- return;
- }
- if ( MarkerServiceHandler.getMapUIController().getCurrentUiMode() != EnumMapUI.NorthUP_2D ) {
- return;
- }
- UiThreadHandler.post( () -> {
- MarkerServiceHandler.getMapUIController().showMyLocation( inflateCursorView( context, degree ) );
- } );
- }
-
- private View inflateCursorView( Context context, double degree ) {
- View view = View.inflate( context, R.layout.map_amap_cursor, null );
- view.setRotation( ( float ) degree );
- return view;
- }
-
- private void changeMyLocation( CarStateInfo.ValuesBean valuesBean ) {
- if ( valuesBean == null ) {
- return;
- }
- Location location = new Location( LocationManager.GPS_PROVIDER );
- location.setAltitude( valuesBean.getAlt() );
- location.setLatitude( valuesBean.getLat() );
- location.setLongitude( valuesBean.getLon() );
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java
index bcb6785d5f..3b442b3177 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java
@@ -387,6 +387,10 @@ public class MockIntentHandler implements IntentHandler {
MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController()
.rtkEnable( false );
break;
+ case 39:
+ MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController()
+ .syncLocation2Map( null );
+ break;
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java
index 2133a299a1..5ac444b6c0 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java
@@ -72,6 +72,7 @@ public class MogoReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
+ Logger.d( TAG, action );
if (TextUtils.equals(VOICE_ACTION, action)) {
String cmd = intent.getStringExtra(PARAM_COMMAND);
if (!TextUtils.isEmpty(cmd)) {