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