[charter]
[选中站点放到最上方]
This commit is contained in:
yangyakun
2023-09-19 17:33:46 +08:00
parent 9480fd65a3
commit 84d8d3e6b5
2 changed files with 36 additions and 27 deletions

View File

@@ -225,7 +225,7 @@ object CharterPassengerModel {
mRoutePoints = latLngModels
}
fun cleanRoutePoints() {
private fun cleanRoutePoints() {
mRoutePoints = null
}
@@ -317,10 +317,7 @@ object CharterPassengerModel {
* 启动订单轮训
*/
private fun startOrderLoop() {
BizLoopManager.setLoopFunction(
TAGORDER,
LoopInfo(3, ::queryOrder)
)
BizLoopManager.setLoopFunction(TAGORDER, LoopInfo(3, ::queryOrder))
d(M_BUS_P + TAG, "启动订单轮询")
}
@@ -488,7 +485,7 @@ object CharterPassengerModel {
}
private fun carStatusLogic(data: BusinessStatusResponse.Result) {
if (data.orderNo != null && data.orderNo.isNotEmpty()) {// 订单进行中
if (!data.orderNo.isNullOrEmpty()) {// 订单进行中
return
}
// 结束路距计算 订单结束了
@@ -661,12 +658,11 @@ object CharterPassengerModel {
}
}
// 启动轨迹计算
var lastSumLength = 0f
val mogoLocation = MogoLocation()
mogoLocation.longitude = order.gcj02Lon!!
mogoLocation.latitude = order.gcj02Lat!!
lastSumLength = CoordinateUtils.calculateLineDistance(
var lastSumLength = CoordinateUtils.calculateLineDistance(
it.longitude,
it.latitude,
mogoLocation.longitude,
@@ -749,7 +745,7 @@ object CharterPassengerModel {
* <可用站点标,是否靠近>
*/
fun calculateCurrentSite(data: List<SiteInfoResponse.SiteInfo>): Pair<Int, Boolean> {
var distanceMap: MutableMap<Float, Int> = TreeMap()
val distanceMap: MutableMap<Float, Int> = TreeMap()
// 计算所有点的距离
data.forEachIndexed { index, siteInfo ->
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let { currentInfo ->
@@ -771,21 +767,21 @@ object CharterPassengerModel {
data[index + 1].GcjLon!!,
data[index + 1].GcjLat!!
)
if (calculateLineDistanceNext < CharterPassengerConst.MIN_DISTANCE_STATION) {
return if (calculateLineDistanceNext < CharterPassengerConst.MIN_DISTANCE_STATION) {
if (index + 2 <= data.size - 1) {
return Pair(index + 2, true)// 下下个站点
Pair(index + 2, true)// 下下个站点
} else {
return Pair(-1, true)// 距离最后一个站点小于30m
Pair(-1, true)// 距离最后一个站点小于30m
}
} else {
return Pair(index + 1, true)// 下个站点
Pair(index + 1, true)// 下个站点
}
} else {
// 所有点都不可用用
return Pair(-1, true)// 距离最后一个站点小于30m
}
}
distanceMap.put(calculateLineDistance, index)
distanceMap[calculateLineDistance] = index
}
}
for (mutableEntry in distanceMap) {
@@ -818,29 +814,29 @@ object CharterPassengerModel {
if (middle - 1 >= 0) {
middleDegree1 = CoordinateCalculateRouteUtil.getDegree(
it.longitude, it.latitude,
data.get(middle).GcjLon!!, data.get(middle).GcjLat!!,
data.get(middle - 1).GcjLon!!, data.get(middle - 1).GcjLat!!,
data[middle].GcjLon!!, data[middle].GcjLat!!,
data[middle - 1].GcjLon!!, data[middle - 1].GcjLat!!,
)
}
if (middle + 1 < data.size) {
middleDegree2 = CoordinateCalculateRouteUtil.getDegree(
it.longitude, it.latitude,
data.get(middle + 1).GcjLon!!, data.get(middle + 1).GcjLat!!,
data.get(middle).GcjLon!!, data.get(middle).GcjLat!!,
data[middle + 1].GcjLon!!, data[middle + 1].GcjLat!!,
data[middle].GcjLon!!, data[middle].GcjLat!!,
)
}
if (middle - 2 >= 0) {
middleDegree3 = 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!!,
data[middle - 1].GcjLon!!, data[middle - 1].GcjLat!!,
data[middle - 2].GcjLon!!, data[middle - 2].GcjLat!!,
)
}
if (middle + 2 < data.size) {
middleDegree4 = CoordinateCalculateRouteUtil.getDegree(
it.longitude, it.latitude,
data.get(middle + 2).GcjLon!!, data.get(middle + 2).GcjLat!!,
data.get(middle + 1).GcjLon!!, data.get(middle + 1).GcjLat!!,
data[middle + 2].GcjLon!!, data[middle + 2].GcjLat!!,
data[middle + 1].GcjLon!!, data[middle + 1].GcjLat!!,
)
}
val max1 = max(middleDegree1, middleDegree2)
@@ -1044,8 +1040,6 @@ object CharterPassengerModel {
/**
* 开启自动驾驶
*
* @param isRestart
*/
fun startAutopilot() {
if (!OCHAdasAbilityManager.getInstance().autopilotAbilityStatus) {

View File

@@ -261,8 +261,8 @@ class BusPassengerPresenter(view: MainFragment?) :
fun drawStationInfo(sites: List<SiteInfoResponse.SiteInfo>) {
val stationsList: MutableList<SiteMarkerBean> = mutableListOf()
val stationsNameList: MutableList<SiteMarkerBean> = mutableListOf()
val stationIcon =
BitmapFactory.decodeResource(context.resources, R.drawable.map_staton_icon)
val stationIcon = BitmapFactory.decodeResource(context.resources, R.drawable.map_staton_icon)
var checkMarkView:SiteMarkerBean?=null
sites.forEach {
stationsList.add(
SiteMarkerBean(
@@ -273,7 +273,22 @@ class BusPassengerPresenter(view: MainFragment?) :
)
)
val bitmap = getBitmap(it.siteId!!, it.siteName ?: "", it.isCheck)
stationsNameList.add(SiteMarkerBean(LatLng(it.GcjLat, it.GcjLon), bitmap, 0.0f, 0.2f))
val siteMarkerBean = SiteMarkerBean(
LatLng(it.GcjLat, it.GcjLon),
bitmap,
0.0f,
0.2f
)
if (it.isCheck) {
checkMarkView = siteMarkerBean
} else {
stationsNameList.add(
siteMarkerBean
)
}
}
if(checkMarkView!=null) {
stationsNameList.add(checkMarkView!!)
}
mView?.drawOverMapViewStation(stationsList, stationsNameList)
}