From f37d8c996c01664f281691f93418d8a894b25998 Mon Sep 17 00:00:00 2001 From: renwj Date: Wed, 23 Mar 2022 11:42:28 +0800 Subject: [PATCH] =?UTF-8?q?[VisualAngle]=E5=8D=87=E7=BA=A7=E5=9C=B0?= =?UTF-8?q?=E5=9B=BEsdk:=E4=BF=AE=E6=AD=A3crash;=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=9D=90=E6=A0=87=E8=BD=AC=E6=8D=A2;=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=A7=86=E8=A7=92=E5=88=87=E6=8D=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feedback/FeedbackManager.kt | 2 + .../core/function/impl/MogoMapService.java | 4 +- .../call/map/CallerVisualAngleManager.kt | 47 ++++++++++++------- gradle.properties | 2 +- .../java/com/mogo/map/AMapViewWrapper.java | 44 ++++++++--------- 5 files changed, 58 insertions(+), 41 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt index cfae062e4f..cc3715ec27 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt @@ -120,6 +120,8 @@ internal object FeedbackManager { CallerLogger.d("${M_DEVA}${TAG}", "延时20秒开始....") delay(20000) //延时20秒 CallerLogger.d("${M_DEVA}${TAG}", "延时20秒结束....") + record.text = "正在结束录制" + record.setTag(R.id.feed_back_badcase_tag, 2) stopRecordBag(1, taskId) }.also { itx -> itx.invokeOnCompletion { diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java index fe220da3be..2a7ff08e03 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java @@ -1,10 +1,10 @@ package com.mogo.eagle.core.function.impl; import android.content.Context; - import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.eagle.core.data.constants.MogoServicePaths; import com.mogo.eagle.core.function.api.map.IMogoMapService; +import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager; import com.mogo.map.MogoGeoSearch; import com.mogo.map.MogoLocationClient; import com.mogo.map.MogoMap; @@ -84,6 +84,6 @@ public class MogoMapService implements IMogoMapService { @Override public void init(Context context) { + CallerVisualAngleManager.INSTANCE.init(context); } - } diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt index 7c93e26c09..04b6929298 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt @@ -1,14 +1,20 @@ package com.mogo.eagle.core.function.call.map +import android.content.Context import android.os.Handler import android.os.Looper import android.os.SystemClock +import androidx.lifecycle.Lifecycle.Event +import androidx.lifecycle.Lifecycle.Event.ON_DESTROY +import androidx.lifecycle.LifecycleEventObserver +import androidx.lifecycle.LifecycleOwner import com.mogo.eagle.core.data.map.MapRoadInfo.StopLine import com.mogo.eagle.core.data.map.MogoLatLng import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager.OnRoadListener import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.CrossRoad import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Default import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.LowSpeed +import com.mogo.eagle.core.utilcode.kotlin.lifeCycleOwner import com.mogo.eagle.core.utilcode.kotlin.safeCancel import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA @@ -55,29 +61,36 @@ object CallerVisualAngleManager { val priority: Int } - init { - CallerMapRoadListenerManager.registerRoadListener("VisualAngleChange", object : OnRoadListener { - - private var roadId = "" - - override fun onRoadIdInfo(roadId: String) { - val oldRoadId = this.roadId - if (oldRoadId != roadId) { - if (hasCrossRoad) { - hasCrossRoad = false - changeVisualAngle(Default()) - } + private val listener = object : OnRoadListener { + private var roadId = "" + override fun onRoadIdInfo(roadId: String) { + val oldRoadId = this.roadId + if (oldRoadId != roadId) { + if (hasCrossRoad) { + hasCrossRoad = false + changeVisualAngle(Default()) } - this.roadId = roadId } + this.roadId = roadId + } - override fun onStopLineInfo(info: StopLine) { - if (!hasCrossRoad && info.distanceOfCarToStopLine <= 30.0) { - hasCrossRoad = true - changeVisualAngle(CrossRoad) + override fun onStopLineInfo(info: StopLine) { + if (!hasCrossRoad && info.distanceOfCarToStopLine <= 30.0) { + hasCrossRoad = true + changeVisualAngle(CrossRoad) + } + } + } + + fun init(ctx: Context) { + ctx.lifeCycleOwner.lifecycle.addObserver(object : LifecycleEventObserver { + override fun onStateChanged(source: LifecycleOwner, event: Event) { + if (event == ON_DESTROY) { + CallerMapRoadListenerManager.unRegisterRoadListener("VisualAngleChange") } } }) + CallerMapRoadListenerManager.registerRoadListener("VisualAngleChange", listener) } sealed class Scene private constructor(): IAttach { diff --git a/gradle.properties b/gradle.properties index c358b0310f..f0708fc8c6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -82,7 +82,7 @@ MOGO_LOCATION_VERSION=1.3.32 MOGO_TELEMATIC_VERSION=1.3.32 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.0.9.2 +MAP_SDK_VERSION=2.0.9.4 MAP_SDK_OPERATION_VERSION=1.0.12 # websocket WEBSOCKET_VERSION=1.1.7 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 54474a3d41..d1418ba2e1 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -1,5 +1,6 @@ package com.mogo.map; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_DEVA; import static com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_300; import static com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_CROSS; import static com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_TOP; @@ -29,7 +30,6 @@ import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapStyleListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; -import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.mogo.toast.TipToast; @@ -177,7 +177,7 @@ public class AMapViewWrapper implements IMogoMapView, public void onRoadIdInfo(@androidx.annotation.Nullable String roadId) { if (roadId != null && !TextUtils.isEmpty(roadId)) { - CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onRoadIdInfo::" + roadId); + CallerLogger.INSTANCE.d(M_DEVA + TAG, "onRoadIdInfo::" + roadId); CallerMapRoadListenerManager.INSTANCE.invokeListenersOnRoadIdGet(roadId); } else { CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onRoadIdInfo::null"); @@ -190,37 +190,39 @@ public class AMapViewWrapper implements IMogoMapView, if (stopLine != null && !TextUtils.isEmpty(stopLine.road_id) && stopLine.points != null && stopLine.points.size() > 0) { ArrayList points = stopLine.points; if (carLoc != null) { - CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onStopLineInfo:stop_line" + stopLine + ", car_loc:{lon: " + carLoc.getLatitude() + ", lat: " + carLoc.getLongitude() + "}"); + /** + * //地图组提供的高德坐标切到WGS84坐标系 + * var cal = LonLatPoint(point!!.lon, point!!.lat) + * if(!point!!.provider.equals(MapAutoApi.GPS_FLAG)){ + * cal = MapTools.switchLonLatWGS84(cal) + * } + */ + String provider = carLoc.getProvider(); + CallerLogger.INSTANCE.d(M_DEVA + TAG, "car_loc: " + carLoc + ""); + if (!MapAutoApi.GPS_FLAG.equals(provider)) { + CallerLogger.INSTANCE.d(M_DEVA + TAG, "convert before: car_loc: {lon: " + carLoc.getLongitude() + ", lat: " + carLoc.getLatitude() + "}"); + LonLatPoint p = new LonLatPoint(carLoc.getLongitude(), carLoc.getLatitude()); + p = MapTools.INSTANCE.switchLonLatWGS84(p); + carLoc.setLongitude(p.longitude); + carLoc.setLatitude(p.latitude); + CallerLogger.INSTANCE.d(M_DEVA + TAG, "convert after: car_loc: {lon: " + carLoc.getLongitude() + ", lat: " + carLoc.getLatitude() + "}"); + } + CallerLogger.INSTANCE.d(M_DEVA + TAG, "onStopLineInfo:stop_line" + stopLine + ", car_loc:{lon: " + carLoc.getLatitude() + ", lat: " + carLoc.getLongitude() + "}"); MapRoadInfo.StopLine stopInfo = convert(stopLine); - LonLatPoint match = new LonLatPoint(); - double ret = MapDataApi.INSTANCE.GetDisFromPointToLine(convert(carLoc), points, match, 1); - CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onStopLineInfo: --- ret: "+ ret); LonLatPoint p1 = points.get(0); LonLatPoint p2 = points.get(points.size() - 1); - double distanceOfCarToStopLine = MapDataApi.INSTANCE.getNearstFromPointToSegment(carLoc.getLongitude(), carLoc.getLatitude(), p1.longitude, p1.latitude, p2.longitude, p2.latitude); + double distanceOfCarToStopLine = MapDataApi.INSTANCE.getNearstFromPointToSegment(carLoc.getLongitude(), carLoc.getLatitude(), p1.longitude, p1.latitude, p2.longitude, p2.latitude) * 10_0000; stopInfo.setDistanceOfCarToStopLine(distanceOfCarToStopLine); - CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onStopLineInfo: --- distance: "+ distanceOfCarToStopLine); + CallerLogger.INSTANCE.d(M_DEVA + TAG, "onStopLineInfo: --- distance: "+ distanceOfCarToStopLine); CallerMapRoadListenerManager.INSTANCE.invokeListenersOnStopLineGet(stopInfo); } } else { if (carLoc != null) { - CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onStopLineInfo::null, car_loc:{lon: " + carLoc.getLatitude() + ", lat: " + carLoc.getLongitude() + "}"); + CallerLogger.INSTANCE.d(M_DEVA + TAG, "onStopLineInfo::null, car_loc:{lon: " + carLoc.getLatitude() + ", lat: " + carLoc.getLongitude() + "}"); } } } - private @NotNull LonLatPoint convert(MogoLocation location) { - LonLatPoint point = new LonLatPoint(); - point.latitude = location.getLatitude(); - point.longitude = location.getLongitude(); - point.altitude = location.getAltitude(); - point.angle = location.getBearing(); - point.speed = location.getSpeed(); - point.angle = location.getBearing(); - point.provider = location.getProvider(); - return point; - } - private MapRoadInfo.StopLine convert(StopLine line) { MapRoadInfo.StopLine ret = new MapRoadInfo.StopLine(); ret.setDistance(line.distance);