程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 百度導航Android版問題集

百度導航Android版問題集

編輯:關於PHP編程

百度導航Android版問題集


軟硬件環境

  • Macbook Pro MGX 72
  • Android Studio 1.4
  • 酷比魔方7寸平板
  • 百度導航SDK 3.0.0

運行導航Demo

首先還是常規路數,申請開發者賬戶,創建應用

Baidu Dev CenterBaidu Dev Center

接下來去下載Demo工程,地址是http://lbsyun.baidu.com/sdk/download,這裡最好是自己新建一個android工程,然後將demo中的相應文件拷貝到工程裡去,因為在申請Key的過程中就需要用到包名。修改工程菜單文件AndroidManifest.xml文件,將申請的Key添加進去,重新運行工程,導航界面就出來了

Baidu Navi Demo UIBaidu 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);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved