一、android集成百度地圖(android百度地圖SDK系列)

總所周知摆马,百度地圖SDK是出了名的X拓提,他的隔壁鄰居高德簡直就是良心读恃。但是很多時(shí)候用哪個(gè)并不是我們自己能左右的。這不代态,新項(xiàng)目必須使用百度地圖(我:老板寺惫,能用高德嗎?老板:不能蹦疑。我:一萬只西雀。。你們懂)歉摧。算了艇肴,硬著上,在此做個(gè)總結(jié)以防后來人踩坑叁温,百度地圖不良心但是我有良心霸俚俊(機(jī)智)。

一膝但、android集成百度地圖(android百度地圖SDK系列)
二冲九、android百度地圖定位顯示當(dāng)前位置(android百度地圖SDK系列)
三、android百度地圖覆蓋物(android百度地圖SDK系列)

一跟束、申請密鑰

這里我就不羅里吧嗦的莺奸,相信你們都可以跟著百度地圖SDK搞定丑孩。
奉上地址:百度地圖SDK申請密鑰

二、配置環(huán)境

首先我們?nèi)ハ螺d需要的開發(fā)包灭贷,地址:百度地圖開發(fā)包下載
然后把jar包放入app目錄下libs文件夾里面温学,并且右鍵Add As Library。隨后在main目錄下新建一個(gè)jniLibs文件夾氧腰,把so文件放進(jìn)去枫浙。最后配置如下圖:

百度地圖SDK配置圖

三、顯示地圖

1.經(jīng)過以上兩步古拴,地圖SDK最基本的工作已經(jīng)做完了箩帚,接下來就要對代碼進(jìn)行一些初始化編寫來顯示地圖。
首先在AndroidManifest.xml配置文件里進(jìn)行配置:

//添加開發(fā)密鑰
<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="開發(fā)者 key" />  
</application>

//添加所需權(quán)限
<!--允許程序打開網(wǎng)絡(luò)套接字-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--允許程序設(shè)置內(nèi)置sd卡的寫權(quán)限-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--允許程序獲取網(wǎng)絡(luò)狀態(tài)-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--允許程序訪問WiFi網(wǎng)絡(luò)信息-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--允許程序讀寫手機(jī)狀態(tài)和身份-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--允許程序訪問CellID或WiFi熱點(diǎn)來獲取粗略的位置-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!--用于訪問GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <!--用于獲取wifi的獲取權(quán)限黄痪,wifi信息會(huì)用來進(jìn)行網(wǎng)絡(luò)定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    <!--用于申請調(diào)用A-GPS模塊-->
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    <!--用于申請獲取藍(lán)牙信息進(jìn)行室內(nèi)定位-->
    <uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

以上紧帕,對于AndroidManifest.xml的配置就完成了,但是值得注意的是桅打,如果需要用到間隔定位功能(每隔n秒定位一次)是嗜,則需要多配置一個(gè)service。這也算是踩的一個(gè)坑挺尾,我做間隔定位的時(shí)候死活不行鹅搪,看遍了百度地圖api都沒有找到對應(yīng)的解決方法,最后搜了好久才解決了這個(gè)問題遭铺,再次鄙視百度地圖api丽柿。service配置如下:

<!-- 百度地圖 間隔定位必須配置此service否則功能無效-->
<service android:name="com.baidu.location.f"
    android:enabled="true"
    android:process=":remote"/>

由于我的so文件是用了arm64-v8a,armeabi-v7a,x86所以在build.gradle里額外配置一句:

ndk {
    // 設(shè)置支持的SO庫架構(gòu)
    abiFilters 'arm64-v8a','armeabi-v7a','x86'
}

2.在我們的布局文件里面添加百度地圖控件:

<com.baidu.mapapi.map.MapView
    android:id="@+id/bmapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

3.新建一個(gè)全局的MyApplication類進(jìn)行初始化,并將其配置進(jìn)AndroidManifest.xml文件里:

SDKInitializer.initialize(getApplicationContext());

至此魂挂,所有的工作都已經(jīng)做完了甫题,我們來看看運(yùn)行效果:


運(yùn)行效果

到此為止一個(gè)最基本的百度地圖就顯示出來了,其它功能會(huì)在后續(xù)的文章中陸續(xù)寫出來涂召。最后為了防止有小白菜級(jí)別的同學(xué)坠非,我把所有代碼都貼出來↓
AndroidManifest.xml配置文件代碼

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.app.baidu">

    <!--允許程序打開網(wǎng)絡(luò)套接字-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--允許程序設(shè)置內(nèi)置sd卡的寫權(quán)限-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--允許程序獲取網(wǎng)絡(luò)狀態(tài)-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--允許程序訪問WiFi網(wǎng)絡(luò)信息-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--允許程序讀寫手機(jī)狀態(tài)和身份-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--允許程序訪問CellID或WiFi熱點(diǎn)來獲取粗略的位置-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!--用于訪問GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <!--用于獲取wifi的獲取權(quán)限,wifi信息會(huì)用來進(jìn)行網(wǎng)絡(luò)定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    <!--用于申請調(diào)用A-GPS模塊-->
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    <!--用于申請獲取藍(lán)牙信息進(jìn)行室內(nèi)定位-->
    <uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

    <application
        android:name=".application.MyApplication"
        android: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-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="tmt2PZ01MZqzMDBmEIwi56R4RgvG596o" />

        <activity android:name=".ui.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- 百度地圖 間隔定位必須配置此service否則功能無效-->
        <service android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote"/>

    </application>

</manifest>

布局文件代碼:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.baidu.mapapi.map.MapView
        android:id="@+id/bmapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>

MyApplication類代碼:

public class MyApplication extends Application{

    @Override
    public void onCreate() {
        super.onCreate();
        //百度地圖SDK的全局初始化
        SDKInitializer.initialize(getApplicationContext());
    }
}

MainActivity類代碼:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末果正,一起剝皮案震驚了整個(gè)濱河市炎码,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舱卡,老刑警劉巖辅肾,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異轮锥,居然都是意外死亡矫钓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來新娜,“玉大人赵辕,你說我怎么就攤上這事「帕洌” “怎么了还惠?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長私杜。 經(jīng)常有香客問我蚕键,道長,這世上最難降的妖魔是什么衰粹? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任锣光,我火速辦了婚禮,結(jié)果婚禮上铝耻,老公的妹妹穿的比我還像新娘誊爹。我一直安慰自己,他們只是感情好瓢捉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布频丘。 她就那樣靜靜地躺著,像睡著了一般泡态。 火紅的嫁衣襯著肌膚如雪搂漠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天某弦,我揣著相機(jī)與錄音状答,去河邊找鬼。 笑死刀崖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拍摇。 我是一名探鬼主播亮钦,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼充活!你這毒婦竟也來了蜂莉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對情侶失蹤混卵,失蹤者是張志新(化名)和其女友劉穎映穗,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幕随,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚁滋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辕录。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡睦霎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出走诞,到底是詐尸還是另有隱情副女,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布蚣旱,位于F島的核電站碑幅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏塞绿。R本人自食惡果不足惜沟涨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望位隶。 院中可真熱鬧拷窜,春花似錦、人聲如沸涧黄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笋妥。三九已至懊昨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間春宣,已是汗流浹背酵颁。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留月帝,地道東北人躏惋。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像嚷辅,于是被迫代替她去往敵國和親簿姨。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容