本文介紹百度地圖的簡單顯示的操作步驟,對于詳細顯示百度地圖的定位,檢索,路線規劃等等,另作文章總結。

這里在布局中添加幾個按鈕,通過經緯度定位來確定位置,并顯示地圖效果:

下面是具體操作步驟

選擇具體內容,圖解:

選擇開發包,當然也可以選擇示例代碼,示例代碼里面有簡單的示例(包含開發包)。 找到下載的Lib包,解壓得到一個libs文件夾,這個文件夾,就是Android百度地圖需要用的SDK開發包。 圖解:

要復制的文件的圖解:


compile files('libs/BaiduLBS_Android.jar')5.依賴so文件,也是在build中,代碼:
sourceSets { main { jniLibs.srcDirs = ['libs'] } }導入jar和依賴so后的圖示:
(三) application中添加開發者的key
這步需要操作的還是比較多的,并且設計到上面提到的幾個麻煩的點。
1.獲得開發版SHA1
在AndroidStudio右邊找到Gradle(要找程序對應的),點開(圖片不夠大,右鍵,新窗口打開)

接下來

發布版的SHA1,在簽名打包后會給你的,不過這里可以先不用。 簽名打包的方法步驟:http://blog.csdn.net/wenzhi20102321/article/details/54174267如果是在Eclipse中獲取開發版SHA1(里面有講如何使用cmd命令獲取開發版的SHA1): http://www.th7.cn/PRogram/Android/201410/297534.shtml
2.在百度中注冊百度地圖程序,申請密鑰:
地址:http://lbsyun.baidu.com/apiconsole/key創建應用,圖解:
填寫應用的數據,圖解:

點擊提交后,生成百度地圖的密鑰:

3.在Studio地圖程序中的application添加密鑰:
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="McaaXKfXugXGWxo7bcYWLZOzd72mAYts" />上面的name是不用變的,把value的值替換成你申請到的百度地圖的密鑰就可以了。 圖解(添加百度地圖密鑰的位置):
注意:這里百度地圖的密鑰是根據包名生成的,每個程序都是不一樣的,新建程序后又要重新申請密鑰,不要使用以前的密鑰!
上面的步驟做完后,下面都是比較簡單的步驟 其實根據百度地圖開發的操作提示步驟一步一步執行就可以了: http://lbsyun.baidu.com/index.php?title=androidsdk/guide/hellobaidumap
(四) 添加權限
<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" />(五)初始化sdk(就一句話)
可以在Activity的onCreate方法中執行,也可以在MyApp中執行。//在Activity中注冊//在使用SDK各組件之前初始化context信息,傳入ApplicationContext//注意該方法要再setContentView方法之前實現SDKInitializer.initialize(getApplicationContext());//如果是在MyApp中注冊,記得要在AndroidManifest中注冊//SDKInitializer.initialize(this);(六)添加布局,顯示地圖視圖的代碼設計
獲取地圖上任意位置的經緯度:http://api.map.baidu.com/lbsapi/getpoint/index.html
1.設計布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="shenzhen" android:text="深圳大學" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="nongda" android:text="江西農大" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="myHome" android:text="我家" /> </LinearLayout> <com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /></LinearLayout>2.顯示百度地圖的代碼
package fuxi.baidumap;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BitmapDescriptor;import com.baidu.mapapi.map.BitmapDescriptorFactory;import com.baidu.mapapi.map.MapStatusUpdate;import com.baidu.mapapi.map.MapStatusUpdateFactory;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MarkerOptions;import com.baidu.mapapi.map.OverlayOptions;import com.baidu.mapapi.model.LatLng;public class MainActivity extends AppCompatActivity { MapView mMapView = null;//百度地圖顯示布局對象 BaiduMap mBaiduMap = 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); //百度地圖控制對象 mBaiduMap = mMapView.getMap(); //普通地圖 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); } @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(); } /** * 跳轉到深圳大學的地圖顯示 */ public void shenzhen(View view) { //定義Maker坐標點,設置大學經度和緯度113.943062,22.54069 //設置的時候經緯度是反的 緯度在前,經度在后 LatLng point = new LatLng(22.54069, 113.943062); //構建Marker圖標 BitmapDescriptor bitmap = BitmapDescriptorFactory .fromResource(R.mipmap.shenzhen); //構建MarkerOption,用于在地圖上添加Marker OverlayOptions option = new MarkerOptions() .position(point) .icon(bitmap); //在地圖上添加Marker,并顯示 mBaiduMap.addOverlay(option); //1-20級 20級室內地圖 MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLngZoom(point, 19); mBaiduMap.setMapStatus(mapStatusUpdate); } /** * 跳轉到江西農大的地圖顯示 */ public void nongda(View view) { //設置江西農業大學經度和緯度115.839391,28.76806 //設置的時候經緯度是反的 緯度在前,經度在后 LatLng latlng = new LatLng(28.76806, 115.839391); //1-20級 20級室內地圖 MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLngZoom(latlng, 18); mBaiduMap.setMapStatus(mapStatusUpdate); } /** * 跳轉到我家的地圖顯示 */ public void myHome(View view) { //設置我家經度和緯度111.00047,22.923935 //設置的時候經緯度是反的 緯度在前,經度在后 LatLng latlng = new LatLng(22.923935, 111.00047); //1-20級 20級室內地圖 MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLngZoom(latlng, 18); mBaiduMap.setMapStatus(mapStatusUpdate); }}上面只有顯示深圳大學的地理位置時,添加了標記物,其他的都是根據經緯度簡單定位。 程序運行后的界面(默認顯示北京首都,當然也可以設置):
點擊深圳大學按鈕顯示的界面:

點擊農大按鈕后顯示的界面:

點擊我家按鈕后顯示的界面:

到這里,關于百度地圖的簡單顯示和應用已經介紹完畢了。 對于很多手機程序只顯示某個地理位置,都是根據經緯度定位確定的,上面也是有演示的代碼的,并且可以添加標記物。 當然,這里只是開發百度地圖的開始而已,百度地圖還有很多其他功能沒有詳細介紹,比如:交通圖,或路線規劃圖,周圍景點搜索功能等等。這些另作文章總結! 如果上面能夠顯示,也可以自己摸索一下百度地圖的其他功能,在百度開發者網頁中,都是有比較詳細的介紹,這個也是考驗你的學習研究能力。 地址:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/introduction
圖解:

點擊左邊的目錄,右邊會有對應的步驟和代碼。 謝謝! 對于上面用于顯示百度地圖的View,百度官方還提供了另一種方法顯示百度地圖,那就是使用碎片! 主要代碼如下: 布局代碼:
<fragment android:id="@+id/fragment" android:name="com.baidu.mapapi.map.MapFragment" android:layout_width="match_parent" android:layout_height="match_parent" />java代碼:MapView mMapView = null;//百度地圖顯示布局對象 //獲取地圖控件引用 mMapView = ((MapFragment) getFragmentManager().findFragmentById(R.id.fragment)).getMapView();百度地圖的控制對象都是一樣從View中獲取的: BaiduMap mBaiduMap = null;//百度地圖控制對象 //百度地圖控制對象 mBaiduMap = mMapView.getMap();使用fragment顯示地圖的好處就是不用重寫:onResume、onStop、onDestroy方法,生命生命周期,生命周期百度地圖自己在碎片類已經進行管理了!
新聞熱點
疑難解答