Merge branch 'dev_robotaxi-d-app-module_2130_221116_2.13.0' into 'test_robotaxi-d-app-module_2130_221116_2.13.0.1'

[2.13.0] 修复bus乘客屏小地图偶现站点展示错误

See merge request zhjt/AndroidApp/MoGoEagleEye!467
This commit is contained in:
wangmingjun
2022-12-20 12:48:42 +00:00
6 changed files with 36 additions and 135 deletions

View File

@@ -13,6 +13,5 @@ import mogo.telematics.pad.MessagePad;
public interface IBusPassengerAutopilotPlanningCallback { public interface IBusPassengerAutopilotPlanningCallback {
void routeResult(List<LatLng> models,int haveArrivedIndex); void routeResult(List<LatLng> models,int haveArrivedIndex);
void routePlanningToNextStationChanged(long meters, long timeInSecond); void routePlanningToNextStationChanged(long meters, long timeInSecond);
void setLineMarker(List<LatLng> models);
void updateTotalDistance(); void updateTotalDistance();
} }

View File

@@ -49,7 +49,6 @@ import com.mogo.och.bus.passenger.network.BusPassengerServiceManager;
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager;
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
import com.mogo.och.common.module.utils.ToastUtilsOch;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
@@ -410,7 +409,6 @@ public class BusPassengerModel {
List<MessagePad.Location> routePoints = routeList.getWayPointsList(); List<MessagePad.Location> routePoints = routeList.getWayPointsList();
if (null != routePoints && routePoints.size() > 0){ if (null != routePoints && routePoints.size() > 0){
updateRoutePoints(routePoints); updateRoutePoints(routePoints);
setRouteLineMarker();
startToRouteAndWipe(); startToRouteAndWipe();
} }
} }
@@ -542,17 +540,6 @@ public class BusPassengerModel {
} }
} }
/**
* 设置小地图路径的起终点marker
*/
public void setRouteLineMarker(){
if (mAutopilotPlanningCallback != null && mRoutePoints != null){
List<LatLng> routePoints = CoordinateCalculateRouteUtil
.coordinateConverterLocationToLatLng(mContext,mRoutePoints);
mAutopilotPlanningCallback.setLineMarker(routePoints);
}
}
/** /**
* 开始轮询计算剩余里程和时间 * 开始轮询计算剩余里程和时间
* @param isStart * @param isStart

View File

@@ -158,11 +158,6 @@ public class BaseBusPassengerPresenter extends Presenter<BusPassengerRouteFragme
runOnUIThread(() -> mView.updateRoutePlanningToNextStation(meters, timeInSecond)); runOnUIThread(() -> mView.updateRoutePlanningToNextStation(meters, timeInSecond));
} }
@Override
public void setLineMarker(List<LatLng> models) {
runOnUIThread(() -> mView.setLineMarker(models));
}
@Override @Override
public void updateTotalDistance() { public void updateTotalDistance() {
runOnUIThread(() -> mView.setProgressBarMax()); runOnUIThread(() -> mView.setProgressBarMax());

View File

@@ -51,10 +51,6 @@ public class BusPassengerMapDirectionView
private TextureMapView mAMapNaviView; private TextureMapView mAMapNaviView;
private AMap mAMap; private AMap mAMap;
private Marker mCarMarker; private Marker mCarMarker;
private Marker mStartMarker;
private Marker mEndMarker;
private int mCurrentIndex = -1;
private List<LatLng> mCoordinatesLatLng = new ArrayList<>(); //轨迹坐标数据 private List<LatLng> mCoordinatesLatLng = new ArrayList<>(); //轨迹坐标数据
private List<LatLng> mLineStationLatLng = new ArrayList<>();//站点坐标数据 private List<LatLng> mLineStationLatLng = new ArrayList<>();//站点坐标数据
@@ -128,10 +124,6 @@ public class BusPassengerMapDirectionView
mCarMarker = mAMap.addMarker(new MarkerOptions() mCarMarker = mAMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_car)) .icon(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_car))
.anchor(0.5f, 0.5f)); .anchor(0.5f, 0.5f));
mStartMarker = mAMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_view_dir_way_point)));
mEndMarker = mAMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_view_dir_end_point)));
mArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow_arrived); mArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow_arrived);
mUnArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow_un_arrive); mUnArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow_un_arrive);
@@ -199,20 +191,16 @@ public class BusPassengerMapDirectionView
//圈定地图显示范围 //圈定地图显示范围
LatLngBounds.Builder boundsBuilder = new LatLngBounds.Builder(); LatLngBounds.Builder boundsBuilder = new LatLngBounds.Builder();
// if (mLineStationLatLng.size() > 0){
// //存放经纬度
// for (int i = 0; i < mLineStationLatLng.size(); i++) {
// boundsBuilder.include(mLineStationLatLng.get(i));
// }
// //第二个参数为四周留空宽度
// }
if (mCoordinatesLatLng.size() > 0){ if (mCoordinatesLatLng.size() > 0){
//存放经纬度 //存放经纬度
for (int i = 0; i < mCoordinatesLatLng.size(); i++) { for (int i = 0; i < mCoordinatesLatLng.size(); i++) {
boundsBuilder.include(mCoordinatesLatLng.get(i)); boundsBuilder.include(mCoordinatesLatLng.get(i));
} }
//第二个参数为四周留空宽度 //第二个参数为四周留空宽度
}else if (mLineStationLatLng.size() > 0){
for (int i = 0; i< mLineStationLatLng.size();i++){
boundsBuilder.include(mLineStationLatLng.get(i));
}
} }
boundsBuilder.include(currentLatLng); boundsBuilder.include(currentLatLng);
@@ -271,33 +259,11 @@ public class BusPassengerMapDirectionView
if (mPolyline != null) { if (mPolyline != null) {
mPolyline.remove(); mPolyline.remove();
} }
if (mStartMarker != null) {
mStartMarker.setVisible(false);
}
if (mEndMarker != null) {
mEndMarker.setVisible(false);
}
} }
@Override @Override
public void setLineMarker() { public void setLineMarker() {
if (mStartMarker != null) {
mStartMarker.setVisible(false);
}
if (mEndMarker != null) {
mEndMarker.setVisible(false);
}
if (mCoordinatesLatLng.size() > 2) {
// 设置开始结束Marker位置
LatLng startLatLng = mCoordinatesLatLng.get(0);
LatLng endLatLng = mCoordinatesLatLng.get(mCoordinatesLatLng.size() - 1);
mStartMarker.setPosition(startLatLng);
mEndMarker.setPosition(endLatLng);
mStartMarker.setVisible(true);
mEndMarker.setVisible(true);
}
} }
public void clearCoordinatesLatLng(){ public void clearCoordinatesLatLng(){
@@ -324,19 +290,12 @@ public class BusPassengerMapDirectionView
if (mAMapNaviView != null) { if (mAMapNaviView != null) {
mAMapNaviView.onPause(); mAMapNaviView.onPause();
} }
mCurrentIndex = -1;
} }
public void onDestroy() { public void onDestroy() {
if (mAMapNaviView != null) { if (mAMapNaviView != null) {
mAMapNaviView.onDestroy(); mAMapNaviView.onDestroy();
} }
mCurrentIndex = -1;
}
public void setCoordinatesLatLng(List<LatLng> latLngs) {
mCoordinatesLatLng.clear();
mCoordinatesLatLng.addAll(latLngs);
} }
public void setCoordinatesLatLng(List<LatLng> latLngs,int haveArrivedIndex) { public void setCoordinatesLatLng(List<LatLng> latLngs,int haveArrivedIndex) {
@@ -348,40 +307,28 @@ public class BusPassengerMapDirectionView
public void clearLineMarkers(){ public void clearLineMarkers(){
for (int i =0; i< mLineMarkers.size();i++){ for (int i =0; i< mLineMarkers.size();i++){
mLineMarkers.get(i).setVisible(false); mLineMarkers.get(i).setVisible(false);
mLineMarkers.get(i).remove();
} }
mLineMarkers.clear(); mLineMarkers.clear();
} }
public void setLineMarkersAndDraw(List<LatLng> stationLatLngs){ public void setLinePointMarkerAndDraw(List<LatLng> mLineStationsList, int currentIndex) {
clearLineMarkers(); clearLineMarkers();
for (int i = 0; i < stationLatLngs.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(stationLatLngs.get(i));
mLineMarkers.get(i).setVisible(true);
}
mCurrentIndex = -1;
}
}
public void setLinePointMarkerAndDraw(List<LatLng> routeLineLatLngs, int currentIndex) {
mLineStationLatLng.clear(); mLineStationLatLng.clear();
mLineStationLatLng.addAll(routeLineLatLngs); mLineStationLatLng.addAll(mLineStationsList);
if (mLineStationLatLng.size() > 0 && mCurrentIndex != currentIndex) { if (mLineStationsList.size() > 0){
if (mAMap != null && mLineMarkers.size() > 0) { for (int i = 0; i < mLineStationsList.size(); i++) {
mCurrentIndex = currentIndex; if (currentIndex == i){
for (int i = 0; i < mLineMarkers.size(); i++) { Marker mEndMarker = mAMap.addMarker(new MarkerOptions()
if (i != currentIndex && i + 1 != currentIndex) { .icon(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_view_dir_end_point)));
mLineMarkers.get(i).setPosition(mLineStationLatLng.get(i)); mEndMarker.setPosition(mLineStationsList.get(i));
mLineMarkers.get(i).setVisible(true); mLineMarkers.add(i,mEndMarker);
} else { }else {
mLineMarkers.get(i).setVisible(false); Marker mStartMarker = mAMap.addMarker(new MarkerOptions()
} .icon(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_view_dir_way_point)));
mStartMarker.setPosition(mLineStationsList.get(i));
mLineMarkers.add(i,mStartMarker);
} }
} }
} }

View File

@@ -26,7 +26,6 @@ import com.mogo.och.bus.passenger.constant.BusPassengerConst;
import com.mogo.och.bus.passenger.presenter.BaseBusPassengerPresenter; import com.mogo.och.bus.passenger.presenter.BaseBusPassengerPresenter;
import com.mogo.och.bus.passenger.ui.layoutmanager.CenterLayoutManager; import com.mogo.och.bus.passenger.ui.layoutmanager.CenterLayoutManager;
import com.mogo.och.bus.passenger.utils.BPRouteDataTestUtils; import com.mogo.och.bus.passenger.utils.BPRouteDataTestUtils;
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
import com.mogo.och.common.module.wigets.MarqueeTextView; import com.mogo.och.common.module.wigets.MarqueeTextView;
import java.util.ArrayList; import java.util.ArrayList;
@@ -46,7 +45,6 @@ public class BusPassengerRouteFragment extends
private BusPassengerTrafficLightView mTrafficLightView; private BusPassengerTrafficLightView mTrafficLightView;
private List<BusPassengerStation> mStationsList = new ArrayList<>(); private List<BusPassengerStation> mStationsList = new ArrayList<>();
private List<LatLng> mLineStationsList = new ArrayList<>();
private TextView mSpeedTv; private TextView mSpeedTv;
private ConstraintLayout mNoLineInfoView; private ConstraintLayout mNoLineInfoView;
@@ -104,12 +102,6 @@ public class BusPassengerRouteFragment extends
@Override @Override
public boolean onLongClick(View v) { public boolean onLongClick(View v) {
BPRouteDataTestUtils.converToRouteData(); BPRouteDataTestUtils.converToRouteData();
UiThreadHandler.postDelayed(new Runnable() {
@Override
public void run() {
updateWayPointList(mStationsList,1);
}
},1000);
return false; return false;
} }
}); });
@@ -156,22 +148,6 @@ public class BusPassengerRouteFragment extends
} }
} }
public void setLineMarker(List<LatLng> latLngList){
if (latLngList.size() > 0) {
if (mMapDirectionView != null) {
mMapDirectionView.setCoordinatesLatLng(latLngList);
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
mMapDirectionView.setLineMarker();
}
});
}
} else {
clearMapView();
}
}
/** /**
* 绘制 * 绘制
* *
@@ -213,18 +189,6 @@ public class BusPassengerRouteFragment extends
} }
} }
public void setLineMarkers(List<LatLng> list) {
if (mMapDirectionView != null) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
mMapDirectionView.setLineMarkersAndDraw(list);
}
});
}
}
public void changeOperationStatus(boolean status) { public void changeOperationStatus(boolean status) {
if (status) { if (status) {
mNoLineInfoView.setVisibility(View.GONE); mNoLineInfoView.setVisibility(View.GONE);
@@ -298,13 +262,13 @@ public class BusPassengerRouteFragment extends
} }
private void updateWayPointList(List<BusPassengerStation> stations,int currentStationIndex) { private void updateWayPointList(List<BusPassengerStation> stations,int currentStationIndex) {
mLineStationsList.clear(); List<LatLng> mLineStationsList = new ArrayList<>();
for (int i = 0; i< stations.size(); i++) {//站点集合 for (int i = 0; i< stations.size(); i++) {//站点集合
LatLng latLng = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(getContext() // LatLng latLng = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(getContext()
,stations.get(i).getLon(),stations.get(i).getLat());// lat,lon // ,stations.get(i).getLon(),stations.get(i).getLat());// lat,lon
LatLng latLng = new LatLng(stations.get(i).getGcjLat(),stations.get(i).getGcjLon());// lat,lon
mLineStationsList.add(latLng); mLineStationsList.add(latLng);
} }
setLineMarkers(mLineStationsList);
if (mMapDirectionView != null) { if (mMapDirectionView != null) {
UiThreadHandler.post(new Runnable() { UiThreadHandler.post(new Runnable() {