最近用到了高德地图的路线规划。。这个时候。。发现了个小问题。就是,起点和终点之间的距离过长时,骑行的路线规划,,就会很长时间,甚至规划不出来。。。
造成这个问题的原因就是之间的距离过长了,,用骑行的路线规划不合适,我也没仔细找这个距离具体是多少。。。如果遇到这个问题,你可以先计算下两点之间的距离。,然后如果大于一个距离,就把路线规划换成驾车的路线规划。
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);// 异步路径规划骑行模式查询
}
}

在使用高德地图进行骑行路线规划时,如果起点到终点距离过长,可能会导致规划时间过长或无法规划。为解决此问题,可以先计算两点间距离,当超过一定阈值时,切换为驾车路线规划。若仍希望使用骑行规划,可通过修改驾驶速度回调来调整显示时间,但实际时间并不准确。
最低0.47元/天 解锁文章
1071

被折叠的 条评论
为什么被折叠?



