[坐标转换、30m改为15m到站]
This commit is contained in:
yangyakun
2023-03-16 10:53:49 +08:00
parent 4671190133
commit 06a74bb1d1
5 changed files with 37 additions and 19 deletions

View File

@@ -8,7 +8,7 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getMapUIC
import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager.stepInDayMode
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.bus.passenger.constant.BusPassengerConst
import com.mogo.och.bus.passenger.constant.CharterPassengerConst
import com.mogo.och.bus.passenger.ui.MainFragment
/**
@@ -16,7 +16,7 @@ import com.mogo.och.bus.passenger.ui.MainFragment
*
* Created on 2022/3/29
*/
@Route(path = BusPassengerConst.PATH)
@Route(path = CharterPassengerConst.PATH)
class MogoOCHBusPassenger : IMogoOCH {
private var mActivity: FragmentActivity? = null
private var mContainerId = 0

View File

@@ -16,6 +16,8 @@ data class OrderInfoResponse(val data: OrderInfo?) : BaseData() {
val siteName: String?,//站点名称
val wgs84Lat: Double?,
val wgs84Lon: Double?,
var gcj02Lat: Double?,
var gcj02Lon: Double?,
val startTime: Long?,//开始时间
val endTime: Long?,//结束时间
val passengerPhone: String?,//乘客手机号

View File

@@ -31,7 +31,8 @@ import com.mogo.och.bus.passenger.callback.IBusPassengerADASStatusCallback
import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback
import com.mogo.och.bus.passenger.callback.IDistanceTimeCallback
import com.mogo.och.bus.passenger.callback.IOrderChangeCallback
import com.mogo.och.bus.passenger.constant.BusPassengerConst.Companion.Charter_AVERAGE_SPEED
import com.mogo.och.bus.passenger.constant.CharterPassengerConst
import com.mogo.och.bus.passenger.constant.CharterPassengerConst.Companion.Charter_AVERAGE_SPEED
import com.mogo.och.bus.passenger.net.BusPassengerModelLoopManager
import com.mogo.och.bus.passenger.net.BusPassengerServiceManager
import com.mogo.och.bus.passenger.utils.VoiceFocusManager
@@ -359,8 +360,15 @@ object CharterPassengerModel {
CallerLogger.d(M_BUS_P+TAG,"设置车模")
}
if(this.orderInfo?.siteId!=orderData.siteId){
val siteGCJ = CoordinateTransform.WGS84ToGCJ02(order.wgs84Lon, order.wgs84Lat)
this.carTypeChageListener?.setEndStationCallBack(order.siteId,order.siteName,siteGCJ[0],siteGCJ[1])
val coordinateConverterWgsToGcj =
CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(
mContext,
order.wgs84Lon!!,
order.wgs84Lat!!
)
order.gcj02Lon = coordinateConverterWgsToGcj.longitude
order.gcj02Lat = coordinateConverterWgsToGcj.latitude
this.carTypeChageListener?.setEndStationCallBack(order.siteId,order.siteName,order.gcj02Lon!!,order.gcj02Lat!!)
}
this.orderInfo?.orderNo?.let {
if(it!=orderData.orderNo){
@@ -381,15 +389,22 @@ object CharterPassengerModel {
//计算终点距离
mLocation?.let { currentInfo ->
// 两点之间的距离
val siteGCJ = CoordinateTransform.WGS84ToGCJ02(order.wgs84Lon, order.wgs84Lat)
val coordinateConverterWgsToGcj =
CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(
mContext,
order.wgs84Lon!!,
order.wgs84Lat!!
)
order.gcj02Lon = coordinateConverterWgsToGcj.longitude
order.gcj02Lat = coordinateConverterWgsToGcj.latitude
val calculateLineDistance = CoordinateUtils.calculateLineDistance(
currentInfo.longitude,
currentInfo.latitude,
siteGCJ[0],
siteGCJ[1]
order.gcj02Lon!!,
order.gcj02Lat!!
)
// 小于30m到站
if (calculateLineDistance < 30) {
// 小于15m到站
if (calculateLineDistance < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE) {
arriveDest()
}
}
@@ -621,9 +636,8 @@ object CharterPassengerModel {
//要前往的站在轨迹中对应的点
var nextRouteIndex: Int = mRoutePoints.size - 1
orderInfo?.let {
val wgS84ToGCJ02 = CoordinateTransform.WGS84ToGCJ02(it.wgs84Lon, it.wgs84Lat)
nextRouteIndex = CoordinateCalculateRouteUtil.getArrivedPointIndexNew(
currentRouteIndex, mRoutePoints, wgS84ToGCJ02[0], wgS84ToGCJ02[1]
currentRouteIndex, mRoutePoints, it.gcj02Lon!!, it.gcj02Lat!!
)
}
var lastSumLength = 0f
@@ -688,7 +702,7 @@ object CharterPassengerModel {
siteInfo.GcjLon!!,
siteInfo.GcjLat!!
)
if (calculateLineDistance < 30) {
if (calculateLineDistance < CharterPassengerConst.MIN_DISTANCE_STATION) {
return if (index + 1 <= data.size - 1) {
// <可用站点标,是否靠近>
Pair(index + 1, true)

View File

@@ -3,7 +3,7 @@ package com.mogo.och.bus.passenger.net
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
import com.mogo.och.bus.passenger.bean.LoopInfo
import com.mogo.och.bus.passenger.constant.BusPassengerConst
import com.mogo.och.bus.passenger.constant.CharterPassengerConst
import com.mogo.och.bus.passenger.utils.RxUtils
import io.reactivex.Observable
import io.reactivex.disposables.Disposable
@@ -57,8 +57,8 @@ object BusPassengerModelLoopManager {
}
CallerLogger.i(M_BUS_P + TAG, "startQueryDriverLineLoop()")
mQueryLineDisposable = Observable.interval(
BusPassengerConst.LOOP_DELAY,
BusPassengerConst.LOOP_LINE_1S, TimeUnit.MILLISECONDS
CharterPassengerConst.LOOP_DELAY,
CharterPassengerConst.LOOP_LINE_1S, TimeUnit.MILLISECONDS
)
.map { aLong: Long -> aLong + 1 }
.subscribeOn(Schedulers.io())

View File

@@ -1,11 +1,9 @@
package com.mogo.och.bus.passenger.constant
import com.mogo.commons.debug.DebugConfig
/**
* Created on 2021/12/6
*/
class BusPassengerConst {
class CharterPassengerConst {
companion object {
// OCH arouter 路由path
@@ -23,5 +21,9 @@ class BusPassengerConst {
// 订单总里程
const val BUS_SP_KEY_ORDER_SUM_DIS = "BUS_SP_KEY_ORDER_SUM_DIS"
// 到达起始点围栏
const val ARRIVE_AT_START_STATION_DISTANCE = 15 //围栏由20m改为50m 再次改为15m
const val MIN_DISTANCE_STATION = 30 //站点选择小于30m 不能选
}
}