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 9dc79238ae..a6f3aa85bf 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 @@ -432,7 +432,9 @@ public class BusPassengerModel { //要前往的站在轨迹中对应的点 int nextRouteIndex = CoordinateCalculateRouteUtil.getArrivedPointIndex(mRoutePoints ,stationNext.getGcjLon(),stationNext.getGcjLat()); - mTwoStationsRouts.addAll(mRoutePoints.subList(currentRouteIndex,nextRouteIndex)); + if (currentRouteIndex < nextRouteIndex){ //如果找到的next在起点的轨迹前面,直接舍弃这个轨迹,不显示 + mTwoStationsRouts.addAll(mRoutePoints.subList(currentRouteIndex,nextRouteIndex)); + } } }else { //只有两个站点的时候整个路线就是两个站点之间的轨迹 mTwoStationsRouts.clear(); diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java index a663e20563..f4ba291f5c 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java @@ -57,8 +57,8 @@ public class BusPassengerMapDirectionView private int mCurrentIndex = -1; private int zoomLevel = 13; - private List mCoordinatesLatLng = new ArrayList<>(); - private List mLinePointsLatLng = new ArrayList<>(); + private List mCoordinatesLatLng = new ArrayList<>(); //站点坐标数据 + private List mLinePointsLatLng = new ArrayList<>(); //轨迹坐标数据 private Polyline mPolyline; private CameraUpdate mCameraUpdate; private Context mContext; @@ -197,7 +197,7 @@ public class BusPassengerMapDirectionView mCarMarker.setToTop(); } - if (mLinePointsLatLng.size() > 1){ + if (mLinePointsLatLng.size() > 0){ //圈定地图显示范围 //存放经纬度 LatLngBounds.Builder boundsBuilder = new LatLngBounds.Builder(); @@ -208,12 +208,13 @@ public class BusPassengerMapDirectionView //第二个参数为四周留空宽度 mAMap.moveCamera(CameraUpdateFactory.newLatLngBoundsRect(boundsBuilder.build(),100,100,100,100)); - }else { - //设置希望展示的地图缩放级别 - CameraPosition cameraPosition = new CameraPosition.Builder() - .target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).zoom(zoomLevel).build(); - mAMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); } +// else { +// //设置希望展示的地图缩放级别 +// CameraPosition cameraPosition = new CameraPosition.Builder() +// .target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).zoom(zoomLevel).build(); +// mAMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); +// } } @@ -368,7 +369,7 @@ public class BusPassengerMapDirectionView mLinePointsLatLng.clear(); mLinePointsLatLng.addAll(routeLineLatLngs); - if (mCoordinatesLatLng.size() > 0 && mCurrentIndex != currentIndex) { + if (mLinePointsLatLng.size() > 0 && mCurrentIndex != currentIndex) { if (mAMap != null && mLineMarkers.size() > 0) { mCurrentIndex = currentIndex; for (int i = 0; i < mLineMarkers.size(); i++) { diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java index ae4a8b9713..40ea27c44a 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java @@ -10,4 +10,5 @@ import java.util.List; */ public interface IRefreshBusStationsCallback { void refreshBusStations(String lineName,List stationList, int currentStation, int nextStation, boolean isArrived); + void clearBusStationsMarkers(); } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index 645690253e..7278755f1a 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -317,14 +317,19 @@ public class BusFragment extends BaseBusTabFragment hideSlidePanel(); hidPanel(); //移除起点终点 - if (null != startStation) { - setOrRemoveMapMaker(false, BusConst.BUS_START_MAP_MAKER, startStation.getLat() - , startStation.getLon(),R.raw.star_marker); - } - if (null != endStation) { - setOrRemoveMapMaker(false, BusConst.BUS_END_MAP_MAKER, endStation.getLat() - , endStation.getLon(),R.raw.end_marker); - } + clearBusStationsMarkers(); + } + } + + public void clearBusStationsMarkers(){ + CallerLogger.INSTANCE.d(M_BUS + TAG,"clearBusStationsMarkers()"); + if (null != startStation) { + setOrRemoveMapMaker(false, BusConst.BUS_START_MAP_MAKER, startStation.getLat() + , startStation.getLon(),R.raw.star_marker); + } + if (null != endStation) { + setOrRemoveMapMaker(false, BusConst.BUS_END_MAP_MAKER, endStation.getLat() + , endStation.getLon(),R.raw.end_marker); } } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java index 030b25eb34..54e2773b9e 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java @@ -819,6 +819,12 @@ public class BusOrderModel { BusTrajectoryManager.getInstance().syncTrajectoryInfo(); } + public void clearBusStationDatas(){ + if (refreshBusStationsCallback != null){ + refreshBusStationsCallback.clearBusStationsMarkers(); + } + } + /** * 根据订单状态、获取下一站靠站的的站点 * diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java index c2f6fb57da..bafd9f298b 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java @@ -53,6 +53,7 @@ public class BusLinePresenter extends Presenter implements IB @Override public void onChangeLineIdSuccess() { + BusOrderModel.getInstance().clearBusStationDatas(); runOnUIThread(() -> mView.onChangeLineIdSuccess()); } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index 6ea7f617c4..15b161f032 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -137,6 +137,11 @@ public class BusPresenter extends Presenter } } + @Override + public void clearBusStationsMarkers() { + runOnUIThread(() -> mView.clearBusStationsMarkers()); + } + private void functionDemoModeChange() { // CallerLogger.INSTANCE.d(M_BUS + "BusOrderModel ="," functionDemoModeChange ="+mCurrentStation); if (FunctionBuildConfig.isDemoMode diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index d073bbc7c5..873e27282b 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -866,6 +866,7 @@ public class TaxiModel { //清除订单信息 public void clearCurrentOCHOrder() { + startOrStopCalculateRouteInfo(false); mCurrentOCHOrder = null; TaxiTrajectoryManager.getInstance().syncTrajectoryInfo(); SharedPrefsMgr.getInstance(mContext).remove(TaxiConst.SP_KEY_OCH_TAXI_ORDER); @@ -1415,7 +1416,7 @@ public class TaxiModel { TaxiModelLoopManager.getInstance().startCalculateRouteInfoLoop(); } else { mRoutePoints.clear(); - TaxiModelLoopManager.getInstance().stopCalculateRouteInfLoop(); + TaxiModelLoopManager.getInstance().stopCalculateRouteInfoLoop(); } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModelLoopManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModelLoopManager.java index 63f281cacf..3a771ca3ae 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModelLoopManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModelLoopManager.java @@ -166,9 +166,9 @@ public class TaxiModelLoopManager { }); } - public void stopCalculateRouteInfLoop() { + public void stopCalculateRouteInfoLoop() { if (mCalculateRouteDisposable != null) { - CallerLogger.INSTANCE.i(M_TAXI + TAG, "stopCalculateRouteInfLoop()"); + CallerLogger.INSTANCE.i(M_TAXI + TAG, "stopCalculateRouteInfoLoop()"); mCalculateRouteDisposable.dispose(); mCalculateRouteDisposable = null; } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java index 305a7372c8..af84d17295 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java @@ -13,6 +13,8 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; import com.mogo.commons.debug.DebugConfig; @@ -381,8 +383,15 @@ public class TaxiFragment extends BaseTaxiTabFragment(TaxiLoginDialogFragment.newInstance()); } @@ -394,7 +403,8 @@ public class TaxiFragment extends BaseTaxiTabFragment { taxiLoginDialogFragment.clear(); mPresenter.queryLoginStatus(); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt index e9cd5ce680..1697eee8e7 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt @@ -230,7 +230,7 @@ class TaxiLoginDialogFragment : MvpDialogFragment { } } - if (polygons.size() > 1) { - if (overlayManager == null) { - overlayManager = MogoOverlayManager.getInstance(); - } - MogoPolylineOptions options = new MogoPolylineOptions(); - List colors = new ArrayList<>(); - colors.add(Color.argb(204, 237, 172, 21)); - colors.add(Color.argb(0, 255, 255, 255)); - options.colorValues(colors); - List points = new ArrayList<>(); - for (int i = 0; i < polygons.size(); i++) { - Pair p = polygons.get(i); - points.add(new MogoLatLng(p.second, p.first)); - } - if (points.size() > 2) { - points.add(points.get(0)); - } - options.points(points); - options.useGradient(true); - options.useFacade(true); - options.setGps(false); - options.width(5f); - options.zIndex(75000f); - options.maxIndex(800000f); - polyline = overlayManager.addPolyline(options); - polyline.setVisible(true); - } +// if (polygons.size() > 1) { +// if (overlayManager == null) { +// overlayManager = MogoOverlayManager.getInstance(); +// } +// MogoPolylineOptions options = new MogoPolylineOptions(); +// List colors = new ArrayList<>(); +// colors.add(Color.argb(204, 237, 172, 21)); +// colors.add(Color.argb(0, 255, 255, 255)); +// options.colorValues(colors); +// List points = new ArrayList<>(); +// for (int i = 0; i < polygons.size(); i++) { +// Pair p = polygons.get(i); +// points.add(new MogoLatLng(p.second, p.first)); +// } +// if (points.size() > 2) { +// points.add(points.get(0)); +// } +// options.points(points); +// options.useGradient(true); +// options.useFacade(true); +// options.setGps(false); +// options.width(5f); +// options.zIndex(75000f); +// options.maxIndex(800000f); +// polyline = overlayManager.addPolyline(options); +// polyline.setVisible(true); +// } } } }