From 141376c835204f1f1c33ddfbd365a8162e022a9c Mon Sep 17 00:00:00 2001 From: GamblingDog <125975490@qq.com> Date: 星期二, 09 九月 2025 11:12:01 +0800 Subject: [PATCH] 交付 --- app/src/main/java/com/xianning/driver/base/gaode/BaiduUtils.java | 20 +++++++++++++++----- 1 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/xianning/driver/base/gaode/BaiduUtils.java b/app/src/main/java/com/xianning/driver/base/gaode/BaiduUtils.java index 4ba454b..c2ccb2b 100644 --- a/app/src/main/java/com/xianning/driver/base/gaode/BaiduUtils.java +++ b/app/src/main/java/com/xianning/driver/base/gaode/BaiduUtils.java @@ -14,9 +14,10 @@ import com.baidu.mapapi.search.route.WalkingRouteResult; import java.util.ArrayList; +import java.util.List; public class BaiduUtils { - public static void initRouteLine(LatLng start,LatLng end,Callback callback){ + public static void initRouteLine(LatLng start, LatLng end, List<LatLng> center, Callback callback){ RoutePlanSearch mSearch = RoutePlanSearch.newInstance(); OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener(){ @Override @@ -37,14 +38,14 @@ @Override public void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) { //驾车 - if (drivingRouteResult.getRouteLines().size()>0){ + if (drivingRouteResult.getRouteLines()!=null&&drivingRouteResult.getRouteLines().size()>0){ DrivingRouteLine drivingRouteLine = drivingRouteResult.getRouteLines().get(0); ArrayList<LatLng> latLngs = new ArrayList<>(); for (int i=0;i<drivingRouteLine.getAllStep().size();i++){ DrivingRouteLine.DrivingStep steps = drivingRouteLine.getAllStep().get(i); latLngs.addAll(steps.getWayPoints()); } - callback.onGetDrivingRouteResult(latLngs,(float) drivingRouteLine.getDistance(), drivingRouteLine.getDuration()); + callback.onGetDrivingRouteResult(latLngs,(float) drivingRouteLine.getDistance(), drivingRouteLine.getDuration()/60); } mSearch.destroy(); } @@ -62,9 +63,18 @@ mSearch.setOnGetRoutePlanResultListener(listener); PlanNode stNode = PlanNode.withLocation(start); PlanNode enNode = PlanNode.withLocation(end); - mSearch.drivingSearch((new DrivingRoutePlanOption()) + List<PlanNode>centers = new ArrayList<PlanNode>(); + DrivingRoutePlanOption drivingRoutePlanOption = new DrivingRoutePlanOption(); + drivingRoutePlanOption .from(stNode) - .to(enNode)); + .to(enNode); + if (center!=null&¢er.size()!=0){ + for (LatLng item:center){ + centers.add( PlanNode.withLocation(item)); + } + drivingRoutePlanOption.passBy(centers); + } + mSearch.drivingSearch(drivingRoutePlanOption); } public interface Callback{ -- Gitblit v1.7.1