From 8d017063ac638b9fbb6aac3224012645f430760d Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 15 Apr 2022 13:47:32 +0800 Subject: [PATCH] =?UTF-8?q?[driver=20passenger=20]=201=E3=80=81bus?= =?UTF-8?q?=E4=B9=98=E5=AE=A2=E5=B1=8F=E5=B0=8F=E5=9C=B0=E5=9B=BE=E8=B5=B7?= =?UTF-8?q?=E7=BB=88=E7=82=B9=E6=98=BE=E7=A4=BAbug=EF=BC=9B=E8=B7=AF?= =?UTF-8?q?=E7=BA=BF=E8=BF=87=E9=95=BF=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= =?UTF-8?q?=202=E3=80=81=E8=A7=A3=E5=86=B3bus=E5=8F=B8=E6=9C=BA=E5=B1=8F?= =?UTF-8?q?=E7=AB=99=E7=82=B9=E8=BF=87=E9=95=BF=E6=98=BE=E7=A4=BA=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/BusPassengerMapDirectionView.java | 30 ++++++++++------ .../ui/BusPassengerRouteFragment.java | 35 ++++++++++++++++--- .../main/res/layout/bus_p_route_fragment.xml | 3 +- .../src/main/res/layout/fragment_och_bus.xml | 10 ++++-- 4 files changed, 61 insertions(+), 17 deletions(-) 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 9b5319ec9b..f7055ae50b 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 @@ -14,7 +14,6 @@ import androidx.annotation.Nullable; import com.amap.api.maps.AMap; import com.amap.api.maps.CameraUpdate; import com.amap.api.maps.CameraUpdateFactory; -import com.amap.api.maps.CoordinateConverter; import com.amap.api.maps.TextureMapView; import com.amap.api.maps.UiSettings; import com.amap.api.maps.model.BitmapDescriptorFactory; @@ -26,7 +25,6 @@ import com.amap.api.maps.model.Marker; import com.amap.api.maps.model.MarkerOptions; import com.amap.api.maps.model.Polyline; import com.amap.api.maps.model.PolylineOptions; -import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener; import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; @@ -265,6 +263,10 @@ public class BusPassengerMapDirectionView } } + public void clearCoordinatesLatLng(){ + mCoordinatesLatLng.clear(); + } + public void onCreateView(Bundle savedInstanceState) { if (mAMapNaviView != null) { mAMapNaviView.onCreate(savedInstanceState); @@ -296,26 +298,34 @@ public class BusPassengerMapDirectionView mCoordinatesLatLng.addAll(latLngs); } - public void setLinePointMarkerAndDraw(List routeLineLatLngs, int currentIndex) { - mLinePointsLatLng.clear(); + public void clearLineMarkers(){ + for (int i =0; i< mLineMarkers.size();i++){ + mLineMarkers.get(i).setVisible(false); + } mLineMarkers.clear(); - mLinePointsLatLng.addAll(routeLineLatLngs); - for (int i = 0; i < mLinePointsLatLng.size(); i++) { + } + + public void setLineMarkersAndDraw(List lineineLatLngs){ + clearLineMarkers(); + for (int i = 0; i < lineineLatLngs.size(); i++) { Marker mWayPointMarker = mAMap.addMarker(new MarkerOptions() .icon(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_view_dir_way_point))); mLineMarkers.add(mWayPointMarker); } - if (mCoordinatesLatLng.size() == 0) { for (int i = 0; i < mLineMarkers.size(); i++) { - mLineMarkers.get(i).setPosition(mLinePointsLatLng.get(i)); + mLineMarkers.get(i).setPosition(lineineLatLngs.get(i)); mLineMarkers.get(i).setVisible(true); } mCurrentIndex = -1; - return; } + } - if (mCurrentIndex != currentIndex) { + public void setLinePointMarkerAndDraw(List routeLineLatLngs, int currentIndex) { + mLinePointsLatLng.clear(); + mLinePointsLatLng.addAll(routeLineLatLngs); + + if (mCoordinatesLatLng.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-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java index dab37fe048..72668ea93d 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java @@ -42,7 +42,7 @@ public class BusPassengerRouteFragment extends private BusPassengerTrafficLightView mTrafficLightView; private List mStationsList = new ArrayList<>(); - private List mRoutePointsList = new ArrayList<>(); + private List mLinePointsList = new ArrayList<>(); private TextView mSpeedTv; private ConstraintLayout mNoLineInfoView; @@ -176,6 +176,18 @@ public class BusPassengerRouteFragment extends } } + public void setLineMarkers(List list) { + if (mMapDirectionView != null) { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + mMapDirectionView.setLineMarkersAndDraw(list); + + } + }); + } + } + public void changeOperationStatus(boolean status) { if (status) { mNoLineInfoView.setVisibility(View.GONE); @@ -207,19 +219,34 @@ public class BusPassengerRouteFragment extends mStationsList.clear(); mStationsList.addAll(stations); mAdapter.notifyDataSetChanged(); + + if (currentStationIndex == 0 && isArrived){ //到达始发站且并未出发, 恢复站点marker 清楚路径 清空路径点 + clearPolyline(); + if (mMapDirectionView != null) mMapDirectionView.clearCoordinatesLatLng(); + } + if (stations.size() > 0){ updateWayPointList(stations,currentStationIndex); } } private void updateWayPointList(List stations,int currentStationIndex) { - mRoutePointsList.clear(); + mLinePointsList.clear(); for (int i = 0; i< stations.size(); i++) {//站点集合 LatLng latLng = BPCoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(getContext() ,stations.get(i).getLon(),stations.get(i).getLat());// lat,lon - mRoutePointsList.add(latLng); + mLinePointsList.add(latLng); + } + setLineMarkers(mLinePointsList); + + if (mMapDirectionView != null) { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + mMapDirectionView.setLinePointMarkerAndDraw(mLinePointsList,currentStationIndex); + } + }); } - mMapDirectionView.setLinePointMarkerAndDraw(mRoutePointsList,currentStationIndex); } @Override diff --git a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_route_fragment.xml b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_route_fragment.xml index 31cab964c2..dc85f5d3b6 100644 --- a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_route_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_route_fragment.xml @@ -107,7 +107,7 @@ diff --git a/OCH/mogo-och-bus/src/main/res/layout/fragment_och_bus.xml b/OCH/mogo-och-bus/src/main/res/layout/fragment_och_bus.xml index 558429d9ec..0c307b9d24 100644 --- a/OCH/mogo-och-bus/src/main/res/layout/fragment_och_bus.xml +++ b/OCH/mogo-och-bus/src/main/res/layout/fragment_och_bus.xml @@ -75,13 +75,16 @@ @@ -114,12 +117,15 @@