diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java index 48d78c9713..818294839d 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java @@ -332,6 +332,11 @@ class MogoOCHTaxiModel { private void judgeStationStation( Location location ) { OCHTaxiOrderResponse.OCHTaxiStation station = mCurrentOCHOrder.drivingRoutes.get( 0 );//起点 double distance = CoordinateUtils.calculateLineDistance( station.lon, station.lat, location.getLongitude(), location.getLatitude() ); + if ( distance > 5 ) { + distance = CoordinateUtils.calculateLineDistance( station.lon, station.lat, + MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon(), + MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat() ); + } if ( distance <= 5 ) { mIsArriveAtStartStation = true; unregisterCarLocationListener(); diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java index 11f031a7e3..8b5b351b7d 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java @@ -144,7 +144,11 @@ public interface IMogoADASController extends IProvider { int getAutopilotStatus(); - void mockOchStatus(int state, String reason); + void mockOchStatus( int state, String reason ); + + double getLastLat(); + + double getLastLon(); void cancelAutopilot(); } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index 49505ab9ed..89ba0d3bca 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -13,6 +13,7 @@ import com.mogo.commons.context.ContextHolderUtil; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.network.SubscribeImpl; import com.mogo.commons.network.Utils; +import com.mogo.map.MogoLatLng; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.MogoModule; @@ -33,6 +34,7 @@ import com.mogo.service.adas.entity.ADASRecognizedResult; import com.mogo.service.adas.entity.ADASWarnMessage; import com.mogo.service.adas.entity.AdasOCHData; import com.mogo.service.impl.singleton.SingletonsHolder; +import com.mogo.service.network.IMogoNetwork; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.utils.TipToast; import com.mogo.utils.UiThreadHandler; @@ -348,16 +350,22 @@ public class MogoADASController implements IMogoADASController { } logWriter.write( ownerCarStateInfo ); ADASCarStateInfo stateInfo = GsonUtil.objectFromJson( ownerCarStateInfo, ADASCarStateInfo.class ); + try { + mLastLon = stateInfo.getValues().getLon(); + mLastLat = stateInfo.getValues().getLat(); + } catch ( Exception e ) { + e.printStackTrace(); + } if ( mMogoAdasCarDataCallback != null ) { mMogoAdasCarDataCallback.onAdasCarDataCallback( stateInfo ); } } @Override - public void notifyAutopilotState(AdasAIDLAutopilotStateModel autopilotStateModel) { - Logger.d(TAG, "notifyAutopilotState: " + autopilotStateModel); - if (mAdasOCHCallback != null) { - mAdasOCHCallback.onStateChanged(autopilotStateModel.getState(), autopilotStateModel.getReason()); + public void notifyAutopilotState( AdasAIDLAutopilotStateModel autopilotStateModel ) { + Logger.d( TAG, "notifyAutopilotState: " + autopilotStateModel ); + if ( mAdasOCHCallback != null ) { + mAdasOCHCallback.onStateChanged( autopilotStateModel.getState(), autopilotStateModel.getReason() ); } } }; @@ -365,6 +373,17 @@ public class MogoADASController implements IMogoADASController { } } + private double mLastLon; + private double mLastLat; + + public double getLastLat() { + return mLastLat; + } + + public double getLastLon() { + return mLastLon; + } + private boolean useTestSn = false; private void invokeShowADASOperation() { @@ -675,7 +694,7 @@ public class MogoADASController implements IMogoADASController { int status = IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE; try { status = AutopilotServiceManage.getInstance().autopilotStateCall().getState(); - } catch (Exception e) { + } catch ( Exception e ) { e.printStackTrace(); } return status; @@ -683,10 +702,10 @@ public class MogoADASController implements IMogoADASController { private int mockState = -2; @Override - public void mockOchStatus(int state, String reason) { - if(state == -1){ - if (mAdasOCHCallback != null) { - mAdasOCHCallback.onArriveAt(new AdasOCHData(1, 1d, 1d)); + public void mockOchStatus( int state, String reason ) { + if ( state == -1 ) { + if ( mAdasOCHCallback != null ) { + mAdasOCHCallback.onArriveAt( new AdasOCHData( 1, 1d, 1d ) ); } }else { mockState = state;