diff --git a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java index 03c2eb53bd..38da78ba8a 100644 --- a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java +++ b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java @@ -213,7 +213,7 @@ public class SmallMapDirectionView ); Log.d(TAG, "calculateDistance=" + calculateDistance); - if (calculateDistance <= 20) { + if (calculateDistance <= 5) { clearPolyline(); mCoordinatesLatLng.clear(); } diff --git a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java index 6ef5629eb7..cb2010ea96 100644 --- a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java +++ b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java @@ -8,15 +8,22 @@ import android.view.View; import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.commons.mvp.BaseFragment; import com.mogo.eagle.core.data.autopilot.ADASTrajectoryInfo; +import com.mogo.eagle.core.data.autopilot.AutopilotGuardianStatusInfo; import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo; import com.mogo.eagle.core.data.autopilot.AutopilotStationInfo; +import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.constants.MoGoFragmentPaths; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.api.map.smp.IMogoSmallMapProvider; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager; import com.mogo.module.common.MogoApisHandler; import com.mogo.service.adas.IMogoAdasOCHCallback; +import com.mogo.utils.UiThreadHandler; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; @@ -26,7 +33,7 @@ import java.util.List; * @date 2021/5/19 10:50 上午 */ @Route(path = MoGoFragmentPaths.PATH_FRAGMENT_SMP) -public class SmallMapFragment extends BaseFragment implements IMogoSmallMapProvider, IMoGoAutopilotPlanningListener, IMogoAdasOCHCallback { +public class SmallMapFragment extends BaseFragment implements IMogoSmallMapProvider, IMoGoAutopilotPlanningListener, IMogoAdasOCHCallback , IMoGoAutopilotStatusListener { private final String TAG = "SmallMapFragment"; protected SmallMapDirectionView mSmallMapDirectionView; @@ -73,7 +80,12 @@ public class SmallMapFragment extends BaseFragment implements IMogoSmallMapProvi public void drawablePolyline(List coordinates) { if (mSmallMapDirectionView != null) { mSmallMapDirectionView.convert(coordinates); - mSmallMapDirectionView.drawablePolyline(); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + mSmallMapDirectionView.drawablePolyline(); + } + }); } } @@ -133,8 +145,28 @@ public class SmallMapFragment extends BaseFragment implements IMogoSmallMapProvi @Override public void onStateChanged(int state, String reason) { - if (state != IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING) { + + } + + @Override + public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autoPilotStatusInfo) { + if (autoPilotStatusInfo.getControl_pilotmode() != 1){ clearPolyline(); } } + + @Override + public void onAutopilotArriveAtStation(@Nullable AutopilotStationInfo autopilotWayArrive) { + + } + + @Override + public void onAutopilotGuardian(@Nullable AutopilotGuardianStatusInfo guardianInfo) { + + } + + @Override + public void onAutopilotSNRequest() { + + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/MogoRouteOverlayManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/MogoRouteOverlayManager.java index 3998d96c9b..c5d43623e5 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/MogoRouteOverlayManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/MogoRouteOverlayManager.java @@ -25,20 +25,17 @@ import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; -public class MogoRouteOverlayManager implements IMogoCarLocationChangedListener2, IMoGoAutopilotPlanningListener, IMoGoAutopilotStatusListener { +public class MogoRouteOverlayManager implements IMoGoAutopilotPlanningListener, IMoGoAutopilotStatusListener { private static volatile MogoRouteOverlayManager sInstance; private Context mContext; private String TAG = "MogoRouteOverlayManager"; + private String TAG2 = "MogoRouteOverlayManager routes"; private int STATUS_AUTOPILOT = 0;//0 非自动驾驶 ; 1 自动驾驶 private MogoRouteOverlayManager(Context context) { mContext = context; } public void init() { - MogoApisHandler.getInstance() - .getApis() - .getRegisterCenterApi() - .registerCarLocationChangedListener(TAG, this); CallerAutopilotPlanningListenerManager.INSTANCE.addListener(TAG, this); CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, this); } @@ -54,34 +51,6 @@ public class MogoRouteOverlayManager implements IMogoCarLocationChangedListener2 return sInstance; } - - @Override - public void onCarLocationChanged2(Location latLng) { -// updateLocation(latLng); - } - - @Override - public void onCarLocationChanged(MogoLatLng latLng) { - - } - - public void updateLocation(Location location) { - if (location == null) { - return; - } - //坐标转换 - MogoLocation loc = new MogoLocation(); - loc.setTime(loc.getTime()); - loc.setAccuracy(location.getAccuracy()); - loc.setSpeed(location.getSpeed()); - loc.setLongitude(location.getLongitude()); - loc.setLatitude(location.getLatitude()); - loc.setAltitude(location.getAltitude()); - loc.setBearing(location.getBearing()); - loc.setProvider(location.getProvider()); - RouteOverlayDrawer.getInstance(mContext).drawRouteOverlay(loc); - } - @Override public void onAutopilotTrajectory(ArrayList trajectoryInfos) { if (trajectoryInfos == null || trajectoryInfos.size() == 0) { @@ -111,9 +80,7 @@ public class MogoRouteOverlayManager implements IMogoCarLocationChangedListener2 for (AutopilotRouteInfo.RouteModels routeModel : routeList.getModels()) { latLngList.add(new MogoLatLng(routeModel.getLat(), routeModel.getLon())); } - Log.e(TAG, "routeResult:" + latLngList.size()); - - RouteOverlayDrawer.getInstance(mContext).putRouteList(latLngList); + Log.d(TAG2, "routeResult:" + latLngList.size()); int listSize = latLngList.size(); RouteOverlayDrawer.getInstance(mContext).addEndingMarker(latLngList.get(listSize - 1).lat,latLngList.get(listSize - 1).lon); } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java index 465568672a..810bd3029d 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java @@ -3,6 +3,7 @@ package com.mogo.module.service.routeoverlay; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.util.Log; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.data.map.MogoLocation; @@ -69,71 +70,21 @@ public class RouteOverlayDrawer { return sInstance; } - private List mRouteList; - - public void drawRouteOverlay(MogoLocation location){ - if (mRouteList == null ){ - clearMogoRouteOverlay(); - return; - } - if (mRouteList.size() >0){ - //adas回调导航路径 绘制引导线 - draw(location,mRouteList); - } - } - - /** - * 绘制最优路线 - * - * @param routelist 要绘制的经纬度度集合 - */ - public IMogoPolyline draw(MogoLocation carLocal, List routelist) { - clearMogoRouteOverlay(); - if (routelist != null) { - if (carLocal == null){ - for (MogoLatLng polyline : routelist) { -// Log.e("IMogoPolyline",polyline.getLat()+":"+polyline.lon); - //需要剔除已经行驶过的经纬度,这里需要比对推荐路线集合中的点是否在当前车辆行驶方向前面如果不在则抛弃 - mPolylinePointList.add(polyline); - } - }else { - // 将当前车辆位置放进去 -// mPolylinePointList.add(new MogoLatLng(carLocal.getLatitude(), carLocal.getLongitude())); - for (MogoLatLng polyline : routelist) { -// Log.e("IMogoPolyline",polyline.getLat()+":"+polyline.lon); - if (LocationUtils.isPointOnCarFront(carLocal, polyline)) { - } - mPolylinePointList.add(polyline); - //需要剔除已经行驶过的经纬度,这里需要比对推荐路线集合中的点是否在当前车辆行驶方向前面如果不在则抛弃 -// Log.e("lianglihui",polyline.getLat()+":"+polyline.getLon()); - } - } - - // 过滤后台推送的推荐路线集合 - - mPolylineOptions.setGps(true); - mPolylineColors.addAll(ColorUtils.getGradientAlpha("#002965ED", "#FF2965ED", "#002965ED", mPolylinePointList.size())); - // 替换路径集合 - mPolylineOptions.points(mPolylinePointList); - // 线条粗细,渐变,渐变色值 - mPolylineOptions.width(14).useGradient(true).colorValues(mPolylineColors); - // 绘制线 - mMoGoPolyline = mogoOverlayManager.addPolyline(mPolylineOptions); - } - return mMoGoPolyline; - } public void addEndingMarker(double lat,double lon){ if (markderOptions == null){ markderOptions = new MogoMarkerOptions(). set3DMode(MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) .matchOnRoadSide(true) + .gps(true) .icon(endingBitmap) .owner(markerType) - .zIndex(20001); + .anchor(0.5f, 0.5f) + .zIndex(30001); // .object(markerShowEntity) } markderOptions.latitude(lat).longitude(lon); + Log.d("lianglihui","addEndingMarker-"+lat+":"+lon); endMarker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(markerType, markderOptions); } @@ -152,9 +103,6 @@ public class RouteOverlayDrawer { } } - public void putRouteList(List routeList) { - this.mRouteList = routeList; - } public void drawTrajectoryList(List routeList) { // clearMogoRouteOverlay(); @@ -163,9 +111,8 @@ public class RouteOverlayDrawer { for (MogoLatLng latLng : routeList) { mPolylinePointList.add(latLng); } - if (mPolylineColors.isEmpty()){ - mPolylineColors.addAll(ColorUtils.getGradientAlpha("#002965ED", "#FF2965ED", "#2AAFFD", mPolylinePointList.size())); - } + mPolylineColors.clear(); + mPolylineColors.addAll(ColorUtils.getGradientAlpha("#002965ED", "#FF2965ED", "#2AAFFD", mPolylinePointList.size())); // 线条粗细,渐变,渐变色值 mPolylineOptions.width(12).useGradient(true).colorValues(mPolylineColors); if (mMoGoPolyline == null || mMoGoPolyline.isDestroyed()){ diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi-1920x1000/icon_route_ending.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi-1920x1000/icon_route_ending.png deleted file mode 100644 index 5c254f5d35..0000000000 Binary files a/modules/mogo-module-service/src/main/res/drawable-xhdpi-1920x1000/icon_route_ending.png and /dev/null differ diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi-2560x1600/icon_route_ending.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi-2560x1600/icon_route_ending.png new file mode 100644 index 0000000000..04580a8f0d Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi-2560x1600/icon_route_ending.png differ diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi-2560x1600/map_api_ic_current_location2_cursor.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi-2560x1600/map_api_ic_current_location2_cursor.png new file mode 100644 index 0000000000..c24c56f3db Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi-2560x1600/map_api_ic_current_location2_cursor.png differ