[6.5.0] feat: 增加 他车逆行 marker 绘制;

This commit is contained in:
aibingbing
2024-07-07 14:07:36 +08:00
parent ddfea72710
commit 45e41e7c82
2 changed files with 54 additions and 52 deletions

View File

@@ -327,45 +327,49 @@ internal object V2NIdentifyDrawer: IEventDismissListener {
V2XBizTrace.onAck(TAG, mapOf("other_retrograde_vehicle" to "event == null"), true)
return@Callback true
}
val eventLocation = when (event.gnssType) {
0 -> CoordinateTransform.GCJ02ToWGS84(event.longitude, event.latitude)
else -> arrayOf(event.longitude, event.latitude)
}
val carLocation = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
val distance = CoordinateUtils.calculateLineDistance(carLocation.longitude, carLocation.latitude, eventLocation[0], eventLocation[1])
if (distance > 150) {
Logger.i(TAG, "other_retrograde_vehicle --> distance > 150")
V2XBizTrace.onAck(TAG, mapOf("other_retrograde_vehicle" to "distance > 150"), true)
return@Callback true
}
val isDriver = AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)
val newEventId = "other_retrograde_vehicle_${event.eventId}_${event.timestamp}_${event.longitude}_${event.latitude}"
val cameraIp = if(TextUtils.isEmpty(event.exts)) ""
else (GsonUtils.fromJson(event.exts, Map::class.java)["cameraIp"])?:""
// 弹事件框
CallerRoadV2NEventWindowListenerManager.showLiveVideo(
newEventId,
event.timestamp,
EventTypeEnumNew.getUpdateIconRes(EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType),
String.format(EventTypeEnumNew.getAlarmContent(EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType), distance.toInt()),
isDriver,
cameraIp.toString(),
event.longitude,
event.latitude)
// 高精地图绘制-添加
//TODO
EventDismissManager.addEvent(
TAG,
EventDismissBean(
AiRoadMarker.aiMakers.getOrPut(event.eventId) {
AiRoadMarker()
}.apply {
val eventLocation = when (event.gnssType) {
0 -> CoordinateTransform.GCJ02ToWGS84(event.longitude, event.latitude)
else -> arrayOf(event.longitude, event.latitude)
}
val carLocation = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
val distance = CoordinateUtils.calculateLineDistance(carLocation.longitude, carLocation.latitude, eventLocation[0], eventLocation[1])
if (distance > 150) {
Logger.i(TAG, "other_retrograde_vehicle --> distance > 150")
V2XBizTrace.onAck(TAG, mapOf("other_retrograde_vehicle" to "distance > 150"), true)
return@Callback true
}
val isDriver = AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)
val newEventId = "other_retrograde_vehicle_${event.eventId}_${event.timestamp}_${event.longitude}_${event.latitude}"
val cameraIp = if(TextUtils.isEmpty(event.exts)) ""
else (GsonUtils.fromJson(event.exts, Map::class.java)["cameraIp"])?:""
// 弹事件框
CallerRoadV2NEventWindowListenerManager.showLiveVideo(
newEventId,
event.timestamp,
EventTypeEnumNew.getUpdateIconRes(EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType),
String.format(EventTypeEnumNew.getAlarmContent(EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType), distance.toInt()),
isDriver,
cameraIp.toString(),
event.longitude,
event.latitude,
150,
20,
-1,
event.targetIdsList.joinToString(separator = ",")
)
)
event.latitude)
}.also {
it.marker(Marker(event.eventId, EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType, event.longitude, event.latitude, 0.0), drawMarker = true, false, isHighFrequency = true)
}
// EventDismissManager.addEvent(
// TAG,
// EventDismissBean(
// newEventId,
// event.longitude,
// event.latitude,
// 150,
// 20,
// -1,
// event.targetIdsList.joinToString(separator = ",")
// )
// )
} else if (msg.what == MSG_WHAT_DRAW_GREEN_WAVE) {
val data = msg.obj as? V2nCrossSpeed ?: return@Callback true
val destX = data.lng
@@ -601,11 +605,10 @@ internal object V2NIdentifyDrawer: IEventDismissListener {
private fun drawOtherRetrogradeVehicle(event: MessagePad.Event) {
Logger.i("V2NIdentifyDrawer", "---drawOtherRetrogradeVehicle --- :${event.toString()}, [${FunctionBuildConfig.v2nMainSwitch}, ${FunctionBuildConfig.isNewV2NData}]")
// if (V2NCarTypeCheck.verifyCarType() && FunctionBuildConfig.v2nMainSwitch && FunctionBuildConfig.isNewV2NData) {
//
// }
handler.removeMessages(MSG_WHAT_DRAW_OTHER_RETROGRADE_VEHICLE)
handler.sendMessage(Message.obtain(handler, MSG_WHAT_DRAW_OTHER_RETROGRADE_VEHICLE, event))
if (V2NCarTypeCheck.verifyCarType() && FunctionBuildConfig.v2nMainSwitch && FunctionBuildConfig.isNewV2NData) {
handler.removeMessages(MSG_WHAT_DRAW_OTHER_RETROGRADE_VEHICLE)
handler.sendMessage(Message.obtain(handler, MSG_WHAT_DRAW_OTHER_RETROGRADE_VEHICLE, event))
}
}
private fun drawGreenWave(crossSpeed: V2nCrossSpeed) {
@@ -664,19 +667,17 @@ internal object V2NIdentifyDrawer: IEventDismissListener {
override fun onEventDismissByDistance(event: EventDismissBean) {
Logger.i(TAG, "onEventDismissByDistance --> ${event.toString()}")
if (event.eventId.startsWith("other_retrograde_vehicle")) {
V2XBizTrace.onAck(TAG, mapOf("other_retrograde_vehicle" to "onEventDismissByDistance"), true)
val targetIds = event.exts.split(",")
//TODO 高精地图绘制 移除
}
// if (event.eventId.startsWith("other_retrograde_vehicle")) {
// V2XBizTrace.onAck(TAG, mapOf("other_retrograde_vehicle" to "onEventDismissByDistance"), true)
// val targetIds = event.exts.split(",")
// }
}
override fun onEventDismissByExpired(event: EventDismissBean) {
Logger.i(TAG, "onEventDismissByExpired --> ${event.toString()}")
if (event.eventId.startsWith("other_retrograde_vehicle")) {
V2XBizTrace.onAck(TAG, mapOf("other_retrograde_vehicle" to "onEventDismissByExpired"), true)
val targetIds = event.exts.split(",")
//TODO 高精地图绘制 移除
}
// if (event.eventId.startsWith("other_retrograde_vehicle")) {
// V2XBizTrace.onAck(TAG, mapOf("other_retrograde_vehicle" to "onEventDismissByExpired"), true)
// val targetIds = event.exts.split(",")
// }
}
}