From f23be5d1086538d541281b84d8b093f95c545c47 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期一, 23 九月 2024 17:08:43 +0800
Subject: [PATCH] save

---
 app/src/main/java/com/future/driver/ui/main/TripActivity.kt |   68 ++++++++++++++++++++++++++-------
 1 files changed, 53 insertions(+), 15 deletions(-)

diff --git a/app/src/main/java/com/future/driver/ui/main/TripActivity.kt b/app/src/main/java/com/future/driver/ui/main/TripActivity.kt
index ac4b014..b2a19e2 100644
--- a/app/src/main/java/com/future/driver/ui/main/TripActivity.kt
+++ b/app/src/main/java/com/future/driver/ui/main/TripActivity.kt
@@ -5,11 +5,13 @@
 import android.os.CountDownTimer
 import android.os.Handler
 import android.os.Looper
+import android.util.Log
 import android.view.Gravity
 import android.view.View
 import cn.sinata.xldutils.utils.*
 import com.amap.api.location.AMapLocationListener
 import com.amap.api.maps.AMap
+import com.amap.api.maps.AMapUtils
 import com.amap.api.maps.model.LatLng
 import com.amap.api.maps.model.Marker
 import com.amap.api.maps.model.Polyline
@@ -40,6 +42,7 @@
 import io.reactivex.android.schedulers.AndroidSchedulers
 import io.reactivex.disposables.Disposable
 import io.reactivex.schedulers.Schedulers
+import kotlinx.android.synthetic.main.activity_change_one.*
 import kotlinx.android.synthetic.main.activity_select_start_point.*
 import kotlinx.android.synthetic.main.activity_trip.*
 import kotlinx.android.synthetic.main.activity_trip.map_view
@@ -55,7 +58,6 @@
 
 
 class TripActivity : MyBaseActivity() {
-
     /***
      * //    流程操作状态(3=开始出发预约点,4=到达预约点,5=开始服务,6=服务结束)
      * 页面一共4个marker 1:预约地点 2:起点 3终点 4:司机点
@@ -78,6 +80,8 @@
     var markerLine: Polyline? = null
     lateinit var aMap: AMap
     lateinit var orderBean: OrderBean
+
+    var autoExitNavi = false //是否自动退出过,只自动退出一次即可
 
     private val rxPermissions by lazy {
         RxPermissions(this)
@@ -443,25 +447,43 @@
                         changeCarFive(false)
                     }
                 }
+                if (it.data.orderState == 3){
+                    val calculateLineDistance = AMapUtils.calculateLineDistance(
+                        carMarker!!.position,
+                        LatLng(it.data.startLat, it.data.startLon)
+                    )
+                    if (calculateLineDistance<80&&!autoExitNavi){
+                        EventBus.getDefault().post(BaseEvent(BaseEvent.EXIT_NAVI))
+                    }
+                }
             }
         })
     }
 
     private fun changeCarThree(isMove: Boolean) {
         if (makeMarker != null && carMarker != null) {
-            AMapKit.initRouteLine(
-                this,
-                makeMarker!!.position,
-                carMarker!!.position,
-                object : (MutableList<LatLng>, Float, Long) -> Unit {
-                    override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) {
-                        var view = creatCarView("距预约点" + AMapKit.getTance(p2))
-                        carMarker!!.setIcon(getIcon(view))
-                        addline(p1)
-                        if (isMove)
-                            moveCamera(aMap, makeMarker!!.position, carMarker!!.position)
-                    }
-                })
+            val calculateLineDistance = AMapUtils.calculateLineDistance(makeMarker!!.position, carMarker!!.position)
+            Log.e("mmp","两点直线距离:${calculateLineDistance}m")
+            if (calculateLineDistance>100) //大于100米才规划路径
+                AMapKit.initRouteLine(
+                    this,
+                    makeMarker!!.position,
+                    carMarker!!.position,
+                    object : (MutableList<LatLng>, Float, Long) -> Unit {
+                        override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) {
+                            var view = creatCarView("距预约点" + AMapKit.getTance(p2))
+                            carMarker!!.setIcon(getIcon(view))
+                            addline(p1)
+                            if (isMove)
+                                moveCamera(aMap, makeMarker!!.position, carMarker!!.position)
+                        }
+                    })
+            else{
+                var view = creatCarView("距预约点" + AMapKit.getTance(calculateLineDistance))
+                carMarker!!.setIcon(getIcon(view))
+                if (isMove)
+                    moveCamera(aMap, makeMarker!!.position, carMarker!!.position)
+            }
         }
     }
 
@@ -509,6 +531,7 @@
     private fun showUi(orderBean: OrderBean?) {
         orderBean?.let {
             tv_name.text = orderBean.data.nickName
+            tv_passenger_phone.text = orderBean.data.phone
             tv_car_num.text = it.data.historyNum.toString() + "次乘车"
             tv_time.text = it.data.travelTime_
             tv_start_address.text = it.data.startAddress
@@ -637,7 +660,7 @@
                 carMarker?.isVisible = true
                 changeCarFive(true)
                 setTitleText("服务中")
-                slide_btn.changeButtonText("送达该乘客")
+                slide_btn.changeButtonText("乘客已到达")
                 if (!MyApplication.isRecording){
                     EventBus.getDefault().post(BaseEvent(BaseEvent.START_RECORD))
                 }
@@ -686,8 +709,23 @@
             handler?.removeCallbacksAndMessages(null)
         }
         closeTimeStart()
+        map_view.onDestroy()
     }
 
+    override fun onPause() {
+        super.onPause()
+        map_view.onPause()
+    }
+
+    override fun onLowMemory() {
+        super.onLowMemory()
+        map_view.onLowMemory()
+    }
+
+    override fun onResume() {
+        super.onResume()
+        map_view.onResume()
+    }
 
     private fun addline(allLine: MutableList<LatLng>) {
         closeLine()

--
Gitblit v1.7.1