From dc31e46fc05a4111037c75fbc48fb4560b9ee7bc Mon Sep 17 00:00:00 2001 From: lianglihui Date: Fri, 15 Oct 2021 19:46:49 +0800 Subject: [PATCH] =?UTF-8?q?eagle=20=E9=A1=BA=E4=B9=89=E6=B5=8B=E8=AF=95=20?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=B7=AF=E7=BA=BF=E7=BB=98=E5=88=B6=E7=AD=96?= =?UTF-8?q?=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/smp/SmallMapDirectionView.java | 74 ++++++++++--------- .../core/function/smp/SmallMapFragment.java | 1 + .../core/function/smp/SmallMapProvider.java | 5 +- .../routeoverlay/RouteOverlayDrawer.java | 8 +- 4 files changed, 48 insertions(+), 40 deletions(-) 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 548e56984c..1f22c249ce 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 @@ -192,36 +192,36 @@ public class SmallMapDirectionView } - if (mCoordinatesLatLng.size() > 1) { - mCoordinatesLatLngCurrent.clear(); - for (LatLng lng : mCoordinatesLatLng) { - MogoLatLng mogoLatLng = new MogoLatLng(lng.latitude, lng.longitude); - mCoordinatesLatLngCurrent.add(mogoLatLng); - } - - // 结束位置 - 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); -// Log.d(MODULE_NAME, "currentGeoHash=" + currentGeoHash); -// Log.d(MODULE_NAME, "endGeoHash=" + endGeoHash); - - float calculateDistance = CoordinateUtils.calculateLineDistance( - endLatLng.latitude, endLatLng.longitude, - currentLatLng.latitude, currentLatLng.longitude - ); - - Log.d(MODULE_NAME, "calculateDistance=" + calculateDistance); - if (calculateDistance <= 20) { - clearPolyline(); - } else { - drawablePolyline(mCoordinatesLatLngCurrent); - } - } else { - //设置希望展示的地图缩放级别 - mAMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentLatLng, zoomLevel)); - } +// if (mCoordinatesLatLng.size() > 1) { +// mCoordinatesLatLngCurrent.clear(); +// for (LatLng lng : mCoordinatesLatLng) { +// MogoLatLng mogoLatLng = new MogoLatLng(lng.latitude, lng.longitude); +// mCoordinatesLatLngCurrent.add(mogoLatLng); +// } +// +// // 结束位置 +// 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); +//// Log.d(MODULE_NAME, "currentGeoHash=" + currentGeoHash); +//// Log.d(MODULE_NAME, "endGeoHash=" + endGeoHash); +// +// float calculateDistance = CoordinateUtils.calculateLineDistance( +// endLatLng.latitude, endLatLng.longitude, +// currentLatLng.latitude, currentLatLng.longitude +// ); +// +// Log.d(MODULE_NAME, "calculateDistance=" + calculateDistance); +// if (calculateDistance <= 20) { +// clearPolyline(); +// } else { +// drawablePolyline(mCoordinatesLatLngCurrent); +// } +// } else { +// //设置希望展示的地图缩放级别 +// mAMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentLatLng, zoomLevel)); +// } CameraPosition cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).bearing(latLng.getBearing()).tilt(0).zoom(zoomLevel).build(); mAMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); } @@ -234,11 +234,12 @@ public class SmallMapDirectionView @Override public void drawablePolyline(List coordinates) { clearPolyline(); - mCoordinatesLatLng.clear(); +// mCoordinatesLatLng.clear(); List latLngs = CoordinateConverterFrom84ForList(mContext,coordinates); mCoordinatesLatLng.addAll(latLngs); -// for (MogoLatLng coordinate : coordinates) { -// mCoordinatesLatLng.add(new LatLng(coordinate.getLat(), coordinate.getLon())); +// for (LatLng coordinate : mCoordinatesLatLng) { +//// mCoordinatesLatLng.add(new LatLng(coordinate.getLat(), coordinate.getLon())); +//// Log.e("",coordinate.latitude+":"+coordinate.longitude); // } if (mAMap != null) { if (mCoordinatesLatLng.size() > 2) { @@ -281,7 +282,6 @@ public class SmallMapDirectionView } public List CoordinateConverterFrom84ForList(Context mContext, List mogoLatLngList){ - List list = new ArrayList<>(); for (MogoLatLng m:mogoLatLngList) { LatLng mogoLatLng = CoordinateConverterFrom84(mContext,m); @@ -326,4 +326,10 @@ public class SmallMapDirectionView mAMapNaviView.onDestroy(); } } + + public void setRouteList(List coordinates) { +// mCoordinatesLatLng.clear(); +// List latLngs = CoordinateConverterFrom84ForList(mContext,coordinates); +// mCoordinatesLatLng.addAll(latLngs); + } } 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 9f0358aaec..f8ff5709dd 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 @@ -45,6 +45,7 @@ public class SmallMapFragment extends Fragment { public void drawablePolyline(List coordinates) { if (mSmallMapDirectionView != null) { + mSmallMapDirectionView.setRouteList(coordinates); mSmallMapDirectionView.drawablePolyline(coordinates); } } diff --git a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapProvider.java b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapProvider.java index 92e582064d..94a1b76fb6 100644 --- a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapProvider.java +++ b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapProvider.java @@ -40,7 +40,7 @@ public class SmallMapProvider implements IMogoSmallMapProvider, IMogoStatusChang mActivity = activity; mContainerId = containerId; SmpServiceManager.init(mActivity); - //MogoApisHandler.getInstance().getApis().getAdasControllerApi().addAdasAutopilotRouteCallBack(this); + MogoApisHandler.getInstance().getApis().getAdasControllerApi().addAdasAutopilotRouteCallBack(this); } @Override @@ -63,7 +63,7 @@ public class SmallMapProvider implements IMogoSmallMapProvider, IMogoStatusChang MogoServicePaths.PATH_SMALL_MAP, StatusDescriptor.MAIN_PAGE_RESUME, this); - MogoApisHandler.getInstance().getApis().getAdasControllerApi().addAdasAutopilotRouteCallBack(this); +// MogoApisHandler.getInstance().getApis().getAdasControllerApi().addAdasAutopilotRouteCallBack(this); if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) { showPanel(); @@ -132,6 +132,7 @@ public class SmallMapProvider implements IMogoSmallMapProvider, IMogoStatusChang @Override public void routeResult(List routeList) { + Log.e("lianglihui","SmallMapProvider"); if (routeList != null && routeList.size() > 0) { drawablePolyline(routeList); } else { 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 80396b2e2d..02ca549744 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 @@ -88,23 +88,23 @@ public class RouteOverlayDrawer { } }else { // 将当前车辆位置放进去 - mPolylinePointList.add(new MogoLatLng(carLocal.getLatitude(), carLocal.getLongitude())); +// mPolylinePointList.add(new MogoLatLng(carLocal.getLatitude(), carLocal.getLongitude())); for (MogoLatLng polyline : routelist) { // Log.e("IMogoPolyline",polyline.getLat()+":"+polyline.lon); - //需要剔除已经行驶过的经纬度,这里需要比对推荐路线集合中的点是否在当前车辆行驶方向前面如果不在则抛弃 if (LocationUtils.isPointOnCarFront(carLocal, polyline)) { } - Log.e("lianglihui",polyline.getLat()+":"+polyline.getLon()); 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.setGps(true); // 线条粗细,渐变,渐变色值 mPolylineOptions.width(25).useGradient(true).colorValues(mPolylineColors); // 绘制线