From 6c257047880f0a73b868f895e398b4e692ceb0ae Mon Sep 17 00:00:00 2001 From: liujing Date: Fri, 24 Jun 2022 17:59:15 +0800 Subject: [PATCH] =?UTF-8?q?[add]=20=E5=9B=BE=E7=89=87=E6=9B=BF=E6=8D=A2,?= =?UTF-8?q?=E5=B7=AE=E6=93=A6=E9=99=A4UI,=20=E5=88=A0=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E4=BB=A3=E7=A0=81,=20=E6=B7=BB=E5=8A=A0adas=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E8=B7=AF=E5=BE=84=E9=80=BB=E8=BE=91,=20=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E4=BB=A3=E7=A0=81=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...DirectionView.java => AMapCustomView.java} | 180 +++--------------- .../core/function/smp/SmallMapFragment.java | 36 ++-- .../amap_custom_corner.png | Bin 0 -> 36339 bytes .../amap_custom_smooth_route.png | Bin 0 -> 250 bytes .../res/layout/module_small_map_fragment.xml | 2 +- .../main/res/layout/module_small_map_view.xml | 10 +- 6 files changed, 49 insertions(+), 179 deletions(-) rename core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/{SmallMapDirectionView.java => AMapCustomView.java} (72%) create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi-2560x1440/amap_custom_corner.png create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi-2560x1440/amap_custom_smooth_route.png diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/AMapCustomView.java similarity index 72% rename from core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java rename to core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/AMapCustomView.java index 7254e72cd5..07898d151c 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/AMapCustomView.java @@ -1,6 +1,8 @@ package com.mogo.eagle.core.function.smp; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_MAP; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X; +import static com.mogo.module.common.constants.DataTypes.TYPE_MARKER_CLOUD_STOP_LINE_DATA; import android.content.Context; import android.graphics.BitmapFactory; @@ -16,20 +18,16 @@ import android.widget.RelativeLayout; import android.widget.TextView; import androidx.annotation.Nullable; +import androidx.annotation.UiThread; 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; import com.amap.api.maps.model.CameraPosition; -import com.amap.api.maps.model.CustomMapStyleOptions; import com.amap.api.maps.model.LatLng; import com.amap.api.maps.model.LatLngBounds; -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.amap.api.navi.AMapNavi; @@ -37,8 +35,6 @@ import com.amap.api.navi.AMapNaviListener; import com.amap.api.navi.AMapNaviView; import com.amap.api.navi.AMapNaviViewListener; import com.amap.api.navi.AMapNaviViewOptions; -import com.amap.api.navi.ParallelRoadListener; -import com.amap.api.navi.enums.AMapNaviParallelRoadStatus; import com.amap.api.navi.enums.NaviType; import com.amap.api.navi.model.AMapCalcRouteResult; import com.amap.api.navi.model.AMapLaneInfo; @@ -47,7 +43,6 @@ import com.amap.api.navi.model.AMapNaviCameraInfo; import com.amap.api.navi.model.AMapNaviCross; import com.amap.api.navi.model.AMapNaviInfo; import com.amap.api.navi.model.AMapNaviLocation; -import com.amap.api.navi.model.AMapNaviPath; import com.amap.api.navi.model.AMapNaviRouteNotifyData; import com.amap.api.navi.model.AMapNaviTrafficFacilityInfo; import com.amap.api.navi.model.AMapServiceAreaInfo; @@ -56,19 +51,23 @@ import com.amap.api.navi.model.AimLessModeStat; import com.amap.api.navi.model.NaviInfo; import com.amap.api.navi.model.NaviLatLng; import com.amap.api.navi.model.RouteOverlayOptions; -import com.amap.api.navi.view.RouteOverLay; import com.autonavi.tbt.TrafficFacilityInfo; import com.mogo.cloud.commons.utils.CoordinateUtils; +import com.mogo.commons.AbsMogoApplication; +import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener; import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener; +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; import com.mogo.eagle.core.function.map.R; -import com.mogo.eagle.core.utilcode.mogo.MapAssetStyleUtils; import com.mogo.eagle.core.function.smp.view.ISmallMapDirectionView; +import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.eagle.core.widget.RoundLayout; +import com.mogo.map.MogoMarkerManager; +import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.module.common.utils.DrivingDirectionUtils; import org.jetbrains.annotations.NotNull; @@ -85,50 +84,40 @@ import mogo.telematics.pad.MessagePad; * @author donghongyu * @date 12/14/20 4:40 PM */ -public class SmallMapDirectionView +public class AMapCustomView extends RelativeLayout implements IMoGoMapLocationListener, ISmallMapDirectionView, AMapNaviListener, AMapNaviViewListener, IMoGoAutopilotPlanningListener { - - //小地图名称 public static final String TAG = "SmallMapDirectionView"; - - private RoundLayout rlSmallMapBorder; private AMapNaviView mAMapNaviView; protected AMapNavi mAMapNavi; private AMap mAMap; - // private Marker mCarMarker; - // private Marker mStartMarker; -// private Marker mEndMarker; //328路线测试数据 protected NaviLatLng mStartLatlng = new NaviLatLng(39.969111, 116.411903); protected NaviLatLng mEndLatlng = new NaviLatLng(40.037209, 116.314358); - //顺义国展测试数据 -// protected NaviLatLng mStartLatlng = new NaviLatLng(40.09383,116.51899); -// protected NaviLatLng mEndLatlng = new NaviLatLng(40.09964,116.54570); +// mStartLatlng = new NaviLatLng(40.09383,116.51899); +// mEndLatlng = new NaviLatLng(40.09964,116.54570); protected final List sList = new ArrayList(); protected final List eList = new ArrayList(); - private int zoomLevel = 15; private final List mCoordinatesLatLng = new ArrayList<>(); private final List mCoordinatesLatLngCurrent = new ArrayList<>(); protected List mWayPointList = new ArrayList(); - private Polyline mPolyline; private CameraUpdate mCameraUpdate; private Context mContext; - private float tilt = 20f; + private float tilt = 40f; private TextView overLayerView; - public SmallMapDirectionView(Context context) { + public AMapCustomView(Context context) { this(context, null); } - public SmallMapDirectionView(Context context, @Nullable AttributeSet attrs) { + public AMapCustomView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } - public SmallMapDirectionView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + public AMapCustomView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); try { initView(context); @@ -165,11 +154,8 @@ public class SmallMapDirectionView mAMapNaviView = smpView.findViewById(R.id.aMapNaviView); overLayerView = findViewById(R.id.overLayer); mAMapNavi = AMapNavi.getInstance(context); -// mAMapNavi.setUseInnerVoice(true, true); mAMapNavi.addAMapNaviListener(this); mAMapNaviView.setAMapNaviViewListener(this); -// rlSmallMapBorder = findViewById(R.id.rlSmallMapBorder); -// rlSmallMapBorder.addView(mAMapNaviView); initAMapView(context); // 注册定位监听 CallerMapLocationListenerManager.INSTANCE.addListener(TAG, this); @@ -186,9 +172,6 @@ public class SmallMapDirectionView CallerMapLocationListenerManager.INSTANCE.removeListener(TAG); } - /** - * - */ private void initAMapView(Context context) { mCameraUpdate = CameraUpdateFactory.zoomTo(zoomLevel); AMapNaviViewOptions options = mAMapNaviView.getViewOptions(); @@ -202,12 +185,10 @@ public class SmallMapDirectionView options.setTrafficBarEnabled(false); //指南针 options.setCompassEnabled(false); - //只做一次算路 -// options.setO options.setTilt((int) tilt); //自车车标 options.setCarBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.module_small_map_view_my_location_logo)); - options.setFourCornersBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.module_small_map_view_border_north)); + options.setFourCornersBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.amap_custom_corner)); options.setStartPointBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.module_small_map_view_dir_start)); options.setWayPointBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.icon_module_small_map_four_corners)); options.setEndPointBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.module_small_map_view_dir_end)); @@ -216,7 +197,7 @@ public class SmallMapDirectionView //路线纹理自定义 RouteOverlayOptions routeOverlayOptions = new RouteOverlayOptions(); routeOverlayOptions.setTurnArrowIs3D(false); - routeOverlayOptions.setSmoothTraffic(BitmapFactory.decodeResource(getResources(), R.drawable.module_small_map_view_dir_pass_route)); + routeOverlayOptions.setSmoothTraffic(BitmapFactory.decodeResource(getResources(), R.drawable.amap_custom_smooth_route)); routeOverlayOptions.setPassRoute(BitmapFactory.decodeResource(getResources(), R.drawable.custtexture_slow));//走过的路段 options.setRouteOverlayOptions(routeOverlayOptions); mAMapNaviView.setViewOptions(options); @@ -249,7 +230,6 @@ public class SmallMapDirectionView } catch (Exception e) { e.printStackTrace(); } - Log.d(TAG, "calculateDriveRoute:" + sList.toString() + "," + eList.toString() + "," + mWayPointList.toString()); //指定路径绘制导航路线 mAMapNavi.calculateDriveRoute(sList, eList, mWayPointList, strategy); } @@ -263,60 +243,6 @@ public class SmallMapDirectionView @Override public void onLocationChanged(@org.jetbrains.annotations.Nullable MogoLocation location, int from) { -// Log.d(TAG, "onLocationChanged location:" + location.toString()); - if (location == null) { - return; - } - LatLng currentLatLng = new LatLng(location.getLatitude(), location.getLongitude()); - //更新车辆位置 -// if (mCarMarker != null) { -// mCarMarker.setRotateAngle(location.getBearing()); -// mCarMarker.setPosition(currentLatLng); -// mCarMarker.setToTop(); -// } - - CameraPosition cameraPosition; - if (mCoordinatesLatLng.size() > 1) { -// mCoordinatesLatLngCurrent.clear(); -// for (LatLng lng : mCoordinatesLatLng) { -// MogoLatLng mogoLatLng = new MogoLatLng(lng.latitude, lng.longitude); -// mCoordinatesLatLngCurrent.add(mogoLatLng); -// } -// removeLoction(latLng); - - // 结束位置 - LatLng endLatLng = mCoordinatesLatLng.get(mCoordinatesLatLng.size() - 1); - // 与结束位置进行 GeoHash 0-12 -// GeoHash endGeoHash = GeoHash.withCharacterPrecision(endLatLng.latitude, endLatLng.longitude, 7); -// GeoHash currentGeoHash = GeoHash.withCharacterPrecision(currentLatLng.latitude, currentLatLng.longitude, 7); - - float calculateDistance = CoordinateUtils.calculateLineDistance( - endLatLng.latitude, endLatLng.longitude, - currentLatLng.latitude, currentLatLng.longitude - ); - - CallerLogger.INSTANCE.d(M_MAP + TAG, "calculateDistance=" + calculateDistance); - if (calculateDistance <= 5) { - clearPolyline(); - mCoordinatesLatLng.clear(); - } - //target:地图的中心位置(经度和纬度) - //tilt:倾斜角度的范围为【0.f-45.f】,0度时建筑物没有远近关系,随着角度增加,建筑物的远近效果比较明显,产生立体效果 - //bearing:旋转角度范围为:【0.f-360.f】,正北方向为0度,逆时针旋转值会增加 - //zoom:地图缩放级别范围为【4-20级】,值越大地图越详细,反之 - cameraPosition = new CameraPosition.Builder().target(currentLatLng).tilt(tilt).bearing(location.getBearing()).zoom(zoomLevel).build(); - } else { - //设置希望展示的地图缩放级别 - cameraPosition = new CameraPosition.Builder().target(currentLatLng).tilt(tilt).bearing(location.getBearing()).zoom(zoomLevel).build(); -// mAMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentLatLng, zoomLevel)); - } -// mAMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); - -// if (carOverlay != null) { -// Log.d(TAG, "carOverlay != null"); -// LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); -// carOverlay.draw(mAMapNaviView.getMap(), latLng, location.getBearing()); -// } } @@ -345,46 +271,6 @@ public class SmallMapDirectionView @Override public void drawablePolyline() { - clearPolyline(); -// mCoordinatesLatLng.clear(); -// List latLngs = CoordinateConverterFrom84ForList(mContext,coordinates); -// mCoordinatesLatLng.addAll(latLngs); -// for (LatLng coordinate : mCoordinatesLatLng) { -// mCoordinatesLatLng.add(new LatLng(coordinate.getLat(), coordinate.getLon())); -// } - if (mAMap != null) { - if (mCoordinatesLatLng.size() > 2) { - // 设置开始结束Marker位置 -// mStartMarker.setPosition(mCoordinatesLatLng.get(0)); -// mEndMarker.setPosition(mCoordinatesLatLng.get(mCoordinatesLatLng.size() - 1)); -// mStartMarker.setToTop(); -// mStartMarker.setVisible(true); -// mEndMarker.setVisible(true); -// mEndMarker.setToTop(); - - - //存放所有点的经纬度 - LatLngBounds.Builder boundsBuilder = new LatLngBounds.Builder(); - - for (int i = 0; i < mCoordinatesLatLng.size(); i++) { - //把所有点都include进去(LatLng类型) - boundsBuilder.include(mCoordinatesLatLng.get(i)); - } - //第二个参数为四周留空宽度 - mAMap.animateCamera(CameraUpdateFactory.newLatLngBounds(boundsBuilder.build(), 30)); - // 绘制线 - mPolyline = mAMap.addPolyline( - new PolylineOptions() - .addAll(mCoordinatesLatLng) - .color(Color.argb(255, 31, 127, 255)) - .width(12)); - - } -// else { -// //设置希望展示的地图缩放级别 -// mAMap.moveCamera(CameraUpdateFactory.newLatLngZoom(mCoordinatesLatLng.get(0), zoomLevel)); -// } - } } @@ -406,16 +292,9 @@ public class SmallMapDirectionView @Override public void clearPolyline() { -// mCoordinatesLatLng.clear(); if (mPolyline != null) { mPolyline.remove(); } -// if (mStartMarker != null) { -// mStartMarker.setVisible(false); -// } -// if (mEndMarker != null) { -// mEndMarker.setVisible(false); -// } } public void resetPolyLine() { @@ -423,12 +302,6 @@ public class SmallMapDirectionView if (mPolyline != null) { mPolyline.remove(); } -// if (mStartMarker != null) { -// mStartMarker.setVisible(false); -// } -// if (mEndMarker != null) { -// mEndMarker.setVisible(false); -// } } public void onCreateView(Bundle savedInstanceState) { @@ -464,10 +337,7 @@ public class SmallMapDirectionView } public void convert(List coordinates) { - mCoordinatesLatLng.clear(); - List latLngs = CoordinateConverterFrom84ForList(mContext, coordinates); - Log.d(TAG, "convert===============:" + latLngs.toString()); - mCoordinatesLatLng.addAll(latLngs); + } //多路径算路成功回调 @@ -650,7 +520,14 @@ public class SmallMapDirectionView @Override public void onCalculateRouteSuccess(AMapCalcRouteResult aMapCalcRouteResult) { Log.d(TAG, "onCalculateRouteSuccess aMapCalcRouteResult" + aMapCalcRouteResult.toString()); - mAMapNavi.startNavi(NaviType.GPS); + mAMapNavi.startNavi(NaviType.EMULATOR); + mAMapNaviView.displayOverview(); + + //停止导航测试代码 +// UiThreadHandler.postDelayed(() -> { +// mAMapNavi.stopNavi(); +// Log.d(TAG, "stop------------"); +// }, 20000); } @Override @@ -731,7 +608,6 @@ public class SmallMapDirectionView @Override public void onAutopilotRotting(@org.jetbrains.annotations.Nullable MessagePad.GlobalPathResp globalPathResp) { List list = globalPathResp.getWayPointsList(); - Log.d(TAG, "adas返回全路径:" + list.toString()); int minCount = 2; if (list.size() >= minCount) { Location sLocation = (Location) list.get(0); @@ -753,7 +629,7 @@ public class SmallMapDirectionView } catch (Exception e) { e.printStackTrace(); } - Log.d(TAG, "calculateDriveRoute:" + sList.toString() + "," + eList.toString() + "," + mWayPointList.toString()); + Log.d(TAG, "calculateDriveRoute ADAS全局路径坐标:" + list.size() + "," + sList.toString() + "," + eList.toString() + "," + mWayPointList.toString()); //指定路径绘制导航路线 mAMapNavi.calculateDriveRoute(sList, eList, mWayPointList, strategy); } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java index c0eda012a2..0e4e1d8aa9 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java @@ -35,7 +35,7 @@ public class SmallMapFragment extends BaseFragment implements IMogoSmallMapProvider, IMoGoAutopilotPlanningListener, IMoGoAutopilotStatusListener { private final String TAG = "SmallMapFragment"; - protected SmallMapDirectionView mSmallMapDirectionView; + protected AMapCustomView mAMapCustomView; @Override public void onAttach(Context context) { @@ -60,33 +60,33 @@ public class SmallMapFragment extends BaseFragment @Override protected void initViews(Bundle savedInstanceState) { super.initViews(savedInstanceState); - mSmallMapDirectionView = mRootView.findViewById(R.id.smallMapDirectionView); - mSmallMapDirectionView.onCreateView(savedInstanceState); + mAMapCustomView = mRootView.findViewById(R.id.smallMapDirectionView); + mAMapCustomView.onCreateView(savedInstanceState); CallerAutopilotPlanningListenerManager.INSTANCE.addListener(TAG, this); } @Override public void showPanel() { - if (mSmallMapDirectionView != null) { - mSmallMapDirectionView.setVisibility(View.VISIBLE); + if (mAMapCustomView != null) { + mAMapCustomView.setVisibility(View.VISIBLE); } } @Override public void hidePanel() { - if (mSmallMapDirectionView != null) { - mSmallMapDirectionView.setVisibility(View.GONE); + if (mAMapCustomView != null) { + mAMapCustomView.setVisibility(View.GONE); } } @Override public void drawablePolyline(List coordinates) { - if (mSmallMapDirectionView != null) { - mSmallMapDirectionView.convert(coordinates); + if (mAMapCustomView != null) { + mAMapCustomView.convert(coordinates); UiThreadHandler.post(new Runnable() { @Override public void run() { - mSmallMapDirectionView.drawablePolyline(); + mAMapCustomView.drawablePolyline(); } }); } @@ -94,11 +94,11 @@ public class SmallMapFragment extends BaseFragment @Override public void clearPolyline() { - if (mSmallMapDirectionView != null) { + if (mAMapCustomView != null) { UiThreadHandler.post(new Runnable() { @Override public void run() { - mSmallMapDirectionView.clearPolyline(); + mAMapCustomView.clearPolyline(); } }); } @@ -107,16 +107,16 @@ public class SmallMapFragment extends BaseFragment @Override public void onResume() { super.onResume(); - if (mSmallMapDirectionView != null) { - mSmallMapDirectionView.onResume(); + if (mAMapCustomView != null) { + mAMapCustomView.onResume(); } } @Override public void onPause() { super.onPause(); - if (mSmallMapDirectionView != null) { - mSmallMapDirectionView.onPause(); + if (mAMapCustomView != null) { + mAMapCustomView.onPause(); } } @@ -124,8 +124,8 @@ public class SmallMapFragment extends BaseFragment @Override public void onDestroy() { super.onDestroy(); - if (mSmallMapDirectionView != null) { - mSmallMapDirectionView.onDestroy(); + if (mAMapCustomView != null) { + mAMapCustomView.onDestroy(); } CallerAutopilotPlanningListenerManager.INSTANCE.removeListener(TAG); } diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi-2560x1440/amap_custom_corner.png b/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi-2560x1440/amap_custom_corner.png new file mode 100644 index 0000000000000000000000000000000000000000..9c81fd68958a837a157f3aea86b3cae1e30be4b5 GIT binary patch literal 36339 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 z�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 F697~lL5ctX literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml b/core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml index 47b8763b7d..518457be06 100644 --- a/core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml +++ b/core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - - - - - +