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;
|
import java.util.List;
|
|
public class BaiduUtils {
|
public static void initRouteLine(LatLng start, LatLng end, List<LatLng> center, 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()!=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()/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);
|
List<PlanNode>centers = new ArrayList<PlanNode>();
|
DrivingRoutePlanOption drivingRoutePlanOption = new DrivingRoutePlanOption();
|
drivingRoutePlanOption
|
.from(stNode)
|
.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{
|
void onGetDrivingRouteResult(ArrayList<LatLng> latLngs,float lineTance,long lineTime);
|
}
|
|
}
|