目录
引入
官网简介:百度地图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();
}
}
运行效果如下:
下一篇,定位(正在更新中)