百度地圖實現最簡單的路徑規劃

/*設置目的地開始導航/
if (BaiduNaviManager.isNaviInited()) {
routeplanToNavi();
}

============================
/**
* 路徑規劃相關
*/
private void initRoutePlan() {
RoutePlanSearch searh = RoutePlanSearch.newInstance();
PlanNode s = PlanNode.withLocation(latLng);
PlanNode e = PlanNode.withLocation(densitylatLng);
searh.drivingSearch(new DrivingRoutePlanOption().from(s).to(e));
searh.setOnGetRoutePlanResultListener(new OnGetRoutePlanResultListener() {
@Override
public void onGetWalkingRouteResult(WalkingRouteResult result) {
}

        @Override
        public void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {

        }

        @Override
        public void onGetMassTransitRouteResult(MassTransitRouteResult massTransitRouteResult) {

        }

        @Override
        public void onGetDrivingRouteResult(DrivingRouteResult result) {
            if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
                Toast.makeText(PanYuanListActivity.this, "抱歉,未找到結果", Toast.LENGTH_SHORT).show();
            }
            if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {
                // 起終點或途經點地址有岐義,通過以下接口獲取建議查詢信息
                return;
            }
            if (result.error == SearchResult.ERRORNO.NO_ERROR) {
                if (result.getRouteLines().size() > 0) {
                    DrivingRouteLine route = result.getRouteLines().get(0);
                    int distance = route.getDistance();
                    ToastUtil.show("距離" + distance + "m");

                    //可自定義後面的DrivingRouteOverlay以改變起點終點圖標,路徑顏色,和點擊事件等
                    DrivingRouteOverlay overlay = new DrivingRouteOverlay(mBaiduMap);
                    ///mBaiduMap.setOnMarkerClickListener(overlay);
                    overlay.setData(route);
                    overlay.addToMap();
                    overlay.zoomToSpan();
                } else {
                    Log.d("route result", "結果數<0");
                    toast("暫未找到路線");
                    return;
                }
            }
        }

        @Override
        public void onGetIndoorRouteResult(IndoorRouteResult indoorRouteResult) {
        }

        @Override
        public void onGetBikingRouteResult(BikingRouteResult bikingRouteResult) {
        }
    });
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章