Android中应用百度地图API开发地图APP实例-显示百度地图
場(chǎng)景
效果
?
在使用百度地圖API之前需要先在百度地圖開(kāi)放平臺(tái)中申請(qǐng)API_KEY
http://lbsyun.baidu.com/index.php
申請(qǐng)API_KEY
登錄百度開(kāi)放平臺(tái)后找到控制臺(tái)下的應(yīng)用管理-創(chuàng)建應(yīng)用
?
依次輸入應(yīng)用名,應(yīng)用類型選擇Android SDK
?
然后下面需要輸入發(fā)布版SHA1和包名
?
獲取應(yīng)用SHA1
首先來(lái)到.Android文件所在的位置,默認(rèn)位置如下
?
如果修改過(guò)就要到修改的路徑下。
AndroidStudio修改默認(rèn)C盤配置文件夾(.android.gradle.AndroidStudio)以及修改后避免踩的坑:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103791948
我這里是修改過(guò),所以這里的路徑是在D:\Android
?
在此路徑下打開(kāi)命令行窗口。
這里采用使用JDK自帶的keytool工具生成
keytool默認(rèn)路徑:C:\Program Files\Java\jdk1.8.0_181\bin
?
然后將keytool.exe拖到上面打開(kāi)的.Android所在路徑命令行窗口中,然后再后面輸入
-list -v -keystore debug.keystore回車。然后提示輸入密鑰庫(kù)命令,直接回車
?
然后就可以在證書指紋中獲取SHA1
?
然后再回到百度開(kāi)放平臺(tái)點(diǎn)擊提交。
就可以獲取開(kāi)發(fā)密鑰了。
獲取Android地圖SDK
然后再回到百度開(kāi)放平臺(tái)中開(kāi)發(fā)文檔下的Android開(kāi)發(fā)下Android地圖SDK
?
然后選擇自定義下載
?
然后這里只勾選幾個(gè)基本功能,具體功能根據(jù)自己需求勾選,然后點(diǎn)擊下方的開(kāi)發(fā)包和示例代碼進(jìn)行下載
?
項(xiàng)目中集成SDK
使用AndroidStudio新建項(xiàng)目,將項(xiàng)目視圖由Android切換為Project
?
這樣就會(huì)顯示libs目錄,然后解壓上面下載的開(kāi)發(fā)包,可以看到其下面libs目錄下兩個(gè)jar包,將其復(fù)制到項(xiàng)目的lib下
?
然后選中這兩個(gè)jar包右鍵Add As Library,添加到庫(kù)
?
然后在src/main下新建JNIlibs目錄
?
然后將上面SDK下libs下的所有目錄復(fù)制到此目錄下
?
然后將項(xiàng)目切換回Android視圖下,打開(kāi)activity_main.xml修改布局文件
將布局修改為相對(duì)布局,并添加百度地圖組件,并設(shè)置id
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapview"android:layout_width="match_parent"android:layout_height="match_parent"android:clickable="true"/></RelativeLayout>然后來(lái)到MainActivity.java中,首先聲明地圖組件然后再onCreate方法中初始化地圖SDK,注意初始化地圖SDK
的代碼要放在setContentView的代碼前。
然后還需要分別設(shè)置地圖組件的聲明周期。
package com.badao.baidumap;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.MapView;public class MainActivity extends AppCompatActivity {private MapView mapView;//聲明地圖組件@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//初始化地圖SDKSDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_main);mapView = (MapView) findViewById(R.id.bmapview);}@Overrideprotected void onPause() {super.onPause();mapView.onPause();}@Overrideprotected void onDestroy() {super.onDestroy();mapView.onDestroy();mapView = null;}@Overrideprotected void onResume() {super.onResume();mapView.onResume();} }然后打開(kāi)mainfests下的AndroidManifest.xml
首先添加meta-data標(biāo)簽,內(nèi)容如下
??????? <meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="申請(qǐng)的開(kāi)發(fā)密鑰"/>然后進(jìn)行權(quán)限的聲明。完整示例代碼
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="com.badao.baidumap"><!-- 訪問(wèn)網(wǎng)絡(luò),進(jìn)行地圖相關(guān)業(yè)務(wù)數(shù)據(jù)請(qǐng)求,包括地圖數(shù)據(jù),路線規(guī)劃,POI檢索等 --><uses-permission android:name="android.permission.INTERNET" /><!-- 獲取網(wǎng)絡(luò)狀態(tài),根據(jù)網(wǎng)絡(luò)狀態(tài)切換進(jìn)行數(shù)據(jù)請(qǐng)求網(wǎng)絡(luò)轉(zhuǎn)換 --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 讀取外置存儲(chǔ)。如果開(kāi)發(fā)者使用了so動(dòng)態(tài)加載功能并且把so文件放在了外置存儲(chǔ)區(qū)域,則需要申請(qǐng)?jiān)摍?quán)限,否則不需要 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><!-- 寫外置存儲(chǔ)。如果開(kāi)發(fā)者使用了離線地圖,并且數(shù)據(jù)寫在外置存儲(chǔ)區(qū)域,則需要申請(qǐng)?jiān)摍?quán)限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="申請(qǐng)的開(kāi)發(fā)密鑰"/><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>?
這塊代碼可以參照之前在百度開(kāi)放平臺(tái)下載的示例代碼。
或者可以參照官網(wǎng)的開(kāi)發(fā)指南
http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/showmap
然后需要將項(xiàng)目運(yùn)行在可聯(lián)網(wǎng)的真機(jī)或者第三方模擬器上
?
總結(jié)
以上是生活随笔為你收集整理的Android中应用百度地图API开发地图APP实例-显示百度地图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: VisualStudioCode下载安装
- 下一篇: Angular介绍、安装Angular