Android百度地圖API整合一《基礎地圖》,整合百度地圖api

來源:互聯網
上載者:User

Android百度地圖API整合一《基礎地圖》,整合百度地圖api

  在使用百度地圖API整合百度地圖時,碰到了一些坑,特開此貼記錄。。。

  直接開始代碼

  1.建立一個工程

  建議使用AS!如果使用ES的話,會出現一個java.lang.NoClassDefFoundError: com.baidu.location.LocationClient 這種錯誤,在網上百度了半天時間,大都是同樣的一些答案,而且都解決不了問題!(這也是我很鬱悶的一件事,為什麼有些沒用的東西,有些人還瘋狂的轉來轉去。。。)所以,最終我還是選擇使用了AS。

  2.進入百度地圖首頁

  1)沒有帳號的話,申請一個百度帳號

  2)下載百度地圖範例程式碼,並解壓(下載時可能會下載失敗,沒辦法,多下幾次吧。。。)

        

    解壓如下

        

 

 

  3.根據官方文檔Android地圖SDK,整合基礎的地圖頁面

    

 

    1)擷取密鑰

      * 點擊擷取密鑰

       

 

 

      * 填寫資訊

       

    

       應用程式名稱(在工程的value >> String.xml >> app_name)

       SHA1值:命令列視窗 >> keytool -list -v -keystore FilePath (FilePath:C盤 >> 使用者 >> .android >> debug.keystore)

          

          

 

          注意:如果運行報錯   203:校正碼錯誤

             解決方案:1.將運行後的.apk檔案,複製出來,尾碼名更改為zip,並解壓

                    

                  2.命令列視窗 >> keytool -printcert -file FilePath (FilePath:如)

                    

                  3.拿到這個SHA1值,最好是去重新到百度地圖開放平台上重新建立一次應用,獲得一個新的密鑰(記得在AndroidManifest.xml中修改)

 

      包名:AndroidManifest.xml中

  

      * 得到一個密鑰

       

     2) 配置

      * 匯入jar包,並引用

       

 

      * 在build.gradle  >> android  中插入下面代碼  

 sourceSets {        main {            jniLibs.srcDirs = ['libs']        }    }

  

      * 在application中添加開發密鑰

<meta-data          android:name="com.baidu.lbsapi.API_KEY"          android:value="開發人員 key" />     <!-- 這個開發人員key,修改成我們上面建立應用獲得的密鑰即可 -->

      * 添加要求的權限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /><uses-permission android:name="android.permission.WAKE_LOCK"/><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_SETTINGS" />

      * 在布局xml檔案中添加地圖控制項

1 <com.baidu.mapapi.map.MapView  2     android:id="@+id/bmapView"  3     android:layout_width="fill_parent"  4     android:layout_height="fill_parent"  5     android:clickable="true" />

 

      * 在應用程式建立時初始化 SDK引用的Context 全域變數,管理地圖生命週期

public class MainActivity extends Activity {      MapView mMapView = null;      @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);           //在使用SDK各組件之前初始化context資訊,傳入ApplicationContext          //注意該方法要再setContentView方法之前實現          SDKInitializer.initialize(getApplicationContext());          setContentView(R.layout.activity_main);          //擷取地圖控制項引用          mMapView = (MapView) findViewById(R.id.bmapView);      }      @Override      protected void onDestroy() {          super.onDestroy();          //在activity執行onDestroy時執行mMapView.onDestroy(),實現地圖生命週期管理          mMapView.onDestroy();      }      @Override      protected void onResume() {          super.onResume();          //在activity執行onResume時執行mMapView. onResume (),實現地圖生命週期管理          mMapView.onResume();          }      @Override      protected void onPause() {          super.onPause();          //在activity執行onPause時執行mMapView. onPause (),實現地圖生命週期管理          mMapView.onPause();          }      }

 

   

      完成以上步驟後,運行程式,即可在您的應用中顯示如下地圖:

      

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.