天天看點

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

/*設定目的地開始導航/

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) {
        }
    });
}
           

繼續閱讀