lmw
2025-03-14 81d91378a2a726dcfffec74ce7cda43486806b77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package com.xianning.driver.base.gaode;
 
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.search.route.BikingRouteResult;
import com.baidu.mapapi.search.route.DrivingRouteLine;
import com.baidu.mapapi.search.route.DrivingRoutePlanOption;
import com.baidu.mapapi.search.route.DrivingRouteResult;
import com.baidu.mapapi.search.route.IndoorRouteResult;
import com.baidu.mapapi.search.route.MassTransitRouteResult;
import com.baidu.mapapi.search.route.OnGetRoutePlanResultListener;
import com.baidu.mapapi.search.route.PlanNode;
import com.baidu.mapapi.search.route.RoutePlanSearch;
import com.baidu.mapapi.search.route.TransitRouteResult;
import com.baidu.mapapi.search.route.WalkingRouteResult;
 
import java.util.ArrayList;
 
public class BaiduUtils {
    public static void initRouteLine(LatLng start,LatLng end,Callback callback){
        RoutePlanSearch mSearch = RoutePlanSearch.newInstance();
        OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener(){
            @Override
            public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {
 
            }
 
            @Override
            public void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {
 
            }
 
            @Override
            public void onGetMassTransitRouteResult(MassTransitRouteResult massTransitRouteResult) {
 
            }
 
            @Override
            public void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) {
                //驾车
                if (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()/60);
                }
                mSearch.destroy();
            }
 
            @Override
            public void onGetIndoorRouteResult(IndoorRouteResult indoorRouteResult) {
 
            }
 
            @Override
            public void onGetBikingRouteResult(BikingRouteResult bikingRouteResult) {
 
            }
        };
        mSearch.setOnGetRoutePlanResultListener(listener);
        PlanNode stNode = PlanNode.withLocation(start);
        PlanNode enNode = PlanNode.withLocation(end);
        mSearch.drivingSearch((new DrivingRoutePlanOption())
                .from(stNode)
                .to(enNode));
    }
 
    public interface Callback{
        void onGetDrivingRouteResult(ArrayList<LatLng> latLngs,float lineTance,long lineTime);
    }
 
}