diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt index 17c355e5dc..d37707a03f 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt @@ -112,7 +112,7 @@ class AiRoadMarker { marker.poi_lon, marker.poi_lat, location.heading.toFloat(), - -300f, call = { result -> + -200f, call = { result -> result?.let { V2XBizTrace.onAck("$TAG -marker-3-l2:", it) l2 = result @@ -156,8 +156,14 @@ class AiRoadMarker { val location = V2XEventManager.getFirstLocationInCross() Log.d(TAG, "l2: location -> $location") if (location != null) { - val angle = DrivingDirectionUtils.getDegreeOfCar2Poi2(location.longitude, location.latitude, it.longitude, it.latitude, location.heading) - angle <= 90 + val carLocation = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + if (DrivingDirectionUtils.getDegreeOfCar2Poi2(location.longitude, location.latitude, carLocation.longitude, carLocation.latitude, location.heading) > 90) { + //处理同一个路口不同车道调头,这种极端情况 + true + } else { + val angle = DrivingDirectionUtils.getDegreeOfCar2Poi2(location.longitude, location.latitude, it.longitude, it.latitude, location.heading) + angle <= 90 + } } else { true }