[fea]
[location 聚合]
This commit is contained in:
yangyakun
2024-07-04 16:35:43 +08:00
parent a93c0d45c1
commit a3b661cbe4
34 changed files with 179 additions and 162 deletions

View File

@@ -46,6 +46,7 @@ import com.mogo.och.common.module.manager.CharterSendTripInfoManager.END_TRIP
import com.mogo.och.common.module.manager.CharterSendTripInfoManager.START_TRIP
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
@@ -76,8 +77,6 @@ import com.mogo.och.data.bean.*
*/
class DriverM1Model {
var mLongitude = 0.0
var mLatitude = 0.0
private var mContext: Context? = null
private var isArrivedStation: Boolean = false
@@ -118,7 +117,7 @@ class DriverM1Model {
fun init(context: Context) {
mContext = context
// 定位监听
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 5, mMapLocationListener)
OchLocationManager.addGCJ02Listener(TAG, 5, mMapLocationListener)
//开启自驾后 异常信息返回
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener)
@@ -174,7 +173,7 @@ class DriverM1Model {
fun release() {
// 注销定位监听
CallerChassisLocationGCJ02ListenerManager.removeListener(TAG)
OchLocationManager.removeGCJ02Listener(TAG)
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null)
releaseSocketMessageListener(
@@ -363,8 +362,6 @@ class DriverM1Model {
object : IMoGoChassisLocationGCJ02Listener {
override fun onChassisLocationGCJ02(gnssInfo: MogoLocation?) {
if (null == gnssInfo) return
mLongitude = gnssInfo.longitude
mLatitude = gnssInfo.latitude
//是否到站的围栏判断 自动驾驶还未触发到站
if (!isArrivedStation) {
@@ -547,7 +544,7 @@ class DriverM1Model {
// 登出
fun logout() {
LoginStatusManager.loginOut(mLatitude, mLongitude)
LoginStatusManager.loginOut()
}
fun triggerStartServiceEvent(isRestart: Boolean, send: Boolean) {
@@ -610,9 +607,10 @@ class DriverM1Model {
parameters.routeName = mCurrentOrder?.lineName!!
parameters.startName = PinYinUtil.getPinYinHeadChar(mCurrentOrder?.startSiteName)
parameters.endName = PinYinUtil.getPinYinHeadChar(mCurrentOrder?.siteName)
val gcJ02Location = OchLocationManager.getGCJ02Location()
parameters.startLatLon = AutopilotControlParameters.AutoPilotLonLat(
mLatitude,
mLongitude
gcJ02Location.latitude,
gcJ02Location.longitude
)
parameters.endLatLon =
AutopilotControlParameters.AutoPilotLonLat(mCurrentOrder?.wgs84Lat!!, mCurrentOrder?.wgs84Lon!!)

View File

@@ -5,8 +5,8 @@ import com.magic.mogo.och.charter.model.DriverM1Model
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import kotlin.math.abs
class CarStatusViewModel: ViewModel(), IMoGoAutopilotStatusListener,
@@ -24,12 +24,12 @@ class CarStatusViewModel: ViewModel(), IMoGoAutopilotStatusListener,
override fun onCleared() {
super.onCleared()
this.viewCallback = null
CallerChassisLocationGCJ02ListenerManager.removeListener(DriverM1Model.TAG)
OchLocationManager.removeGCJ02Listener(DriverM1Model.TAG)
}
fun setAutopilotStatusCallback(viewCallback:ICarStatusCallback){
this.viewCallback = viewCallback
CallerChassisLocationGCJ02ListenerManager.addListener(DriverM1Model.TAG, 3, this)
OchLocationManager.addGCJ02Listener(DriverM1Model.TAG, 3, this)
}
interface ICarStatusCallback{

View File

@@ -49,6 +49,7 @@ import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation
import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
@@ -394,7 +395,7 @@ object CharterPassengerModel {
this.orderInfo = orderData
}
//计算终点距离
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let { currentInfo ->
OchLocationManager.getGCJ02Location().let { currentInfo ->
// 两点之间的距离
val calculateLineDistance = CoordinateUtils.calculateLineDistance(
currentInfo.longitude,
@@ -644,7 +645,7 @@ object CharterPassengerModel {
*/
private fun calculateDistance() {
//mLocation gcj坐标
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let {
OchLocationManager.getGCJ02Location().let {
orderInfo?.let { order ->
d(M_BUS_P + "calculateDistance", "订单信息:$order")
if (order.siteId == null || order.siteId == 0L ||
@@ -758,7 +759,7 @@ object CharterPassengerModel {
val distanceMap: MutableMap<Float, Int> = TreeMap()
// 计算所有点的距离
data.forEachIndexed { index, siteInfo ->
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let { currentInfo ->
OchLocationManager.getGCJ02Location().let { currentInfo ->
// 两点之间的距离
val calculateLineDistance = CoordinateUtils.calculateLineDistance(
currentInfo.longitude,
@@ -806,7 +807,7 @@ object CharterPassengerModel {
if (middle == 0) {
return Pair(1, false)
}
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let {
OchLocationManager.getGCJ02Location().let {
// 仅计算 距离最近的站点middle 附近5个坐标的夹角
// middle middle-1
@@ -1184,7 +1185,7 @@ object CharterPassengerModel {
}
val parameters = AutopilotControlParameters()
orderInfo?.let { orderInfo ->
CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().let { startPoint ->
OchLocationManager.getWgs02Location().let { startPoint ->
val startWgsLon: Double = startPoint.longitude
val startWgsLat: Double = startPoint.latitude
val endWgsLon: Double = orderInfo.wgs84Lon!!

View File

@@ -11,6 +11,7 @@ import com.mogo.och.charter.passenger.callback.IDistanceCallback
import com.mogo.och.charter.passenger.model.CharterPassengerModel
import com.mogo.och.charter.passenger.model.IOrderStatusChangeListener
import com.mogo.och.charter.passenger.model.OrderStatusEnum
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.NumberFormatUtil
import kotlin.math.abs
@@ -24,7 +25,7 @@ class ItineraryViewModel : ViewModel(), IMoGoChassisLocationGCJ02Listener, IDist
private var viewCallback: ItineraryViewCallback? = null
init {
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 3, this)
OchLocationManager.addGCJ02Listener(TAG, 3, this)
CharterPassengerModel.setStationDistanceListener(TAG, this)
CharterPassengerModel.setStatusChangeListener(TAG, this)
}
@@ -32,7 +33,7 @@ class ItineraryViewModel : ViewModel(), IMoGoChassisLocationGCJ02Listener, IDist
override fun onCleared() {
super.onCleared()
this.viewCallback = null
CallerChassisLocationGCJ02ListenerManager.removeListener(TAG)
OchLocationManager.removeGCJ02Listener(TAG)
CharterPassengerModel.setStationDistanceListener(TAG, null)
CharterPassengerModel.setStatusChangeListener(TAG, null)
}

View File

@@ -26,6 +26,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
import com.mogo.och.common.module.manager.socket.lan.bean.LineSite
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
@@ -366,8 +367,7 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener {
}
fun canSwitchLine(): Boolean {
val gnssSpeed =
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().gnssSpeed
val gnssSpeed = OchLocationManager.getGCJ02Location().gnssSpeed
if (gnssSpeed < 0.5) {
when (CallerAutoPilotStatusListenerManager.getState()) {
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶