From c83aee091b414d2f60964dde7eb3735447440cda Mon Sep 17 00:00:00 2001 From: renwj Date: Tue, 14 Mar 2023 19:39:11 +0800 Subject: [PATCH 1/4] =?UTF-8?q?[M2]=20=E4=BF=AE=E6=AD=A3=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/charter/manager/CharterAnalyticsManager.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java index a3e54cc950..7418517a4d 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java +++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java @@ -64,8 +64,7 @@ public class CharterAnalyticsManager { } private void removeWaitingCallback() { - if (startAutopilotRunnable != null && - UiThreadHandler.getsUiHandler().hasCallbacks(startAutopilotRunnable)) { + if (startAutopilotRunnable != null) { UiThreadHandler.removeCallbacks(startAutopilotRunnable); } } From dcfa6fe52b75be631d42c24b932239fc31754fb7 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 27 Dec 2022 19:42:40 +0800 Subject: [PATCH 2/4] =?UTF-8?q?[m2]=E5=8E=BB=E6=8E=89=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CallerChassisLocationGCJ02ListenerManager.kt | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt index c7f1bbd69b..4b62d2a1bf 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt @@ -112,13 +112,7 @@ object CallerChassisLocationGCJ02ListenerManager : CallerBase Date: Tue, 14 Mar 2023 19:41:19 +0800 Subject: [PATCH 3/4] =?UTF-8?q?[m2]=E6=96=B0=E5=A2=9E=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E6=B5=8B=E8=AF=95=E6=95=B0=E6=8D=AE=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/assets/planningDataTest.txt | 1 + .../core/function/utils/PlanningDataUtils.kt | 50 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 core/function-impl/mogo-core-function-map/src/main/assets/planningDataTest.txt create mode 100644 core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/utils/PlanningDataUtils.kt diff --git a/core/function-impl/mogo-core-function-map/src/main/assets/planningDataTest.txt b/core/function-impl/mogo-core-function-map/src/main/assets/planningDataTest.txt new file mode 100644 index 0000000000..a40201868c --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/assets/planningDataTest.txt @@ -0,0 +1 @@ +全局路径规划的GSON格式的轨迹点数据放这里,然后使用PlanningDataUtils工具类解析一下 \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/utils/PlanningDataUtils.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/utils/PlanningDataUtils.kt new file mode 100644 index 0000000000..2c66808897 --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/utils/PlanningDataUtils.kt @@ -0,0 +1,50 @@ +package com.mogo.eagle.core.function.utils + +import android.content.Context +import mogo.telematics.pad.MessagePad +import org.json.JSONArray +import org.json.JSONException +import java.io.IOException +import java.io.InputStream + +object PlanningDataUtils { + + @JvmStatic + fun test(context: Context?): List { + if (context == null) return emptyList() + val list: MutableList = ArrayList() + val jsonStr = getAssetsString(context, "planningDataTest.txt") + try { + val jsonElements = JSONArray(jsonStr) + for (i in 0 until jsonElements.length()) { + val s = jsonElements.getJSONObject(i) + val builder = MessagePad.Location.newBuilder() + builder.latitude = s.getDouble("latitude") + builder.longitude = s.getDouble("longitude") + list.add(builder.build()) + } + } catch (e: JSONException) { + e.printStackTrace() + } + return list + } + + private fun getAssetsString(context: Context, fileName: String): String { + var buffer: ByteArray? = null + var istream: InputStream? = null + try { + istream = context.resources.assets.open(fileName) + buffer = ByteArray(istream.available()) + istream.read(buffer) + } catch (e: IOException) { + e.printStackTrace() + } finally { + try { + istream?.close() + } catch (e: IOException) { + e.printStackTrace() + } + } + return String(buffer!!) + } +} \ No newline at end of file From e152bcaf052cfdec9f7e994843de0390b40ab738 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 14 Mar 2023 22:40:05 +0800 Subject: [PATCH 4/4] =?UTF-8?q?[sweeper]=20[=E9=87=8D=E7=BD=AE=E8=B7=9D?= =?UTF-8?q?=E7=A6=BB+5=E5=88=86=E9=92=9F=E5=80=92=E8=AE=A1=E6=97=B6?= =?UTF-8?q?=E5=8F=98=E5=8C=96+=E8=AE=A1=E7=AE=97=E7=AB=99=E7=82=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/model/CharterPassengerModel.kt | 77 +++++++++++++++---- .../presenter/BusPassengerPresenter.kt | 1 + .../utils/CoordinateCalculateRouteUtil.java | 14 ++++ 3 files changed, 75 insertions(+), 17 deletions(-) diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt index 95e9090546..2c877e78c9 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt @@ -7,7 +7,6 @@ import android.os.Build import com.mogo.commons.AbsMogoApplication import com.mogo.commons.module.intent.IMogoIntentListener import com.mogo.commons.module.intent.IntentManager -import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLine @@ -49,8 +48,6 @@ import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg import system_master.SystemStatusInfo import io.reactivex.Observable -import io.reactivex.Observer -import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers import java.util.TreeMap @@ -365,6 +362,12 @@ object CharterPassengerModel { val siteGCJ = CoordinateTransform.WGS84ToGCJ02(order.wgs84Lon, order.wgs84Lat) this.carTypeChageListener?.setEndStationCallBack(order.siteId,order.siteName,siteGCJ[0],siteGCJ[1]) } + this.orderInfo?.orderNo?.let { + if(it!=orderData.orderNo){ + // orderNo 变后清理 + SharedPrefs.getInstance(mContext).remove("${it}$min5Speak") + } + } if (order.lineId == null || order.lineId == 0L || order.siteId == null || order.siteId == 0L) { // 去选线路和站点 setOrderStatus(OrderStatusEnum.OrderNoLine) @@ -523,9 +526,9 @@ object CharterPassengerModel { .subscribe{millisUntilFinished-> if (millisUntilFinished <= 360L) { orderInfo?.let { - if (broadcastList.get("${it}$min5Speak") == null - || broadcastList.get("${it}$min5Speak") == false - ) { + val isPlayed = SharedPrefs.getInstance(mContext) + .getBoolean("${it.orderNo}$min5Speak", false) + if (!isPlayed) { //发送 通知 OCHSocketMessageManager.pushAppOperationalMsgBox( DateTimeUtil.getCurrentTimeStamp(), @@ -537,7 +540,8 @@ object CharterPassengerModel { }else{ VoiceManager.surplus5min() } - broadcastList["${it}$min5Speak"] = true + CallerLogger.d(M_BUS_P+ TAG,"倒计时5分钟${it.orderNo}") + SharedPrefs.getInstance(mContext).putBoolean("${it.orderNo}$min5Speak",true) } } } @@ -699,19 +703,58 @@ object CharterPassengerModel { for (mutableEntry in distanceMap) { CallerLogger.d(M_BUS_P+ TAG,"距离:${mutableEntry.key}-----第几个站点${mutableEntry.value}") } - var first = -1 + var middle = -1 if (distanceMap.size >= 2) { for (mutableEntry in distanceMap) { - if (first >= 0) { - // <可用站点标,是否靠近> - var max = Math.max(first, mutableEntry.value)//正常点位 - if(max==data.size-1){// 车辆在终点和起点中间时 - max = Math.min(first, mutableEntry.value) - } - return Pair(max, false) - } - first = mutableEntry.value + middle = mutableEntry.value + break } + if(middle==0){ + return Pair(1, false) + } + mLocation?.let { + if(middle-1>=0) { + val degree = 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 - 1, false) + } + } + if(middle+1 90) { + return Pair(middle, false) + } + } + if(middle-2>=0) { + val degree = 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 - 2, false) + } + } + if(middle+2 90) { + return Pair(middle + 1, false) + } + } + } + } return Pair(0, false) diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt index d39f78c6a9..dc4229291e 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt @@ -155,6 +155,7 @@ class BusPassengerPresenter(view: MainFragment?) : override fun setOrderTimeCallBack(timeInSecond: Long) { if(timeInSecond<0){ + setDistanceAndTime("0", "KM") setOrderTime("--","--") return } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java index 9ba9f943fd..df36d2f672 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java @@ -326,4 +326,18 @@ public class CoordinateCalculateRouteUtil { Logger.d("calculateRouteSumLength", "点:" + currentIndex + "-------是最近的点------ "); return currentIndex; } + + public static int getDegree(double vertexPointX, double vertexPointY, double point0X, double point0Y, double point1X, double point1Y) { + //向量的点乘 + double vector = (point0X - vertexPointX) * (point1X - vertexPointX) + (point0Y - vertexPointY) * (point1Y - vertexPointY); + //向量的模乘 + double sqrt = Math.sqrt( + (Math.abs((point0X - vertexPointX) * (point0X - vertexPointX)) + Math.abs((point0Y - vertexPointY) * (point0Y - vertexPointY))) + * (Math.abs((point1X - vertexPointX) * (point1X - vertexPointX)) + Math.abs((point1Y - vertexPointY) * (point1Y - vertexPointY))) + ); + //反余弦计算弧度 + double radian = Math.acos(vector / sqrt); + //弧度转角度制 + return (int) (180 * radian / Math.PI); + } }