From e0c62ca7737fa744de80ab2ca728d8f8c7a2b5a0 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 24 Jul 2024 12:18:44 +0800 Subject: [PATCH] =?UTF-8?q?[6.5.0]=20[fix]=20[=E5=B0=8F=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E7=AE=97=E6=B3=95=E4=BF=AE=E6=94=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/utils/CoordinateCalculateRouteUtil.kt | 14 ++++++++++++++ .../taxi/passenger/ui/simplemap/SimpleMapView.kt | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt index e119eed607..dfca958168 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt @@ -578,6 +578,20 @@ object CoordinateCalculateRouteUtil { return 360-bearing } + fun getHeadingAngleTemp(locationLongitude: Double, locationLatitude: Double, + nextPointLongitude: Double, nextPointLatitude: Double): Double { + val lat1Rad = Math.toRadians(locationLatitude) + val lat2Rad = Math.toRadians(nextPointLatitude) + val lon1Rad = Math.toRadians(locationLongitude) + val lon2Rad = Math.toRadians(nextPointLongitude) + + val y = sin(lon2Rad - lon1Rad) * cos(lat2Rad) + val x = cos(lat1Rad) * sin(lat2Rad) - sin(lat1Rad) * cos(lat2Rad) * cos(lon2Rad - lon1Rad) + + val bearing = Math.toDegrees(atan2(y, x)) + return (bearing + 360) % 360 + } + /** diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/simplemap/SimpleMapView.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/simplemap/SimpleMapView.kt index 2dfb06723c..32d0ddd34c 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/simplemap/SimpleMapView.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/simplemap/SimpleMapView.kt @@ -420,7 +420,7 @@ class SimpleMapView : View, SimpleMapViewModel.SimpleMapCallback { val nextPointList = mutableListOf() nextLineData.clear() nextList.forEachIndexed { index, currentPoint -> - val headingAngle = CoordinateCalculateRouteUtil.getHeadingAngle( + val headingAngle = CoordinateCalculateRouteUtil.getHeadingAngleTemp( carLocation.longitude, carLocation.latitude, currentPoint.location.longitude, @@ -492,7 +492,7 @@ class SimpleMapView : View, SimpleMapViewModel.SimpleMapCallback { val prePointList = mutableListOf() preLineData.clear() preList.forEachIndexed { index, currentPoint -> - val headingAngle = CoordinateCalculateRouteUtil.getHeadingAngle( + val headingAngle = CoordinateCalculateRouteUtil.getHeadingAngleTemp( carLocation.longitude, carLocation.latitude, currentPoint.location.longitude,