百度地图SDK Android版开发 1 配置

前言

本文主要介绍如何使用百度地图SDK开发Android地图应用。

准备工作:
申请百度地图移动版开发密钥(AK) 入口
注册和获取密钥 教程
下载地图开发包 入口

本文下载基础地图版本 BaiduLBS_Android_V7.6.2.zip

主要步骤:

  1. 创建工程
  2. 配置地图开发包
  3. 显示地图
  4. 运行效果

步骤1 创建工程

  1. AndroidStudio 选择菜单 FileNewNew Project... ,打开 New Project 对话框;
  2. 选择模板 Empty Views Activity,单击Next
  3. 项目参数参考如下,设置后,单击Finish
参数
Namebaidudemo
Package namecom.example.baidudemo
Save location默认路径或自定义路径即可
LanguageJava
Minimum SDK默认推荐即可
Build configuration languageGroovy DSL (build.gradle)
  1. 至此创建项目完成,目录结构如下:
├── app
│   ├── build.gradle
│   ├── libs
│   ├── proguard-rules.pro
│   └── src
│       ├── androidTest
│       ├── main
│       └── test
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── local.properties
└── settings.gradle

步骤2 配置地图开发包

拷贝开发包

  • 将下载的地图包解压,拷贝至app/libs目录。
app/libs
├── BaiduLBS_Android.aar
├── arm64-v8a
│   ├── libBaiduMapSDK_base_v7_6_2.so
│   ├── libBaiduMapSDK_map_v7_6_2.so
│   ├── libc++_shared.so
│   └── libtiny_magic.so
├── armeabi-v7a
│   ├── libBaiduMapSDK_base_v7_6_2.so
│   ├── libBaiduMapSDK_map_v7_6_2.so
│   ├── libc++_shared.so
│   └── libtiny_magic.so
├── x86
│   ├── libBaiduMapSDK_base_v7_6_2.so
│   ├── libBaiduMapSDK_map_v7_6_2.so
│   ├── libc++_shared.so
│   └── libtiny_magic.so
└── x86_64
    ├── libBaiduMapSDK_base_v7_6_2.so
    ├── libBaiduMapSDK_map_v7_6_2.so
    ├── libc++_shared.so
    └── libtiny_magic.so

配置jniLibs目录

  • 文件 app/build.gradle,配置sourceSets标签。
android {
    sourceSets {
        main {
            jniLibs.srcDir 'libs'
        }
    }
}

配置依赖

  • 文件 app/build.gradledependencies中添加依赖项。
dependencies {
		// 地图包依赖
    implementation files('libs/BaiduLBS_Android.aar')
}

配置开发密钥(AK)

  • 文件 AndroidManifest.xml application标签中,配置申请好的开发密钥(AK)。
<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="开发者 key" />  
</application>

地图权限配置

  • 文件 AndroidManifest.xml manifest标签中添加地图包定位、网络和存储的权限。
<manifest>
    <!-- 这个权限用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!-- 这个权限用于访问GPS定位 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,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" />
</manifest>

地图初始化

  1. 自定义Application类;
  2. AndroidManifest.xml 中声明该Application类;
  3. 地图设置隐私模式,初始化地图,设置坐标类型。
  • DemoApp 类完整代码如下:
package com.example.baidudemo;

import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;

import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.common.BaiduMapSDKException;

public class DemoApp extends Application {
    public static String SP_NAME = "privacy";
    public static String SP_KEY = "ifAgree";

    @Override
    public void onCreate() {
        super.onCreate();
        // 在使用 SDK 各组间之前初始化 context 信息,传入 ApplicationContext
        // 默认隐私政策接口初始化方法
        SharedPreferences sp = getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);
        boolean ifAgree = sp.getBoolean(SP_KEY, false);
        if (ifAgree) {
            SDKInitializer.setAgreePrivacy(this, true);
        } else {
            SDKInitializer.setAgreePrivacy(this, false);
        }

        try {
            SDKInitializer.initialize(this);
        } catch (BaiduMapSDKException e) {
            e.printStackTrace();
        }
        //自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
        //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
        SDKInitializer.setCoordType(CoordType.BD09LL);
    }
}
  • 文件 app/build.gradleapplication中配置自定义Application类。
<application
        android:name=".DemoApp"
>
</application>

步骤3 显示地图

布局文件

  • activity_main.xml 中添加地图视图。
<com.baidu.mapapi.map.MapView
    android:id="@+id/bmapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true" />

地图Activity

  • MainActivity管理地图视图生命周期。完整代码如下:
package com.example.baidudemo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import com.baidu.mapapi.map.MapView;

public class MainActivity extends AppCompatActivity {
    private MapView mapView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mapView = findViewById(R.id.bmapView);
    }

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

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

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

步骤4 运行效果

在这里插入图片描述

  • 27
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值