Android中應用百度地圖API開發地圖APP實例-顯示百度地圖


場景

效果

 

 

在使用百度地圖API之前需要先在百度地圖開放平台中申請API_KEY

http://lbsyun.baidu.com/index.php

申請API_KEY

登錄百度開放平台后找到控制台下的應用管理-創建應用

 

 

依次輸入應用名,應用類型選擇Android SDK

 

 

然后下面需要輸入發布版SHA1和包名

 

 

獲取應用SHA1

首先來到.Android文件所在的位置,默認位置如下

 

 

如果修改過就要到修改的路徑下。

AndroidStudio修改默認C盤配置文件夾(.android.gradle.AndroidStudio)以及修改后避免踩的坑:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103791948

我這里是修改過,所以這里的路徑是在D:\Android

 

 

在此路徑下打開命令行窗口。

這里采用使用JDK自帶的keytool工具生成

keytool默認路徑:C:\Program Files\Java\jdk1.8.0_181\bin

 

 

然后將keytool.exe拖到上面打開的.Android所在路徑命令行窗口中,然后再后面輸入

-list -v -keystore debug.keystore

回車。然后提示輸入密鑰庫命令,直接回車

然后就可以在證書指紋中獲取SHA1

 

 

 

然后再回到百度開放平台點擊提交。就可以獲取開發密鑰了。

 

 

獲取Android地圖SDK

然后再回到百度開放平台中開發文檔下的Android開發下Android地圖SDK

 

 

然后選擇自定義下載

 

 

然后這里只勾選幾個基本功能,具體功能根據自己需求勾選,然后點擊下方的開發包和示例代碼進行下載

 

 

項目中集成SDK

使用AndroidStudio新建項目,將項目視圖由Android切換為Project

 

 

這樣就會顯示libs目錄,然后解壓上面下載的開發包,可以看到其下面libs目錄下兩個jar包,將其復制到項目的lib下

 

 

然后選中這兩個jar包右鍵Add As Library,添加到庫

 

 

 

 

然后在src/main下新建JNIlibs目錄

 

 

然后將上面SDK下libs下的所有目錄復制到此目錄下

 

 

然后將項目切換回Android視圖下,打開activity_main.xml修改布局文件

將布局修改為相對布局,並添加百度地圖組件,並設置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.MapView
        android:id="@+id/bmapview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true"/>

</RelativeLayout>

 

然后來到MainActivity.java中,首先聲明地圖組件然后再onCreate方法中初始化地圖SDK,注意初始化地圖SDK

的代碼要放在setContentView的代碼前。

然后還需要分別設置地圖組件的聲明周期。

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;//聲明地圖組件

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //初始化地圖SDK
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_main);
        mapView = (MapView) findViewById(R.id.bmapview);
    }

    @Override
    protected void onPause() {
        super.onPause();
        mapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
        mapView = null;
    }

    @Override
    protected void onResume() {
        super.onResume();
        mapView.onResume();
    }
}

 

然后打開mainfests下的AndroidManifest.xml

首先添加meta-data標簽,內容如下

        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="申請的開發密鑰"/>

 

然后進行權限的聲明。完整示例代碼

<?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">

    <!-- 訪問網絡,進行地圖相關業務數據請求,包括地圖數據,路線規划,POI檢索等 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 獲取網絡狀態,根據網絡狀態切換進行數據請求網絡轉換 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <!-- 讀取外置存儲。如果開發者使用了so動態加載功能並且把so文件放在了外置存儲區域,則需要申請該權限,否則不需要 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!-- 寫外置存儲。如果開發者使用了離線地圖,並且數據寫在外置存儲區域,則需要申請該權限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


    <application
        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="申請的開發密鑰"/>
        <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>

 

 

這塊代碼可以參照之前在百度開放平台下載的示例代碼。

或者可以參照官網的開發指南

http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/showmap

然后需要將項目運行在可聯網的真機或者第三方模擬器上

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM