最近用到了高德地图的路线规划。。这个时候。。发现了个小问题。就是,起点和终点之间的距离过长时,骑行的路线规划,,就会很长时间,甚至规划不出来。。。
造成这个问题的原因就是之间的距离过长了,,用骑行的路线规划不合适,我也没仔细找这个距离具体是多少。。。如果遇到这个问题,你可以先计算下两点之间的距离。,然后如果大于一个距离,就把路线规划换成驾车的路线规划。
LatLng latLng=new LatLng(mStartPoint.getLatitude(),mStartPoint.getLongitude());
LatLng latLng1=new LatLng(mEndPoint.getLatitude(),mEndPoint.getLongitude());
float v = AMapUtils.calculateLineDistance(latLng, latLng1);
Log.e("zmm","距离-->"+v);
if(v>3000){
curType=1;
searchRouteResult(RouteSearch.DrivingDefault,TYPE_DRIVE);
}else{
curType=1;
searchRouteResult(RouteSearch.RidingDefault,TYPE_RIDE);
}
/**
* 开始搜索路径规划方案
*/
public void searchRouteResult(int mode,int type) {
Log.e("zmm","searchRouteResult");
if (mStartPoint == null) {
ToastUtil.show(GaoMipActivity.this, "定位中,稍后再试...");
return;
}
if (mEndPoint == null) {
ToastUtil.show(GaoMipActivity.this, "终点未设置");
}
final RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(mStartPoint, mEndPoint);
if(type==TYPE_DRIVE){
RouteSearch.DriveRouteQuery query = new RouteSearch.DriveRouteQuery(fromAndTo, mode, null, null, "");
mRouteSearch.calculateDriveRouteAsyn(query);
}else{
RouteSearch.RideRouteQuery query1 = new RouteSearch.RideRouteQuery(fromAndTo, mode);
mRouteSearch.calculateRideRouteAsyn(query1);// 异步路径规划骑行模式查询