Android 安卓 百度地图

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_40881680/article/details/82587144

目录

引入

有关Android百度地图开发介绍

配置步骤进行一一解释

让地图显示


引入

官网简介:百度地图Android SDK是一套基于Android 4.0及以上版本设备的应用程序接口。 您可以使用该套SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。

看下简单使用效果

之后可以调用很多百度地图的功能,从而满足用户需求

有关Android百度地图开发介绍

先从官网下载所需要的SDK

点击进入百度开发平台官网:百度地图开放平台

先登陆,没有账号的注册账号,这一步不可以省略

在官网中开发文档中对应这Android开发一列有着Android地图SDK,点进去

之后进去如下页面,

我们需要用到获取密钥开发指南

获取密钥,就是创建所对应的Key

开发指南,就相当于一个开发文档,告诉你怎么用,开发文档中有着许多功能,就比如项目创建,创建地图,与地图交互,等功能,

先进行配置功能,这里用到的是AndroidStudio,其它工具请参照官网,只对AndroidStudio做出解释

开发指南 >> Android Studio配置 ------ 这里是关于AndroidStudio的配置,可以去官网查看

配置步骤进行一一解释

下载SDK,点击产品下载,点击自定义下载

选好你的功能,点击开发包,进行下载jar包

在AndroidStudio中创建你的项目

找到你的包名,把包名复制下来(如图位置才是包名,是你项目中的build.gradle),之后去申请一个密钥,就是所说的获取密钥

创建一个你的应用

如下创建,将应用类型选成Android SDK 会变成如下这样的页面

定义一个名字

选择应用类型

输入一个SHA1值(稍等,下一个步骤会有获取方式)

之后再粘贴你刚刚复制的包名

获取SHA1值方法

Android签名证书的sha1值获取方式有多种,这里只介绍一种从AndroidStudio中获取的方式:

点击Gradle,按如图路径找到signingReport,双击打开

获取到SHA1值,复制下来,输入在上一步的发布版SHA1文本框中

创建完成之后,复制下来你的key,也可以点击右边的设置,查看详细(不多做解释)

之后就如百度地图开发官网中所说:

在工程app/libs目录下放入BaiduLBS_Android.jar文件(在下载的sdk中,libs目录下有多少jar包都放进去,每个人选择的功能不一样,自然jar包也就不同),在src/main/目录下新建jniLibs目录(要是不会创建目录,建议重新开始学,从配置环境变量开始学习)

把如图三个东西放在jniLibs目录下

右击jar包,选择Add As Library...导进去jar包,每个jar包都是这样

完毕!基本的都已经配置好了,下一个,显示地图!!!

让地图显示

可以参考官网所给出的显示步骤

代码展示

在布局文件中写入

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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/mmap"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </com.baidu.mapapi.map.MapView>

</LinearLayout>

之后是AndroidManifest.xml中放入权限(从官网拿的),如果有报错,ALT+回车 改错就行

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
//获取设备网络状态,禁用后无法获取网络状态
<uses-permission android:name="android.permission.INTERNET"/> 
//网络权限,当禁用后,无法进行检索等相关业务
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
//读取设备硬件信息,统计数据
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> 
//读取系统信息,包含系统版本等信息,用作统计
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
//获取设备的网络状态,鉴权所需网络代理
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
//允许sd卡写权限,需写入地图数据,禁用后无法显示地图
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
//获取统计数据
<uses-permission android:name="android.permission.CAMERA" />  
//使用步行AR导航,配置Camera权限

还是在AndroidManifest.xml,在application中加入以下代码,key就不多做解释,上面都有,复制进来就行

<meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="开发者 key" />  

java代码

重写三个方法(三个方法不多做解释,如下代码),加入

SDKInitializer.initialize(getApplicationContext());
SDKInitializer.setCoordType(CoordType.BD09LL);

之后运行

全部java代码:

public class MainActivity extends AppCompatActivity {
    private MapView mMapView;
    private BaiduMap mBaiduMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SDKInitializer.initialize(getApplicationContext());
        SDKInitializer.setCoordType(CoordType.BD09LL);
        setContentView(R.layout.activity_main);
        
        mMapView = (MapView) findViewById(R.id.mmap);
        mBaiduMap = mMapView.getMap();
        
    }

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

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

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

运行效果如下:

下一篇,定位(正在更新中)

猜你喜欢

转载自blog.csdn.net/qq_40881680/article/details/82587144