6.8 线路规划

  // =========== 得到规划路线 ==========
                // -------(1) 得到路线搜索句柄 ----------
                RouteSearch routeSearch = new RouteSearch(getApplication());
                // -------(2) 设置路径源点和目的坐标点
                RouteSearch.FromAndTo ft = new RouteSearch.FromAndTo(_startPoint,_endPoint);

                Log.e("Amap", "StartPoint "+_startPoint.getLatitude() +", "+_startPoint.getLongitude());
                Log.e("Amap", "EndPoint " + _endPoint.getLatitude() +", " +_endPoint.getLongitude());
                // fromAndTo包含路径规划的起点和终点,drivingMode表示驾车模式
                // 第三个参数表示途经点(最多支持16个),
                // 第四个参数表示避让区域(最多支持32个),第五个参数表示避让道路
                // -------(3) 设置查询条件 -----------
                RouteSearch.DriveRouteQuery driver_query
                        = new RouteSearch.DriveRouteQuery(ft, RouteSearch.DrivingDefault, null, null, "");

                // -------(4) 设置查询条件回调(主要在地图上绘图) -----------
                routeSearch.setRouteSearchListener(new RouteSearch.OnRouteSearchListener() {
                    @Override
                    public void onBusRouteSearched(BusRouteResult busRouteResult, int i) {
                        //公交查询路线规划完成
                    }

                    @Override
                    public void onDriveRouteSearched(DriveRouteResult driveRouteResult, int rCode) {
                        //驾车查询路线规划完成
                        Log.e("Amap", "++++ calc end " + rCode);

                        if (rCode != 1000) {
                            Log.e("Amap", "onDriveRouteSearched error rcode = "+rCode);
                            return ;
                        }

                        // 主要在地图上 描绘出路径

                        // 首先清楚地图上之前绘图
                        mMap.clear();

                        //这里面可能会有很多种查询的路径,我们默认使用第一个driveRouteResult.getPaths().get(0)
                        DrivePath drivePath = driveRouteResult.getPaths().get(0);

                        //开始绘图 创建路径覆盖物
                        DrivingRouteOverlay drivingRouteOverlay = new DrivingRouteOverlay(
                                getApplication(),
                                mMap,
                                drivePath,
                                _startPoint,
                                _endPoint,
                                null
                        );

                        //将路径中转图标去掉,否则影响视图效果
                        drivingRouteOverlay.setNodeIconVisibility(false);

                        //将路线覆盖物添加到地图中
                        drivingRouteOverlay.removeFromMap();
                        drivingRouteOverlay.addToMap();

                        //以最适应的缩进展示效果
                        drivingRouteOverlay.zoomToSpan();

                    }

                    @Override
                    public void onWalkRouteSearched(WalkRouteResult walkRouteResult, int i) {
                        //步行查询路线规划完成
                    }

                    @Override
                    public void onRideRouteSearched(RideRouteResult rideRouteResult, int i) {
                        //骑行查询路线规划完成
                    }
                });

                //--------(5) 启动路线规划查询
                routeSearch.calculateDriveRouteAsyn(driver_query);

results matching ""

    No results matching ""