diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt index ebdd6568b3..6b248d04fe 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt @@ -36,7 +36,6 @@ import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager import com.mogo.och.common.module.manager.StopSideStatusManager import com.mogo.och.common.module.manager.devicemanage.callback.LightAirconditionDoorCallback -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.common.module.wigets.toast.ToastCharterUtils @@ -113,7 +112,7 @@ class BusPassengerPresenter(view: MainFragment?) : } OrderStatusEnum.OrderNoLine -> { - CallerOrderListenerManager.invokeOrderRemoval(); + CallerOrderListenerManager.invokeOrderRemoval() showNoviceGuidance() } @@ -191,7 +190,7 @@ class BusPassengerPresenter(view: MainFragment?) : UiThreadHandler.post { when (actionStatus) { StopSideStatusManager.Status.NOSTART -> { - ToastCharterUtils.showToastShort(errorInfo?:"") + ToastCharterUtils.showToastShort(errorInfo ?: "") } StopSideStatusManager.Status.START -> { @@ -216,6 +215,8 @@ class BusPassengerPresenter(view: MainFragment?) : StopSideStatusManager.Status.EndingFaile -> { ToastCharterUtils.showToastShort("车辆系统繁忙,请稍后再试") } + + else -> {} } } } @@ -265,60 +266,65 @@ class BusPassengerPresenter(view: MainFragment?) : private fun getStationMiddleTrajectory( trajectoryList: MutableList, sites: List - ):MutableList { - if(sites.size<2){ - var temp:LatLng + ): MutableList { + if (sites.size < 2 || trajectoryList.isEmpty()) { + var temp: LatLng val indexPoint = mutableListOf() trajectoryList.forEach { - temp = LatLng(it.latitude,it.longitude) + temp = LatLng(it.latitude, it.longitude) indexPoint.add(temp) } return indexPoint } - val firstStation = sites.first() - val firstMogoLocation = MogoLocation() - firstMogoLocation.longitude = firstStation.GcjLon!! - firstMogoLocation.latitude = firstStation.GcjLat!! - val firstNearestPointInfo = CoordinateCalculateRouteUtil.getNearestPointInfo( - 0, - trajectoryList.size, trajectoryList.toList(), firstMogoLocation, 2 - ) + var minIndex = Int.MAX_VALUE + var maxIndex = 0 - val lastStation = sites.last() - val lastMogoLocation = MogoLocation() - lastMogoLocation.longitude = lastStation.GcjLon!! - lastMogoLocation.latitude = lastStation.GcjLat!! - val lastNearestPointInfo = CoordinateCalculateRouteUtil.getNearestPointInfo( - firstNearestPointInfo.first, - trajectoryList.size, trajectoryList.toList(), firstMogoLocation, 2 - ) + sites.forEach { + val firstMogoLocation = MogoLocation() + firstMogoLocation.longitude = it.GcjLon!! + firstMogoLocation.latitude = it.GcjLat!! + val firstNearestPointInfo = CoordinateCalculateRouteUtil.getNearestPointInfo( + 0, + trajectoryList.size, + trajectoryList.toList(), + firstMogoLocation, + 2, + useHeading = false + ) - val firstIndex = if(firstNearestPointInfo.third>15){ - 0 - }else{ - if(firstNearestPointInfo.second==true){// 最近点是下一个点 - firstNearestPointInfo.first - }else{// 最近点是上一个点 - firstNearestPointInfo.first+1 + val temp = + when (firstNearestPointInfo.second) { + true -> {// 最近点是下一个点 + firstNearestPointInfo.first + } + false -> {// 最近点是上一个点 + firstNearestPointInfo.first + 1 + } + else -> { + -1 + } + } + if (temp > 0) { + if (minIndex > temp) { + minIndex = temp + } + if (maxIndex < temp) { + maxIndex = temp + } } } - - val lastIndex = if(lastNearestPointInfo.third>15){ - trajectoryList.size-1 - }else{ - if(firstNearestPointInfo.second==true){// 最近点是下一个点 - firstNearestPointInfo.first-1 - }else{// 最近点是上一个点 - firstNearestPointInfo.first - } + if (minIndex > trajectoryList.size) { + minIndex = 0 } - - val subList = trajectoryList.subList(firstIndex, lastIndex) + if (maxIndex == 0) { + maxIndex = trajectoryList.size - 1 + } + val subList = trajectoryList.subList(minIndex, maxIndex) val indexPoint = mutableListOf() - var temp:LatLng + var temp: LatLng subList.forEach { - temp = LatLng(it.latitude,it.longitude) + temp = LatLng(it.latitude, it.longitude) indexPoint.add(temp) } return indexPoint @@ -328,8 +334,9 @@ class BusPassengerPresenter(view: MainFragment?) : fun drawStationInfo(sites: List) { val stationsList: MutableList = mutableListOf() val stationsNameList: MutableList = mutableListOf() - val stationIcon = BitmapFactory.decodeResource(context.resources, R.drawable.charter_p_map_staton_icon) - var checkMarkView:SiteMarkerBean?=null + val stationIcon = + BitmapFactory.decodeResource(context.resources, R.drawable.charter_p_map_staton_icon) + var checkMarkView: SiteMarkerBean? = null sites.forEach { stationsList.add( SiteMarkerBean( @@ -354,7 +361,7 @@ class BusPassengerPresenter(view: MainFragment?) : ) } } - if(checkMarkView!=null) { + if (checkMarkView != null) { stationsNameList.add(checkMarkView!!) } mView?.drawOverMapViewStation(stationsList, stationsNameList)