Android 高德的路线规划一个小坑

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

最近用到了高德地图的路线规划。。这个时候。。发现了个小问题。就是,起点和终点之间的距离过长时,骑行的路线规划,,就会很长时间,甚至规划不出来。。。

造成这个问题的原因就是之间的距离过长了,,用骑行的路线规划不合适,我也没仔细找这个距离具体是多少。。。如果遇到这个问题,你可以先计算下两点之间的距离。,然后如果大于一个距离,就把路线规划换成驾车的路线规划。

 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);// 异步路径规划骑行模式查询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值