From a67661f0c299fdbb915de56730636007ae6ac20c Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 28 Aug 2023 19:35:14 +0800 Subject: [PATCH] =?UTF-8?q?[5.0.0]=20[charter]=20[=E5=AF=BB=E6=89=BE?= =?UTF-8?q?=E6=9C=80=E8=BF=91=E7=9A=84=E7=AB=99=E7=82=B9=E6=9B=B4=E6=96=B0?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/model/CharterPassengerModel.kt | 45 ++++++++++++------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt index 753f9410eb..ed21b9ba9d 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt @@ -52,10 +52,10 @@ import io.reactivex.Observable import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers import mogo.telematics.pad.MessagePad -import mogo_msg.MogoReportMsg import java.util.* import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.TimeUnit +import kotlin.math.max /** * Created on 2022/3/31 @@ -798,49 +798,64 @@ object CharterPassengerModel { } CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let { // 仅计算 距离最近的站点middle 附近5个坐标的夹角 + // middle middle-1 + var middleDegree1 = 0 + // middle middle+1 + var middleDegree2 = 0 + // middle-1 middle-2 + var middleDegree3 = 0 + // middle+1 middle+2 + var middleDegree4 = 0 + if (middle - 1 >= 0) { - val degree = CoordinateCalculateRouteUtil.getDegree( + middleDegree1 = CoordinateCalculateRouteUtil.getDegree( it.longitude, it.latitude, data.get(middle).GcjLon!!, data.get(middle).GcjLat!!, data.get(middle - 1).GcjLon!!, data.get(middle - 1).GcjLat!!, ) - if (degree > 90) { - return Pair(middle, false) - } } if (middle + 1 < data.size) { - val degree = CoordinateCalculateRouteUtil.getDegree( + middleDegree2 = CoordinateCalculateRouteUtil.getDegree( it.longitude, it.latitude, data.get(middle + 1).GcjLon!!, data.get(middle + 1).GcjLat!!, data.get(middle).GcjLon!!, data.get(middle).GcjLat!!, ) - if (degree > 90) { - return Pair(middle + 1, false) - } } if (middle - 2 >= 0) { - val degree = CoordinateCalculateRouteUtil.getDegree( + middleDegree3 = CoordinateCalculateRouteUtil.getDegree( it.longitude, it.latitude, data.get(middle - 1).GcjLon!!, data.get(middle - 1).GcjLat!!, data.get(middle - 2).GcjLon!!, data.get(middle - 2).GcjLat!!, ) - if (degree > 90) { - return Pair(middle - 1, false) - } } if (middle + 2 < data.size) { - val degree = CoordinateCalculateRouteUtil.getDegree( + middleDegree4 = CoordinateCalculateRouteUtil.getDegree( it.longitude, it.latitude, data.get(middle + 2).GcjLon!!, data.get(middle + 2).GcjLat!!, data.get(middle + 1).GcjLon!!, data.get(middle + 1).GcjLat!!, ) - if (degree > 90) { + } + val max1 = max(middleDegree1, middleDegree2) + val max2 = max(middleDegree3, middleDegree4) + d(M_BUS_P + TAG, "角度1:$middleDegree1---角度2:$middleDegree2--角度3:$middleDegree3----角度4:$middleDegree4") + when (max(max1, max2)) { + middleDegree1 -> { + return Pair(middle, false) + } + middleDegree2 -> { + return Pair(middle + 1, false) + } + middleDegree3 -> { + return Pair(middle - 1, false) + } + middleDegree4 -> { return Pair(middle + 2, false) } + else -> {} } }