30.Android之百度地图简单学习
今天用了下百度地圖,簡單寫了一個例子,記錄下。
一、申請AK(API Key)
? ? 要想使用百度地圖sdk,就必須申請一個百度地圖的api key。申請流程挺簡單的。
? ? 首先注冊成為百度的開發者,然后打開http://lbsyun.baidu.com/apiconsole/key/create這個網址,添加應用:
至于怎樣獲取數字簽名(SHA1)和包名,這里有詳細教程http://developer.baidu.com/map/index.php?title=androidsdk/guide/key,這里就不一一詳述了。
接下來就是把下載下來的開發包添加到工程里面,也就是配置下地圖SDK工程:
Eclipse工程配置方法
第一步:在工程里新建libs文件夾,將開發包里的baidumapapi_vX_X_X.jar拷貝到libs根目錄下,將libBaiduMapSDK_vX_X_X.so拷貝到libs\armeabi目錄下(官網demo里已有這兩個文件,如果要集成到自己的工程里,就需要自己添加),拷貝完成后的工程目錄如下圖所示;
第二步:在工程屬性->Java Build Path->Libraries中選擇“Add External JARs”,選定baidumapapi_vX_X_X.jar,確定后返回。
通過以上兩步操作后,您就可以正常使用百度地圖SDK為您提供的全部功能了。
注意:由于adt插件升級,若您使用Eclipse adt 22的話,需要對開發環境進行相應的設置,方法如下:
1. 在Eclipse 中選中工程,右鍵選 Properties->Java Build Path->Order and Export 使 Android Private Libraries處于勾選狀態;
2. Project -> clean-> clean all .
Android Studio工程配置方法
第一步:在工程app/libs目錄下放入baidumapapi_vX_X_X.jar包,在src/main/目錄下新建jniLibs目錄,放入libBaiduMapSDK_vX_X_X_X.so如下圖所示,注意jar和so的前3位版本號必須一致,并且保證使用一次下載的文件夾中的兩個文件,不能不同功能組件的jar或so交叉使用。
第二步:導入jar包。菜單欄選擇File->Project Structor->Modules->Dependencies,點擊+號,選擇File dependency,選擇jar包導入。
通過以上兩步操作后,您就可以正常使用百度地圖SDK為您提供的全部功能了。
?
二、工程例子
我的開發工具是eclipse,所以接下來的代碼基于eclipse工具寫的,接下來就是正文。
1. 將下載下來的開發包中的jar包和so文件添加到libs文件下,如圖:
2. 在AndroidManifest.xml中添加開發秘鑰和所需權限:
權限:
1 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 2 <uses-permission android:name="android.permission.INTERNET" /> 3 <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> 4 <uses-permission android:name="android.permission.WAKE_LOCK" /> 5 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 6 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 7 <uses-permission android:name="android.permission.GET_TASKS" /> 8 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 9 <uses-permission android:name="android.permission.WRITE_SETTINGS" />3. 在布局文件中添加地圖控件:
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" />4.修改MainActivity.java文件:
1 package com.example.testmap; 2 3 import com.baidu.mapapi.SDKInitializer; 4 import com.baidu.mapapi.map.BaiduMap; 5 import com.baidu.mapapi.map.MapView; 6 import android.app.Activity; 7 import android.os.Bundle; 8 import android.view.Menu; 9 import android.view.MenuItem; 10 11 public class MainActivity extends Activity { 12 13 // 百度地圖控件 14 private MapView mMapView = null; 15 // 百度地圖對象 16 private BaiduMap mBaiduMap = null; 17 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 22 // 在使用SDK各組件之前初始化context信息,傳入ApplicationContext 23 // 注意該方法要再setContentView方法之前實現 24 SDKInitializer.initialize(getApplicationContext()); 25 setContentView(R.layout.activity_main); 26 27 // 獲取地圖控件引用 28 mMapView = (MapView) findViewById(R.id.bmapview); 29 mBaiduMap = mMapView.getMap(); 30 } 31 32 @Override 33 protected void onResume() { 34 super.onResume(); 35 mMapView.onResume(); 36 } 37 38 @Override 39 protected void onPause() { 40 super.onPause(); 41 mMapView.onPause(); 42 } 43 44 @Override 45 protected void onDestroy() { 46 mMapView.onDestroy(); 47 mMapView = null; 48 super.onDestroy(); 49 } 50 51 @Override 52 public boolean onCreateOptionsMenu(Menu menu) { 53 CreateMenu(menu); 54 return true; 55 } 56 57 private void CreateMenu(Menu menu) { 58 MenuItem mnu1 = menu.add(0, 0, 0, "顯示衛星地圖");{ 59 } 60 MenuItem mnu2 = menu.add(0, 1, 1, "實時交通地圖");{ 61 } 62 MenuItem mnu3 = menu.add(0, 2, 2, "普通地圖 ");{ 63 } 64 } 65 66 @Override 67 public boolean onOptionsItemSelected(MenuItem item) { 68 // Handle action bar item clicks here. The action bar will 69 // automatically handle clicks on the Home/Up button, so long 70 // as you specify a parent activity in AndroidManifest.xml. 71 if (item.getItemId() == 0) 72 { 73 // 顯示為衛星地圖 74 mBaiduMap.setBaiduHeatMapEnabled(false); 75 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); 76 } 77 else if (item.getItemId() == 1) 78 { 79 // 實時交通地圖 80 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); 81 mBaiduMap.setBaiduHeatMapEnabled(true); 82 } 83 else if (item.getItemId() == 2) 84 { 85 // 普通地圖 86 mBaiduMap.setBaiduHeatMapEnabled(false); 87 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); 88 } 89 return true; 90 } 91 92 }?
?5.運行效果:
點擊menu鍵,有三種地圖選擇:
點擊顯示衛星地圖:
點擊實時交通地圖:
回到普通地圖:
轉載于:https://www.cnblogs.com/benchao/p/5125362.html
總結
以上是生活随笔為你收集整理的30.Android之百度地图简单学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32f4 ARM Bootload
- 下一篇: myeclipse始终build wor