From 626cf48e47dda4a1d7aaeb5cd8d0d4b48334927c Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Tue, 20 Dec 2022 17:46:06 +0800 Subject: [PATCH] =?UTF-8?q?[2.13.0]=20=E8=BD=A8=E8=BF=B9=E5=89=A9=E4=BD=99?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/model/BusPassengerModel.java | 21 +++++++++++++------ .../utils/CoordinateCalculateRouteUtil.java | 4 ++-- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index c9fab03d3d..6782aa6abd 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -441,10 +441,10 @@ public class BusPassengerModel { int nextRouteIndex = CoordinateCalculateRouteUtil.getArrivedPointIndexNew(currentRouteIndex ,mRoutePoints ,stationNext.getGcjLon(),stationNext.getGcjLat()); - CallerLogger.INSTANCE.d(M_BUS_P + TAG, "currentRouteIndex = " + currentRouteIndex + CallerLogger.INSTANCE.d(M_BUS_P + TAG, "轨迹排查==currentRouteIndex = " + currentRouteIndex + ", nextRouteIndex = " + nextRouteIndex); if (currentRouteIndex < nextRouteIndex){ //如果找到的next在起点的轨迹前面,直接舍弃这个轨迹,不显示 - mTwoStationsRouts.addAll(mRoutePoints.subList(currentRouteIndex,nextRouteIndex)); + mTwoStationsRouts.addAll(mRoutePoints.subList(currentRouteIndex,nextRouteIndex + 1)); } } }else { //只有两个站点的时候整个路线就是两个站点之间的轨迹 @@ -476,16 +476,25 @@ public class BusPassengerModel { } for (List lastPoints: lastPointsMap.values()){ + CallerLogger.INSTANCE.d(M_BUS_P + TAG, "轨迹排查==lastPoints.size() = " + lastPoints.size()); float lastSumLength = 0; if (lastPoints.size() == 1){ //只是最后一个点,计算当前位置和最后一个点的距离 - lastSumLength = CoordinateUtils.calculateLineDistance( - lastPoints.get(0).getLongitude(), lastPoints.get(0).getLatitude(), - mLocation.getLongitude(), mLocation.getLatitude()); + if (mNextStationIndex <= mStations.size()-1 && mNextStationIndex >= 0){ + BusPassengerStation stationNext = mStations.get(mNextStationIndex); + lastSumLength = CoordinateUtils.calculateLineDistance( + stationNext.getGcjLon(), stationNext.getGcjLat(), + mLocation.getLongitude(), mLocation.getLatitude()); + }else { + lastSumLength = CoordinateUtils.calculateLineDistance( + lastPoints.get(0).getLongitude(), lastPoints.get(0).getLatitude(), + mLocation.getLongitude(), mLocation.getLatitude()); + } + }else { lastSumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(lastPoints); } double lastTime = lastSumLength / BusPassengerConst.BUS_AVERAGE_SPEED * 3.6 ; //秒 - CallerLogger.INSTANCE.d(M_BUS_P + TAG, "lastSumLength = " + lastSumLength); + CallerLogger.INSTANCE.d(M_BUS_P + TAG, "轨迹排查==lastSumLength = " + lastSumLength); if (mAutopilotPlanningCallback != null){ mAutopilotPlanningCallback.routePlanningToNextStationChanged((long)lastSumLength,(long) lastTime); } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java index abd7c4b8b1..8b6fec020a 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java @@ -126,7 +126,7 @@ public class CoordinateCalculateRouteUtil { if (currentIndex == mRoutePoints.size()-1){ latePoints.add(mRoutePoints.get(currentIndex)); }else if(currentIndex < mRoutePoints.size()-1){ - latePoints.addAll(mRoutePoints.subList(currentIndex,mRoutePoints.size()-1)); + latePoints.addAll(mRoutePoints.subList(currentIndex,mRoutePoints.size())); } return latePoints; } @@ -263,7 +263,7 @@ public class CoordinateCalculateRouteUtil { // LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); latePoints.add(location); }else { - List locations = mRoutePoints.subList(currentIndex,mRoutePoints.size()-1); + List locations = mRoutePoints.subList(currentIndex,mRoutePoints.size()); for (MogoLocation location: locations) { // LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); latePoints.add(location);