百度地圖之六標註行走路線搜尋

來源:互聯網
上載者:User

如何標註行走路線搜尋及RouteOverlay

在實際開發中我們需要標註最優行走路線

實戰案例:從天安門到百度大廈行走路線

主要代碼:

 
import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.GeoPoint;import com.baidu.mapapi.MKAddrInfo;import com.baidu.mapapi.MKBusLineResult;import com.baidu.mapapi.MKDrivingRouteResult;import com.baidu.mapapi.MKGeneralListener;import com.baidu.mapapi.MKPlanNode;import com.baidu.mapapi.MKPoiResult;import com.baidu.mapapi.MKSearch;import com.baidu.mapapi.MKSearchListener;import com.baidu.mapapi.MKSuggestionResult;import com.baidu.mapapi.MKTransitRouteResult;import com.baidu.mapapi.MKWalkingRouteResult;import com.baidu.mapapi.MapActivity;import com.baidu.mapapi.MapView;import com.baidu.mapapi.RouteOverlay;import android.os.Bundle;import android.widget.Toast;public class MainActivity extends MapActivity {    // 添加百度地圖的相關控制項    private MapView mapView;    // 載入地圖的引擎    private BMapManager bMapManager;    // 百度地圖的key    private String KeyString = "8C426377B3526B6BF3672C9BA3BB544D1E8289CD";    // 用於位置檢索、周邊檢索、範圍檢索、公交檢索、駕乘檢索、步行檢索等    private MKSearch mkSearch;        //定義一個起始點,終點    private MKPlanNode start;    private MKPlanNode end;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        mapView = (MapView) this.findViewById(R.id.bmapView);        bMapManager = new BMapManager(MainActivity.this);        // 必須要載入key        bMapManager.init(KeyString, new MKGeneralListener() {            public void onGetPermissionState(int arg0) {                            }            public void onGetNetworkState(int arg0) {                if (arg0 == 300) {                    Toast.makeText(MainActivity.this, "輸入的key有錯,請核實!!", 1).show();                }            }        });        this.initMapActivity(bMapManager);        //執行個體化地圖的查詢類        mkSearch = new MKSearch();        mkSearch.init(bMapManager, new MySearchListener());        //給起始點構建一個座標        start = new MKPlanNode();        start.pt = new GeoPoint((int)(39.915*1E6),(int)(116.404*1E6));        end = new MKPlanNode();        end.pt = new GeoPoint(40057031,116307852);        mkSearch.walkingSearch(null, start, null, end);            }    public class MySearchListener implements MKSearchListener {        public void onGetAddrResult(MKAddrInfo arg0, int arg1) {            // TODO Auto-generated method stub        }        public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {            // TODO Auto-generated method stub        }        public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {            // TODO Auto-generated method stub        }        public void onGetPoiResult(MKPoiResult result, int type, int iError) {            // TODO Auto-generated method stub        }        public void onGetRGCShareUrlResult(String arg0, int arg1) {            // TODO Auto-generated method stub        }        public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {            // TODO Auto-generated method stub        }        public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {            // TODO Auto-generated method stub        }        public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {            // TODO Auto-generated method stub            if(arg0==null){                return;            }            RouteOverlay routeOverlay = new RouteOverlay(MainActivity.this,mapView);            routeOverlay.setData(arg0.getPlan(0).getRoute(0));            mapView.getOverlays().add(routeOverlay);            mapView.invalidate();        }    }    @Override    protected void onDestroy() {        super.onDestroy();        if (bMapManager != null) {            bMapManager.destroy();            bMapManager = null;        }    }    @Override    protected void onResume() {        super.onResume();        if (bMapManager != null) {            bMapManager.start();        }    }    @Override    protected void onPause() {        super.onPause();        if (bMapManager != null) {            bMapManager.stop();        }    }    @Override    protected boolean isRouteDisplayed() {        return false;    }}

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.