首先還是常規路數,申請開發者賬戶,創建應用
Baidu Dev Center接下來去下載Demo工程,地址是http://lbsyun.baidu.com/sdk/download,這裡最好是自己新建一個android工程,然後將demo中的相應文件拷貝到工程裡去,因為在申請Key的過程中就需要用到包名。修改工程菜單文件AndroidManifest.xml文件,將申請的Key添加進去,重新運行工程,導航界面就出來了
Baidu Navi Demo UI從網絡上找到了2個地點的經緯度信息,(121.387211,31.088074)和(121.523014,31.277986),一個作為起始點,一個作為結束點,調用導航函數BNRoutePlanNode,提示”算路失敗”的錯誤。後來發現實參的順序是經度在前,緯度在後,調換下順序就導航成功了
在打開demo時,發現logcat裡有句報錯
bdTTSGetAuthorize failed!
這是因為SDK內置百度TTS語音播報功能,需要對app進行授權驗證才能夠使用,授權方法是http://developer.baidu.com/map/index.php?title=android-navsdk/guide/voice
在百度地圖SDK中提供的Demo中,有離線下載城市地圖資源包的示例,使用默認路徑,看看BaseMapDemo.java裡的onCreate函數
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = getIntent(); if (intent.hasExtra("x") && intent.hasExtra("y")) { // 當用intent參數時,設置中心點為指定點 Bundle b = intent.getExtras(); LatLng p = new LatLng(b.getDouble("y"), b.getDouble("x")); mMapView = new MapView(this, new BaiduMapOptions().mapStatus(new MapStatus.Builder() .target(p).build())); } else { mMapView = new MapView(this, new BaiduMapOptions()); } setContentView(mMapView); mBaiduMap = mMapView.getMap(); }
當前一個activity沒有傳值(key值分別是x和y,對應經緯度信息)過來時,會默認顯示北京的地圖。知道了這點後,可以通過傳值來更改默認的地圖顯示,如下示例
Bundle bundle = new Bundle();bundle.putDouble("y",31.088074);bundle.putDouble("x",121.387211);intent.putExtras(bundle);startActivity(intent);