高德地图-添加路线规划(自驾、步行...)

来源:互联网 发布:新倩女幽魂mac能玩吗 编辑:程序博客网 时间:2024/04/27 18:40

官方参考资料地址:(http://lbs.amap.com/api/android-sdk/guide/route-plan/drive/)

官方文档:http://a.amap.com/lbs/static/unzip/Android_Map_Doc/index.html

请注意:使用上述功能需要下载地图SDK,导入搜索功能的jar包。

Activity关键代码:

/*初始化 搜索路线所需的类*/    private void initRouteSearch() {        RouteSearch routeSearch = new RouteSearch(this);        routeSearch.setRouteSearchListener(this);        if (shopLatitude != -1 && shopLongitude != -1) {            fromAndTo = new RouteSearch.FromAndTo(new LatLonPoint(fromLatitude, fromLongitude),                    new LatLonPoint(shopLatitude, shopLongitude));        }    }/*计算步行路线*/    private void calculateWalkRoute() {        showProgress("正在加载...");        //初始化query对象,fromAndTo是包含起终点信息,walkMode是步行路径规划的模式        RouteSearch.WalkRouteQuery walkRouteQuery = new RouteSearch.WalkRouteQuery(                fromAndTo, RouteSearch.WALK_DEFAULT);        routeSearch.calculateWalkRouteAsyn(walkRouteQuery);    }    /*计算公交路线*/    private void calculateBusRoute() {        showProgress("正在加载...");        // fromAndTo包含路径规划的起点和终点,RouteSearch.BusLeaseWalk表示公交查询模式// 第三个参数表示公交查询城市区号,第四个参数表示是否计算夜班车,0表示不计算,1表示计算        RouteSearch.BusRouteQuery busRouteQuery = new RouteSearch.BusRouteQuery(                fromAndTo, RouteSearch.BUS_DEFAULT, "020", 1);        routeSearch.calculateBusRouteAsyn(busRouteQuery);    }    /*计算自驾路线*/    private void calculateCarRoute() {        showProgress("正在加载...");        // fromAndTo包含路径规划的起点和终点,drivingMode表示驾车模式// 第三个参数表示途经点(最多支持16个),第四个参数表示避让区域(最多支持32个),第五个参数表示避让道路        RouteSearch.DriveRouteQuery driveRouteQuery = new RouteSearch.DriveRouteQuery(                fromAndTo, RouteSearch.DRIVING_MULTI_STRATEGY_FASTEST_SHORTEST_AVOID_CONGESTION, null, null, "");        routeSearch.calculateDriveRouteAsyn(driveRouteQuery);    }@Override    public void onBusRouteSearched(BusRouteResult busRouteResult, int i) {        dismissProgress();        if (i==1000){            //添加的方式都一样,只是Overlay不一样;        }    }    @Override    public void onDriveRouteSearched(DriveRouteResult driveRouteResult, int i) {        dismissProgress();        if (i==1000){            DrivingRouteOverlay drivingRouteOverlay = new DrivingRouteOverlay(                            this, aMap, drivePath, result.getStartPos(), result.getTargetPos());           aMap.clear();           drivingRouteOverlay.removeFromMap();           drivingRouteOverlay.addToMap();           drivingRouteOverlay.zoomToSpan();        }    }    @Override    public void onWalkRouteSearched(WalkRouteResult walkRouteResult, int i) {        dismissProgress();        if (i == 1000) {//1000代表成功            //在地图上绘制路径:            WalkRouteOverlay walkRouteOverlay = new WalkRouteOverlay(this, aMap, walkPath, walkRouteResult.getStartPos(), walkRouteResult.getTargetPos());            aMap.clear();            walkRouteOverlay.removeFromMap();//去掉Overlay上所有的Marker。            walkRouteOverlay.addToMap();//将Overlay添加到地图上显示            walkRouteOverlay.zoomToSpan();//调整地图能看到起点和终点        }    }    @Override    public void onRideRouteSearched(RideRouteResult rideRouteResult, int i) {    }
2 0
原创粉丝点击