[格式化]
This commit is contained in:
yangyakun
2023-09-25 20:10:42 +08:00
parent f5f330f3e1
commit 9df1b4bfa8

View File

@@ -26,26 +26,37 @@ import java.util.concurrent.ConcurrentHashMap
/**
* 计算当前位置距离站点距离和走过的和未走过的轨迹点
*/
object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
object TrajectoryAndDistanceManager : IMoGoPlanningRottingListener {
private val distanceListeners: ConcurrentHashMap<String, IDistanceListener> = ConcurrentHashMap()
private val trajectoryListeners: ConcurrentHashMap<String, ITrajectoryListener> = ConcurrentHashMap()
private val trajectoryWithStationListeners: ConcurrentHashMap<String, ITrajectoryWithStationListener> = ConcurrentHashMap()
private val distanceListeners: ConcurrentHashMap<String, IDistanceListener> =
ConcurrentHashMap()
private val trajectoryListeners: ConcurrentHashMap<String, ITrajectoryListener> =
ConcurrentHashMap()
private val trajectoryWithStationListeners: ConcurrentHashMap<String, ITrajectoryWithStationListener> =
ConcurrentHashMap()
const val TAG = "DistanceManager"
const val TAGDISTANCE = "BusPassengerModelDistance"
fun addDistanceListener(tag: String, listener: IDistanceListener) {
if (distanceListeners.containsKey(tag)) { return }
if (distanceListeners.containsKey(tag)) {
return
}
distanceListeners[tag] = listener
}
fun addTrajectoryListener(tag: String, listener: ITrajectoryListener) {
if (trajectoryListeners.containsKey(tag)) { return }
if (trajectoryListeners.containsKey(tag)) {
return
}
trajectoryListeners[tag] = listener
}
fun addTrajectoryWithStationListener(tag: String, listener: ITrajectoryWithStationListener) {
if (trajectoryWithStationListeners.containsKey(tag)) { return }
if (trajectoryWithStationListeners.containsKey(tag)) {
return
}
trajectoryWithStationListeners[tag] = listener
}
@@ -60,17 +71,18 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
}
@Volatile
private var mRoutePoints: MutableList<MogoLocation>? = ArrayList()
// 0-1 1-2 2-3 各个轨迹点的距离
private var mRoutePointsDistance: MutableList<Float>? = ArrayList()
// 所有轨迹点距离的和
private var maxDistanceAllPoint:Double = 0.0
private var maxDistanceAllPoint: Double = 0.0
private val stationDistance: ConcurrentHashMap<String, Float> = ConcurrentHashMap()
@Volatile
private var lineId:Long? = null
private var lineId: Long? = null
@Volatile
private var endStationInfo: StationAndIndex = StationAndIndex(null, null, null, null)
@@ -92,8 +104,11 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
d(M_OCHCOMMON + TAG, "onAutopilotRotting: 收到轨迹")
globalPathResp?.wayPointsList?.let {
if (it.size > 0) {
d(M_OCHCOMMON + TAG, "收到轨迹:轨迹个数${it.size}第一个点${it[0]}最后一个点:${it.last()} 轨迹id:${globalPathResp.lineId}")
if(globalPathResp.lineId!=null) {// 适配低版本不传递lineId
d(
M_OCHCOMMON + TAG,
"收到轨迹:轨迹个数${it.size}第一个点${it[0]}最后一个点:${it.last()} 轨迹id:${globalPathResp.lineId}"
)
if (globalPathResp.lineId != null) {// 适配低版本不传递lineId
if (globalPathResp.lineId == lineId && !mRoutePoints.isNullOrEmpty()) {
d(M_OCHCOMMON + TAG, "重复轨迹")
startCalculateDistanceLoop()
@@ -120,7 +135,7 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
mRoutePointsDistance = ArrayList()
maxDistanceAllPoint = 0.0
mRoutePoints?.forEachIndexed { index, current ->
if (mRoutePoints!!.last()!=current) {
if (mRoutePoints!!.last() != current) {
val next = mRoutePoints!![index + 1]
val distanceItem = CoordinateUtils.calculateLineDistance(
current.longitude,
@@ -138,8 +153,9 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
private fun removeTempData() {
resetStation()
preCarLocationIndexInTrajectory = 0
lineId = null
lineId = null
}
private fun resetStation() {
this.endStationInfo.index = null
this.endStationInfo.distance = null
@@ -157,8 +173,15 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
/**
* 设置或清理站点坐标
*/
fun setStationPoint(startStationInfo: MogoLocation?,endStationInfo: MogoLocation?,lineId:Long?) {
d(M_OCHCOMMON+ TAG,"线路id:${lineId}设置站点:开始站点${startStationInfo}、结束站点:${endStationInfo}")
fun setStationPoint(
startStationInfo: MogoLocation?,
endStationInfo: MogoLocation?,
lineId: Long?
) {
d(
M_OCHCOMMON + TAG,
"线路id:${lineId}设置站点:开始站点${startStationInfo}、结束站点:${endStationInfo}"
)
if (startStationInfo == null || endStationInfo == null || lineId == -1L) {
removeTempData()
endCalculateDistanceLoop()
@@ -168,20 +191,21 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
this.startStationInfo.stationPoint = null
this.lineId = null
stationDistance.clear()
}else{
if(isSameStation(this.startStationInfo.stationPoint,startStationInfo)&&
isSameStation(this.endStationInfo.stationPoint,endStationInfo)){
if(this.lineId!=lineId){
} else {
if (isSameStation(this.startStationInfo.stationPoint, startStationInfo) &&
isSameStation(this.endStationInfo.stationPoint, endStationInfo)
) {
if (this.lineId != lineId) {
resetStation()
cleanRoutePoints()
TrajectoryCache.deleteCatcheFile()
stationDistance.clear()
}
}else{
} else {
resetStation()
if (this.lineId == 0L || this.lineId == null) {
// 兼容老MAP 不返回轨迹id lineID
}else {
} else {
if (this.lineId != lineId) {// bus 切换站点不会切线路
cleanRoutePoints()
TrajectoryCache.deleteCatcheFile()
@@ -196,11 +220,11 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
}
}
private fun isSameStation(stationOne: MogoLocation?,stationTwo: MogoLocation?):Boolean{
if(stationOne==null||stationTwo==null){
private fun isSameStation(stationOne: MogoLocation?, stationTwo: MogoLocation?): Boolean {
if (stationOne == null || stationTwo == null) {
return false
}
if(stationOne.longitude==stationTwo.longitude&&stationOne.latitude==stationTwo.latitude){
if (stationOne.longitude == stationTwo.longitude && stationOne.latitude == stationTwo.latitude) {
return true
}
return false
@@ -218,7 +242,7 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
endCalculateDistanceLoop()
return
}
if(it.latitude==0.0&&it.longitude==0.0){
if (it.latitude == 0.0 && it.longitude == 0.0) {
return
}
calculateRouteSumLength(it)
@@ -228,11 +252,11 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
/**
* 暂停路距计算
*/
fun suspendCalculate(){
fun suspendCalculate() {
endCalculateDistanceLoop()
}
fun reStartCalculate(){
fun reStartCalculate() {
startCalculateDistanceLoop()
}
@@ -240,9 +264,12 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
* 启动路距计算
*/
private fun startCalculateDistanceLoop() {
BizLoopManager.setLoopFunction(TAGDISTANCE, LoopInfo(1, ::calculateDistance,
scheduler = Schedulers.computation()
))
BizLoopManager.setLoopFunction(
TAGDISTANCE, LoopInfo(
1, ::calculateDistance,
scheduler = Schedulers.computation()
)
)
d(M_OCHCOMMON + TAG, "开始路距计算")
}
@@ -260,7 +287,8 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
location: MogoLocation,
) {
val autoPilotState = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state
val locationInfo = "自动驾驶状态:$autoPilotState line信息${lineId}定位信息:${location.latitude},${location.longitude},${location.heading} 当前速度:${location.gnssSpeed}"
val locationInfo =
"自动驾驶状态:$autoPilotState line信息${lineId}定位信息:${location.latitude},${location.longitude},${location.heading} 当前速度:${location.gnssSpeed}"
if (mRoutePoints.isNullOrEmpty()) return
// 计算起始站点在轨迹中的信息 这个是一个常量
if (startStationInfo.stationPoint != null
@@ -270,14 +298,19 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
) {
//要前往的站在轨迹中对应的点的信息
val startStationInfo = CoordinateCalculateRouteUtil.getNearestPointInfo(
preCarLocationIndexInTrajectory, mRoutePoints!!.size,mRoutePoints!!, startStationInfo.stationPoint!!,1
preCarLocationIndexInTrajectory,
mRoutePoints!!.size,
mRoutePoints!!,
startStationInfo.stationPoint!!,
1
)
this.startStationInfo.isNext = startStationInfo.second
this.startStationInfo.index = startStationInfo.first
this.startStationInfo.distance = startStationInfo.third
preCarLocationIndexInTrajectory = startStationInfo.first
val calculateData = "距离起始站点最近的点:${startStationInfo.first} 点在站的后面:${startStationInfo.second} 距离点的距离:${startStationInfo.third}"
writeLog(calculateData,locationInfo)
val calculateData =
"距离起始站点最近的点:${startStationInfo.first} 点在站的后面:${startStationInfo.second} 距离点的距离:${startStationInfo.third}"
writeLog(calculateData, locationInfo)
}
// 计算结束站点在轨迹中的信息 这个是一个常量可以缓存
@@ -288,18 +321,23 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
) {
//要前往的站在轨迹中对应的点
val endStationInfo = CoordinateCalculateRouteUtil.getNearestPointInfo(
preCarLocationIndexInTrajectory,mRoutePoints!!.size, mRoutePoints!!, endStationInfo.stationPoint!!,3
preCarLocationIndexInTrajectory,
mRoutePoints!!.size,
mRoutePoints!!,
endStationInfo.stationPoint!!,
3
)
this.endStationInfo.isNext = endStationInfo.second
this.endStationInfo.index = endStationInfo.first
this.endStationInfo.distance = endStationInfo.third
val calculateData = "距离结束站点最近的点:${endStationInfo.first} 点在站的后面:${endStationInfo.second} 距离点的距离:${endStationInfo.third}"
val calculateData =
"距离结束站点最近的点:${endStationInfo.first} 点在站的后面:${endStationInfo.second} 距离点的距离:${endStationInfo.third}"
writeLog(calculateData, locationInfo)
}
try {
if (endStationInfo.stationPoint != null
&& endStationInfo.isNext!= null
&& endStationInfo.isNext != null
&& endStationInfo.index != null
&& endStationInfo.distance != null
&& startStationInfo.stationPoint != null
@@ -309,39 +347,44 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
) {
calculateStationDistance()
}
}catch (e:Exception){
e(M_OCHCOMMON+ TAG,"计算两个站点间的距离")
} catch (e: Exception) {
e(M_OCHCOMMON + TAG, "计算两个站点间的距离")
}
val carLocationInfo:Triple<Int,Boolean?,Float>
if(endStationInfo.isNext==true){
val carLocationInfo: Triple<Int, Boolean?, Float>
if (endStationInfo.isNext == true) {
// 计算车的位置在轨迹中的信息 这个是一个变量可以缓存
carLocationInfo = CoordinateCalculateRouteUtil.getNearestPointInfo(
preCarLocationIndexInTrajectory,endStationInfo.index!!, mRoutePoints!!, location,2
preCarLocationIndexInTrajectory, endStationInfo.index!!, mRoutePoints!!, location, 2
)
}else{
} else {
carLocationInfo = CoordinateCalculateRouteUtil.getNearestPointInfo(
preCarLocationIndexInTrajectory,endStationInfo.index!!+1, mRoutePoints!!, location,2
preCarLocationIndexInTrajectory,
endStationInfo.index!! + 1,
mRoutePoints!!,
location,
2
)
}
val calculateData = "距离结束站点最近的点:${carLocationInfo.first} 点在站的后面:${carLocationInfo.second} 距离点的距离:${carLocationInfo.third}"
val calculateData =
"距离结束站点最近的点:${carLocationInfo.first} 点在站的后面:${carLocationInfo.second} 距离点的距离:${carLocationInfo.third}"
writeLog(calculateData, locationInfo)
if(carLocationInfo.second==null||carLocationInfo.third>1_000){
if (carLocationInfo.second == null || carLocationInfo.third > 1_000) {
preCarLocationIndexInTrajectory = 0
return
}
var maxDisatance = 0.0f
if(carLocationInfo.second==true){
if(carLocationInfo.first>0) {
maxDisatance = mRoutePointsDistance?.get(carLocationInfo.first - 1)?:0f
if (carLocationInfo.second == true) {
if (carLocationInfo.first > 0) {
maxDisatance = mRoutePointsDistance?.get(carLocationInfo.first - 1) ?: 0f
}
}else{
maxDisatance = mRoutePointsDistance?.get(carLocationInfo.first)?:0f
} else {
maxDisatance = mRoutePointsDistance?.get(carLocationInfo.first) ?: 0f
}
if(carLocationInfo.third>maxDisatance){
if (carLocationInfo.third > maxDisatance) {
preCarLocationIndexInTrajectory = 0
writeLog("到点的距离${carLocationInfo.third},最大距离${maxDisatance}",locationInfo)
writeLog("到点的距离${carLocationInfo.third},最大距离${maxDisatance}", locationInfo)
return
}
@@ -349,28 +392,28 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
// 距离回调
try {
if(distanceListeners.size>0) {
invokeDistance(carLocationInfo, location,locationInfo)
if (distanceListeners.size > 0) {
invokeDistance(carLocationInfo, location, locationInfo)
}
}catch (e:Exception){
e(M_OCHCOMMON+ TAG,"距离计算错误")
} catch (e: Exception) {
e(M_OCHCOMMON + TAG, "距离计算错误")
}
// 不带站点轨迹回调
try {
if(trajectoryListeners.size>0) {
if (trajectoryListeners.size > 0) {
invokeTrajectory(carLocationInfo, location)
}
}catch (e:Exception){
e(M_OCHCOMMON+ TAG,"轨迹线(轨迹两头)计算错误")
} catch (e: Exception) {
e(M_OCHCOMMON + TAG, "轨迹线(轨迹两头)计算错误")
}
// 只展示站点之间轨迹
try {
if(trajectoryWithStationListeners.size>0) {
if (trajectoryWithStationListeners.size > 0) {
invokeTrajectoryWithStation(carLocationInfo, location)
}
}catch (e:Exception){
e(M_OCHCOMMON+ TAG,"轨迹线(站点两头)计算错误")
} catch (e: Exception) {
e(M_OCHCOMMON + TAG, "轨迹线(站点两头)计算错误")
}
}
@@ -381,12 +424,12 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
private fun calculateStationDistance() {
var lastSumLength = 0f
val key = getKey()
if (stationDistance[key] !=null) {
if (stationDistance[key] != null) {
return
}
val stationIndex = endStationInfo.index?:0
if (startStationInfo.index!! < stationIndex-1) {
val stationIndex = endStationInfo.index ?: 0
if (startStationInfo.index!! < stationIndex - 1) {
// subList 是[) 需要的是[]
val subList = mRoutePoints!!.subList(startStationInfo.index!!, stationIndex + 1)
// 轨迹点所有的距离
@@ -397,7 +440,7 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
} else {// isNext = false
lastSumLength += stationDistance
}
if (startStationInfo.isNext==true) {// 是否是下一个 true 下一个
if (startStationInfo.isNext == true) {// 是否是下一个 true 下一个
lastSumLength += startStationInfo.distance!!
} else {
lastSumLength -= startStationInfo.distance!!
@@ -409,10 +452,10 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
lastPoints!!.longitude, lastPoints.latitude
)
}
d(M_OCHCOMMON+ TAG,"两站点距离:$lastSumLength")
d(M_OCHCOMMON + TAG, "两站点距离:$lastSumLength")
stationDistance[key] = lastSumLength
if(distanceListeners.size>0) {
if (distanceListeners.size > 0) {
distanceListeners.forEach {
//val tag = it.key
val listener = it.value
@@ -430,11 +473,11 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
carLocationInfo: Triple<Int, Boolean?, Float>,
location: MogoLocation,
locationInfo: String
){
) {
var lastSumLength = 0f
val stationIndex = endStationInfo.index?:0
if (carLocationInfo.first < stationIndex-1) {
val stationIndex = endStationInfo.index ?: 0
if (carLocationInfo.first < stationIndex - 1) {
// subList 是[) 需要的是[]
val subList = mRoutePoints!!.subList(carLocationInfo.first, stationIndex + 1)
// 轨迹点所有的距离
@@ -457,13 +500,13 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
location.longitude, location.latitude
)
}
d(M_OCHCOMMON+ TAG,"距离终点:$lastSumLength")
if(lastSumLength>maxDistanceAllPoint){
d(M_OCHCOMMON + TAG, "距离终点:$lastSumLength")
if (lastSumLength > maxDistanceAllPoint) {
// 大于最大值需要需要删除此次计算
writeLog("距离终点:$lastSumLength",locationInfo)
writeLog("距离终点:$lastSumLength", locationInfo)
return
}
if(distanceListeners.size>0) {
if (distanceListeners.size > 0) {
distanceListeners.forEach {
//val tag = it.key
val listener = it.value
@@ -479,15 +522,15 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
if (mRoutePoints.isNullOrEmpty()) return
val routeArrivied = mutableListOf<MogoLocation>()
val routeArriving = mutableListOf<MogoLocation>()
if(carLocationInfo.second==true){// isNext = true
routeArrivied.addAll(mRoutePoints!!.subList(0,carLocationInfo.first))
routeArriving.addAll(mRoutePoints!!.subList(carLocationInfo.first,mRoutePoints!!.size))
}else{// isNext = false
val indexNext = carLocationInfo.first+1
routeArrivied.addAll(mRoutePoints!!.subList(0,indexNext))
routeArriving.addAll(mRoutePoints!!.subList(indexNext,mRoutePoints!!.size))
if (carLocationInfo.second == true) {// isNext = true
routeArrivied.addAll(mRoutePoints!!.subList(0, carLocationInfo.first))
routeArriving.addAll(mRoutePoints!!.subList(carLocationInfo.first, mRoutePoints!!.size))
} else {// isNext = false
val indexNext = carLocationInfo.first + 1
routeArrivied.addAll(mRoutePoints!!.subList(0, indexNext))
routeArriving.addAll(mRoutePoints!!.subList(indexNext, mRoutePoints!!.size))
}
if(trajectoryListeners.size>0) {
if (trajectoryListeners.size > 0) {
trajectoryListeners.forEach {
//val tag = it.key
val listener = it.value
@@ -510,10 +553,10 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
&& startStationInfo.index != null
&& startStationInfo.distance != null
) {
if(startStationInfo.isNext==true){
if (startStationInfo.isNext == true) {
fromCut = startStationInfo.index!!
}else{
fromCut = startStationInfo.index!!+1
} else {
fromCut = startStationInfo.index!! + 1
}
}
@@ -522,25 +565,25 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
&& endStationInfo.index != null
&& endStationInfo.distance != null
) {
if(endStationInfo.isNext==true){
if (endStationInfo.isNext == true) {
endCut = endStationInfo.index!!
}else{
endCut = endStationInfo.index!!+1
} else {
endCut = endStationInfo.index!! + 1
}
}
d(M_OCHCOMMON+ TAG,"根据站点切个:第一个点:$fromCut 最后一个点$endCut")
if(carLocationInfo.second==true){// isNext = true
routeArrivied.addAll(mRoutePoints!!.subList(fromCut,carLocationInfo.first))
routeArriving.addAll(mRoutePoints!!.subList(carLocationInfo.first,endCut))
}else{// isNext = false
val indexNext = carLocationInfo.first+1
routeArrivied.addAll(mRoutePoints!!.subList(fromCut,indexNext))
routeArriving.addAll(mRoutePoints!!.subList(indexNext,endCut))
d(M_OCHCOMMON + TAG, "根据站点切个:第一个点:$fromCut 最后一个点$endCut")
if (carLocationInfo.second == true) {// isNext = true
routeArrivied.addAll(mRoutePoints!!.subList(fromCut, carLocationInfo.first))
routeArriving.addAll(mRoutePoints!!.subList(carLocationInfo.first, endCut))
} else {// isNext = false
val indexNext = carLocationInfo.first + 1
routeArrivied.addAll(mRoutePoints!!.subList(fromCut, indexNext))
routeArriving.addAll(mRoutePoints!!.subList(indexNext, endCut))
}
routeArrivied.add(0, startStationInfo.stationPoint!!)
routeArriving.add(endStationInfo.stationPoint!!)
if(trajectoryWithStationListeners.size>0) {
if (trajectoryWithStationListeners.size > 0) {
trajectoryWithStationListeners.forEach {
//val tag = it.key
val listener = it.value
@@ -549,23 +592,23 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
}
}
// @ChainLog(
// @ChainLog(
// linkChainLog = ChainConstant.CHAIN_TYPE_OCH,
// linkCode = ChainConstant.CHAIN_SOURCE_OCH,
// nodeAliasCode = ChainConstant.CHAIN_CODE_OCH_COMMON_DISTANCE,
// paramIndexes = [0,1]
// )
private fun writeLog(carLocationInfo: String, location: String) {
d(M_OCHCOMMON+ TAG,carLocationInfo)
d(M_OCHCOMMON+ TAG,location)
d(M_OCHCOMMON + TAG, carLocationInfo)
d(M_OCHCOMMON + TAG, location)
}
/**
* 距离站点的距离
*/
private fun distanceWithStartStation():String{
if (startStationInfo.stationPoint==null) {
private fun distanceWithStartStation(): String {
if (startStationInfo.stationPoint == null) {
return "请选择起始结束站点"
}
val currentPoint = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()
@@ -575,9 +618,9 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
startStationInfo.stationPoint!!.longitude,
startStationInfo.stationPoint!!.latitude
)
return if(distance <= OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE){
return if (distance <= OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE) {
""
}else{
} else {
"距离起始站点过远:${distance}"
}
}
@@ -644,24 +687,24 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
* 返回空为可启动自驾
* 返回其他不可启动自驾 返回为原因
*/
fun canStartAutopilot(lineId: Long?):String{
if(lineId==null){
fun canStartAutopilot(lineId: Long?): String {
if (lineId == null) {
return "请确认线路ID"
}
try {
if(mRoutePoints.isNullOrEmpty()){
if (mRoutePoints.isNullOrEmpty()) {
// 判断距离起始站的距离
// 没有收到过轨迹
// 收到过轨迹 且底盘没有在自动驾驶中(没办法申请轨迹) 自驾中重启底盘的形式
val redCatche = TrajectoryCache.redCatche(lineId.toString())
return if(redCatche.isNullOrEmpty()){
return if (redCatche.isNullOrEmpty()) {
distanceWithStartStation()
}else{
} else {
distanceWithTrajectory(redCatche)
}
}else {
} else {
return if (this.lineId == 0L || this.lineId == null) {
distanceWithTrajectory(mRoutePoints!!)
} else {
@@ -673,7 +716,7 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
}
}
}
}catch (e:Exception){
} catch (e: Exception) {
e.printStackTrace()
}
return ""