| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | |
| | | |
| | | class TripActivity : MyBaseActivity() { |
| | | |
| | | /*** |
| | | * // 流程操作状态(3=开始出发预约点,4=到达预约点,5=开始服务,6=服务结束) |
| | | * 页面一共4个marker 1:预约地点 2:起点 3终点 4:司机点 |
| | |
| | | var markerLine: Polyline? = null |
| | | lateinit var aMap: AMap |
| | | lateinit var orderBean: OrderBean |
| | | |
| | | var autoExitNavi = false //是否自动退出过,只自动退出一次即可 |
| | | |
| | | private val rxPermissions by lazy { |
| | | RxPermissions(this) |
| | |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | 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 |
| | |
| | | carMarker?.isVisible = true |
| | | changeCarFive(true) |
| | | setTitleText("服务中") |
| | | slide_btn.changeButtonText("送达该乘客") |
| | | slide_btn.changeButtonText("乘客已到达") |
| | | if (!MyApplication.isRecording){ |
| | | EventBus.getDefault().post(BaseEvent(BaseEvent.START_RECORD)) |
| | | } |
| | |
| | | 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() |