Merge branch 'dev_arch_opt_3.0' of gitlab.zhidaoauto.com:zhjt/AndroidApp/MoGoEagleEye into dev_arch_opt_3.0
This commit is contained in:
@@ -1,9 +1,13 @@
|
||||
package com.mogo.launcher;
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.eagle.core.function.api.devatools.strict.IStrictModeProvider;
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
|
||||
import com.mogo.eagle.core.function.call.startup.CallerStartUpManager;
|
||||
import com.mogo.eagle.core.function.main.MainMoGoApplication;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
|
||||
import com.mogo.eagle.core.utilcode.util.SharedPrefs;
|
||||
import com.mogo.launcher.crash.CrashSystem;
|
||||
import com.mogo.launcher.startup.ARouterStartUp;
|
||||
import com.mogo.launcher.startup.ConfigStartUp;
|
||||
@@ -21,9 +25,21 @@ public class MogoApplication extends MainMoGoApplication {
|
||||
ARouterStartUp.init(this);
|
||||
ConfigStartUp.init(this);
|
||||
CallerStartUpManager.initStageOne();
|
||||
tryEnableStrictMode();
|
||||
super.onCreate();
|
||||
}
|
||||
|
||||
private void tryEnableStrictMode() {
|
||||
IStrictModeProvider strict = CallerDevaToolsManager.INSTANCE.strict();
|
||||
if (DebugConfig.isDebug() && strict != null) {
|
||||
boolean enabled = SharedPrefs.getInstance(this).getBoolean("MOGO_STRICT_MODE_ENABLED", false);
|
||||
Logger.e("StrictMode", "isEnabled:" + enabled);
|
||||
if (enabled) {
|
||||
strict.enable();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initCrashConfig() {
|
||||
CrashSystem crashSystem = CrashSystem.getInstance(this);
|
||||
|
||||
@@ -93,7 +93,7 @@ ext {
|
||||
|
||||
// obu sdk
|
||||
obusdk : "com.zhidao.enterprise.smartv2x:smartv2x:1.0.0.3",
|
||||
mogoobu : 'com.mogo.support.obu:mogo-obu:1.1.0_beta4',
|
||||
mogoobu : 'com.mogo.support.obu:mogo-obu:1.1.0_beta5',
|
||||
|
||||
// google
|
||||
googlezxing : "com.google.zxing:core:3.3.3",
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.mogo.eagle.core.data.deva.scene.SceneTAG
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
|
||||
import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider
|
||||
import com.mogo.eagle.core.function.api.devatools.apm.*
|
||||
import com.mogo.eagle.core.function.api.devatools.strict.*
|
||||
import com.mogo.eagle.core.function.call.map.*
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.zhjt.mogo_core_function_devatools.apm.*
|
||||
@@ -35,6 +36,7 @@ import com.zhjt.mogo_core_function_devatools.report.IPCReportManager
|
||||
import com.zhjt.mogo_core_function_devatools.report.IPCReportManager.Companion.iPCReportManager
|
||||
import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager
|
||||
import com.zhjt.mogo_core_function_devatools.status.StatusManager
|
||||
import com.zhjt.mogo_core_function_devatools.strict.*
|
||||
import com.zhjt.mogo_core_function_devatools.trace.TraceManager.Companion.traceManager
|
||||
import com.zhjt.mogo_core_function_devatools.tts.TtsManager.Companion.ttsManager
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeManager.Companion.upgradeManager
|
||||
@@ -48,7 +50,9 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
|
||||
private var mContext: Context? = null
|
||||
|
||||
private val apmEnvProvider by lazy { ApmEnvProviderImpl }
|
||||
private val apmEnvProvider by lazy { ApmEnvProviderImpl() }
|
||||
|
||||
private val strictModeProvider by lazy { StrictModeProviderImpl() }
|
||||
|
||||
@Volatile
|
||||
private var mDockerVersion: String? = null
|
||||
@@ -253,4 +257,5 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
override fun queryObuUpgrade(obuVersionName: String) {
|
||||
bindingCarManager.queryObuUpgrade(obuVersionName)
|
||||
}
|
||||
override fun strict(): IStrictModeProvider = strictModeProvider
|
||||
}
|
||||
@@ -17,9 +17,9 @@ import java.util.concurrent.atomic.AtomicBoolean
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
import kotlin.coroutines.*
|
||||
|
||||
object ApmEnvProviderImpl: IApmEnvProvider, CoroutineScope {
|
||||
class ApmEnvProviderImpl: IApmEnvProvider, CoroutineScope {
|
||||
|
||||
private const val TAG = "ApmEnvProvider"
|
||||
private val TAG = "ApmEnvProvider"
|
||||
|
||||
private val scope by lazy { CoroutineScope(Dispatchers.IO + SupervisorJob()) }
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.zhjt.mogo_core_function_devatools.strict
|
||||
|
||||
import android.os.*
|
||||
import android.os.StrictMode.ThreadPolicy.Builder
|
||||
import android.os.StrictMode.VmPolicy
|
||||
import com.mogo.eagle.core.function.api.devatools.strict.*
|
||||
|
||||
/**
|
||||
* 严格模式功能管理
|
||||
* 1. 监测主线程磁盘读写
|
||||
* 2. 监测主线程网络请求
|
||||
* 3. 监测磁盘输入输出流使用异常(未及时关闭)
|
||||
* 4. 监测数据库查询操作异常(cursor使用未关闭)
|
||||
* 5. 监测资源类型不匹配(TypedValue)
|
||||
* 6. 监测文件读写未使用Buffer(增加buffer可以减少系统调用,降低性能损耗)
|
||||
*/
|
||||
class StrictModeProviderImpl: IStrictModeProvider {
|
||||
|
||||
|
||||
override fun enable() {
|
||||
StrictMode.setThreadPolicy(
|
||||
Builder()
|
||||
.detectAll()
|
||||
.penaltyLog()
|
||||
.penaltyDropBox()
|
||||
.build())
|
||||
StrictMode.setVmPolicy(
|
||||
VmPolicy.Builder()
|
||||
.detectAll()
|
||||
.penaltyLog()
|
||||
.penaltyDropBox()
|
||||
.build())
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.os.Build
|
||||
import android.os.Process
|
||||
import android.text.Html
|
||||
import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
@@ -64,9 +65,7 @@ import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.function.hmi.ui.logcatch.ILogViewListener
|
||||
import com.mogo.eagle.core.function.hmi.ui.logcatch.LogInfoView
|
||||
import com.mogo.eagle.core.function.hmi.ui.widget.DemoModeView
|
||||
import com.mogo.eagle.core.utilcode.kotlin.currentPadding
|
||||
import com.mogo.eagle.core.utilcode.kotlin.lifecycleOwner
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.kotlin.*
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel
|
||||
@@ -81,7 +80,7 @@ import com.mogo.map.uicontroller.VisualAngleMode.*
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.*
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.tbRouteDynamicEffect
|
||||
import kotlinx.android.synthetic.main.view_sop_setting.view.*
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.*
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import mogo_msg.MogoReportMsg
|
||||
import java.text.SimpleDateFormat
|
||||
@@ -621,6 +620,18 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
tbIsDemoMode.visibility = View.GONE
|
||||
}
|
||||
|
||||
tbIsStrictMode?.also {
|
||||
it.isChecked = SharedPrefs.getInstance(Utils.getApp()).getBoolean("MOGO_STRICT_MODE_ENABLED", false)
|
||||
it.setOnCheckedChangeListener { _, isChecked ->
|
||||
SharedPrefs.getInstance(Utils.getApp()).putBoolean("MOGO_STRICT_MODE_ENABLED", isChecked)
|
||||
scope.launch {
|
||||
ToastUtils.showShort("配置生效, 2秒后重启应用...")
|
||||
delay(2000)
|
||||
restartApp()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 雨天模式,上一次勾选的数据
|
||||
tbIsRainMode.isChecked = FunctionBuildConfig.isRainMode
|
||||
//雨天模式
|
||||
@@ -1628,11 +1639,10 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
mRouteInfoSize = 0
|
||||
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
tbIsDemoMode.text = "关闭美化模式"
|
||||
tbIsDemoMode?.text = "关闭美化模式"
|
||||
} else {
|
||||
tbIsDemoMode.text = "开启美化模式"
|
||||
tbIsDemoMode?.text = "开启美化模式"
|
||||
}
|
||||
|
||||
//obu信息,排查obu相关问题使用
|
||||
tvObuInfoContent.text = mObuInfoStr
|
||||
|
||||
@@ -2035,6 +2045,11 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
private fun restartApp() {
|
||||
Utils.getApp().startActivity(Utils.getApp().packageManager.getLaunchIntentForPackage(Utils.getApp().packageName))
|
||||
Process.killProcess(Process.myPid())
|
||||
}
|
||||
|
||||
override fun fwThreadClose() {
|
||||
refreshTraceInfo()
|
||||
}
|
||||
|
||||
@@ -141,7 +141,12 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
updateHDDataCacheStatus(CallerMapUIServiceManager.isCityDataCached())
|
||||
ThreadUtils.getIoPool().execute {
|
||||
val isCached = CallerMapUIServiceManager.isCityDataCached()
|
||||
UiThreadHandler.post {
|
||||
updateHDDataCacheStatus(isCached)
|
||||
}
|
||||
}
|
||||
|
||||
if(AdUpgradeStateHelper.isConfirmUpgrade()){
|
||||
//将角标改为“下载中”
|
||||
|
||||
@@ -229,6 +229,18 @@
|
||||
android:layout_height="1dp"
|
||||
android:background="#F0F0F0" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/tbIsStrictMode"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/dp_10"
|
||||
android:background="@drawable/radio_button_normal_background_right"
|
||||
android:textColor="#000"
|
||||
android:padding="@dimen/dp_20"
|
||||
android:textOff="开启严格模式"
|
||||
android:textOn="关闭严格模式"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/tbIsDemoMode"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -324,6 +324,50 @@ public class MogoLocation implements Cloneable {
|
||||
return this;
|
||||
}
|
||||
|
||||
public MogoLocation copy(MogoLocation lastLocation, double longitude, double latitude) {
|
||||
MogoLocation mogoLocation = new MogoLocation();
|
||||
mogoLocation.accuracy = lastLocation.accuracy;
|
||||
mogoLocation.adCode = lastLocation.adCode;
|
||||
mogoLocation.address = lastLocation.address;
|
||||
mogoLocation.aoiName = lastLocation.aoiName;
|
||||
mogoLocation.buildingId = lastLocation.buildingId;
|
||||
mogoLocation.cityCode = lastLocation.cityCode;
|
||||
mogoLocation.cityName = lastLocation.cityName;
|
||||
mogoLocation.description = lastLocation.description;
|
||||
mogoLocation.district = lastLocation.district;
|
||||
mogoLocation.errorCode = lastLocation.errorCode;
|
||||
mogoLocation.errorInfo = lastLocation.errorInfo;
|
||||
mogoLocation.floor = lastLocation.floor;
|
||||
mogoLocation.gpsAccuracyStatus = lastLocation.gpsAccuracyStatus;
|
||||
mogoLocation.lastReceiveTime = lastLocation.lastReceiveTime;
|
||||
mogoLocation.locationDetail = lastLocation.locationDetail;
|
||||
mogoLocation.locType = lastLocation.locType;
|
||||
mogoLocation.poiName = lastLocation.poiName;
|
||||
mogoLocation.provider = lastLocation.provider;
|
||||
mogoLocation.province = lastLocation.province;
|
||||
mogoLocation.satellite = lastLocation.satellite;
|
||||
mogoLocation.street = lastLocation.street;
|
||||
mogoLocation.streetNum = lastLocation.streetNum;
|
||||
|
||||
MessagePad.GnssInfo gnssInfo =
|
||||
MessagePad.GnssInfo.newBuilder()
|
||||
.setLongitude(longitude) //经度
|
||||
.setLatitude(latitude)//纬度
|
||||
.setAltitude(lastLocation.gnssInfo.getAltitude()) //海拔
|
||||
.setHeading(lastLocation.gnssInfo.getHeading()) //航向角
|
||||
.setAcceleration(lastLocation.gnssInfo.getAcceleration()) //加速度
|
||||
.setYawRate(lastLocation.gnssInfo.getYawRate()) //曲率
|
||||
.setGnssSpeed(lastLocation.gnssInfo.getGnssSpeed()) //惯导车速 m/s
|
||||
.setVehicleSpeed(lastLocation.gnssInfo.getVehicleSpeed()) //车辆车速 m/s
|
||||
.setSatelliteTime(lastLocation.gnssInfo.getSatelliteTime()) //gps时间 单位:秒s
|
||||
.setSystemTime(lastLocation.gnssInfo.getSystemTime()) //系统时间 单位:秒s
|
||||
.build();
|
||||
|
||||
mogoLocation.gnssInfo = gnssInfo;
|
||||
return mogoLocation;
|
||||
}
|
||||
|
||||
|
||||
public long getLastReceiveTime() {
|
||||
return lastReceiveTime;
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.mogo.eagle.core.data.deva.scene.SceneModule
|
||||
import com.mogo.eagle.core.data.deva.scene.SceneTAG
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
|
||||
import com.mogo.eagle.core.function.api.devatools.apm.*
|
||||
import com.mogo.eagle.core.function.api.devatools.strict.*
|
||||
|
||||
/**
|
||||
* 开发套件工具接口
|
||||
@@ -195,4 +196,6 @@ interface IDevaToolsProvider : IProvider {
|
||||
fun dockerVersion(dockerVersion: String?)
|
||||
|
||||
fun apmEnvProvider(): IApmEnvProvider
|
||||
|
||||
fun strict(): IStrictModeProvider
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.mogo.eagle.core.function.api.devatools.strict
|
||||
|
||||
|
||||
/**
|
||||
* 系统严格模式功能封装
|
||||
*/
|
||||
interface IStrictModeProvider {
|
||||
|
||||
fun enable()
|
||||
}
|
||||
@@ -18,7 +18,7 @@ object CallerChassisLocationGCJ02ListenerManager : CallerBase<IMoGoChassisLocati
|
||||
private const val TAG = "CallerChassisLocationGCJ20ListenerManager"
|
||||
|
||||
@Volatile
|
||||
private var mGnssInfo: MogoLocation? = null
|
||||
private var mGnssInfo: MogoLocation = MogoLocation()
|
||||
|
||||
/**
|
||||
* 添加监听并指定回掉频率
|
||||
@@ -35,8 +35,8 @@ object CallerChassisLocationGCJ02ListenerManager : CallerBase<IMoGoChassisLocati
|
||||
setListenerHz(tag, callBackHz)
|
||||
}
|
||||
|
||||
fun getChassisLocationGCJ02(): MogoLocation? {
|
||||
return mGnssInfo
|
||||
fun getChassisLocationGCJ02(): MogoLocation {
|
||||
return mGnssInfo.clone()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -46,46 +46,42 @@ object CallerChassisLocationGCJ02ListenerManager : CallerBase<IMoGoChassisLocati
|
||||
@Synchronized
|
||||
fun invokeChassisLocationGCJ02(gnssInfo: MogoLocation?, sourceType: DataSourceType) {
|
||||
gnssInfo?.let {
|
||||
// 克隆定位数据,防止原数据被篡改导致位置跳变
|
||||
mGnssInfo = gnssInfo.clone()
|
||||
// 转换 WGS84-->GCJ02 坐标
|
||||
val gcj20Location =
|
||||
CoordinateTransform.WGS84ToGCJ02(gnssInfo.longitude, gnssInfo.latitude)
|
||||
mGnssInfo?.let {
|
||||
mGnssInfo!!.longitude = gcj20Location[0]
|
||||
mGnssInfo!!.latitude = gcj20Location[1]
|
||||
// 克隆定位数据,防止原数据被篡改导致位置跳变
|
||||
mGnssInfo = gnssInfo.copy(gnssInfo, gcj20Location[0], gcj20Location[1])
|
||||
|
||||
M_LISTENERS.forEach {
|
||||
val tag = it.key
|
||||
// 获取数据监听需要的HZ
|
||||
val hz = M_LISTENERS_HZ[tag]
|
||||
if (hz != null && hz > 0) {
|
||||
val hzTime = (1.0 / hz.toDouble()) * 1000
|
||||
// 获取最后一次回调的时间
|
||||
val hzLastSendTime = M_LISTENERS_HZ_LAST_SEND_TIME[tag]
|
||||
if (hzLastSendTime != null && hzLastSendTime > 0) {
|
||||
// 计算是否进入下一次回调周期
|
||||
val nowTime = TimeUtils.getNowMills()
|
||||
if (nowTime - hzLastSendTime > hzTime) {
|
||||
syncLocationCallback(tag, it, mGnssInfo!!, sourceType)
|
||||
}
|
||||
} else {
|
||||
syncLocationCallback(tag, it, mGnssInfo!!, sourceType)
|
||||
M_LISTENERS.forEach {
|
||||
val tag = it.key
|
||||
// 获取数据监听需要的HZ
|
||||
val hz = M_LISTENERS_HZ[tag]
|
||||
if (hz != null && hz > 0) {
|
||||
val hzTime = (1.0 / hz.toDouble()) * 1000
|
||||
// 获取最后一次回调的时间
|
||||
val hzLastSendTime = M_LISTENERS_HZ_LAST_SEND_TIME[tag]
|
||||
if (hzLastSendTime != null && hzLastSendTime > 0) {
|
||||
// 计算是否进入下一次回调周期
|
||||
val nowTime = TimeUtils.getNowMills()
|
||||
if (nowTime - hzLastSendTime > hzTime) {
|
||||
syncLocationCallback(tag, it, mGnssInfo, sourceType)
|
||||
}
|
||||
} else {
|
||||
//Logger.d(TAG, "没设置监听频率,使用默认5HZ")
|
||||
val hzTime = (1.0 / 5) * 1000
|
||||
// 获取最后一次回调的时间
|
||||
val hzLastSendTime = M_LISTENERS_HZ_LAST_SEND_TIME[tag]
|
||||
if (hzLastSendTime != null && hzLastSendTime > 0) {
|
||||
// 计算是否进入下一次回调周期
|
||||
val nowTime = TimeUtils.getNowMills()
|
||||
if (nowTime - hzLastSendTime > hzTime) {
|
||||
syncLocationCallback(tag, it, mGnssInfo!!, sourceType)
|
||||
}
|
||||
} else {
|
||||
syncLocationCallback(tag, it, mGnssInfo!!, sourceType)
|
||||
syncLocationCallback(tag, it, mGnssInfo, sourceType)
|
||||
}
|
||||
} else {
|
||||
//Logger.d(TAG, "没设置监听频率,使用默认5HZ")
|
||||
val hzTime = (1.0 / 5) * 1000
|
||||
// 获取最后一次回调的时间
|
||||
val hzLastSendTime = M_LISTENERS_HZ_LAST_SEND_TIME[tag]
|
||||
if (hzLastSendTime != null && hzLastSendTime > 0) {
|
||||
// 计算是否进入下一次回调周期
|
||||
val nowTime = TimeUtils.getNowMills()
|
||||
if (nowTime - hzLastSendTime > hzTime) {
|
||||
syncLocationCallback(tag, it, mGnssInfo, sourceType)
|
||||
}
|
||||
} else {
|
||||
syncLocationCallback(tag, it, mGnssInfo, sourceType)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ object CallerChassisLocationWGS84ListenerManager : CallerBase<IMoGoChassisLocati
|
||||
private var mGnssInfo: MogoLocation = MogoLocation()
|
||||
|
||||
fun getChassisLocationWGS84(): MogoLocation {
|
||||
return mGnssInfo
|
||||
return mGnssInfo.clone()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.mogo.eagle.core.data.deva.scene.SceneTAG
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
|
||||
import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider
|
||||
import com.mogo.eagle.core.function.api.devatools.apm.*
|
||||
import com.mogo.eagle.core.function.api.devatools.strict.*
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
|
||||
@@ -248,4 +249,6 @@ object CallerDevaToolsManager {
|
||||
fun queryObuUpgrade(obuVersionName: String) {
|
||||
devaToolsProviderApi?.queryObuUpgrade(obuVersionName)
|
||||
}
|
||||
|
||||
fun strict(): IStrictModeProvider? = devaToolsProviderApi?.strict()
|
||||
}
|
||||
@@ -24,7 +24,6 @@ import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.MainThread;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
@@ -34,7 +33,7 @@ import com.mogo.eagle.core.data.map.CenterLine;
|
||||
import com.mogo.eagle.core.data.map.MapRoadInfo;
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.data.map.MogoLocation;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapDevaListenerManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager;
|
||||
@@ -212,28 +211,11 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
|
||||
@Override
|
||||
public void onStopLineInfo(@androidx.annotation.Nullable StopLine stopLine) {
|
||||
MogoLocation carLoc = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02();
|
||||
MogoLocation carLoc = CallerChassisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS84();
|
||||
if (stopLine != null && stopLine.road_id != null && !stopLine.road_id.isEmpty() && stopLine.points != null && stopLine.points.size() > 0) {
|
||||
ArrayList<LonLatPoint> points = stopLine.points;
|
||||
if (carLoc != null) {
|
||||
/**
|
||||
* //地图组提供的高德坐标切到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_MAP + TAG, "car_loc: " + carLoc + "");
|
||||
if (!MapAutoApi.GPS_FLAG.equals(provider)) {
|
||||
//CallerLogger.INSTANCE.d(M_MAP + 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_MAP + TAG, "convert after: car_loc: {lon: " + carLoc.getLongitude() + ", lat: " + carLoc.getLatitude() + "}");
|
||||
}
|
||||
//CallerLogger.INSTANCE.d(M_MAP + TAG, "onStopLineInfo:stop_line" + stopLine + ", car_loc:{lon: " + carLoc.getLatitude() + ", lat: " + carLoc.getLongitude() + "}");
|
||||
// //CallerLogger.INSTANCE.d(M_MAP + TAG, "onStopLineInfo:stop_line" + stopLine + ", car_loc:{lon: " + carLoc.getLatitude() + ", lat: " + carLoc.getLongitude() + "}");
|
||||
MapRoadInfo.StopLine stopInfo = convert(stopLine);
|
||||
LonLatPoint p1 = points.get(0);
|
||||
LonLatPoint p2 = points.get(points.size() - 1);
|
||||
|
||||
Reference in New Issue
Block a user